/*

                      {distance to speaker}
Delay time = ------------------------------
                    {speed of sound @20C}


e.g. {50m} / {343.46m/s} ~= 0,1456s ~= 145,6ms

*/

slider1:10<1,100,0.01>L Distance (meter)
slider2:10<1,100,0.01>R Distance (meter)
slider3:0,L Delay r/o (ms)
slider4:0,R Delay r/o (ms)
slider5:3<0,12,1{+35,+30,+25,+20,+15,+10,+5,0,-5,-10,-15,-20,-25}>Temperature (C)
slider6:0<-30,0,1>Wet (dB)
slider7:-30<-30,0,1>Dry (dB)

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

@init
delayposA = 0;
delayposB = 0;

@slider
slider5==0?(
temp=352.17;
);
slider5==1?(
temp=349.29;
);
slider5==2?(
temp=346.39;
);
slider5==3?(
temp=343.46;
);
slider5==4?(
temp=340.51;
);
slider5==5?(
temp=337.54;
);
slider5==6?(
temp=334.53;
);
slider5==7?(
temp=331.50;
);
slider5==8?(
temp=328.44;
);
slider5==9?(
temp=325.35;
);
slider5==10?(
temp=322.23;
);
slider5==11?(
temp=319.09;
);
slider5==12?(
temp=315.91;
);

slider3 = (slider1/temp)*1000;
sliderchange(slider3);

slider4 = (slider2/temp)*1000;
sliderchange(slider4);

odelayA = delaylenA;
delaylenA = ceil(slider3*srate*0.001);
odelayA != delaylenA ? freembuf(delaylenA*2);

odelayB = delaylenB;
delaylenB = ceil(slider4*srate*0.001);
odelayB != delaylenB ? freembuf(delaylenB*2);

wetmix = slider6 <= -30.0 ? 0.0 : 10^(slider6/20);
drymix = slider7 <= -30.0 ? 0.0 : 10^(slider7/20);

@sample
dpintA = delayposA*2;
dpintB = delayposB*2;

os1 = dpintA[0];
os2 = dpintB[1];

dpintA[0] = spl0;
dpintB[1] = spl1;

(delayposA+=1) >= delaylenA ? delayposA=0;
(delayposB+=1) >= delaylenB ? delayposB=0;

spl0 = spl0*drymix + os1*wetmix;
spl1 = spl1*drymix + os2*wetmix;
