You are on page 1of 1

{

// below we declare our variables with 'var'


var input, fBLoopIn, fBLoopOut, processing, speed;

speed = LFNoise0.kr(0.5, 2, 2.1);


// input is our sound source, a little noise -- note the lowered amplitude
// of 0.15
input = SoundIn.ar(0);
// fBLoopIn is our feedback loop insertion point.
fBLoopIn = LocalIn.ar(1);
// in processing, we mix the input with the feedback loop
// the delay time of the DelayN UGen is controlled by the
// 'speed' variable. The gain is now fixed at 1.1.
processing = input + LeakDC.ar((DelayN.ar(fBLoopIn, 3.5, speed, 1.1)));

// use a resonant low-pass filter that moves at various rates


// determined by the 'speed' variable with frequencies between 400 - 1200
processing = RLPF.ar(processing, LFNoise0.kr(speed, 400, 800), 0.15);

// fBLoopOut is our feedback loop output point


fBLoopOut = LocalOut.ar(processing);

// signal threshold a "low-rent gate"


processing = processing.thresh(0.45);

// our limiter
processing = Limiter.ar(processing);

// add some equal-power panning


processing = Pan2.ar(processing, (speed - 2) * 0.5);

// notice removed brackets because Pan2 is a multi-channel UGen


// and SC has multichannel expansion for free ;)
Out.ar(0, processing);

}.play

You might also like