Skip to content
Mathis edited this page Oct 29, 2021 · 4 revisions

Using SysEx in midi-dot-net

Please refer to the original project's documentation for information on using the default features of the midi-dot-net library: http://code.google.com/p/midi-dot-net/

Send a SysEx Message

C#:

Midi.OutputDevice midiOutput;

midiOutput = OutputDevice.InstalledDevices[0];
midiOutput.Open();
midiOutput.SendSysEx(new byte[] {0xF0, 0x7E, 0x7F, 0x6, 0x1, 0xF7});

VB.NET:

Public midiOutput As Midi.OutputDevice

midiOutput = OutputDevice.InstalledDevices.Item(0)
midiOutput.Open()
midiOutput.SendSysEx(New Byte() {&HF0, &H7E, &H7F, &H6, &H1, &HF7})

Recieve SysEx Messages

Please note the additional argument in the Open method. Boolean value to enable MIDI Long Message handling. If left blank (backward compatibility) the default is FALSE.

C#:

Midi.InputDevice midiInput;

midiInput = InputDevice.InstalledDevices[0];
midiInput.Open();
midiInput.StartReceiving(null, true);
midiInput.SysEx += ReceiveSysex;

public static void ReceiveSysex(Midi.SysExMessage message) {
    byte[] incomingSysExMessage = message.Data;
}

VB.NET:

Public midiInput As Midi.InputDevice

midiInput = InputDevice.InstalledDevices.Item(0)
midiInput.Open()
midiInput.StartReceiving(Nothing, True)
AddHandler midiInput.SysEx, AddressOf ReceiveSysex

Public Sub ReceiveSysex(ByVal message As Midi.SysExMessage)
    Dim incomingSysExMessage As Byte() = message.Data
End Sub

You may also let VB take care setting up the event handler for you:

Public WithEvents midiInput As Midi.InputDevice

midiInput = InputDevice.InstalledDevices.Item(0)
midiInput.Open()
midiInput.StartReceiving(Nothing, True)

Public Sub ReceiveSysex(ByVal message As Midi.SysExMessage) Handles midiInput.SysEx
    Dim incomingSysExMessage As Byte() = message.Data
End Sub
Clone this wiki locally