Level Dependent or Dynamic EQ

bearded clumsybear's icon

Are there any gen~ examples of level dependent or dynamic equalisers?
It does not really have to be advanced, I'm basically just looking for a way to filter a signal differently depending on the signal level.

Like, just modifying the filter curves if it's above a given level.
I was thinking of using codebox to split the signal in different parts depending on it's level, but that would be a rather abrupt change, a smoother transition from one filter curve to another would be desirable if possible.

Does this make sense somehow? :)

Any hints?

cheers

Roman Thilenius's icon

method a: measure peak or power and use the result as modulation signal for two * objects to split the incoming signal onto 2 channels.

method b: measure peak or power and control the gain or frequency of your filter DSP directly with that.

bearded clumsybear's icon

thanks for your quick reply Roman!

After thinking it through I really came to the conclusion the method b would make a lot of sense to achieve my goal.

I'm not quite sure if I understand you proposed method a though. What's the purpose of splitting the incoming signal into two channels? Also not quite sure what exactly the modulation signal is used for in method a.

Can you elaborate?

Roman Thilenius's icon


that was admittedly a bit unclear.

distributing the signal onto 2 channels... was meant for parallel processing; one is the "dry" part then and the other one goes through the EQ.

it depends a bit on the filter type (a custom filter in gen could be really anything) which method you are using to build an eq.

however in both cases it is really straightforward to get power or peak and then use that signal directly to modulate something with it. well, almost, since you might have to scale and limit its range maybe.

bearded clumsybear's icon

thanks for the explanation!
Any straight forward way to measure peak or power?
I was thinking of a envelope follower using [abs] and maybe [slide] to smooth the output.

Also, is there some best practice to scale the input appropriately?

Roman Thilenius's icon


1.
i have no experience with gen~, so i would probably calculate RMS straight forward with simple math objects. other objects which might play a role are +=, histo and latch.
there are most likely examples for compressors somewhere which do exactly that.

2.
no i dont think so. i would tell the user to not overdrive the input so that we have a peak or power analysis result in the range of 0. - 1., this can then be mapped to what the user sets the EQ to by multiplying it with that value.
exponential scaling can be done directly in the scale object if required.

Graham Wakefield's icon

Tom Hall posted a nice envelope follower tutorial that could help with (1)....

There's quite a few gen~ filter examples in the Max examples, and lots more have been shared on the forum here in the past.

bearded clumsybear's icon

thanks folks, this seems to be working. now I just have to find out how to scale the envelope follower correctly to modulate the gain properly.