home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2007 July & August
/
PCWorld_2007-07-08_cd.bin
/
audio-video
/
reaper
/
reaper1861-install.exe
/
Effects
/
Delay
/
delay_lowres
< prev
next >
Wrap
Text File
|
2007-02-12
|
1KB
|
58 lines
// This effect Copyright (C) 2004 and later Cockos Incorporated
// License: GPL - http://www.gnu.org/licenses/gpl.html
desc: delay with resolution loss
slider1:300<0,4000,20>delay (ms)
slider2:-6<-120,6,1>upd wet (dB)
slider3:-6<-120,6,1>upd dry (dB)
slider4:-6<-120,6,1>out wet (dB)
slider5:-6<-120,6,1>out dry (dB)
slider6:8<1,24,1>resolution (bits)
slider7:0<0,1,1{off,on}>resample on length change
@slider
resol=2^((slider6|=0)-1);
invresl=1/resol;
odelay=delaylen;
delaylen=slider1 * srate / 1000;
odelay!=delaylen ? (
slider7 && odelay > 0 ? (
// resample delay buffer, heh
rspos=0; rspos2=0;
drspos=odelay/delaylen;
loop(delaylen,
tpos = ((rspos)|0)*2;
rspos2[0]=tpos[0];
rspos2[1]=tpos[1];
rspos2+=2;
rspos+=drspos;
);
delaypos *= delaylen/odelay;
delaypos<0 ? delaypos=0;
);
!slider7 && delaypos >= delaylen ? delaypos = 0;
);
wet=2^(slider2/6);
dry=2^(slider3/6);
wet2=2^(slider4/6);
dry2=2^(slider5/6);
@sample
dpint = delaypos*2;
os1=dpint[0];
os2=dpint[1];
dpint[0]=min(max((((spl0*dry + os1*wet)*resol)|0)*invresl,-4),4);
dpint[1]=min(max((((spl1*dry + os2*wet)*resol)|0)*invresl,-4),4);
spl0=spl0*dry2+os1*wet2;
spl1=spl1*dry2+os2*wet2;
(delaypos+=1) >= delaylen ? ( delaypos=0 );