//Emily Graber // MovieWind.ck // which mouse 0 => int device; // get from command line if( me.args() ) me.arg(0) => Std.atoi => device; // hid objects Hid hi; HidMsg msg; // try if( !hi.openMouse( device ) ) me.exit(); <<< "mouse '" + hi.name() + "' ready...", "" >>>; Hid type; HidMsg typemsg; if( !type.openKeyboard( device ) ) me.exit(); <<< "keyboard '" + type.name() + "' ready...", "" >>>; ////////////////////////////////////////////////////////////////////////////////////////////// Noise n => LPF low => HPF high => Envelope e => NRev rev => dac; dac => WvOut w => blackhole; "C:/Users/emgraber/Documents/Stanford/220b/MovieWind2.wav" => w.wavFilename; 10::second => e.duration; rev.mix(0.1); //n.gain(0.5); 300 => float value; //starting center frequency for wind 0 => int count; while( true ) { // wait on event hi => now; if( type.recv( typemsg ) && typemsg.key == 44 ) { spork ~ turnOff(); break; } // loop over messages while( hi.recv( msg ) ) { if ( msg.isMouseMotion() ) { msg.deltaY*5 +=> value; wind(value); } else if( msg.isButtonDown() ) { 1 => e.keyOn; } else if( msg.isButtonUp() ) { 1 => e.keyOff; 100::ms => now; } } } w.closeFile(); fun void wind(float centerf) { low.freq(centerf+0.001*centerf); high.freq(centerf-0.001*centerf); } fun void turnOff(){ if (typemsg.key == 44){ //spacebar rev.mix(0.0); e.duration(50::ms); 1 => e.keyOff; 50::ms => now; } }