slider1:22000<20,22000,1>Frequency (Hz)
slider2:0.1<0,1,0.001>Size (sharp <> dull)
slider3:0<-24,24,0.1>Output (dB)

in_pin:L in
in_pin:R in
out_pin:L out
out_pin:R out

@init
fd1l = fd2l = fd1r = fd2r = 0;

@slider
amount = max(min(slider2,1),0.01);
damp = amount*20;
c = 1/tan($pi*slider1/srate);
fk = 1 / (1 + c*(c+damp));
fa1 = 2 * (1 - c*c) * fk;
fa0 = (1 + c*(c-damp)) * fk;

gain = 10 ^ (slider3 / 20);

@sample
fd0l = (fk*spl0) - (fa1*fd1l) - (fa0*fd2l);
fd0r = (fk*spl1) - (fa1*fd1r) - (fa0*fd2r);

spl0 = (fd0l + fd1l + fd1l + fd2l)*gain;
spl1 = (fd0r + fd1r + fd1r + fd2r)*gain;

fd2l = fd1l;
fd2r = fd1r;

fd1l = fd0l;
fd1r = fd0r;

spl0 *= gain;
spl1 *= gain;
