Partitioned convolution. Various additional buffers must be supplied.
Mono impulse response only! If inputting multiple channels, you'll need independent PartConvs, one for each channel.
But the charm is: impulse response can be as large as you like (CPU load increases with IR size. Various tradeoffs based on fftsize choice, due to rarer but larger FFTs. This plug-in uses amortisation to spread processing and avoid spikes).
Normalisation factors difficult to anticipate; convolution piles up multiple copies of the input on top of itself, so can easily overload.
in |
processing target. |
fftsize |
spectral convolution partition size (twice partition size). You must ensure that the blocksize divides the partition size and there are at least two blocks per partition (to allow for amortisation). |
irbufnum |
prepared buffer of spectra for each partition of the inpulse response. |
mul | |
add |