desc:REA-2A

// version 0.14
// Belov Vladimir
// 24.12.2020

slider1:-10<-100,0,1>Treshold
slider2:4<0,1,1{4,Lim}>Ratio
slider3:13<0.1,100,1>-Attack
slider4:300<1,1000,1>-Release
slider5:0<0,100,1>-Gain
slider6:0<0,100,0>-Knee


@init
bpos=0;
c=1;
n=3*srate;

@slider
tresh=10^(slider1/20);
ratio=4*(1-slider2)+10000*slider2;
att=1000/srate/slider3;
release=1000/srate/slider4;


@block
blah+=samplesblock;

@sample
in=abs(spl0)+abs(spl1);in=in/2;
ind>in? (ind=ind-ind*1000/srate/20): (ind=in);
//ind=in; 
b=1-1/srate;
q=ind/tresh;
qq=1/q;

//ind>tresh ? (a=a-((a-tresh/ind)*att)):(a=a+(1-a)*release);
/*
ind>tresh ? (a=a-((a-(tresh/ind)^(1-1/ratio))*att)):(a=a+(1-a)*release);
c=min(c,a);

spl0=spl0*a;
spl1=spl1*a;
*/

//gain < max(tresh,ind) ?  gain=gain+(

rms=sqrt(( rms^2+in^2-rm[0]^2)/n); rm[0]=in; rm+=1; rm>n? (rm=0) ; irms=rms;

ind>tresh ? (a=a-((a-(tresh/ind)^(1-1/ratio))*att)):(a=a+(1-a)*release);
c=min(c,a);



spl0=spl0*a;
spl1=spl1*a;
 
