How does a dynamic eq work?

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

Post

Max M. wrote:
Fluky wrote:One is to modulate a gain parameter of a filter and the other would be to bandpass the input signal using zero-phase bandpass...
It's usually done with ordinal 2nd-order allpass mixed with the input (yes, the result of such mix is a classical bell-shaped peaking curve). Note however that you still need to cascade such EQ sections, otherwise (if you put such "bands" in parallel) you'll get a screwed frequency response because of different phase shifts in overlapping areas. There're some papers on making a multiband EQs with all-parallel stuff, but arithmetics there is probably too complex for real-time modulation (you never now until you try though)).
With this kind of phase curve: http://audioxpress.com/assets/upload/im ... igure2.jpg?

Post

Fluky wrote:With this kind of phase curve: http://audioxpress.com/assets/upload/im ... igure2.jpg?
Curve of the allpass? Yes (actually all allpass filters of 2nd-order have such phase curve, starting with 0° at 0 and raising to 2*pi at Fn... The linked picture shows so-called "wrapped" phase response where it resets to -180° after every +180° (but it's sort of math abstraction)).

P.S. I've finally recalled how such EQ structure is nick-named: "Regalia-Mitra" (after “Tunable Digital Frequency Response Equalization Filters” paper of these guys in 1987. I'm not sure if you can find that paper, but there're a lot others describing such EQ structure in details if you search for those keywords).
Last edited by Max M. on Wed Jul 29, 2015 10:13 pm, edited 1 time in total.

Post

Max M. wrote:
Fluky wrote:One is to modulate a gain parameter of a filter and the other would be to bandpass the input signal using zero-phase bandpass...
It's usually done with ordinal 2nd-order allpass mixed with the input (yes, the result of such mix is a classical bell-shaped peaking curve). Note however that you still need to cascade such EQ sections, otherwise (if you put such "bands" in parallel) you'll get a screwed frequency response because of different phase shifts in overlapping areas. There're some papers on making a multiband EQs with all-parallel stuff, but arithmetics there is probably too complex for real-time modulation (you never now until you try though)).
I don't get why parallel would lead to phase differences.

Code: Select all

      
    -->allpass 1-->                      
in ->              -> out  =   in -> allpass1 -> allpass2 -> out              
    -->allpass 2-->
?

Post

It would create a different frequency response because you would be combining the interaction of all phase shifts at once.

The structure I mentioned I worked on in 2003 overcame this, but in its place you have the issue that the total phase shift is variable while the frequency response is fixed. The result of that is you get a completely mangled phase response that warps chaotically as you change the parameters of different elements.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Fluky wrote:I don't get why parallel would lead to phase differences.
Because those filters will have different phase shifts anywhere except 0 and Fn, thus at frequencies where phase shift does not match the magnitude of the mixed result is not 1 anymore (that's actually why dry+allpass can work as bandshelf/banstop/bandpass (depending on the mix coefficient), and then two mixed allpasses (of different F and/or Q) will also create sort of weird bandshelf curve we don't want).
I'm afraid I'm not good of this kind of explanations, sorry :oops: (maybe someone else could describe it better).

In fact, you can accept such unwanted frequency-response distortion, if "bands" are evenly spread across frequencies and their curves do not overlap too much then the distortion is not so dramatic (I recall many hardware graphic EQs did accept this in 90s), but this solely depends on the type of EQ you're planning... (It should be not so hard to prototype such thing so you could see yourself how bad or acceptable it could be).

Post

I'm struggling to understand how should the signal path be done in a multi-band dynamic eq. I'm currently trying to get the downward (compression) part to work.

My basic understanding is to do the individual bands like this:

input signal
create a copy of input and allpass filter it at the desired freq and Q values
create an envelope out of the copy
mix this enveloped signal into the input signal so that in maximum equalization both signals comprise of 50% of the full amplitude

Specifically the problem is that if every band has an envelope follower, then wouldn't multiple bands doing envelope following at different attack and release times cause difficulties in trying to mix those allpassed copy signals in appropriate proportions in order to get out the same amplitude as what went in. Since for two signals the ratio to mix them is 50%.

Or maybe it should be like:


-input signal
-create a copy of input and allpass filter it at the desired freq and Q values (specified per band)
-create an envelope out of the copy
-mix this enveloped signal into the input signal so that in maximum equalization both signals comprise of 50% of the full amplitude
-take this as the new input signal and reiterate
Last edited by soundmodel on Sun Aug 16, 2015 1:31 pm, edited 1 time in total.

Post

What I'm looking for is the very typical way to construct a multi-band dynamic EQ.

E.g. Meldaproduction Dynamic EQ. Would this be gain-controlled filters? I.e. not necessarily allpasses?

How does one then get more gain that what an eq allows? E.g. more than ±24dB gain.

Post

What about something like Voxengo Soniformer then. What does it do?

Post

The issue with the allpass is the phase. I think I tried that, but the phase is 2pi late for the HF :/
One other solution is to cut the bandwitdh in smaller pieces (with a second order filter for instance) and then apply a compression on each sub bdand, like a traditional multiband compressor (well, is it comparable to a multiband compressor or not... http://www.kvraudio.com/forum/viewtopic.php?t=371979 ).

Post

The allpass sounds ok for me (unless I don't hear, what's mathematically there), but doing the enveloping turns out to be confusing. Much easier for gain controlled filters, but I guess I'd have to use multiple of them to get e.g. -48dB of downward gain.

I don't really like the idea of something like Voxengo Soniformer. Because it sounds like it'll create insane amounts of CPU overhead, as well as complicates the design a lot. Soniformer is a CPU hog, that's why it's said to be used for mastering. For typical MBC it would work, but for a dynamic eq that should have peaking EQs.

Post

By checking the MeldaProduction DynamicEQ it's very clear that this one works merely by modulating the filter gains. The key to good dynamic equalization then lies in a good envelope follower to control it.

Post

Fluky wrote:By checking the MeldaProduction DynamicEQ it's very clear that this one works merely by modulating the filter gains. The key to good dynamic equalization then lies in a good envelope follower to control it.
You did not read any papers on mentioned EQ structures, did you? You should definitely stop doing so much guesswork and start reading papers. If you would you know that for a mentioned Allpass EQ structure you have a single K coefficient which represents band-shelf gain. I.e. instead of:
create a copy of input and Allpass filter it at the desired freq and Q values
create an envelope out of the copy
mix this enveloped signal into the input signal so that in maximum equalization both signals comprise of 50% of the full amplitude
:o which does not make any sense, you simply modulate that single coefficient with your envelope. That's why this EQ structure was mentioned in this topic at all.

Post

Max M. wrote:
Fluky wrote:By checking the MeldaProduction DynamicEQ it's very clear that this one works merely by modulating the filter gains. The key to good dynamic equalization then lies in a good envelope follower to control it.
You did not read any papers on mentioned EQ structures, did you? You should definitely stop doing so much guesswork and start reading papers. If you would you know that for a mentioned Allpass EQ structure you have a single K coefficient which represents band-shelf gain. I.e. instead of:
create a copy of input and Allpass filter it at the desired freq and Q values
create an envelope out of the copy
mix this enveloped signal into the input signal so that in maximum equalization both signals comprise of 50% of the full amplitude
:o which does not make any sense, you simply modulate that single coefficient with your envelope. That's why this EQ structure was mentioned in this topic at all.
How? The allpass filtering has shifted the phase around the cutoff freq, for the frequencies in the interval defined by Q? By mixing this to the input it cancels out the frequencies in the area that the allpass filter affects. At 50% dry / 50% wet the cancellation is at maximum and is quite deep, like a notch filter.

By varying the ratio of dry to wet, one controls the depth of that notch/peak?

Post

Fluky wrote:How? The allpass filtering has shifted the phase around the cutoff freq, for the frequencies in the interval defined by Q? By mixing this to the input it cancels out the frequencies in the area that the allpass filter affects. At 50% the cancellation is at maximum and is quite deep, like a notch filter.
Band-shelving filter output can be defined as:
y = (x + A(x) + K * (x - A(x)) / 2;
where A(x) is the allpass output and K is your boost/cut gain from 0 to Inf (e.g. K=0.5 -> 6dB cut, K=2
-> 6dB boost etc.).

P.S. Obviously the same formula can be reordered in whatever way to fit a particular implementation, e.g.:
y = x * (1 + K) / 2 + A(x) * (1 - K) / 2;
etc. etc.

Post

So where do you read stuff like this?

Post Reply

Return to “DSP and Plugin Development”