//Number 13 //Chuck a day 2009 //by Scott Hewitt //www.ablelemon.co.uk/chuckaday 0 => int control; function void audio (int hz, dur length, dur hold, dur rel){ control++; <<< control >>>; SinOsc s => Envelope e => dac; 0.0 => e.value; hz => s.freq; length => e.duration; 1 => e.target; 1 => e.keyOn; length => now; hold => now; length => e.duration; 0 => e.keyOff; 0 => e.target; rel => now; control--; } spork ~ audio(440, 2500::ms, 2500::ms, 2500::ms); 2500::ms => now; spork ~ audio(441, 2500::ms, 2500::ms, 2500::ms); 2500::ms => now; spork ~ audio(442, 2500::ms, 2500::ms, 2500::ms); 2500::ms => now; spork ~ audio(443, 2500::ms, 2500::ms, 2500::ms); 2500::ms => now; 3000::ms => now; spork ~ audio(442, 500::ms, 500::ms, 500::ms); spork ~ audio(441, 500::ms, 500::ms, 500::ms); spork ~ audio(440, 500::ms, 500::ms, 500::ms); //2000::ms => now; spork ~ audio(440, 500::ms, 500::ms, 500::ms); 10::ms => now; spork ~ audio(440, 500::ms, 500::ms, 500::ms); 10::ms => now; spork ~ audio(440, 500::ms, 500::ms, 500::ms); //part b spork ~ audio(440, 2500::ms, 2800::ms, 4000::ms); 2000::ms => now; spork ~ audio(441, 2100::ms, 2600::ms, 2500::ms); 2900::ms => now; spork ~ audio(442, 2000::ms, 2500::ms, 2200::ms); 2200::ms => now; spork ~ audio(443, 2300::ms, 2900::ms, 2800::ms); spork ~ audio(443, 500::ms, 100::ms, 500::ms); 10::ms => now; spork ~ audio(444, 500::ms, 100::ms, 500::ms); 10::ms => now; spork ~ audio(445, 500::ms, 100::ms, 500::ms); do{ 1::second => now; <<< control >>>; } while (control > 0);