Skip to content

ZePolA - A Parametric Equalizer with Interactive Poles and Zeros Control for Digital Signal Processing Education

License

Notifications You must be signed in to change notification settings

LIMUNIMI/ZePolA

Repository files navigation

ZePolA

A Parametric Equalizer with Interactive Poles and Zeros Control for Digital Signal Processing Education

screenshot

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

Installation

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

Parameter panel

  • 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)

Gaussian Plane

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

Plots

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

Filter Design

  • 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

Top Menu

  • 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

Environment variables

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)

License

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.

About

ZePolA - A Parametric Equalizer with Interactive Poles and Zeros Control for Digital Signal Processing Education

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages