// This effect Copyright (C) 2004 and later Cockos Incorporated
// License: GPL - http://www.gnu.org/licenses/gpl.html

desc: triggerable sweeping resonant lowpass filter
slider1:1000<20,20000,100>freq 1 (Hz)
slider2:2000<20,20000,100>freq 2 (Hz)
slider3:2<0.1,30,0.25>sweep time (s)
slider4:0.8<0,1,0.02>resonance (0..1)
slider5:1<0,10,1>trigger
slider6:0<0,1,1>sweep loop (0=off, 1=on)

@init
  spos=0; 
  israte2=2/srate; 

@slider
  trigmask=2 ^ (slider5|0);
  //res_lp != slider4 ? n3=n4=rn3=rn4=0;
  res_lp=slider4;
  fcenter=(slider1+slider2)*0.5; 
  fsize=(slider1-slider2)*0.5; 
  ssc=$pi*israte2 / slider3;

@block
  trigger&trigmask ? spos=0;

@sample

cut_lp = (fcenter + cos(spos*ssc)*fsize) * israte2; 

slider6 || spos*ssc <= $pi ?  spos+=1;

fb_lp=res_lp+res_lp/(1-cut_lp);

n3=n3+cut_lp*(spl0-n3+fb_lp*(n3-n4));
n4=n4+cut_lp*(n3-n4);
spl0=n4;

rn3=rn3+cut_lp*(spl1-rn3+fb_lp*(rn3-rn4));
rn4=rn4+cut_lp*(rn3-rn4);
spl1=rn4;
