Dynamic EQ Threshold

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

Post

Hi,

I have implemented some parametric EQs according to RBJ's cookbook formulae. I would now like to implement a dynamic EQ using these biquads, but I've run into a little difficulty. My question is this:

For the *Threshold* parameter on a dynamic EQ, how is this threshold measured? Is it an RMS of a buffer of the full band of audio? Is it a measure of the dB level for a limited band around the centre frequency for the band of interest? If the latter, how is this measured?

I have seen that some dynamic EQs are implemented by using the output of a parametric EQ to drive a compressor (termed side-chain I think?), but this isn't always the case I suspect.

For a standard 3/4 channel dynamic EQ, how is the threshold level measured?

Cheers
Ger

Post

You can measure the levels any way you want - RMS, peak, etc. That part is up to you and the same as any other compressor/expander.

What is really tricky - and I don't understand it either - is how to filter the signal that feeds the level detector so that it represents what your EQ is doing. For example if your EQ is a peaking filter you can't feed the entire spectrum into your level detector - you need to use a bandpass filter that has the shape of the peaking filter (I think!). But even that doesn't seem right. Perhaps you need to measure the DIFFERENTIAL between the original signal and EQ'd signal. But trying to do that with IIR filters would not work well due to the phase shifts.

DE is not the same thing as multiband dynamics where you simply split the spectrum with a crossover(s). In that case you feed the band-limited signals into both the level detector and corresponding gain cell (in a simple approach).

I don't know how DE works. Interested to find out (and I suspect some don't work correctly). Good question!

Post

Fender19 makes good points.

Perhaps google musicdsp mail list and code archives for envelope detector. Some folks like rms, but I usually use attack-release IIR smoothed envelope detectors. For some purposes I use preset time constants. Other uses user-adjustable attack and release knobs. And sometimes "smart" detectors which auto adjust attack release according to the dynamic content of the signal.

A full wave rectifier driving a first order IIR smoother with different time constants for attack and release-- Such an envelope detector will behave more like a peak-riding envelope if attack is short and release is at least long enough to avoid gross intermodulation distortion.

With short attack and longer release, it still mostly rides the peak of the envelope, except that it takes longer to respond to drops in level, and has less tendency for intermodulation distortion. As attack time is increased, along with medium to long release times, it behaves more like an average detecting mechanism.

A compressor driven by an EQ in the side chain, doesn't EQ the signal. Only changes the frequency bands most likely to trigger broad band compression. For instance a treble boost in the side chain is a common approach for a de-esser-- The compressor, when set up with detector treble boost-- If the thresh is hand adjusted on a track to attenuate only on ssss and fricatives, then the compressor is unlikely to enter gain reduction during sustained notes and vowel sounds, except for those singers with the timbre of a chainsaw.

I like rbj peaking filters run in series for graphic or parm EQ. There is phase shift in each stage, but the phase shift of all the bands can't interact with each other to make unanticipated amplitude oddities between-bands. With series peaking filters (perhaps with shelving filters on top and bottom), each band's amplitude response is "carved in stone" before the next band gets its turn at the amplitude and phase.

Using peaking filters on dynamic EQ, you would need a separate bank of matching bandpass filters to drive the envelope detectors. The envelope detector filters would be only for control, and you would never hear the audio from those in the output. This approach would probably encourage only feed-forward compressor design. Feed-forward is when the envelope detector listens to the raw input and uses math and logic to decide on how the gain element should behave.

There are also feed-back topographies, where the detector listens to the output rather than the input. That would be trickier to do, using peaking filters.

A common approach in analog graphic EQ is parallel bandpass filters rather than series peaking filters. Care must be taken to attempt to minimize phase interactions between bands causing unexpected amplitude wiggles between bands. Analog opamp feedback makes it fairly easy to make constant Q EQ's, where for instance the width of a 12 dB cut is the same as the width of a 12 dB boost.

AFAIK in digital it is expensive to emulate opamps, but it is easy to make a parametric or graphic using rbj bandpass. If you add the output of a bandpass to the input signal you get a boost, and if you subtract the output of a bandpass from the input signal you get a cut.

Doing it thataway with rbj bandpass, the boosts are wider than the cuts. The bigger the boost, the wider the boosted band. The bigger the cut, the narrower the cut band.

But you can adjust the Q of the rbj bandpass to avoid that problem. Everytime you change the boost/cut of a band, you also change the filter's Q, so that the bands keep the same approx width regardless. In fact, rbj does the same procedure to get "constant Q" in his peaking filters, and you can steal the technique from his peaking filter parameter calculation.

