Listen to this while you study.
3 => int count; for( 0 => int i; i < count; i++ ) spork ~ poop( 1.0 / count ); day => now; fun void poop( float gain ) { Step step => Envelope e => SinOsc s => dac; 1 => step.next; 100 => e.value; gain => s.gain; Std.rand2f( 0, 1 ) => s.phase; while( 1 ) { Std.rand2f( 100, 200 ) => e.target; Std.rand2f( 1, 10 )::second => e.duration; e.duration() => now; } }