Zero-delay feedback implementation of a 4 pole (24 dB/oct) low-pass filter based on the Moog ladder filter.
Note
Up to Csound 6, this opcode was called zdf_ladder.
Syntax
asig=zdfladder(ain,xcf,xQ[,istor])
asigzdf_ladderain,xcf,xQ[,istor]
Initialization
istor --initial disposition of internal data space. Since filtering incorporates a feedback loop of previous output, the initial status of the storage space used is significant. A zero value will clear the space; a non-zero value will allow previous information to remain. The default value is 0.
Performance
asig -- output signal.
asig -- input signal.
xcf -- filter cutoff frequency (i-, k-, or a-rate).
xQ -- filter Q value (i-, k-, or a-rate). Range 0.5-25.0. Self-oscillation occurs at 25.0.
Examples
Here is an example of the zdfladder opcode. It uses the file zdfladder.csd.
This filter is based on the work of Will Pirkle that employs Vadim Zavalishin's work with bilinear tranforms to create topology-preserving transform (TPT) implementations of analog filters.
Pirkle, Will. Designing Software Synthesizer Plug-ins in C++: For RackAFX, VST3, and Audio Units. CRC Press, 2014.
Pirkle, Will. AN-4: Virtual Analog (VA) Filter Implementation. 2013.
Zavalishin, Vadim. "The Art of VA filter design." Native Instruments, 2012.