Analog Style EQ

bearded clumsybear's icon

I'd like to know how to create an analog style EQ, like the Pultec "EQ Trick" in gen~.
Obviously it's not a trick, but how would I go about notching a frequency band while pushing another simultaneously for example?

Is it only a matter of binding parameters to the same "knob"?
I'm aware of the fact that it's possible to calculate filter coefficients and manipulate them with a parameter. I'm not quite sure were to start learning more about this though .

Any hints?

👽'tW∆s ∆lienz👽's icon

I'd like to know how to create an analog style EQ, like the Pultec "EQ Trick" in gen~.

i think these are 2 different things, but maybe first you might create the analog style EQ, and then can simply pulloff the trick using what's described here, applying high-cut and low-boost near the same frequency, getting the cutoff/passband slopes to interfere with each other and thus shape the filter response accordingly:
https://www.audiotent.com/production-tips/the-secret-pultec-low-end-eq-trick-explained/

to create analog style EQ in gen~, then, is the advanced part to focus on... i think much of what you need to learn is in this "Demystifying Digital Filters" series:
https://cycling74.com/search/page/1?sortBy=old&tags%5B0%5D=demystifying%20digital%20filters%20series

if that sounds advanced, you might first try implementing the filters using 'biquad~' or 'cascade~', or see the 'filtergraph~' and 'filterdesign' helpfiles plus related tutorials on this site about designing filters in MSP... you might find you don't even need gen~(the main thing you're looking to implement is found in getting different/multiple filter response curvatures to interfere with each other in order to get a sharper/more-specific bandwidth response when transitioning between the 'passband' and the 'stopband'), or at the very least, will be able to visualize the graph in more intuitive ways first before designing them in gen~, see tutorials like those linked here:
https://cycling74.com/articles/a-tour-of-filtering-tools-in-max

hope it helps 🍻

Roman Thilenius's icon


"you might find you don't even need gen~"

the brave ones (guess where to find those) write ladder filters in pure MSP.

to do so, you´d put a [poly~ foo vs2] into another [poly~ bar up 2] and then replace all tapout-based delays of 1 sample delay in the feedback loops in the filter code with one of a delay of 2 samples.

you now successfully came around the vectorsize-maximum of "2" - by simply calculating every sample twice - and when you now downsample again (of course without any interpolation) you got perfect audio signal loops where you can perform "t + (t-1)" type of calculations in the inner poly.

it will no longer perform in realtime because it will require 400% CPU. but it is possible, and that is all what counts, isn´t it?

sorry for off topic, but raja has covered everything else already.