private void HandleMidiInMessage(Sanford.Multimedia.Midi.SysExMessage msg) { var data = msg.GetBytes(); var kmsg = SysExMessage.Parse(data); if (kmsg != null) { lock (MessageQueue) MessageQueue.Enqueue(kmsg); } }
private void Write(int deltaTicks, SysExMessage message) { #region Require if (IsDisposed) { throw new ObjectDisposedException("OutputStream"); } #endregion // Delta time. events.AddRange(BitConverter.GetBytes(deltaTicks + offsetTicks)); // Stream ID. events.AddRange(streamID); // Event code. byte[] eventCode = BitConverter.GetBytes(message.Length); eventCode[eventCode.Length - 1] = MEVT_LONGMSG; events.AddRange(eventCode); byte[] sysExData; if (message.Length % 4 != 0) { sysExData = new byte[message.Length + (message.Length % 4)]; message.GetBytes().CopyTo(sysExData, 0); } else { sysExData = message.GetBytes(); } // SysEx data. events.AddRange(sysExData); offsetTicks = 0; }
private void Write(int deltaTicks, SysExMessage message) { #region Require if(IsDisposed) { throw new ObjectDisposedException("OutputStream"); } #endregion // Delta time. events.AddRange(BitConverter.GetBytes(deltaTicks + offsetTicks)); // Stream ID. events.AddRange(streamID); // Event code. byte[] eventCode = BitConverter.GetBytes(message.Length); eventCode[eventCode.Length - 1] = MEVT_LONGMSG; events.AddRange(eventCode); byte[] sysExData; if(message.Length % 4 != 0) { sysExData = new byte[message.Length + (message.Length % 4)]; message.GetBytes().CopyTo(sysExData, 0); } else { sysExData = message.GetBytes(); } // SysEx data. events.AddRange(sysExData); offsetTicks = 0; }