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

  1. // (C) 2006, Michael Gruhn.
  2.  
  3. // NO WARRANTY IS GRANTED. THIS PLUG-IN IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
  4. // WARRANTY OF ANY KIND. NO LIABILITY IS GRANTED, INCLUDING, BUT NOT LIMITED TO,
  5. // ANY DIRECT OR INDIRECT,  SPECIAL,  INCIDENTAL OR CONSEQUENTIAL DAMAGE ARISING
  6. // OUT OF  THE  USE  OR INABILITY  TO  USE  THIS PLUG-IN,  COMPUTER FAILTURE  OF
  7. // MALFUNCTION INCLUDED.  THE USE OF THE SOURCE CODE,  EITHER  PARTIALLY  OR  IN
  8. // TOTAL, IS ONLY GRANTED,  IF USED IN THE SENSE OF THE AUTHOR'S INTENTION,  AND
  9. // USED WITH ACKNOWLEDGEMENT OF THE AUTHOR. FURTHERMORE IS THIS PLUG-IN A  THIRD
  10. // PARTY CONTRIBUTION,  EVEN IF INCLUDED IN REAPER(TM),  COCKOS INCORPORATED  OR
  11. // ITS AFFILIATES HAVE NOTHING TO DO WITH IT.  LAST BUT NOT LEAST, BY USING THIS
  12. // PLUG-IN YOU RELINQUISH YOUR CLAIM TO SUE IT'S AUTHOR, AS WELL AS THE CLAIM TO
  13. // ENTRUST SOMEBODY ELSE WITH DOING SO.
  14.  
  15.  
  16. desc:Stereo Enhancer
  17.  
  18. slider1:100<0,200,1>Width Low (%)
  19. slider2:500<0,20000,1>Crossover (Hz)
  20. slider3:100<0,200,1>Width High (%)
  21.  
  22. @init
  23. cDenorm = 10^-30;
  24.  
  25. @slider
  26. widthLP = slider1 / 200;
  27. width = slider3 / 200;
  28.  
  29. freq = min(slider2,srate);
  30. x = exp(-2.0*$pi*freq/srate);
  31. a0 = 1.0-x;
  32. b1 = -x;
  33.  
  34. @sample
  35. s0 = spl0;
  36. s1 = spl1;
  37.  
  38. spl0 = (tmpl = a0*spl0 - b1*tmpl + cDenorm);
  39. spl1 = (tmpr = a0*spl1 - b1*tmpr + cDenorm);
  40.  
  41. s0 -= spl0;
  42. s1 -= spl1;
  43.  
  44. mono = (s0 + s1)/2;
  45. stereo = (s0 - s1);
  46. s0 = (mono + stereo * width) / max(width,1);
  47. s1 = (mono - stereo * width) / max(width,1);
  48.  
  49. monoLP = (spl0 + spl1)/2;
  50. stereoLP = (spl0 - spl1);
  51. spl0 = (monoLP + stereoLP * widthLP) / max(widthLP,1);
  52. spl1 = (monoLP - stereoLP * widthLP) / max(widthLP,1);
  53.  
  54. spl0 += s0;
  55. spl1 += s1;
  56.  
  57.  
  58.