home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 July & August / PCWorld_2007-07-08_cd.bin / audio-video / reaper / reaper1861-install.exe / Effects / Utility / KanakaMS5 < prev    next >
Text File  |  2007-02-12  |  1KB  |  46 lines

  1. desc:Basic M/S Decoder
  2. // ok so if you do // then it's a comment. the desc: line is the description
  3.  
  4. // you can have one or more slider lines, these are controls the user can fudge with
  5.  
  6. slider1:0<-120,24,1>Center Level (dB)
  7. slider2:0<0,1,1>output swap
  8. slider3:0<-1,1,0.01>Center position
  9.  
  10. // the first number is the default value, the numbers in the <> are min val,
  11. // max val, and step.
  12.  
  13. @init
  14. // this is stuff that happens once (or if the samplerate changes, etc)
  15.  
  16. @slider
  17. // this happens when a slider changes
  18.  
  19. // so we'll set our multiplier to be used later
  20. // so realistically this happens once or when the user changes shit.
  21. // we store our volume multiplier in 'vol', for use per-sample. 
  22. // in theory the sample code below could have this directly...
  23. vol = 2^(slider1/6); // convert from dB to a multiplier
  24.  
  25. @block
  26. // this happens per-block, not really that important for this app
  27.  
  28. @sample
  29. // this happens per-sample. spl0 is the left channel, spl1 is the right,
  30. // and if your track has more than 2 channels, spl2, spl3, etc..
  31.  
  32.  
  33.  
  34. // decoder section below
  35.  
  36. tmp=spl0*vol;
  37. spl0 = tmp + spl1;
  38. spl1 = tmp - spl1;
  39. slider2>0.5 ? (tmp=spl1; spl1=spl0; spl0=tmp; );
  40.  
  41. // pan section here
  42. slider3 > 0  ? spl0 *= 1.0-slider3;
  43. slider3 < 0 ? spl1 *= 1.0+slider3;
  44. spl0 = spl0 * min(1.0-slider3,1);
  45. spl1 = spl1 * min(1.0+slider3,1);
  46.