A Schroeder allpass filter is given by the difference equations
where x(t)
is the input signal, y(t)
is the output signal, D
is the delay time, and k
is the allpass coefficient.
In this UGen, k
is computed as k == 0.001 ** (delay / decay.abs) * decay.sign
(0.001 is -60 dBFS).
This UGen quantizes the delay time to the nearest sample period, and will produce aliasing artifacts if the delay time is modulated. If these are undesirable properties, the more CPU-expensive alternatives are AllpassL which uses linear interpolation, and AllpassC which uses cubic interpolation.
in |
The input signal. |
maxdelaytime |
The maximum delay time in seconds. Used to initialize the delay buffer size. |
delaytime |
Delay time in seconds. |
decaytime |
Time for the echoes to decay by 60 decibels. If this time is negative, then the feedback coefficient will be negative, thus emphasizing only odd harmonics at an octave lower. |
mul |
Output will be multiplied by this value. |
add |
This value will be added to the output. |