zdf_2pole
Prev | Orchestra Opcodes and Operators | Next

## zdf_2pole

zdf_2pole — Zero-delay feedback implementation of 2 pole filter.

## Description

Zero-delay feedback implementation of a 2 pole (12 dB/oct) filter. Offers low-pass (default), high-pass, and allpass output modes.

## Syntax

    asig zdf_2pole ain, xcf, xQ [, kmode, 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.

ain -- 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.

kmode -- filter output type. The default value is 0. The output mode may be one of the following.

- 0 - low-pass

- 1 - high-pass

- 2 - band-pass

- 3 - unity-gain band-pass

- 4 - notch

- 5 - allpass

- 6 - peak

## Examples

Here is an example of the zdf_2pole opcode. It uses the file zdf_2pole.csd.

Example 1165. Example of the zdf_2pole opcode.

    <CsoundSynthesizer>
    <CsOptions>
    -o dac
    </CsOptions>
    <CsInstruments>

    sr	= 44100
    ksmps	=	1
    nchnls	=	2
    0dbfs	=	1

    instr 1
      asig = random:a(-1.0, 1.0)
      asig = zdf_2pole(asig, line(20, p3, 10000), 4, p4)

      outc(asig, asig)
    endin

    instr 2
      asig = vco2(0.5, 220)
      asig = zdf_2pole(asig, line(20, p3, 10000), 4, p4)
      outc(asig, asig)
    endin

    </CsInstruments>
    <CsScore>
    i1 0 4 0
    i1 5 4 1
    i1 10 4 2
    i1 15 4 3
    i1 20 4 4
    i1 25 4 5
    i1 30 4 6

    i2 40 4 0
    i2 45 4 1
    i2 50 4 2
    i2 55 4 3
    i2 60 4 4
    i2 65 4 5
    i2 70 4 6

    </CsScore>
    </CsoundSynthesizer>

## References

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.

1. Pirkle, Will. Designing Software Synthesizer Plug-ins in C++: For RackAFX, VST3, and Audio Units. CRC Press, 2014.

2. Pirkle, Will. AN-4: Virtual Analog (VA) Filter Implementation. 2013.

3. Zavalishin, Vadim. "The Art of VA filter design." Native Instruments, 2012.

## Credits

Author: Steven Yi
April 2017

New in Csound 6.09.0

Prev | Up | Next
zdf_1pole_mode | Home | zdf_2pole_mode