Hi List,
I have a working duplicate of GGEE's [lowpass] in purepd, and have noticed an interesting thing on my setup here. GGEE's [lowpass] seems to be sharp by a semitone or so, while the purepd impl produces coefficients which are in tune with a osc~ at the same frequency. This is very obvious when using small bandwidth values. I've verified my omega, alpha, and a0-a2, b0-b2 values against GGEE's lowpass.h/lowpass.c as correct and a perl script doing the same calculations.
The attached .ogg file shows the ggee coefficients in a biquad~ with noise~ running through it, a purepd [lowpass], and then a pure osc~ at the same cuttoff frequency. It switches between the ggee, purepd, and the osc. The attached .pd file can be used to reproduce the behavior.
Can you reproduce this behavior on your machine? GGEE's code appears legit, so I suspect the issues some place else (like samplerate, etc).
Cheers! ~brandon