Moog-Style TPT Ladder Filter — User Guide
A four-pole resonant low-pass filter built from a linearized topology-preserving-transform ladder model, with static settings or continuous cutoff/resonance sweeps and optional post-filter saturation.
What this does
Moog-Style TPT Ladder Filter applies a resonant four-pole low-pass response to the selected Sound. The core filter is a digital ladder model built from four trapezoidal one-pole stages with feedback. In static mode, the script evaluates the equivalent fourth-order IIR transfer directly. In sweep presets, the same filter coefficients change continuously sample by sample while the recursive filter state is preserved.
The result is a steep low-pass filter whose cutoff and resonance can be used either as fixed tone-shaping controls or as moving parameters. After the ladder stage, the script can add output trim, one of two smooth saturation curves, and an optional 20 Hz DC blocker.
Quick start
- Select exactly one Sound object in Praat.
- Run
Moog_Ladder_Filter.praat. - Choose a preset. For manual static filtering, leave Preset = Custom.
- In Custom mode, set Cutoff frequency and Resonance.
- Choose the output saturation: Off, Soft, or Tanh.
- Use Output trim to set the gain entering the saturation stage.
- Leave DC blocker on unless you specifically want to preserve very-low-frequency/DC content.
- Click OK. The result appears as
original_moog_PresetName.
Signal flow
The ladder core
For a cutoff fc and sampling rate fs, the script first prewarps the cutoff with g = tan(π·fc/fs). From this it builds the coefficients of four trapezoidal one-pole low-pass stages. Resonance is mapped to the feedback coefficient as k = 4 · resonance^1.5.
Rather than numerically iterating a delay-free feedback loop, the static processor uses the equivalent closed-form fourth-order IIR denominator. This preserves the recursive ladder behavior while avoiding a separate iterative solver.
0.45 × sample rate, also kept at least 5 Hz below Nyquist).
Static & automation modes
Static mode
Custom and the eight fixed presets use one cutoff and one resonance value for the whole Sound. The exact linear transfer used for processing is also the response drawn in the static visualization panel.
Continuous automation
The three sweep presets activate sample-continuous automation:
- Cutoff moves exponentially between the start and end values, so equal progress corresponds to equal frequency ratios.
- Resonance moves linearly between its start and end values.
- The recursive IIR state is not reset during the sweep.
Presets
Static presets
| Preset | Cutoff | Resonance | What changes |
|---|---|---|---|
| Bass Filter | 300 Hz | 0.30 | Strong low-pass emphasis on the low-frequency region. |
| Warm Pad | 800 Hz | 0.50 | Darker response with moderate resonance. |
| Vocal Resonance | 1500 Hz | 0.65 | Pronounced resonance around 1.5 kHz. |
| Bright Lowpass | 2500 Hz | 0.55 | Retains more upper-mid energy while still applying a four-pole rolloff. |
| Resonant Peak | 1200 Hz | 0.75 | Strong cutoff-region emphasis. |
| Telephone-Style Lowpass | 2800 Hz | 0.35 | A brighter low-pass setting; it remains a low-pass, not a telephone band-pass. |
| Sub Bass | 150 Hz | 0.20 | Very low cutoff with restrained resonance. |
| Acid Bass | 500 Hz | 0.75 | Low cutoff with a strong resonant peak. |
Automation presets
| Preset | Cutoff | Resonance |
|---|---|---|
| Cutoff Sweep Up | 200 → 3000 Hz | 0.50 → 0.50 |
| Cutoff Sweep Down | 3000 → 200 Hz | 0.50 → 0.50 |
| Resonance Sweep | 800 → 800 Hz | 0.10 → 0.85 |
Parameters
Filter controls
| Control | Default | Behavior |
|---|---|---|
| Cutoff frequency | 1000 Hz | Static pole cutoff used by Custom and fixed presets after preset override. |
| Resonance | 0.70 | Clamped to 0–0.99, then mapped to feedback k = 4·resonance^1.5. |
| Start / End cutoff | 200 / 3000 Hz | Used when an automation preset is active. |
| Start / End resonance | 0.20 / 0.80 | Used when an automation preset is active. |
Output stage
| Control | Default | Behavior |
|---|---|---|
| DC blocker | On | Applies a one-pole 20 Hz high-pass after the saturation stage. |
| Limiter type | Soft | Off leaves the ladder output linear; Soft uses x/(1+|x|); Tanh uses tanh(x). |
| Output trim dB | 0 dB | Clamped to −60…+24 dB and applied before Soft/Tanh. With saturation enabled, positive trim therefore increases saturation drive as well as level. |
| Draw visualization | On | Creates the AudioTools diagnostic page. |
| Play result | On | Plays the final Sound after processing. |
Input & output behavior
| Property | Behavior |
|---|---|
| Selection | Exactly one Sound object is required. |
| Channels | All channels are preserved and filtered independently with the same cutoff/resonance trajectory. Stereo is not downmixed for processing. |
| Sample rate | Preserved. |
| Duration | Preserved. |
| Start time (xmin) | Preserved. Automation is indexed by sample number, so a non-zero start time does not shift the sweep trajectory. |
| Randomness | None. The processor is deterministic for a given source and parameter set. |
| Output name | original_moog_PresetName. |
Visualization
When Draw visualization is enabled, v0.5 creates a suite-style diagnostic page with:
- Input waveform and output waveform.
- Paired whole-sound spectra for input and output, up to 10 kHz or Nyquist.
- For static settings, the exact linear transfer response calculated from the same IIR coefficients used by the processor, with the cutoff marked on a logarithmic frequency axis.
- For automation presets, the continuous cutoff trajectory over time.
- A summary strip with preset, channel count, sample rate, saturation mode, peak change, DC-blocker state, and trim.
Further Reading
- Stilson, T. & Smith, J. O. (1996). Analyzing the Moog VCF for Digital Implementation. Proceedings of the International Computer Music Conference (ICMC 1996). Directly relevant to digital models of the four-pole Moog VCF.
- Zavalishin, V. (2018). The Art of VA Filter Design, rev. 2.1.0. Native Instruments. A practical reference for topology-preserving / zero-delay-feedback virtual-analog filter structures.
- Huovilainen, A. (2004). Non-Linear Digital Implementation of the Moog Ladder Filter. Proceedings of DAFx-04. A primary reference for nonlinear ladder modeling; useful for contrasting stage-level nonlinear models with the present script's linearized ladder plus post-filter saturation.