Table of Contents:
$$ H(s) = \frac{a+bs^{-1}}{1 + as^{-1}} $$
s^-1 represents a delay (a unit time shift in discrete time).a and b are filter coefficients.$$ y_n=-ay_{n-1}+x_n+ax_{n-1} $$
Vst::Sample32* AllPassFilter( Vst::Sample32* INChannelBuffer, Vst::Sample32* OUTChannelBuffer, float a, int numSamples ) {
OUTChannelBuffer[0] = INChannelBuffer[0];
for (int i = 1; i < numSamples; i++) {
OUTChannelBuffer[i] = -a * OUTChannelBuffer[i - 1] + INChannelBuffer[i] + a * INChannelBuffer[i - 1];
}
return OUTChannelBuffer;
}
