; StChorus ; ---------------- ; A stereo chorus effect ; ; aout StChorus ainL,ainR,krate,kdepth,kwidth ; ; Performance ; ----------- ; ainL -- first/left input audio ; ainR -- second/right input audio ; 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) ; kwidth -- width of stereo widening (range 0 to 1) opcode StChorus,aa,aaKKK ainL,ainR,krate,kdepth,kwidth xin ;READ IN INPUT ARGUMENTS krate expcurve krate,20 ;CREATE AN EXPONENTIAL REMAPPING OF krate krate scale krate,7,0.001 ;RESCALE VALUE ilfoshape ftgentmp 0, 0, 131072, 19, 1, 0.5, 0, 0.5 ;POSITIVE DOMAIN ONLY SINE WAVE kporttime linseg 0,0.001,0.02 ;RAMPING UP PORTAMENTO VARIABLE kChoDepth portk kdepth*0.01, kporttime ;SMOOTH VARIABLE CHANGES WITH PORTK aChoDepth interp kChoDepth ;INTERPOLATE TO CREATE A-RATE VERSION OF K-RATE VARIABLE amodL osciliktp krate, ilfoshape, 0 ;LEFT CHANNEL LFO amodR osciliktp krate, ilfoshape, kwidth*0.5 ;THE PHASE OF THE RIGHT CHANNEL LFO IS ADJUSTABLE amodL = (amodL*aChoDepth)+.01 ;RESCALE AND OFFSET LFO (LEFT CHANNEL) amodR = (amodR*aChoDepth)+.01 ;RESCALE AND OFFSET LFO (RIGHT CHANNEL) aChoL vdelay ainL, amodL*1000, 1.2*1000 ;CREATE VARYING DELAYED / CHORUSED SIGNAL (LEFT CHANNEL) aChoR vdelay ainR, amodR*1000, 1.2*1000 ;CREATE VARYING DELAYED / CHORUSED SIGNAL (RIGHT CHANNEL) aoutL sum aChoL*0.6, ainL*0.6 ;MIX DRY AND WET SIGNAL (LEFT CHANNEL) aoutR sum aChoR*0.6, ainR*0.6 ;MIX DRY AND WET SIGNAL (RIGHT CHANNEL) xout aoutL,aoutR ;SEND AUDIO BACK TO CALLER INSTRUMENT endop