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

  1. // (C) 2007, 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:Exciter
  17. slider1:2000<100,18000,1>Frequency (Hz)
  18. slider2:0<0,6,.1>Clip Boost (dB)
  19. slider3:0<0,100,1>Harmonics (%)
  20. slider4:-6<-120,0,.1>Mix Back (dB)
  21.  
  22. @init
  23. c_ampDB = 8.65617025;
  24. cDenorm=10^-30;
  25.  
  26. @slider
  27. clipBoost = exp(slider2/c_ampDB);
  28. mixBack = exp(slider4/c_ampDB);
  29.  
  30. hdistr = min(slider3/100,.9);
  31. foo = 2*hdistr/(1-hdistr);
  32.  
  33. freq = min(slider1,srate);
  34. x = exp(-2.0*$pi*freq/srate);
  35. a0 = 1.0-x;
  36. b1 = -x;
  37.  
  38. @sample
  39. s0 = spl0;
  40. s1 = spl1;
  41.  
  42. s0 -= (tmplONE = a0*s0 - b1*tmplONE + cDenorm);
  43. s1 -= (tmprONE = a0*s1 - b1*tmprONE + cDenorm);
  44.  
  45. s0 = min(max(s0*clipBoost,-1),1);
  46. s1 = min(max(s1*clipBoost,-1),1);
  47.  
  48. s0 = (1+foo)*s0/(1+foo*abs(spl0));
  49. s1 = (1+foo)*s1/(1+foo*abs(spl1));
  50.  
  51. s0 -= (tmplTWO = a0*s0 - b1*tmplTWO + cDenorm);
  52. s1 -= (tmprTWO = a0*s1 - b1*tmprTWO + cDenorm);
  53.  
  54. spl0 += s0 * mixBack;
  55. spl1 += s1 * mixBack;
  56.  
  57.