Parallel EQ cuts

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

Post

Hey guys, just curious to know if anybody has implemented a parallel EQ. The idea is you just take a bandpass filter and add them in parallel to the original signal to get a peak boost. Parallel HPF is a high shelf, etc.

There's some more information on it here and how it's different from serial EQ. http://vladgsound.wordpress.com/2014/08 ... explained/

All is fine there except I can't get the cuts to act the way it's saying they should. They don't combine the way the boosts do when added in parallel. Does anybody have any clues or experience with parallel EQ that can give me some pointers?

Thanks.

Post

The gain scaling is an inverse for cuts. 6 dB boost = [input + 1.0 * filter out], 12 dB boost = [input + 3.0 * filter out], etc. 6 dB cut = [input - 0.5 * filter out], 12 dB cut = [input - 0.75 * filter out], etc.

Assuming your filter gain == 1.0 in all cases.

The problem is to get "constant Q" behavior, so that a + 18 dB boost looks "about as wide" as a +3 dB boost, and so that, plotted on a log log chart, the -18 dB response is a perfect mirror image of the +18 dB curve, and the -3 dB response is a perfect mirror image of the +3 dB curve, etc.

If you keep your filter Q the same all the time, and just add or subtract a scaled copy of filter output to get boosts and cuts, you won't get this behavior. Big boosts will be wider than small boosts. Small cuts will be narrower than small boosts, and big cuts will be narrow indeed.

Some outboard analog graphic EQ's were designed thataway, having wide boosts for tone sculpting and narrow cuts for feedback suppression. But the typical analog EQ had "constant Q" symmetrical skirts.

