A Parametric Equalizer with Interactive Poles and Zeros Control for Digital Signal Processing Education
ZePolA is a parameteric equalizer that can be operated by specifying the positions of poles and zeros on the Gaussian plane. You can experiment with your own filter by either:
- specifying the numeric values of the parameters of the filter elements
- interacting with the filter element representations in the Gaussian plane
- designing a classical filter via the filter designer
You can find the latest release on GitHub at https://github.com/LIMUNIMI/ZePolA/releases. You can download only the specific plugin (standalone, VST3, or Audio Unit) for Linux, Windows, and MacOS.
Standalone applications require no installation. Plugins must be copied to the proper directory to be installed
OS | Plugin | Path | Plugin | Path |
---|---|---|---|---|
Ubuntu | VST3 | ~/.vst | ||
Windows | VST3 | C:\Program Files\Common Files\VST3 | ||
MacOS | VST3 | Library/Audio/Plug-ins/VST3 | AU | Library/Audio/Plug-ins/Components |
- Radius Element distance from the origin in the Gaussian Plane
- Angle Element angle in the Gaussian plane (normalized between 0 and 1)
- Hz Element angle as a frequency in hertz
- Type Element type (zero or pole)
- Active Turns the element on/off
- Gain Input gain in decibel
- Out Moves zeros outside the unit circle (the magnitude is the inverse of the radius parameter)
- 1x First-order filter element (real axis only)
Interact with the circles (zeros) and crosses (poles) on the plane to modify the element parameters
- Right-click Activate/deactivate elements
- Drag Adjust radius and angle
- Double-click Swap between zero and pole
- Scroll Adjust input gain
The plots panel shows the filter's DTFT magnitude and phase. There is also a plot of the filter's IR in the time-domain.
- LIN/DB Toggle between linear amplitude or decibel
- LIN/LOG Toggle between linear or logarithmic frequencies
- Type Butterworth, Chebyshev Type-I, Chebyshev Type-II, or Elliptic
- Shape Low-pass, or High-pass
- Order Filter order (number of elements)
- Cutoff frequency Transition frequency between pass-band and stop-band
- Passband ripple Ripple amplitude in the passband, in decibel
- Stopband ripple Ripple amplitude in the stopband, in decibel
- Update Apply the settings to the filter elements
- Auto Automatically update on parameter change
- Undo Revert changes
- Redo Restore changes
- Reset Restore default parameters
- Save Write parameters to an XML file
- Load Read parameters from an XML file
- Export Save filter coefficients to a CSV file
- Man/Auto Gain Toggles the auto-gain feature
You can change a number of constant in the plugin using environment variables. Please, note that changing these settings from the default values may severely hurt performance and/or stability and negatively affect the aesthetic appearance.
ZEPOLA_N_FILTER_ELEMENTS // The number of filter elements
ZEPOLA_IR_PLOT_LENGTH // The length of the IR plot, in samples
ZEPOLA_POLE_MAGNITUDE_CEIL // The maximum radius for a pole element (linear)
ZEPOLA_INVERSE_MAGNITUDE_FLOOR // The minimum radius for an inverted element (linear)
ZEPOLA_FILTER_ELEMENT_GAIN_FLOOR_DB // The minimum gain for an element, in dB
ZEPOLA_ALLOW_INVERTED_POLES // Allow inverted magnitude for pole elements (extremely instable)
Copyright (c) 2025 Laboratorio di Informatica Musicale
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.