form caption("Ping Pong Delay") size(350, 90), pluginID("ppdl")
image bounds(0, 0,350, 90), colour("Maroon"), shape("rounded"), outline("white"), line(4)
rslider bounds(10, 11, 70, 70), text("Time"), channel("time"), range(0.001, 10, 0.4, 0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver)
rslider bounds(75, 11, 70, 70), text("Cutoff"), channel("cutoff"), range(20,20000,20000,0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver)
rslider bounds(140, 11, 70, 70), text("Feedback"), channel("feedback"), range(0, 1.00, 0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver)
rslider bounds(205, 11, 70, 70), text("Mix"), channel("mix"), range(0, 1.00, 0.5), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver)
rslider bounds(270, 11, 70, 70), text("Level"), channel("level"), range(0, 1.00, 0.7), colour(135, 30, 30) trackercolour(255,255,150) fontcolour(silver)
-d -n
sr = 44100 ;SAMPLE RATE
ksmps = 32 ;NUMBER OF AUDIO SAMPLES IN EACH CONTROL CYCLE
nchnls = 2 ;NUMBER OF CHANNELS (2=STEREO)
0dbfs = 1
;Author: Iain McCurdy (2012)
instr 1
ktime chnget "time" ;READ WIDGETS...
kcutoff chnget "cutoff" ;
kfeedback chnget "feedback" ;
kmix chnget "mix" ;
klevel chnget "level" ;
asigL, asigR ins
kporttime linseg 0,0.01,0.03 ;CREATE A VARIABLE THAT WILL BE USED FOR PORTAMENTO TIME
ktime portk ktime,kporttime ;PORTAMENTO SMOOTHING OF DELAT TIME
atime interp ktime ;INTERPOLATED A-RATE VERSION OF DELAY TIME
aL_OS vdelay asigL,(atime*1000)/2,(10*1000)/2 ;DELAYED OFFSET OF LEFT CHANNEL (FIRST 'PING')
;LEFT CHANNEL
abuf delayr 10 ;ESTABLISH DELAY BUFFER
aDelL deltapi atime ;TAP BUFFER
aDelL tone aDelL,kcutoff ;LOWPASS FILTER DELAY TAP
delayw aL_OS+(aDelL*kfeedback) ;WRITE INPUT AUDIO INTO BUFFER
;RIGHT CHANNEL
abuf delayr 10 ;ESTABLISH DELAY BUFFER
aDelR deltapi atime ;TAP BUFFER
aDelR tone aDelR,kcutoff ;LOWPASS FILTER DELAY TAP
delayw asigR+(aDelR*kfeedback) ;WRITE INPUT AUDIO INTO BUFFER
amixL ntrpol asigL,aDelL+aL_OS,kmix ;MIX DRY AND WET SIGNALS (LEFT CHANNEL)
amixR ntrpol asigR,aDelR,kmix ;MIX DRY AND WET SIGNALS (RIGHT CHANNEL)
outs amixL*klevel, amixR*klevel ;PING PONG DELAY OUTPUTS ARE SENT OUT
endin
i 1 0 [3600*24*7]