Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Filters

Source of truth: the doc comments on each module struct in patches-modules/src/ define the canonical port names, parameter ranges, and behaviour. This page is kept in sync with those comments.

All filter modules implement a resonant biquad (Transposed Direct Form II).

Note: The legacy Filter module name is no longer supported. Use Lowpass instead.


Lowpass / Highpass

Mono resonant filters.

Parameters

ParameterTypeDefaultDescription
cutofffloat (V/oct)6.0Cutoff as V/oct above C0: 0.0 = C0 (≈16 Hz), 4.0 = C4 (≈262 Hz), 6.0 = C6 (≈1047 Hz). Hz/kHz literals are accepted and converted at parse time.
resonancefloat0.0Resonance (0–1; approaching 1 = self-oscillation)
saturateboolfalseApply soft-clip saturation in the feedback path

Inputs

PortDescription
inAudio input
voctV/oct offset added to cutoff; 1.0 = +1 octave
fmFM sweep: ±1 sweeps ±2 octaves around cutoff
resonance_cvAdded to resonance

Outputs

PortDescription
outFiltered audio

Bandpass

Mono resonant bandpass filter.

Parameters

ParameterTypeDefaultDescription
centerfloat (V/oct)6.0Centre frequency as V/oct above C0: 0.0 = C0 (≈16 Hz), 4.0 = C4 (≈262 Hz), 6.0 = C6 (≈1047 Hz). Hz/kHz literals are accepted and converted at parse time.
bandwidth_qfloat1.0Bandwidth Q (0.1–20; higher = narrower band)
saturateboolfalseApply soft-clip saturation in the feedback path

Inputs

PortDescription
inAudio input
voctV/oct offset added to center; 1.0 = +1 octave
fmFM sweep: ±1 sweeps ±2 octaves around center
resonance_cvAdded to bandwidth_q

Outputs

PortDescription
outFiltered audio

PolyLowpass / PolyHighpass

Per-voice versions of Lowpass / Highpass. Each voice maintains independent biquad state. Same parameters as their mono counterparts. CV inputs carry poly cables; modulation is applied per-voice.

Inputs

PortDescription
inPer-voice audio (poly)
voctPer-voice V/oct offset added to cutoff; 1.0 = +1 octave (poly)
fmPer-voice FM sweep: ±1 sweeps ±2 octaves around cutoff (poly)
resonance_cvPer-voice resonance modulation (poly)

Outputs

PortDescription
outPer-voice filtered audio (poly)

Svf

Mono State Variable Filter (Chamberlin topology). Produces lowpass, highpass, and bandpass outputs simultaneously from a single audio input. All three outputs can be used at once — they share the same two integrator state variables and cost no extra computation per connected output.

Unlike the biquad filters above, Svf is capable of self-oscillation: at high q values the filter will sustain a sine wave at the cutoff frequency without any audio input. Noise or other signals act as an exciter to kick the filter into ringing.

Parameters

ParameterTypeDefaultDescription
cutofffloat (V/oct)6.0Cutoff as V/oct above C0: 0.0 = C0 (≈16 Hz), 4.0 = C4 (≈262 Hz), 6.0 = C6 (≈1047 Hz). Hz/kHz literals are accepted and converted at parse time.
qfloat0.0Resonance (0–1). The mapping is exponential: values below 0.5 give moderate resonance; above 0.9 the filter enters self-oscillation territory (Q ≈ 70–100).

Inputs

PortDescription
inAudio input
voctV/oct offset added to cutoff; 1.0 = +1 octave
fmFM sweep: ±1 sweeps ±2 octaves around cutoff
q_cvAdded to q before clamping to [0, 1]

Outputs

PortDescription
lowpassLowpass output
highpassHighpass output
bandpassBandpass output

Warning: At q values above ≈ 0.95 the filter self-oscillates. Loud audio input at those settings can drive the output to clip. Scale the output down or use a VCA after the filter if this is a concern.


PolySvf

Per-voice version of Svf. Each voice maintains independent integrator state. All parameters and CV semantics are identical to Svf; all ports carry poly cables.

Parameters

Same as Svf: cutoff and q.

Inputs

PortDescription
inPer-voice audio (poly)
voctPer-voice V/oct offset added to cutoff (poly)
fmPer-voice FM sweep: ±1 sweeps ±2 octaves around cutoff (poly)
q_cvPer-voice additive Q offset, clamped to [0, 1] (poly)

Outputs

PortDescription
lowpassPer-voice lowpass output (poly)
highpassPer-voice highpass output (poly)
bandpassPer-voice bandpass output (poly)

PolyBandpass

Per-voice version of Bandpass. Same parameters as Bandpass.

Inputs

PortDescription
inPer-voice audio (poly)
voctPer-voice V/oct offset added to center; 1.0 = +1 octave (poly)
fmPer-voice FM sweep: ±1 sweeps ±2 octaves around center (poly)
resonance_cvPer-voice bandwidth_q modulation (poly)

Outputs

PortDescription
outPer-voice filtered audio (poly)