In order to get symmetrical boost/cut skirts, you need to adjust filter Q every time you calculate the amount of boost/cut. For boosts, the filter Q needs to increase with bigger boosts (so that big boosts don't get too wide). For cuts, the filter Q needs to get smaller as the cut gets bigger, so the cut doesn't get too narrow at large cuts.

I don't like parallel EQ's because the phase interaction between bands can make the freq response too unpredictable between bands. In analog you can use opamp feedback for fairly cheap constant Q behavior, and it would be a noise buildup problem to make a series 31 band analog EQ.

In digital, feedback is an expensive trick, and noise buildup isn't much of a problem, and the inter-band freq response is more predictable with series EQ's, so I don't see any advantage to parallel digital EQ, but maybe there are such advantages, dunno.

Post

JCJR wrote: I don't like parallel EQ's because the phase interaction between bands can make the freq response too unpredictable between bands. In analog you can use opamp feedback for fairly cheap constant Q behavior, and it would be a noise buildup problem to make a series 31 band analog EQ.
yeah, it's the phase interaction during cuts that's giving me the biggest issue. Boosting is pretty straight forward, it's the cutting that does all sorts of wonky stuff the the frequency response when two bands are close together. I'm not at my development machine right now, but next time I get there I'll show some screenshots of what'd going on.

Even when I adjust the Q to match the inverse of the boost shape, it only works when there is one cut band. Once I have two of them, it gets ugly. I can only assume I'm missing some important step that you have to do when cutting multiple bands, but I really can't find any information out there on parallel EQs in the digital domain.
JCJR wrote: In digital, feedback is an expensive trick, and noise buildup isn't much of a problem, and the inter-band freq response is more predictable with series EQ's, so I don't see any advantage to parallel digital EQ, but maybe there are such advantages, dunno.
I could see how it could be handy, especially the way it prevents excessive boost when bands are close together. It's certainly a different flavor of EQ than the standard series eq. Whether it's better or worse for normal use, I don't really know.

Post

Nova67 uses a crossover network to put it simply. A crossover is a form of parallel EQ, but it does not use bells in parallel.

Post

camsr wrote:Nova67 uses a crossover network to put it simply. A crossover is a form of parallel EQ, but it does not use bells in parallel.
Huh, really? I guess ill try that and see if I get better results.

Post

Well it depends on how your bandpass is tuned. I'm not sure how vlad did it but I know it's complicated :hihi:
A low/hi shelf is very simple in comparision. Just use a basic crossover topology and adjust the gain of either. There may be problems with phase depending on the filter order. All crossovers have their tradeoffs.

Post

The gain factors I mentioned for boosts and cuts were both "feedforward". I made some digital parallel EQ's a long time ago, which as best I recall worked as expected, with both the boosts and the cuts feedforward.

Decades ago I thought I had a good understanding of opamp audio circuitry. Some of that earlier self-evaluation may have been overly optimistic, and some of my current ignorance might be blamed on dis-used old memories and/or elderly brain damage. Probably some combination of factors.

The article you linked is interesting, and possibly entirely accurate, though parts of it might be slightly odd. Or not.

His criticism that series peaking filters are too unpredictable, and that boosts tend to overwhelm cuts, seems doubtful. For sake of simple example, consider an octave spaced graphic EQ made of series peaking filters. For sake of simple example, assume that Q is selected such that a 6 dB boost at center freq, has a 3 dB boost an octave above and below. The cut is symmetrical, a -6 dB cut at center freq, has a -3 dB cut an octave above and below.

Because phase interaction between bands can't affect the freq response in series peaking filters, if we boost both 1 KHz and 2 KHz bands +6 dB, then 1 KHz gets boosted 6 + 3 = 9 dB, and 2 KHz gets boosted 6 + 3 = 9 dB, and the response between the two freqs "makes sense".

If we boost 1 KHz +6 dB, and cut 2 KHz -6 dB, then 1 KHz is boosted 6 - 3 = 3 dB, 2 KHz gets cut by -6 + 3 = -3 dB, and the curve in-between "makes sense". This seems entirely predictable to me, and symmetrical regarding boosts and cuts, with no odd freq response squiggles between frequency centers.

====

Vlad shows his parallel cuts in a feedback loop. In fact, his feedforward boost along with feedback cut looks very similar to an opamp-based parallel EQ.

Never tried that in digital and maybe it works great in practice. I suspect at the very least it would need to operate oversampled, to minimize the 1 sample feedback delay screwing up the behavior. But maybe it would work great without oversampling. Dunno.

Another uncertainty-- Though the illustrated feedback might work great and looks suspiciously like an opamp parallel EQ, I don't think it does the same thing as a common opamp EQ. He sums the cut filters and then subtracts them from the boost filter sum in a feedback loop.

Opamps do something trickier with the feedback. Or maybe not. Opamps have very high open loop gain, and the feedback forces the opamp into athletic contortions to balance input against feedback, and then the "output" comes from the opamp output working hard to balance the feedback. Vlad's design seems "kinda like" taking the output from a point inside the loop. But maybe it is equvalent to the opamp configuration, dunno. Even if not equivalent to an opamp EQ, maybe it works fine.

A digital opamp, as best I know, might be modeled as an expensive oversampled high gain first order lowpass filter, having very high gain at low freqs, and at least 20 dB gain at the highest operating frequency of interest.
bozmillar wrote:I could see how it could be handy, especially the way it prevents excessive boost when bands are close together. It's certainly a different flavor of EQ than the standard series eq. Whether it's better or worse for normal use, I don't really know.
Well, it would be easy to narrow the filters if they reinforce each other too much. Selection of bandwidth in a graphic EQ is a trade-off, with excessive width insufficiently selective and excessive narrowness too peaky.

I don't keep up with the zillions of graphic EQ plugins. Wonder if a bandwidth knob is common on modern graphic EQ plugins? There is the design temptation to try to give the user the ideal bandwidth for the "perfect EQ" but maybe a knob to adjust the EQ either smooth or peaky would be a nice feature?

It's interesting that you consider series filters the "normal configuration." Mental habits die hard-- Because I started out playing with analog, parallel EQ was the "normal configuration" and that's why my first digital EQ's were parallel. As best I recall, the earliest descriptions I read of "new fangled at the time" digital EQ's were parallel, so apparently I wasn't the lone ranger set in old mental habits.

I have a fairly early, nice enough furman stereo three band parametric EQ. Well built considering it still works perfectly. It was rather expensive at the time. It is well-behaved with a wide adjustment range, with good-enough opamps and components of the time, but it is NOISY! Quiet enough for live work, but too noisy for me to be tempted to ever record with it. In analog you wanted to keep the signal path as short as possible to get the job done, and those three sections of series peaking filters in the furman was just too long a signal path to be economically manufactured at the time, and also have excellent noise performance.

Post

JCJR wrote:I suspect at the very least it would need to operate oversampled, to minimize the 1 sample feedback delay screwing up the behavior. But maybe it would work great without oversampling.
I suspect you're probably right in that the unit delay could cause problems. Other than over sampling you could try resolving for delay free feedback with trapezoidal integration/TPT design methods. If your EQ is rather non linear, perhaps due to saturation, then you may want to over sample anyway.

Post

I talked to Vlad about it and he gave me a pretty good explanation. It took my a while to wrap my brain around it, but basically, yes, you can get that negative feedback loop in the block diagram without any delay. That's the part that was throwing me off.

Essentially, you break up your filter into two parts so that your filter f[x] = A0*x + B. you can get A0*x +B by running your filter but NOT propagating the delays inside your filter. Then you can get your feedback loop by doing:

fb = x - gain*f[fb]
substitute f[fb ] for A0*x + B and you get

fb = x-gain*(A0*fb + B)

You can solve for y and get

fb = (x - gain*B) / (1 + gain*A0)

Then you propagate the delays in your filter by running it again and you can ignore the output.

An there you have it.

Post

Nice and simple for a first order filter. But things start to get funky when you have second order filters in parallel with a negative feedback loop. :D

I was looking at this today when I had a few spare moments. If I get the chance later I might post an example.

Post Reply

Return to “DSP and Plugin Development”