[PD] shelf filter

derek holzer derek at x-i.net
Tue Oct 11 16:38:50 CEST 2005


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.

-- 
derek holzer ::: http://www.umatic.nl
---Oblique Strategy # 108:
"Look closely at the most embarrassing details and amplify them"




More information about the Pd-list mailing list