ftconv
Low latency multichannel convolution, using a function table as impulse response source.
The algorithm is to split the impulse response to partitions of length determined by the iplen parameter, and delay and mix partitions so that the original, full length impulse response is reconstructed without gaps. The output delay (latency) is iplen samples, and does not depend on the control rate, unlike in the case of other convolve opcodes.
Syntax
Initialization
ift -- source ftable number. The table is expected to contain interleaved multichannel audio data, with the number of channels equal to the number of output variables (a1, a2, etc.). An interleaved table can be created from a set of mono tables with GEN52.
iplen -- length of impulse response partitions, in sample frames; must be an integer power of two. Lower settings allow for shorter output delay, but will increase CPU usage.
iskipsamples (optional, defaults to zero) -- number of sample frames to skip at the beginning of the table. Useful for reverb responses that have some amount of initial delay. If this delay is not less than iplen samples, then setting iskipsamples to the same value as iplen will eliminate any additional latency by ftconv.
iirlen (optional) -- total length of impulse response, in sample frames. The default is to use all table data (not including the guard point).
iskipinit (optional, defaults to zero) -- if set to any non-zero value, skip initialization whenever possible without causing an error.
Performance
ain -- input signal.
a1 ... a8 -- output signal(s).
Example
Here is an example of the ftconv opcode. It uses the file ftconv.csd.
See also
Credits
Author: Istvan Varga
2005