home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February / PCWorld_2008-02_cd.bin / audio-video / reaper / reaper2028-install.exe / Effects / SStillwell / chorus < prev    next >
Text File  |  2007-12-03  |  1KB  |  65 lines

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