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 >
Text File  |  2007-02-12  |  1KB  |  58 lines

  1. // This effect Copyright (C) 2004 and later Cockos Incorporated
  2. // License: GPL - http://www.gnu.org/licenses/gpl.html
  3. desc: delay with resolution loss
  4. slider1:300<0,4000,20>delay (ms)
  5. slider2:-6<-120,6,1>upd wet (dB)
  6. slider3:-6<-120,6,1>upd dry (dB)
  7. slider4:-6<-120,6,1>out wet (dB)
  8. slider5:-6<-120,6,1>out dry (dB)
  9. slider6:8<1,24,1>resolution (bits)
  10. slider7:0<0,1,1{off,on}>resample on length change
  11.  
  12. @slider
  13. resol=2^((slider6|=0)-1); 
  14. invresl=1/resol; 
  15.  
  16.  
  17. odelay=delaylen;
  18. delaylen=slider1 * srate / 1000;
  19. odelay!=delaylen ? (
  20.   slider7 && odelay > 0 ? (
  21.       // resample delay buffer, heh
  22.       rspos=0; rspos2=0;
  23.       drspos=odelay/delaylen;
  24.       loop(delaylen,
  25.          
  26.          tpos = ((rspos)|0)*2;
  27.          rspos2[0]=tpos[0];
  28.          rspos2[1]=tpos[1];
  29.  
  30.          rspos2+=2;
  31.          rspos+=drspos;
  32.       );
  33.       delaypos *= delaylen/odelay;
  34.       delaypos<0 ? delaypos=0;
  35.   );
  36.   !slider7 && delaypos >= delaylen ? delaypos = 0;
  37. );
  38.  
  39. wet=2^(slider2/6); 
  40. dry=2^(slider3/6);
  41. wet2=2^(slider4/6); 
  42. dry2=2^(slider5/6);
  43.  
  44.  
  45.  
  46. @sample
  47. dpint = delaypos*2;
  48. os1=dpint[0];
  49. os2=dpint[1];
  50.  
  51. dpint[0]=min(max((((spl0*dry + os1*wet)*resol)|0)*invresl,-4),4);
  52. dpint[1]=min(max((((spl1*dry + os2*wet)*resol)|0)*invresl,-4),4);
  53.  
  54. spl0=spl0*dry2+os1*wet2;
  55. spl1=spl1*dry2+os2*wet2;
  56.  
  57. (delaypos+=1) >= delaylen ? ( delaypos=0 );
  58.