slider1:0<0,4000,0.001>(0=Sync) Frequency (Hz)
slider2:100<0,100,1>Width (%)
slider3:0<0,10,1{Stereo: LR pan,Mono: Mid/Side-inv sum tremolo,Mono: Mid/Side-inv sum tremolo (alt),MS: Mid/Side alternated,MS: Side tremolo (Mid def),MS: Side-inv pan (Mid def),MS: Mid tremolo (Side-inv),MS: Mid pan (Side-inv),MS: Mid pan (Side def),MS: Mid tremolo (Side def) (alt),MS: Side tremolo (Mid def) (alt)}>Mode
slider4:0<-36,24,0.1>(Stereo L, Mono, Mid) Input (dB)
slider5:0<-36,24,0.1>(Stereo R, Side) Input (dB)
slider6:0<-24,24,0.1>Output (dB)
slider7:5<0,10,1{32,16,8,4,2,1,1/2,1/4,1/8,1/16,1/32}>Sync
slider8:0<0,2,1{default,dotted,triplet}>Sync Mode

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

@slider
Hz = slider1;
width = slider2*0.01;
vol0 = slider4 <= -36.0 ? 0.0 : 10^(slider4/20);
vol1 = slider5 <= -36.0 ? 0.0 : 10^(slider5/20);
vol = 10^(slider6/20);

@block
slider7==0?(
grid=32;
);
slider7==1?(
grid=16;
);
slider7==2?(
grid=8;
);
slider7==3?(
grid=4;
);
slider7==4?(
grid=2;
);
slider7==5?(
grid=1;
);
slider7==6?(
grid=1/2;
);
slider7==7?(
grid=1/4;
);
slider7==8?(
grid=1/8;
);
slider7==9?(
grid=1/16;
);
slider7==10?(
grid=1/32;
);

slider1 >0 ? (
tmp=1/(slider1/1000);
x=(2*$pi*Hz)/srate;
):(
slider8==0?(
tmp=1/((grid*240)/tempo);
x=(2*$pi*tmp)/srate;
);
slider8==1?(
tmp=1/((grid*(3/2))*240/tempo);
x=(2*$pi*tmp)/srate;
);
slider8==2?(
tmp=1/((grid*(2/3))*240/tempo);
x=(2*$pi*tmp)/srate;
);
);

@sample
pan = min( max( (sin(t)) * width, -1 ) , 1 );

slider3 == 0 ? (
spl0 *= vol0;
spl1 *= vol1;
spl0 *= (pan > 0 ? 1-pan:1);
spl1 *= (pan < 0 ? 1+pan:1);
t=t+x;
);

slider3 == 1 ? (
in=(spl0+spl1)*0.5*vol0;
in *= (pan > 0 ? 1-pan:1);
in *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=in;
spl1=in;
);

slider3 == 2 ? (
spl0 *= (pan > 0 ? 1-pan:1);
spl1 *= (pan < 0 ? 1+pan:1);
out=(spl0+spl1)*0.5*vol0;
t=t+x;

spl0=out;
spl1=out;
);

slider3 == 3 ? (
in0=(spl0+spl1)*0.5*vol0;
in1=(spl0-spl1)*0.5*vol1;
in0 *= (pan > 0 ? 1-pan:1);
in1 *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=(in0+in1);
spl1=(in0-in1);
);

slider3 == 4 ? (
in0=(spl0+spl1)*0.5*vol0;
in1=(spl0-spl1)*0.5*vol1;
in1 *= (pan > 0 ? 1-pan:1);
in1 *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=(in0+in1);
spl1=(in0-in1);
);

slider3 == 5 ? (
in=(spl0+spl1)*0.5*vol0;
in0=(spl0-spl1)*0.5*vol1;
in1=(spl0-spl1)*0.5*vol1;
in0 *= (pan > 0 ? 1-pan:1);
in1 *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=(in0+in);
spl1=(in1+in);
);

slider3 == 6 ? (
in0=(spl0-spl1)*0.5*vol1;
in1=(spl0+spl1)*0.5*vol0;
in1 *= (pan > 0 ? 1-pan:1);
in1 *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=(in0+in1);
spl1=(in0+in1);
);

slider3 == 7 ? (
in=(spl0-spl1)*0.5*vol1;
in0=(spl0+spl1)*0.5*vol0;
in1=(spl0+spl1)*0.5*vol0;
in0 *= (pan > 0 ? 1-pan:1);
in1 *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=(in0-in);
spl1=(in1-in);
);

slider3 == 8 ? (
in=(spl0-spl1)*0.5*vol1;
in0=(spl0+spl1)*0.5*vol0;
in1=(spl0+spl1)*0.5*vol0;
in0 *= (pan > 0 ? 1-pan:1);
in1 *= (pan < 0 ? 1+pan:1);
t=t+x;

spl0=(in0+in);
spl1=(in1-in);
);

slider3 == 9 ? (
in=(spl0-spl1)*0.5*vol1;
spl0 *= (pan > 0 ? 1-pan:1);
spl1 *= (pan < 0 ? 1+pan:1);
out=(spl0+spl1)*0.5*vol0;
t=t+x;

spl0=(out+in);
spl1=(out-in);
);

slider3 == 10 ? (
in=(spl0+spl1)*0.5*vol0;
spl0 *= (pan > 0 ? 1-pan:1);
spl1 *= (pan < 0 ? 1+pan:1);
out=(spl0-spl1)*0.5*vol1;
t=t+x;

spl0=(in+out);
spl1=(in-out);
);

spl0*=vol;
spl1*=vol;
