home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / temacd / reaper / reaper147-install.exe / Effects / SStillwell / chorus < prev    next >
Text File  |  2006-08-17  |  1KB  |  65 lines

  1. // This effect Copyright (C) 2004 and later Cockos Incorporated
  2. // License: GPL - http://www.gnu.org/licenses/gpl.html
  3.  
  4.  
  5. desc:chorus
  6.  
  7. slider1:15<1,250>chorus length (ms)
  8. slider2:1<1,8,1>number of voices
  9. slider3:0.5<0.1,16>rate (hz)
  10. slider4:0.7<0,1>pitch fudge factor
  11. slider5:-6<-100,12,1>wet mix (dB)
  12. slider6:-6<-100,12,1>dry mix (dB)
  13.  
  14. @init
  15.  
  16. bpos=0;
  17.  
  18. @slider
  19.  
  20. numvoices=min(16,max(slider2,1));
  21. choruslen=slider1*srate*0.001;
  22.  
  23. i=0;
  24. loop(numvoices, 
  25.   i[0]=(i+1)/numvoices*$pi; 
  26.   i+=1; 
  27. );
  28.  
  29. bufofs=16384;
  30.  
  31. csize=choruslen/numvoices * slider4;
  32.  
  33. rateadj=slider3*2*$pi/srate;
  34. wetmix = 2 ^ (slider5/6);
  35. drymix = 2 ^ (slider6/6);
  36.  
  37.  
  38. @sample
  39.  
  40. bpos >= choruslen ? (
  41.   bpos=0;
  42. );
  43. os0=spl0;
  44.  
  45. // calculate new sample based on numvoices
  46.  
  47. spl0=spl0*drymix;
  48. vol=wetmix/numvoices;
  49. i=0;
  50.  
  51. loop(numvoices,
  52.    tpos = bpos - (0.5+0.49*(sin( $pi*(i[0] += rateadj))/($pi*i[0]))) * (i+1) * csize;
  53.  
  54.    tpos < 0 ? tpos += choruslen;
  55.    tpos > choruslen ? tpos -= choruslen;
  56.    
  57.    spl0 += bufofs[tpos] * vol;
  58.    i+=1;
  59. );
  60.  
  61. bufofs[bpos]=os0;
  62. bpos+=1;
  63.  
  64. spl1=spl0;
  65.