slider1:0<0,100,1>overdrive (%)
slider2:25<25,50,1>influence/gain
slider3:0<0,1,1{mono,stereo}>mode
slider4:0<-24,24,0.1>output (dB)

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

@slider
mode=slider3;

slow0=slider1;
slow1=(0.0001*slow0);
slow2=(0.01*slow0);
slow3=slider2;
slow4=(slow3-1);
slow5=(0.0010000000000000009 * pow(10,(0.05 * (0 - (0.5 * slow3)))));
slow6=(1-slow2);

output=10^(slider4/20);

@sample
mode == 0 ? (
temp0=(spl0+spl1)*0.5;
temp1=abs(slow2*temp0);
rec0=slow5+(0.999*rec1);
spl0=temp0 * (slow6 + (slow2 * (rec0 * (slow3 + temp1) / (1 + ((slow4 * temp1) + (slow1 * temp0))))));
spl1=spl0;
rec1=rec0;
);

mode == 1 ? (
temp0A=spl0;
temp1A=abs(slow2*temp0A);
rec0A=slow5+(0.999*rec1A);
spl0=temp0A * (slow6 + (slow2 * (rec0A * (slow3 + temp1A) / (1 + ((slow4 * temp1A) + (slow1 * temp0A))))));
rec1A=rec0A;

temp0B=spl1;
temp1B=abs(slow2*temp0B);
rec0B=slow5+(0.999*rec1B);
spl1=temp0B * (slow6 + (slow2 * (rec0B * (slow3 + temp1B) / (1 + ((slow4 * temp1B) + (slow1 * temp0B))))));
rec1B=rec0B;
);

spl0*=output;
spl1*=output;
