; Flanger
; ----------------
; A flanger effect following the typical design of a so called 'stomp box'
;
; aout Flanger ain,krate,kdepth,kdelay,kfback
;
; Performance
; -----------
; ain -- input audio to which the flanging effect will be applied
; krate -- rate control of the lfo of the effect *NOT IN HERTZ* (range 0 to 1)
; kdepth -- depth of the lfo of the effect (range 0 to 1)
; kdelay -- static delay offset of the flanging effect (range 0 to 1)
; kfback -- feedback and therefore intensity of the effect (range 0 to 1)
opcode Flanger,a,aKKKK
ain,krate,kdepth,kdelay,kfback xin ;READ IN INPUT ARGUMENTS
krate expcurve krate,50 ;CREATE AN EXPONENTIAL REMAPPING OF krate
krate scale krate,14,0.001 ;RESCALE VALUE
kdelay expcurve kdelay,200 ;CREATE AN EXPONENTIAL REMAPPING OF kdelay
kdelay scale kdelay,0.1,0.00015 ;RESCALE VALUE
ilfoshape ftgentmp 0, 0, 131072, 19, 0.5, 1, 180, 1 ;U-SHAPE PARABOLA FOR LFO
kporttime linseg 0, 0.001, 0.1 ;USE OF AN ENVELOPE VALUE THAT QUICKLY RAMPS UP FROM ZERON TO THE REQUIRED VALUE PREVENTS VARIABLES GLIDING TO THEIR REQUIRED VALUES EACH TIME THE INSTRUMENT IS STARTED
kdlt portk kdelay, kporttime ;PORTAMENTO IS APPLIED TO A VARIABLE. A NEW VARIABLE 'kdlt' IS CREATED.
adlt interp kdlt ;A NEW A-RATE VARIABLE 'adlt' IS CREATED BY INTERPOLATING THE K-RATE VARIABLE 'kdlt'
kdep portk kdepth*0.01, kporttime ;PORTAMENTO IS APPLIED TO A VARIABLE. A NEW VARIABLE 'kdep' IS CREATED.
amod oscili kdep, krate, ilfoshape ;OSCILLATOR THAT MAKES USE OF THE POSITIVE DOMAIN ONLY U-SHAPE PARABOLA WITH FUNCTION TABLE NUMBER ilfoshape
adlt sum adlt, amod ;STATIC DELAY TIME AND MODULATING DELAY TIME ARE SUMMED
adelsig flanger ain, adlt, kfback , 1.2 ;FLANGER SIGNAL CREATED
aout sum ain*0.5, adelsig*0.5 ;CREATE DRY/WET MIX
xout aout ;SEND AUDIO BACK TO CALLER INSTRUMENT
endop