slider1:50<0,100,0.1>Filter (%)
slider2:0<0,7,1{lowpass,lowpass mono,lowpass mid,lowpass side,highpass,highpass mono,highpass mid,highpass side}>Mode
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

itm1=itm2=otm1=otm2=0;

z = 0;
z0 = 0;
z1 = 0;

src_a = tgt_a = slider1*0.01;
src_b = tgt_b = 1 - slider1*0.01;

src_out = tgt_out = 10^(slider3/20);

@slider

tgt_a = slider1*0.01;
tgt_b = 1 - slider1*0.01;

mode = slider2;

tgt_out = 10^(slider3/20);

@block

d_a = (tgt_a-src_a)/samplesblock;
ta = src_a;
src_a = tgt_a;

d_b = (tgt_b-src_b)/samplesblock;
tb = src_b;
src_b = tgt_b;

d_out = (tgt_out-src_out)/samplesblock;
tout = src_out;
src_out = tgt_out;

@sample

ta += d_a;
tb += d_b;
tout += d_out;

a = ta;
b = tb;
out = tout;

mode==0 ?( 
//lowpass
in0 = spl0;
in1 = spl1;
z0 = (in0 * b) + (z0 * a);
z1 = (in1 * b) + (z1 * a);
spl0 = z0;
spl1 = z1;
);

mode==1 ?( 
//lowpass mono
in = (spl0+spl1)*0.5;
z = (in * b) + (z * a);
spl0 = z;
spl1 = z;
);

mode==2 ?( 
//lowpass mid-signal
in0 = (spl0-spl1)*0.5;
in1 = (spl0+spl1)*0.5;
z = (in1 * b) + (z * a);
spl0 = in0 + z;
spl1 = in0*-1 + z;
);

mode==3 ?( 
//lowpass side-signal
in0 = (spl0-spl1)*0.5;
in1 = (spl0+spl1)*0.5;
z = (in0 * b) + (z * a);
spl0 = in1 + z;
spl1 = in1 + z*-1;
);

mode==4 ?( 
//highpass
in0 = spl0;
in1 = spl1;
z0 = (in0 * b) + (z0 * a);
z1 = (in1 * b) + (z1 * a);
spl0 = in0 - z0;
spl1 = in1 - z1;
);

mode==5 ?( 
//highpass mono
in = (spl0+spl1)*0.5;
z = (in * b) + (z * a);
spl0 = in - z;
spl1 = in - z;
);

mode==6 ?( 
//highpass mid-signal
in = (spl0+spl1)*0.5;
z = (in * b) + (z * a);
spl0 -= z;
spl1 -= z;
);

mode==7 ?( 
//highpass side-signal
in = (spl0-spl1)*0.5;
z = (in * b) + (z * a);
spl0 -= z;
spl1 -= z*-1;
);

otm1=0.999*otm1+spl0-itm1; itm1=spl0; spl0=otm1;
otm2=0.999*otm2+spl1-itm2; itm2=spl1; spl1=otm2;

spl0*=out;
spl1*=out;
