On Tue, 11 Apr 2006, Frank Barknecht wrote:
Another possibility to do it is resynthesizing with an inverse Fourier transform, which can be less demanding, but you loose some of the flexibility of the oscillator bank approach.
For any sane blocksize, Fourier's lowest frequencies are too far apart, so you can't get anything interesting unless you reproduce the same spectral leakage that happens when doing [fft~] on [osc~] for most frequencies. Reproducing the leakage takes a damn lot of CPU and is fastidious to do in Pd. So don't do it.
The cheapest route to go is to build the partial table in advance with "sinesum" and then just use one [tabread4~] per voice. If your partial setup doesn't change while a note is playing this would be the way to go. Instead of "sinesum" you can also built other kinds of wavetables by writing them manually with e.g. [expr].
Agreed. I haven't used sinesum personally, but tables in general seem to be the right way. I'd have used [expr] for lack of knowing anything else appropriate...
_ _ __ ___ _____ ________ _____________ _____________________ ... | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju | Freelance Digital Arts Engineer, Montréal QC Canada