Homework 3 - audio effects and pattern generators.

Demo of dynamical system with feedback delay at sample rate

Play a sequence of tones with audio generated by an iterated map. Same as dyn-ins.ck but with delay and low-pass filter in the feedback. Sounds oddly like a clarinet with different articulations. The outer loop plays one tone of this physical model at a time. The iterated map is a second-order polynomial function whose output feeds back to its input at the sample rate. For every audio sample, the map "ticks" once. The map gets gradually "hotter" each tone as one of its polynomial terms is increased. The chaotic system goes through a gradual transition from stability to randomness, encountering regions of complex cycles. The map is coded using Chuck UGens.

////////////////////////////////////////////////////
live code
class MapTick { Gain x => Gain tmp => Gain poly1; x => Gain poly2; tmp => poly2; 3 => poly1.op; 3 => poly2.op; Step a0 => Gain out; Step a1 => poly1 => out; Step a2 => poly2 => out; out => Envelope e => dac => DelayL d => OneZero lpf => Gain loop => x; fun void startNote( float c) { c => a0.next; -0.7 => a1.next; 2.0 => a2.next; // set delay to constant, 500 Hz = 2 msec 2.0::ms => d.delay; 0.95 => loop.gain; e.keyOn(); 10::ms => dur t => e.duration; } fun void stopNote() { e.keyOff(); } } MapTick ins; 20 => int numTones; for( int ctr; ctr < numTones; ctr++ ) { (((ctr)$float)/(numTones-1$float)) => float ramp; -0.3 + (ramp * (-0.7 - -0.3)) => float a0; <<< "a0:", a0 >>>; ins.startNote(a0); 400::ms => now; ins.stopNote(); 100::ms => now; }