desc:parameter_gate v2

slider1:0<0,10,0.01>attack ms
slider2:900<0,3000,0.01>release ms
slider3:1<0.01,12,0.01>treshold in (dB)
slider4:-90<-120,0,0.01>treshold out (dB)
slider7:0<0,1,1>control

slider9:1<1,127,1>PC_Number


@init

LEV2=0; //RMS level
SRAT=48000; //sample rate


@slider



K_UP=(0.001)^(1000/(slider1*SRAT));
K_DN=(0.001)^(1000/(slider2*SRAT));
TRES_IN=10^((slider4+slider3)/20);
TRES_OUT=10^(slider4/20);
PC_Number=slider9



@sample


IN=(spl0+spl1)*0.5;
IN2=IN*IN;
K=(IN2>LEV2)*K_UP+(IN2<=LEV2)*K_DN;

LEV2=IN2+(LEV2-IN2)*K; LEV=LEV2^0.5;

((LEV>=TRES_IN)&&(slider7==1))?
(
  slider7=0;sliderchange(slider7);
  midisend(offset,0xCE,(PC_Number));
);  
  
((LEV<=TRES_OUT)&&(slider7==0))?
(
  slider7=1;sliderchange(slider7);
  midisend(offset,0xCE,(PC_Number-1));
);