[PD] biquad~ with elementary filters [was: Re: dinosaurs ...]

Claude Heiland-Allen claudiusmaximus at goto10.org
Mon Sep 15 11:33:53 CEST 2008

Frank Barknecht wrote:
> Hallo,
> martin brinkmann hat gesagt: // martin brinkmann wrote:
>> Claude Heiland-Allen wrote:
>>> cpole~ czero~ rpole~ rzero~ have signal inlets for filter control, so i 
>>> assume sufficiently smooth changes will not cause clicks
>> that is true, but it looks like no one has made a (usual lp,hp,etc.)
>> filter with these objects until now.
> Except Miller. [1]
> Though I agree that some more of these would be handy. I tried to make
> a biquad~ clone with the elementary filters, but failed so far. I
> assume from [2] that the transfer function of two rzero~ and two
> rpole~ in series should be the same as a biquad~,

You need two cpole~ and two czero~ here, admittedly in complex-conjugate 

> however I don't know
> how to convert the ff1, ff2, ff3, fb1 and fb2 coefficients of biquad~
> into the coefficients to use at the second inlets of the elemetary
> filters. Can anyone help?


you need to munge the biquad coefficients from the form expected by Pd's 
biquad~ to the form of the difference equation at the bottom - should 
just be some scaling and sign stuff.

then you can factorize the transfer function's numerator and denominator 
to get the locations of the (complex) zeroes and poles (using the 
quadratic formula would do the trick)

then feed them to [czero~] [cpole~], and an additional [*~] for the 
global gain.

> [1] http://crca.ucsd.edu/~msp/techniques/latest/book-html/node160.html
> [2] http://crca.ucsd.edu/~msp/techniques/latest/book-html/node136.html 
> Ciao


More information about the Pd-list mailing list