home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 October / PCWorld_2006-10_cd.bin / audio-video / reaper / reaper105-install.exe / Effects / Pitch / pitchdown < prev   
Text File  |  2005-06-24  |  1KB  |  53 lines

  1. // This effect Copyright (C) 2004 and later Cockos Incorporated
  2. // License: GPL - http://www.gnu.org/licenses/gpl.html
  3.  
  4. desc: pitch down
  5. slider1:1<0,6,1>octaves down (0..6)
  6. slider2:0<0,11,1>semitones down (0..11)
  7. slider3:0<0,99,1>cents down (0..99)
  8. slider4:100<4,500,10>chunk size (ms)
  9. slider5:1<0.001,1>overlap size (0..1)
  10. slider6:0<-120,6,1>wet mix (dB)
  11. slider7:-120<-120,6,1>dry mix (dB)
  12.  
  13. @slider
  14.   lbufsize=bufsize; bufsize=(srate*0.001*slider4)&65534; 
  15.   lbufsize!=bufsize ? bufpos=0;
  16.   scl=2 ^ (-(slider1 + slider2/12 + slider3/1200)); 
  17.   rilen=(max(scl,0.5)*bufsize)|0; 
  18.   rrilen=((scl*bufsize)|0)*2; 
  19.   slider5=min(1,max(slider5,0)); 
  20.   rspos=slider5*(bufsize-rilen); 
  21.   invbs=1/rspos;
  22.   drymix=2 ^ (slider7/6); 
  23.   wetmix=2 ^ (slider6/6);
  24.  
  25. @sample
  26. ss0=spl0; ss1=spl1;
  27.  
  28. hbp=((bufpos * scl)|0)*2;
  29.  
  30. // pre read these before writing
  31. s0r=rrilen[hbp];
  32. s1r=rrilen[hbp+1];
  33.  
  34. (bufpos*2)[0]=spl0;
  35. (bufpos*2)[1]=spl1;
  36.  
  37. bufpos < rspos ? 
  38. (
  39.      // mix
  40.      sc=bufpos*invbs;
  41.      spl0=hbp[0]*sc + s0r*(1-sc);
  42.      spl1=hbp[1]*sc + s1r*(1-sc);
  43. ) : (
  44.     // straight resample
  45.      spl0=hbp[0]; 
  46.      spl1=hbp[1];
  47. );
  48.  
  49. (bufpos+=1) >= bufsize ? bufpos=0;
  50.  
  51. spl0 = spl0*wetmix + ss0*drymix;
  52. spl1 = spl1*wetmix + ss1*drymix;
  53.