// polyphonic wurley's // (also see ../midi/polyfony.ck for more polyfony) // the size of the array should be the max number of wurlies // you want to play simultaneously, at any point. Wurley wurlies[3]; // variable to remember the last one played int which; // patch Gain g => dac; .4 => g.gain; // connect the wurlies for( int i; i < wurlies.cap(); i++ ) wurlies[i] => g; // our notes [ 61, 63, 65, 66, 68 ] @=> int notes[]; // infinite time-loop while( true ) { for( int i; i < notes.cap(); i++ ) { play( notes[i], Std.rand2f( .3, .9 ) ); 300::ms => now; } } // basic play function (add more arguments as needed) fun void play( float note, float velocity ) { // first figure which to play // round robin may work ( which + 1 ) % wurlies.cap() => which; // start the note Std.mtof( note ) => wurlies[which].freq; velocity => wurlies[which].noteOn; }