home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February / PCWorld_2008-02_cd.bin / audio-video / reaper / reaper2028-install.exe / Effects / LOSER / TransientController < prev    next >
Text File  |  2007-12-03  |  2KB  |  47 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. // Further more is this released under the GPL License:
  16. // http://www.gnu.org/licenses/gpl.html
  17.  
  18. desc:Transient Controller
  19.  
  20. slider1:0<-100,100,1>Attack (%)
  21. slider2:0<-100,100,1>Sustain (%)
  22. slider3:0<-12,6,.1>Output (dB)
  23.  
  24. @init
  25. b1Env1 = -exp(-30 / srate );
  26. a0Env1 = 1.0 + b1Env1;
  27. b1Env2 = -exp(-1250 / srate );
  28. a0Env2 = 1.0 + b1Env2;
  29. b1Env3 = -exp(-3 / srate );
  30. a0Env3 = 1.0 + b1Env3;
  31.  
  32. @slider
  33. attack=slider1/100;
  34. sustain=slider2/50;
  35. vol = 2^(slider3/6);
  36.  
  37. @sample
  38. maxSpls = max(abs(spl0),abs(spl1));
  39. env1 = sqrt(tmpEnv1 = a0Env1*maxSpls - b1Env1*tmpEnv1);
  40. env2 = sqrt(tmpEnv2 = a0Env2*maxSpls - b1Env2*tmpEnv2);
  41. env3 = sqrt(tmpEnv3 = a0Env3*maxSpls - b1Env3*tmpEnv3);
  42.  
  43. gain = exp(log(max(env2/env1,1))*attack) * exp( log( max(env3/env1,1))*sustain);
  44.  
  45. spl0 *= (gain *= vol);
  46. spl1 *= gain;
  47.