/*
This plugin generates a fake stereo signal from a mono source.
(Mono compatible)

How it works:
The mono signal is delayed (24ms) and added to the left channel.
The mono signal is delayed (24ms), inverted and added to the right channel.
*/

desc: Read info...

slider1:0<-24,24,0.1>Dry (dB)
slider2:0<-24,24,0.1>Wet (dB)
slider3:24<10,25,1>--Delay (ms)
slider4:1<0,1,1{0 db,-18 dB}>--Wet trim

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

@slider
dry = slider1 <= -24.0 ? 0.0 : 10^(slider1/20);
wet = slider2 <= -24.0 ? 0.0 : 10^(slider2/20);

buflL = floor(slider3 / 1000 * srate);
buflR = floor(slider3 / 1000 * srate) + buflL + 1;

slider4 ? (
vol = 10^(-18/20); //0.126;
):(
vol = 1;
);

@sample
inA = spl0 * wet;
inB = spl1 * wet;

bufLpos[0] = inA;
bufLpos = bufLpos + 1;
bufLpos >= buflL ? bufLpos = 0;

bufRpos[0] = inB;
bufRpos = bufRpos + 1;
bufRpos >= buflR ? bufRpos = buflL + 1;

spl0 = spl0 * dry + bufLpos[0] * vol; 
spl1 = spl1 * dry + bufRpos[0] * vol * -1;
