[music-dsp] AMDF shortcuts for SOLA time stretching?

Richard Dobson richarddobson at blueyonder.co.uk
Tue Apr 22 05:41:37 EDT 2008


Laurent de Soras [Ohm Force] wrote:
> Hi Ross
>> Well.. if your synthesis buffer size (ie hardware buffer size) is on 
>> the order of 64 samples, may not be a multiple of your FFT frame rate, 
>> and may vary (eg if you're a plugin) then doing longish FFTs without 
>> CPU spikes/irregularities is obviously a non-trivial matter. Either 
>> I'm ignorant of something you can tell me, or you have a nice FFT 
>> implementation that gives constant CPU load ;-)
> 

Having made several pvoc-based plugins over the years, I have to confess 
that the CPU spikes have never proved especially troublesome; indeed 
most DAWs don't even show them (a slight wobble of a few percentage 
points perhaps). Most users desperately want as low a latency as 
possible (may not be so relevant for time-stretching, depending on the 
final focus of the application), so would prefer the odd spike over 
increased delay.

The only alternative, for really smooth CPU load, is the sliding pvoc 
(hopsize = 1)**. Never tried it for time-scaling (resynthesis is by 
oscillator bank), but as the analysis rate is the same as the sample 
rate you need something like a 50Gflop machine (it's an O(N) process) to 
do any transformations in real time (an 8-core mac pro ~might~ just 
manage it). But latency will be appreciably lower, and the load, while 
epic, will be very smooth!


Richard Dobson

**e.g. as described here (and implemented in Csound):
http://dream.cs.bath.ac.uk/SDFT/index.html




More information about the music-dsp mailing list