// Stereo Tempo Delay By Joaquins Void
desc: Stereo Tempo Delay

slider1:2<1,24,1>Delay Right(16th Notes)
slider2:3<1,24,1>Delay Left(16th Notes)
slider3:0.3<0,1,0.01>Feedback
slider4:-3<-120,0,1>Wet
slider5:0<-120,0,1>Dry
slider6:0<0,1,1{off,on}>Crossfeed

@init
pos1=0;
pos2=0;


@slider
wet = 2 ^(slider4 / 6);
dry = 2 ^(slider5 / 6);



@block
d1 = dl1;
d2 = dl2;

dl1 = srate * (60/tempo) / 4 * slider2;
dl2 = srate * (60/tempo) / 4 * slider1;

d1 != dl1 ? (
  freembuf(dl1 + dl2);
  pos2 = dl1;
);

d2 != dl2 ? (
  freembuf(dl1 + dl2);
  pos2 = dl1;
);



@sample
on = 1 - slider6;
off = slider6;
out1 = pos1[] * on;
out2 = pos2[] * on;
out2 += pos1[] * off;
out1 += pos2[] * off;

pos1[] = spl0 + out1*slider3;
pos2[] = spl1 + out2*slider3;

(pos1+=1) >= dl1 ? pos1=0;
(pos2+=1) >= dl1 + dl2 ? pos2=dl1;

spl0 = spl0*dry + out1*wet;
spl1 = spl1*dry + out2*wet;
