home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February / PCWorld_2008-02_cd.bin / audio-video / reaper / reaper2028-install.exe / Effects / Delay / delay_chorus < prev    next >
Text File  |  2007-12-03  |  1KB  |  57 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 chorus
  4. slider1:300<0,4000,20>delay (ms)
  5. slider2:-6<-120,6,1>feedback (dB)
  6. slider3:-6<-120,6,1>output wet w/ chorus (dB)
  7. slider4:-6<-120,6,1>output wet w/o chorus (dB)
  8. slider5:0<-120,6,1>output dry (dB)
  9. slider6:500<1,1000,10>chorus period (ms)
  10. slider7:2<0,100,1>chorus length (ms)
  11.  
  12. @init
  13. delaypos=0;
  14.  
  15. @slider
  16. odelay=delaylen;
  17. delaylen=min(slider1 * srate / 1000,500000);
  18. odelay != delaylen ? freembuf(delaylen*2);
  19.  
  20. wetmix = 2 ^ (slider2/6);
  21. drymix = 1;
  22. wetmix2 = 2 ^ (slider3/6);
  23. wetmix3 = 2 ^ (slider4/6);
  24. drymix2 = 2 ^ (slider5/6);
  25. dppossc = $pi/(slider6 * srate * 0.001);
  26. dpbacksc = min(max(slider7/slider1,0),1)*delaylen*0.5 - 1;
  27.  
  28.  
  29. @sample
  30.  
  31. dppos = dppos+dppossc;
  32. dpback = (sin(dppos)+1)*dpbacksc;
  33. dpint = delaypos-dpback-1;
  34. dpint < 0 ? dpint += delaylen;
  35. dpinto=dpint;
  36. dpint=(0|dpint);
  37. frac=dpinto-dpint;
  38. dpint2=dpint>=(delaylen-1)?0:(dpint+1);
  39.  
  40. dpint += dpint;
  41. dpint2 += dpint2;
  42.  
  43. os1=dpint[0]*(1-frac)+frac*dpint2[0];
  44. os2=dpint[1]*(1-frac)+frac*dpint2[1];
  45.  
  46. dpint = delaypos*2;
  47.  
  48. oss1=dpint[0];
  49. oss2=dpint[1];
  50.  
  51. dpint[0]=min(max(spl0*drymix + oss1*wetmix,-4),4);
  52. dpint[1]=min(max(spl1*drymix + oss2*wetmix,-4),4);
  53.  
  54. (delaypos+=1) >= delaylen ? delaypos=0;
  55.  
  56. spl0=spl0*drymix2 + os1*wetmix2 + oss1*wetmix3;
  57. spl1=spl1*drymix2 + os2*wetmix2 + oss2*wetmix3;