Quantcast
Channel: KVR Audio
Viewing all articles
Browse latest Browse all 3911

DSP and Plugin Development • Re: Efficient implementation of dynamic EQ

$
0
0
I probably don't quite understand your post right away. What kind of filters can you process this way? Ladder filters and alike? They are less demanding, what about general purpose EQs of all kind, which do require Biquads? That's my case. Or you do really mean any filters? I have used ladder filters as sidechain filters as well, easy, economic ...
A "biquad" is any filter that implements a 2-zero, 2-pole response. That's where the name comes from: bi-quadratic. When people say "biquad" they often think of direct form biquads, but really any 2nd order structure with no restrictions on where the poles and zeroes can be placed is a general biquad.

The trapezoidal SVF is such a filter. So whatever bi-quadratic response you can think of you can implement it using a trapezoidal SVF (among other choices) ... and that's what I'm proposing is implementing the usual EQ responses with an SVF rather than a direct form, in order to get better modulation and perhaps slightly more straight-forward coefficient computation.
You cannot interpolate the filter coefficients themselfes.
Lets look at a peak filter.
You are looking at the direct form coefficients, but that's really the wrong thing to look at (well, sort of.. you could solve from these, but that's excessive computation and kinda bad numerically too).

If you take something like the RBJ cookbook, then the part that people perhaps tend to ignore is the "analog prototypes" where the actual direct form coefficients are obtained by substituting the bilinear transform and then simplifying the formula... but if we're working with trapezoidal SVF, it makes sense to start from the analog prototypes directly... and those coefficients CAN be interpolated, which is one of the nice things about not using direct forms.
I have a biquad processor in hardware, and it would need a full redesign.
Well, this is a constraint that a regular plugin doesn't have. It is an unfortunate constraint, because getting nice coefficient modulation out of a direct form (assuming these are direct form) is problematic.

In any case, if we are modulating at audio rates, then coefficient computation is generally going to be more work than actually computing the filter. I'd imagine plugins generally just compute this stuff anyway, because it's really not a problem on a regular desktop CPU.. but the ideal design always varies by whatever hardware you're working with.
OK thank you so much. I actually just took over the equations, more focussing on the hardware implentation in FPGA. I will look into the SVF filter stuff and the cookbook.

I am not sure anymore that even if one would calculate the direct form with every sample, this worked and sounded good. Because with rapid gain change, short attack, the filter state can be interpreted as inconsistent. So some analog prototype to start with seems a good idea. Same idea as for the ladder filter, even with forward Euler, the state (feedback) is always consistent.

In this project I even had to design my own CPU to caculate the coefficients. The relies on two filter calculations in parallel, which are rather slowly (1ms fading time) faded over, sounds smooth. Using a direct-form cascade, one can configure the system to process as any channels as needed, up to 1000.

But when considering this case, I can restart from the beginning. ;D
Let's see if SVF is actually as efficient as the direct form.

Statistics: Posted by synthpark — Mon Nov 11, 2024 10:03 am



Viewing all articles
Browse latest Browse all 3911

Trending Articles