slider1:10980<10,10980,1>Frequency (Hz)
slider2:0<0,5,0.001>Resonance
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
vibraposA = 0;
vibraspeedA = 0;
vibraposB = 0;
vibraspeedB = 0;

@slider
slider1 = min(slider1,10980);

resofreq = slider1;
amp = 0.8+slider2;

w = 2*$pi*resofreq/srate;
q = 1-w/(2*(amp+0.5/(1+w))+w-2);
r = q*q;
c = r+1-2*cos(w)*q;

gain = 10^(slider3/20);

@sample
inA = spl0;
inB = spl1;

vibraspeedA += (inA - vibraposA) * c;
vibraposA += vibraspeedA;
vibraspeedA *= r;
tempA = vibraposA;
(tempA > 32767)?(
tempA = 32767;
):(
tempA < -32768)?(
tempA = -32768;
);

vibraspeedB += (inB - vibraposB) * c;
vibraposB += vibraspeedB;
vibraspeedB *= r;
tempB = vibraposB;
(tempB > 32767)?(
tempB = 32767;
):(
tempB < -32768)?(
tempB = -32768;
);

spl0 = tempA*gain;
spl1 = tempB*gain;
