//Number 14 //Chuck a day 2009 //by Scott Hewitt //www.ablelemon.co.uk/chuckaday //Human you => you.clickmouse() // make HidIn and HidMsg Hid hi; HidMsg msg; // which mouse 0 => int device; // get from command line if( me.args() ) me.arg(0) => Std.atoi => device; // open mouse 0, exit on fail if( !hi.openMouse( device ) ) me.exit(); <<< "mouse '" + hi.name() + "' ready", "" >>>; function void buttonstate (){ // infinite event loop while( true ) { // wait on HidIn as event hi => now; // messages received while( hi.recv( msg ) ) { if( msg.isButtonDown() ) { <<< "mouse button", msg.which, "down" >>>; //spork new shred spork ~ sound(); } } } } //generate audio function void sound (){ Shakers s => dac; Std.rand2(0, 128) => s.objects; Std.rand2(1000, 3000) * 1::ms => dur gap; <<< "shaker object:", s.objects(), "gap:", gap >>>; while (true){ 1 => s.noteOn; 100::ms => now; 0 => s.noteOff; gap => now; } } //look for mouse button down spork ~ buttonstate(); 1::minute => now;