class OSC { OscRecv orec; 1024 => orec.port; orec.listen(); 0. => float val; string param; fun void port( int n ) { n => orec.port; orec.listen(); } fun void listen( string s ) { orec.event( s ) @=> OscEvent addr; while( true ) { addr => now; while( addr.nextMsg() ) { addr.getString() => param; addr.getFloat() => val; } } } } OSC osc; spork~ osc.listen("/canvas, s, f"); fun void process() { if( osc.param == "x_pos" ) { <<< osc.param, osc.val>>>; return; } if( osc.param == "y_pos" ) { <<< osc.param, osc.val>>>; return; } } while( true ) { process(); 10::ms => now; }