package { import flash.events.NetStatusEvent; import flash.events.AsyncErrorEvent; import flash.net.NetConnection; import flash.net.Responder; import flash.net.NetStream; import flash.display.Sprite; import flash.display.DisplayObject; import flash.events.Event; public class MidiTest extends Sprite { private var nc:NetConnection; private var deviceListIn:Array; private var deviceListOut:Array; public function MidiTest() { initialise(); } private function initialise():void { trace("initialise"); nc = new NetConnection(); nc.connect("rtmp://localhost/midiDemo"); nc.addEventListener(NetStatusEvent.NET_STATUS , netStatus ); nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); nc.client = {midi:midi}; } private function netStatus(event:NetStatusEvent):void { trace( event.info.code ); if(event.info.code == "NetConnection.Connect.Success") { nc.call("getMidiInDeviceNames", new Responder(updateMidiInDeviceList)); nc.call("getMidiOutDeviceNames", new Responder(updateMidiOutDeviceList)); nc.call("connectToMidi", null, "Your MIDI-In Device", "Your MIDI-Out Device"); } } private function asyncErrorHandler(event:AsyncErrorEvent):void { trace(event.text); } private function updateMidiInDeviceList(data:Array):void { trace(data); deviceListIn = data; } private function updateMidiOutDeviceList(data:Array):void { trace(data); deviceListOut = data; } public function midi(time:Number, data:Array):void { trace("MidiTest.midi():: time:"+time+" data:"+data); } } }