With a parallel filter EQ made of bandpass filters, you could do a feed-back dynamic EQ with only one bank of filters. Drive the envelope detectors from the output of the bandpass filters. However, even with a parallel EQ, you would still need a separate set of detector filters to make a feed-forward compressor (I think).

It could be that proper behavior might require fancier filters in the detector bank than in the audible filter bank. I've never made a digital dynamic EQ, but made some special purpose analog dynamic EQ's some decades ago. If I was gonna try one, would most likely make a first try with a feedforward design using peaking filters and a separate bank of filters to drive the envelope detectors.

Post

Fender19 wrote: What is really tricky - and I don't understand it either - is how to filter the signal that feeds the level detector so that it represents what your EQ is doing. For example if your EQ is a peaking filter you can't feed the entire spectrum into your level detector - you need to use a bandpass filter that has the shape of the peaking filter (I think!). But even that doesn't seem right. Perhaps you need to measure the DIFFERENTIAL between the original signal and EQ'd signal. But trying to do that with IIR filters would not work well due to the phase shifts.
I am ignorant of current dynamic EQ products. Dunno even the recommended applications, or what the typical user wishes to accomplish with one.

You are most likely correct that a unit might want to compare the envelope level of each band against the broadband level, in making decisions how to tweak the EQ. Otherwise it might be too sensitive to overall audio level. Depends on the purpose of the device.

Comparative control logic between band level and overall level would have to be easier in digital than analog, however. The analog dynamic EQ's I built were intended to smooth out singing tone.

Made several progressively improved units intended to make my singing voice more palatable, though in that case it was a lost cause, but the gadets did help a little. My tone was ok in low registers, but raspy in an unpleasant way, in high registers because of several narrow upper-mid peaks. I measured the freq and width of the peaks, made bandpass filters tuned to each, and used envelopes to notch them out when they got "too loud compared to overall level". It would have required lots of log and antilog control circuits to properly compare the bandpass envelopes against the broadband envelope in analog.

So I put the entire circuit inside an extreme compander. Such as dbx noise reduction would compress 2:1 on input and expand 1:2 on output, but mine was full-on autolevel. There was one envelope detector listening to the input. This envelope controlled an input vca for autolevel, and also drove an output vca to re-expand to original dynamics. Using the same envelope on both ends mostly removed any pumping problems, because whatever attack-release was in the envelope detector was applied symmetrically on both ends.

With the interior of my dynamic EQ always working at a fixed level, was able to set thresh on my notching filters in the ordinary fashion of typical compressor. Because the internal signal level was the same singing soft or loud, low or high, then I could straightforward threshold compress the problem overtones and it worked as expected, only notching the overtones when they got "too loud" compared to the broadband signal.

Made a couple of other vocal boxes, similar approach but designed to be more generic. Smooth out tone of various vocal ranges without having to be hardwire designed to fit a particular vocalist.

Those are the kind of applications that come to my mind, re dynamic EQ.

Post

Hi guys,

Thanks for responding to my query. JCJR - I have briefly looked into peak and RMS level detectors.. what I am most interested in though is what is the control input signal for a single band of a dynamic EQ. I posted the same question on a separate thread and got a pretty decent explanation. I think I formed my question better in that thread.. here it is anyway:
paterpeter wrote:
g_loughnan wrote:Hi guys,

Sorry to drag up an old thread, I tried starting a new thread, but no response unfortunately. What is really bugging me is understanding how the filter attenuation/boost is triggered on a dynamic eq (not multiband compressor). So, for example, for a de-esser around 7 kHz, is it the level estimation (to drive the filter gain control) carried out on the full input band or is there a band-pass filter around 7 kHz behind the scenes somewhere?

Any light shed on this would be very much appreciated.

Thanks
Ger
This depends on the plugin's implementation. For example, the dynamic EQs by Melda Production allow you to choose per band what to use (filtered signal or whole spectrum).

Pro-MB even allows to choose the sidechain frequency range independently of the band frequency range. So you could have the bass trigger compression on the hi-hats.

So, there's no fixed rule. However, using a filtered side-chain is probably the more usual and arguably more usable approach. For example, if you use the EQ as a de-esser it should really only react to the critical frequencies.Why should it muffle the higher frequencies of a hard hitting kick drum?

So it seems to be up to yourself, but the most common way is to implement a peak/rms level detector on a band-limited version of the input signal in a side-chain. That's good enough for me for now anyway! Thanks again guys.

Post Reply

Return to “DSP and Plugin Development”