Chamberlain state variable filter - unity gain

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

Post

I am looking for a variable bandwidth bp filter with easy sample rate modulation. I assume state variable is the best option here, but how can I normalise its output? (resonance peak value = 1)
giq

Post

I'd forget Chamberlin unless you are specifically interested in emulating legacy digital synths, as the "ZDF" models for SVF don't use singnificantly more CPU and behave much more predictably and closer to how you would expect, with proper separation of cutoff and Q.

See for example: http://www.kvraudio.com/forum/viewtopic ... 1#p4913251

In an analog SVF (and hence the ZDF models) the band-pass gain at cutoff is exactly Q, so in some sense the filters are normalized already. If you would instead prefer to have 0dB peak-gain, simply divide the output by the Q value. Note that since you only ever need 1/Q there is no problem getting all the way to self-oscillation as Q reaches infinity (the limit for the division is then simply 0).

Post

Thanks a lot! I've seen this on spectrum, but thought this relation is nonlinear :)
This one is needed for variable width pitched noise.
giq

Post

itoa wrote:Thanks a lot! I've seen this on spectrum, but thought this relation is nonlinear :)
This one is needed for variable width pitched noise.
The analog bandpass has a (frequency normalized) transfer function s/(s^2+s/Q+1), so if we set s=i*w with w = 1 (cutoff), we get i/(i^2 + i/Q + 1) and since i^2 = -1, this simplifies to i/(i/Q) = Q, which is then the response at cutoff. That linear relationship stays exact with bilinear transform (which only warps frequencies), which is what the ZDF stuff is based on.

It won't work properly with Chamberlin though; in that case the would be some interdependence between cutoff and Q and the relation between Q and gain would depend on the cutoff. You can still solve the gain from the digital transfer function if you really want to, but I won't do it, because I don't think it's worth the trouble.

Post

What a great explanation!
giq

Post Reply

Return to “DSP and Plugin Development”