home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February / PCWorld_2008-02_cd.bin / audio-video / reaper / reaper2028-install.exe / Effects / LOSER / waveShapingDstr < prev    next >
Text File  |  2007-12-09  |  2KB  |  69 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:Waveshapping Distortion
  17.  
  18. slider1:0<0,100,.1>Distortion
  19.  
  20. @slider
  21. hdistr = min(slider1/100,.999);
  22. foo = 2*hdistr/(1-hdistr);
  23.  
  24. @sample
  25. spl0 = min(max(spl0,-1),1);
  26. spl1 = min(max(spl1,-1),1);
  27.  
  28. spl0 = (1+foo)*spl0/(1+foo*abs(spl0));
  29. spl1 = (1+foo)*spl1/(1+foo*abs(spl1));
  30.  
  31.  
  32. @gfx
  33. gfxSize = min(gfx_w,gfx_h);
  34.  
  35.  
  36. gfx_r=gfx_g=gfx_b=0; gfx_a=1;
  37. gfx_x=gfx_y=0;
  38. gfx_rectto(gfx_w,gfx_h);
  39.  
  40. gfx_r=gfx_g=gfx_b=0.8; gfx_a=1;
  41. gfx_x=gfxSize/2; gfx_y=0;
  42. gfx_lineto(gfxSize/2,gfxSize,0);
  43. gfx_x=0; gfx_y=gfxSize/2;
  44. gfx_lineto(gfxSize,gfxSize/2,0);
  45.  
  46. gfx_x = gfxSize-20; gfx_y = gfxSize/2;
  47. gfx_drawchar($'I');
  48. gfx_drawchar($'N');
  49.  
  50. gfx_x = gfxSize/2+2; gfx_y = 0;
  51. gfx_drawchar($'O');
  52. gfx_drawchar($'U');
  53. gfx_drawchar($'T');
  54.  
  55. slider1 ? (
  56.     gfx_r=0.5; gfx_g=1; gfx_b=0; gfx_a=1;
  57.     gfx_x=0; gfx_y=gfxSize;
  58.     x = -1;
  59.     while(
  60.         y = -(1+foo)*x/(1+foo*abs(x));
  61.         gfx_lineto(x*gfxSize/2+gfxSize/2,y*gfxSize/2+gfxSize/2,1);
  62.         (x+=0.05) <= 1;
  63.     );
  64.     gfx_lineto(gfxSize,0,1);
  65. ):(
  66.     gfx_r=0.5; gfx_g=1; gfx_b=0; gfx_a=1;
  67.     gfx_x=0; gfx_y=gfxSize;
  68.     gfx_lineto(gfxSize,0,1);
  69. );