Shelving function of this filter?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

I got a 2nd order State Variable Filter working inside my first JUCE synth:
https://github.com/JordanTHarris/VAStat ... Filter.cpp
https://github.com/JordanTHarris/VAStat ... leFilter.h

It comes with a number of modes which seem to work nicely from what I've tested:

Code: Select all

This filter can choose between 8 different types using the enums listed below or the int given to each.
        0: SVFLowpass
        1: SVFBandpass
        2: SVFHighpass
        3: SVFUnitGainBandpass
        4: SVFBandShelving
        5: SVFNotch
        6: SVFAllpass
        7: SVFPeak
    */
The problem is I can't understand the nature of #4. Bandshelving has to be either high shelf or low shelf, right? But here it doesn't specify which it is. What is this mode actually going to do? Is it shelving both at the same time?

How could this filter be modified to add a clearly defined High Shelf and Low Shelf option? I am going to be switching this with a Moog Ladder filter from here:
https://github.com/ddiakopoulos/MoogLad ... /Filters.h

Which does give clear options for high vs. low shelving and I want it to be consistent for both so the menus and functions work.

Any help? Very appreciated if so.

Thanks

Post

I am going to be switching this with a Moog Ladder filter from here:

Juts in case, (to avoid any confusion in the future): while the folder in the project you link is named "MoogLadders", the code in the "Filters.h" file has absolutely nothing to do with the ML. This coefficient formulae there is known as "RBJ Cookbook" (usually just "RBJ" for short).

Bandshelving has to be either high shelf or low shelf, right?

In short, if you try to draw/imagine some low-boost/high-cut shelf curves for the same frequency, you'll notice they are actually identical curves and the only difference is their overall gain. Thus by keeping either high or low side at the unity level (i.e. 0dB) you actually make it to be LS or HS.

(In this matter the code you try to use seems to be sort of unfinished/never-used-by-the-author-himself for these particular filter types. Notice (if I'm not mistaken) there he also does not have any parameter to set the boost/cut level for the Peaking filter, i.e. having this mode useless as well).

For more details you'd better consult the original paper the code comes from:The Art of VA Filter Design .

Post Reply

Return to “DSP and Plugin Development”