hi daf,
this info can be found in "The Scientist and Engineer's
Guide to Digital Signal Processing"
http://www.dspguide.com/the book is free to d/l or read online (consult the license).
you may find chapter 21 contents extremely useful.
the BEQSuite is based on "Cookbook formulae for audio EQ biquad filter coefficients" by Robert Bristow-Johnson posted initially at the musicdsp mail list.
you can find lots of useful dsp info (not only about biquads) here:
http://www.dspguru.com/or here:
http://www.musicdsp.org/archive.phphere's 2 more filters for SOS:
// 12dB/oct rolloff LPF
// Patrice Tarrabia from MusicDSP dot org
PTLPF : UGen {
// rez amount from sqrt(2) to ~ 0.1
*dump { arg in, cutoff=2200.0, res=1.0;
var a1,a2,a3,b1,b2,c,csq;
c = (tan(pi * cutoff / Server.default.sampleRate)).reciprocal;
csq = c.squared;
a1 = ( 1.0 + (res * c) + csq).reciprocal;
a2 = 2 * a1;
a3 = a1;
b1 = 2.0 * ( 1.0 - csq) * a1;
b2 = ( 1.0 - (res * c) + csq) * a1;
^[a1, a2, a3, b1.neg, b2.neg]
}
}
// 12dB/oct rolloff LPF
// Patrice Tarrabia from MusicDSP dot org
PTHPF : UGen {
// rez amount from sqrt(2) to ~ 0.1
*dump { arg in, cutoff=110.0, res=1.0;
var a1,a2,a3,b1,b2,c,csq;
c = tan(pi * cutoff / Server.default.sampleRate);
csq = c.squared;
a1 = ( 1.0 + (res * c) + csq).reciprocal;
a2 = -2*a1;
a3 = a1;
b1 = 2.0 * (csq - 1.0) * a1;
b2 = ( 1.0 - (res * c) + csq) * a1;
^[a1, a2, a3, b1.neg, b2.neg]
}
}
//-----------------------------------------------------------------
can change the ^[..... blah for:
SOS.ar(in, a1......
or hook it out in your func with SOS.ar if you want to inspect the coeffs or something..
plotting...
there is some code to plot biquad coeffs response curves in the links above.
cheers,
x