slider1:0<0,100,0.01>Distortion (%)
slider2:100<1,100,0.01>Output (%)
slider3:0<0,2,1{hard,soft,sin}>Mode

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

@slider

outputVolume = slider2*0.01;

@sample

slider3==0 ? (
dist = max(min((slider1+4)/4,26),1);

spl0*=dist*outputVolume;
spl1*=dist*outputVolume;

(spl0>outputVolume) ? (spl0=outputVolume;) : (spl0<-outputVolume) ? (spl0=-outputVolume;);
(spl1>outputVolume) ? (spl1=outputVolume;) : (spl1<-outputVolume) ? (spl1=-outputVolume;);
);

slider3==1 ? (
dist = max(min((slider1+5)/5,21),1);

spl0*=dist;
spl1*=dist;

spl0=spl0*(12*spl0*spl0 + 144)*outputVolume / (spl0*spl0*(spl0*spl0+60) + 144);
spl1=spl1*(12*spl1*spl1 + 144)*outputVolume / (spl1*spl1*(spl1*spl1+60) + 144);
);

slider3==2 ? (
dist = max(min((slider1+10)/10,11),1);

spl0=sin((spl0)*dist)*outputVolume;
spl1=sin((spl1)*dist)*outputVolume;
);
