static void EditorUpdate() { //return; MidiMessage midiMessage = new MidiMessage(); bool received = false; while (MidiINPlugin.PopMessage(out midiMessage, true) != 0) { messages = midiMessage.ToString() + System.Environment.NewLine + messages; received = true; } if (window != null && received && oneFrameDelay) { window.Repaint(); } }
//static void OnTimer (object sender, System.Timers.ElapsedEventArgs e) //{ // Fetch (); //} //static void InitTimer () //{ // timer = new System.Timers.Timer (10); // timer.Elapsed += OnTimer; // timer.Start (); //} //static void FinalizeTimer () //{ // if (timer != null) { // timer.Stop (); // timer.Elapsed -= OnTimer; // timer.Dispose (); // } //} public static void Fetch() { MidiMessage midiMessage = new MidiMessage(); while (MidiINPlugin.PopMessage(out midiMessage) != 0) { midiInMessages.Enqueue(midiMessage); midiOutMessages.Enqueue(midiMessage); midiMessage = new MidiMessage(); } while (midiOutMessages.Count > 0) { if (midiOutMessages.TryDequeue(out midiMessage)) { MidiOUTPlugin.SendShortMessage(midiMessage.command, midiMessage.data1, midiMessage.data2); Synth.SendMidiMessage(midiMessage.command, midiMessage.data1, midiMessage.data2); midiMessage = new MidiMessage(); } } }