Dear list,
I've been trying to make a classic 3 band "DJ EQ" with a slope steep and attentuation sufficint enough to kill all frequencies in the selected bandwidth range if needed (a "kill switch"). The filter should also have as little possible resonance at the crossover frequencies to avoid coloring the sound that goes through it.
I simply lack the math knowledge to program [biquad~] by myself, so I'm playing around with the filter helpers from the GGEE library. The [lowpass], [bandpass] and [highpass] objects seem simple enough, and I've gotten pretty close to what I need from there. But there's still the issue of the crossover frequencies. The slope isn't steep enough.
So I checked out [highshelf], [lowshelf] and [hlshelf], but these are very confusing, espc the "gain" parameter. It seems I have to scale the output gain by the same ratio as the biquad frequency gain to maintain the original sound going through? This works at high frequencies, but not at low ones. So what would be the proper ratio to scale the output of the filter by in this case?
The [hml_shelf~] abstraction from IEMlib is similarly not too helpful, as the output also needs scaling (by an unknown ratio) to get the desired frequency range back up to normal levels.
I also checked out the LADSPA "DJ_EQ" plugin, but either the attentuation isn't sufficient or the cutoff not steep enough because I still get a lot of unwanted sound from the other bands. The JackEQ JACK client doesn't work properly on my machine [Gentoo PPC], so I can't tell if that would work better or not.
So besides going back to my flunked algebra and trigonometry classes to cook up a proper biquad, can anyone give me some clues on how to realize this seemingly simple filter properly?
thx, d.