MPE Profile support in SendMIDI and ReceiveMIDI
-
I have new versions of SendMIDI and ReceiveMIDI available with MPE Profile support.
The intent of these versions of my tools is that people can focus on either the initiator or responder role for their product and leave the other part of the negotiation up to either SendMIDI or ReceiveMIDI. This should make it easier to bootstrap adding MPE Profile support.
SendMIDI allows simulating the role of an MPE Profile initiator, while ReceiveMIDI allows simulating the role of an MPE Profile responder (only on Linux/macOS due to virtual port creation)
Here's an basic example of usage:
Create a virtual MIDI port named
profiletest
and configure it to support manager channel1
with15
member channels as a responder:receivemidi mpp profiletest 1 15
Use
profiletest
both as the MIDI output and input port and request the MPE profile to be enabled as an initiator with manager channel1
and with6
member channels:sendmidi dev profiletest mpp profiletest 1 6
The relevant outputs could be:
receivemidi mpp profiletest 1 15 Responder MUID 0x0d1212d6 waiting for MPE Profile negotiation on channel 1 MUID 0x03926473 : MPE Profile enabled with manager channel 1 and 6 member channels MUID 0x03926473 : MPE Profile details inquired for optional features
sendmidi dev profiletest mpp profiletest 1 6 Initiator MUID 0x03926473 negotating MPE Profile with manager channel 1 and 6 member channels MUID 0x0d1212d6 : Discovered MUID 0x0d1212d6 : Requesting MPE Profile enablement with manager channel 1 and 6 member channels MUID 0x0d1212d6 : MPE Profile enabled with manager channel 1 and 6 member channels MUID 0x0d1212d6 : Inquiring MPE Profile details for optional features MUID 0x0d1212d6 : MPE Profile details received for optional features MUID 0x0d1212d6 channel response : not supported MUID 0x0d1212d6 pitch bend : supported MUID 0x0d1212d6 channel pressure : standard controller MUID 0x0d1212d6 3rd dimension : standard controller
This is another possible example:
Create a virtual MIDI port named
profiletest
and configure it to support any manager channel with up to8
member channels as a responder, this also disables pitch bend as a supported feature and enables bipolar controllers for channel pressure and 3rd dimension:receivemidi mpp profiletest 0 8 mpb 0 mcp 2 m3d 2
Use
profiletest
both as the MIDI output and input port and request the MPE profile to be enabled as an initiator with manager channel2
and with10
member channels:sendmidi dev profiletest mpp profiletest 2 10
Then, use
profiletest
both as the MIDI output and input port and request the MPE profile to be enabled as an initiator with manager channel12
and with6
member channels:sendmidi dev profiletest mpp profiletest 12 6
The relevant outputs could be:
receivemidi mpp profiletest 0 8 mpb 0 mcp 2 m3d 2 Responder MUID 0x04b33d6f waiting for MPE Profile negotiation on all channels MUID 0x00166e57 : MPE Profile enabled with manager channel 2 and 8 member channels MUID 0x00166e57 : MPE Profile details inquired for optional features MUID 0x001a9680 : MPE Profile disabled with manager channel 2 MUID 0x001a9680 : MPE Profile enabled with manager channel 12 and 4 member channels MUID 0x001a9680 : MPE Profile details inquired for optional features
sendmidi dev profiletest mpp profiletest 2 10 Initiator MUID 0x00166e57 negotating MPE Profile with manager channel 2 and 10 member channels MUID 0x04b33d6f : Discovered MUID 0x04b33d6f : Requesting MPE Profile enablement with manager channel 2 and 10 member channels MUID 0x04b33d6f : MPE Profile enabled with manager channel 2 and 8 member channels MUID 0x04b33d6f : Inquiring MPE Profile details for optional features MUID 0x04b33d6f : MPE Profile details received for optional features MUID 0x04b33d6f channel response : not supported MUID 0x04b33d6f pitch bend : not supported MUID 0x04b33d6f channel pressure : alternate bipolar controller MUID 0x04b33d6f 3rd dimension : alternate bipolar controller
sendmidi dev profiletest mpp profiletest 12 6 Initiator MUID 0x001a9680 negotating MPE Profile with manager channel 12 and 6 member channels MUID 0x04b33d6f : Discovered MUID 0x04b33d6f : Requesting MPE Profile enablement with manager channel 12 and 6 member channels MUID 0x04b33d6f : MPE Profile disabled with manager channel 2 MUID 0x04b33d6f : MPE Profile enabled with manager channel 12 and 4 member channels MUID 0x04b33d6f : Inquiring MPE Profile details for optional features MUID 0x04b33d6f : MPE Profile details received for optional features MUID 0x04b33d6f channel response : not supported MUID 0x04b33d6f pitch bend : not supported MUID 0x04b33d6f channel pressure : alternate bipolar controller MUID 0x04b33d6f 3rd dimension : alternate bipolar controller
Full documentation can be found by typing
sendmidi -h
orreceivemidi -h
.Hope this is helpful. Please let me know if you have any feedback.