"/Users/charlesfoster/music220a/hw4/vowels.wav" => string sourcefile; SndBuf recording; recording.read(sourcefile); 60 => int baseNote; -1 => int increment; int x, y, z, o; 4 => int nPitches; TalkBox shifter; shifter.setup(nPitches); // Start tracking pitches spork ~ shifter.track_pitch(adc); 1::second => now; time clockStart; while (baseNote > 30) { <<< baseNote >>>; baseNote => x; baseNote + 3 => y; baseNote + 7 => z; baseNote + 12 => o; // Create instrument [x, y, z, o] @=> int pitches[]; shifter.set_tones(nPitches, pitches); // Setup graph shifter.connect_in(recording); shifter.connect_out(dac); shifter.master_volume(0.9 / nPitches); shifter.master_knob(0.5); // Live capture now => clockStart; spork ~ update_shifters(3::second); 3::second => now; shifter.disconnect_in(recording); shifter.disconnect_out(dac); increment +=> baseNote; } fun void update_shifters(dur duration) { while (now - clockStart < duration) { shifter.update(); 100::ms => now; } }