home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / temacd / reaper / reaper147-install.exe / Effects / Delay / delay_chorus < prev    next >
Text File  |  2005-06-24  |  1KB  |  52 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. dpint *= 2;
  36.  
  37. os1=dpint[0];
  38. os2=dpint[1];
  39.  
  40. dpint = delaypos*2;
  41.  
  42. oss1=dpint[0];
  43. oss2=dpint[1];
  44.  
  45. dpint[0]=min(max(spl0*drymix + oss1*wetmix,-4),4);
  46. dpint[1]=min(max(spl1*drymix + oss2*wetmix,-4),4);
  47.  
  48. (delaypos+=1) >= delaylen ? delaypos=0;
  49.  
  50. spl0=spl0*drymix2 + os1*wetmix2 + oss1*wetmix3;
  51. spl1=spl1*drymix2 + os2*wetmix2 + oss2*wetmix3;
  52.