home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / temacd / reaper / reaper147-install.exe / Effects / SStillwell / delay_pong < prev    next >
Text File  |  2006-08-18  |  2KB  |  60 lines

  1. // This effect Copyright (C) 2004 and later Cockos Incorporated
  2. // License: GPL - http://www.gnu.org/licenses/gpl.html
  3. desc: ping-pong beatsync delay
  4. slider1:0<0,13000,1>delay (ms) - 0 for beatsync
  5. slider2:-5<-120,6,1>feedback (dB)
  6. slider3:0<-120,6,1>mix in (dB)
  7. slider4:-6<-120,6,1>output wet (dB)
  8. slider5:0<-120,6,1>output dry (dB)
  9. slider6:0<0,100,1>ping-pong width%
  10. slider7:0.25<0.0625,4,0.0625>beatsync - fraction of whole note
  11.  
  12. @init
  13.   delaypos=0;
  14.   pongloc=0;
  15.  
  16. @slider
  17.   odelay=delaylen;
  18.   beat = 240 * slider7;
  19.   slider1==0 ? (
  20.     delaylen=min((beat / tempo)*srate,600000);
  21.   ):(
  22.     delaylen=min(slider1 * srate / 1000,600000);
  23.   );
  24.   wetmix = 2 ^(slider2/6);
  25.   drymix = 2 ^(slider3/6);
  26.   wetmix2 = 2 ^(slider4/6);
  27.   drymix2 = 2 ^(slider5/6);
  28.   pongwidth = slider6/100;
  29.   pongpan=(1-pongwidth)/2;
  30.  
  31. @sample
  32.   slider1==0 ? (
  33.     delaylen=min((beat / tempo)*srate,500000);
  34.   ):(
  35.     delaylen=min(slider1 * srate / 1000,500000);
  36.   );
  37.   dpint = delaypos*2;
  38.   os1=dpint[0];
  39.   os2=dpint[1];
  40.  
  41.   dpint[0]=min(max(spl0*drymix + os1*wetmix,-4),4);
  42.   dpint[1]=min(max(spl1*drymix + os2*wetmix,-4),4);
  43.  
  44.   switching=0;
  45.  
  46.   abs(delaypos)<400 ? (
  47.     switch = pongloc ? abs(delaypos)/400 : ((400 - abs(delaypos))/400);
  48.   );
  49.  
  50.   (delaypos+=1) >= delaylen ? (
  51.     delaypos=0;
  52.     pongloc = (pongloc * -1) + 1;
  53.   );
  54.  
  55.   os = (os1 + os2) / 2;
  56.   panloc = pongpan + pongwidth * switch;
  57.  
  58.   spl0=spl0*drymix2 + os*wetmix2*(panloc);
  59.   spl1=spl1*drymix2 + os*wetmix2*(1-panloc);
  60.