/*
Link the 'delay time slider' of this plugin to a delay time slider
of another plugin via 'Parameter Modulation Slider Linking'.

For testing you can use these jsfx plugins:
delay_scratchy and/or delay_scratchy_off

Set the correct 'delay time slider' range in this plugin first !!!
(Edit this plugin and save the changes...)
e.g. the delay_scratchy has a range of 10 to 1000 ms. That's 990 ms.
So set the range in this plugin from 0 to 990 ms !!!
*/

slider1:1<0,1,1{Free,Sync}>Sync Mode
slider2:10<0,17,1{1 d,1,1 t,1/2 d,1/2,1/2 t,1/4 d,1/4,1/4 t,1/8 d,1/8,1/8 t,1/16 d,1/16,1/16 t,1/32 d,1/32,1/32 t}>Sync

slider4:0<0,1,1{Host BPM,Manual BPM}>BPM Mode
slider5:120<40,240,1>Manual BPM

slider7:250<0,990,1>(Link Me !!!) Delay (ms)
slider8:0<-24,24,1>(sync mode) Delay offset (ms)

in_pin:none
out_pin:none

@block
slider2==0?(
grid=3/2;
);
slider2==1?(
grid=1;
);
slider2==2?(
grid=2/3;
);
slider2==3?(
grid=3/4;
);
slider2==4?(
grid=1/2;
);
slider2==5?(
grid=1/3;
);
slider2==6?(
grid=3/8;
);
slider2==7?(
grid=1/4;
);
slider2==8?(
grid=1/6;
);
slider2==9?(
grid=3/16;
);
slider2==10?(
grid=1/8;
);
slider2==11?(
grid=1/12;
);
slider2==12?(
grid=3/32;
);
slider2==13?(
grid=1/16;
);
slider2==14?(
grid=1/24;
);
slider2==15?(
grid=3/64;
);
slider2==16?(
grid=1/32;
);
slider2==17?(
grid=1/48;
);

slider4 ? (
sync = ((grid*240)/slider5)*1000;
):(
sync = ((grid*240)/tempo)*1000;
);

slider1 == 0 ? (
temp = slider7;
):(
temp = sync+floor(slider8);
slider7 = max(temp,0);
);
