public void SendMidiMessage(MidiMessage message, long timestamp) { sequenceNumber++; long currentTimeIn100Microseconds = RtpMidiSession.GetCurrentTimestamp(); int rtpTimestamp = ((int)currentTimeIn100Microseconds); RtpHeader rtpHeader = new RtpHeader((byte)2, false, false, (byte)0, false, (byte)97, sequenceNumber, rtpTimestamp, Ssrc); Log.Debug("RtpMidi", "Sending RTP-Header: {}", rtpHeader); bool b = message.Length > 15; MidiCommandHeader midiCommandHeader = new MidiCommandHeader(b, false, false, false, (short)message.Length, rtpHeader); var commandCol = new List <MidiTimestampPair>(); commandCol.Add(new MidiTimestampPair(0, message)); RtpMidiMessage rtpMidiMessage = new RtpMidiMessage(midiCommandHeader, commandCol); try { RtpMidiMessageSender.Send(rtpMidiMessage, RtpMidiServer); } catch (IOException e) { Log.Error("RtpMidi", "Error sending MidiMessage to {}", RtpMidiServer, e); } }
private void HandleMessage(RtpMidiMessage message) { foreach (MidiTimestampPair midiPair in message.Messages) { foreach (IRtpMidiMessageListener listener in listeners) { listener.OnMidiMessage(message.MidiCommandHeader, midiPair.MidiMessage, midiPair.Timestamp); } } }
public void Send(RtpMidiMessage rtpMidiMessage, model.RtpMidiServer rtpMidiServer) { Send(rtpMidiMessage.ToByteArray(), rtpMidiServer); }