home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 March / PCWorld_2007-03_cd.bin / audio-video / reaper / reaper174-install.exe / Effects / Guitar / chorus < prev    next >
Text File  |  2006-12-11  |  1KB  |  66 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=4096;
  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( i[0] += rateadj)) * (i+1) * csize;
  53.  
  54.    tpos < 0 ? tpos += choruslen;
  55.    frac=tpos-(0|tpos); 
  56.    ntpos=tpos>=(choruslen-1)?0:tpos+1;
  57.    
  58.    spl0 += (bufofs[tpos]*(1-frac) + bufofs[ntpos]*frac ) * vol;
  59.    i+=1;
  60. );
  61.  
  62. bufofs[bpos]=os0;
  63. bpos+=1;
  64.  
  65. spl1=spl0;
  66.