Dual filter plugin with independent high-pass and low-pass filters, designed for low CPU. Multiple slope options for Classic, Butterworth and Linkwitz-Riley filter responses, plus Low-Shelf and High-Shelf modes.
Plugin controls as displayed by Ardour's default generic UI. Your host may show controls differently. The frequency analysis graph shown below the controls is part of Ardour's plugin window, not a feature of this plugin.
- Independent high-pass and low-pass filters
- Multiple slope options per filter :
- Off (filter bypassed)
- Classic -12dB/octave
- Classic -24dB/octave
- Classic -48dB/octave
- Butterworth -24dB/octave
- Butterworth -48dB/octave
- Linkwitz-Riley -48dB/octave
- Linkwitz-Riley -96dB/octave
- High-Shelf (with adjustable Gain)
- Low-Shelf (with adjustable Gain)
- Adjustable cutoff frequency (20Hz-20kHz)
- Resonance/Q control for Classic modes and Shelves
- Gain control (-12dB to +12dB) for Shelf filters
- Butterworth and Linkwitz-Riley modes ignore resonance
- No custom GUI — uses host's generic controls
- Stereo input/output
- No dependencies beyond LV2 SDK
https://simdott.github.io/dilophilter
urn:simdott:dilophilter
- C compiler (gcc, clang, etc.)
- LV2 development headers
Debian/Ubuntu : sudo apt-get install build-essential lv2-dev
Fedora : sudo dnf install gcc lv2-devel
Arch : sudo pacman -S base-devel lv2
-
Download the source : git clone https://github.com/simdott/dilophilter cd dilophilter
-
Install for current user (recommended) : sh install.sh
Or install system-wide (requires sudo) : sudo sh install.sh
List installed plugins : lv2ls | grep dilophilter
Should show : urn:simdott:dilophilter
Load in any LV2-compatible host (Ardour, Carla, Reaper, etc.). Connect stereo inputs/outputs.
Each filter operates independently :
- High-Pass Filter (HPF) : Use Slope, Cutoff, and Q controls to shape the low end
- Low-Pass Filter (LPF) : Use Slope, Cutoff, and Q controls to shape the high end
Classic modes : Resonance (Q) shapes the filter's response at the cutoff frequency ;
- Low Q values (<50%) : Gentle, broad filter
- 50% : Standard flat response (Q=0.707)
- High Q values (>50%) : Resonant peak, more pronounced as Q increases
Butterworth modes : Provide flat passband response. Individual low-pass and high-pass outputs are -3dB at cutoff. Q control has no effect in these modes.
Linkwitz-Riley modes : Provide flat summed response for crossover applications. Individual low-pass and high-pass outputs are -6dB at cutoff. Q control has no effect.
High-Shelf/Low-Shelf :
- Low-Shelf : Boosts/cuts below cutoff frequency
- High-Shelf : Boosts/cuts above cutoff frequency
- Cutoff : Transition frequency
- Gain : Amount of boost/cut (-12dB to +12dB)
- Q (Resonance) : Steepness of the shelf transition (0% to 100%)
- 0% = Very gentle slope (Q=0.3)
- 50% = Classic Butterworth slope (default - Q=0.707)
- 100% = Steep, aggressive slope (Q=1.5)
To bypass a filter : Set its Slope control to "Off".
Interface : this plugin has no custom graphical interface. It uses your host's standard control UI (slider, knob, or numerical entry).
Note for Carla Users : the cutoff frequency and the resonance/Q controls use the LV2 pprops:logarithmic hint for logarithmic scaling. This works in Ardour and most hosts, but Carla currently displays these controls linearly. This is a host implementation difference, not a plugin issue.
If precise logarithmic control in Carla is important to you, please let me know by opening an issue — this helps me prioritize a custom GUI in the future.
All filters implemented as IIR biquad cascades. Designed for minimal CPU usage (no oversampling and phase response is non-linear) while providing versatile filter options. Aliasing may occur near Nyquist with high cutoff frequencies.
- dilophilter.c - Plugin source code
- dilophilter.ttl - Plugin description (ports, properties)
- manifest.ttl - Bundle manifest
- install.sh - Build and install script
- uninstall.sh - Uninstall script
-
Open a terminal in the plugin's folder
-
Uninstall for current user : sh uninstall.sh
Or uninstall system-wide : sudo sh uninstall.sh
- v1.2.0 (2026-05-25)
- High-Shelf and Low-Shelf filter slopes added.
- Resonance parameters changed to relative values (%).
- Resonance ranges redefined per slope type with relative 0-100% scaling.
- v1.1.0 (2026-05-01)
- Linkwitz-Riley -24dB/oct, -48dB/oct and -96dB/oct filter slopes added.
- v1.0.0 (2026-03-05)
- Initial release.
GPL-2.0-or-later
Simon Delaruotte (simdott)
