slider1:100<0,200,1>%
//slider2:0<-166.1,6,0.1>dB
slider2:0<-43,6,1>dB
slider3:0<0,1,1{% to dB,dB to %}>mode

slider5:0,% to vel
slider6:0,dB to vel
slider7:0,(% to vel) to dB
slider8:0,(% to vel) to dB

in_pin:none
out_pin:none

@init
log2dB = 20/log(10);
//log2dB = 8.6858896380650365530225783783321;
db2log = log(10)/20;
//db2log = 0.11512925464970228420089957273422;

@block
slider3 ? (
slider1 = exp(slider2*dB2log)*100; // dB to %
sliderchange(slider1);
):(
slider2 = log(slider1*0.01)*log2dB; // % to dB
sliderchange(slider2);
);

//------------------------------------------------------------------

slider5 = min( (slider1*127)/100, 127); // % to vel
sliderchange(slider5);

diff = 0-slider2;
slider6 = min( sqrt(127^2/10^(diff/20)), 127); // dB to vel
sliderchange(slider6);

slider7 = log(128/(slider5+1))*(-1)*log2db; // (% to vel) to dB
sliderchange(slider7);

slider8 = -log2db * log(127^2 / slider5^2)/2; // (% to vel) to dB
sliderchange(slider8);
