// name: chugen.ck // name: "chu-gen" -- rhymes with "UGen" // create new UGens by performing audio-rate processing in ChucK // a chugen! class Fuzz extends Chugen { // p 1.0/2.0 => float p; // intensity 2 => intensity; // single-sample tick function (ChuGen specialty) fun float tick( float in ) { Math.sgn(in) => float sgn; return Math.pow(Math.fabs(in), p) * sgn; } // set intensity fun void intensity( float i ) { if(i > 1) 1.0/i => p; } } // patch it in! adc => Fuzz f => dac; // set intensity 2.5 => f.intensity; // advance time while(true) 1::second => now;