Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Uwyn Logo
  1. Home
  2. MPE
  3. MPE Profile support in SendMIDI and ReceiveMIDI

MPE Profile support in SendMIDI and ReceiveMIDI

Scheduled Pinned Locked Moved MPE
mpemidi-cimpe-profilesendmidireceivemidi
1 Posts 1 Posters 875 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • gbevinG Offline
    gbevinG Offline
    gbevin
    wrote on last edited by gbevin
    #1

    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.

    GitHub - gbevin/SendMIDI: Multi-platform command-line tool to send out MIDI messages

    GitHub - gbevin/SendMIDI: Multi-platform command-line tool to send out MIDI messages

    Multi-platform command-line tool to send out MIDI messages - gbevin/SendMIDI

    GitHub - gbevin/ReceiveMIDI: Multi-platform command-line tool to monitor and receive MIDI messages

    GitHub - gbevin/ReceiveMIDI: Multi-platform command-line tool to monitor and receive MIDI messages

    Multi-platform command-line tool to monitor and receive MIDI messages - gbevin/ReceiveMIDI

    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 channel 1 with 15 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 channel 1 and with 6 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 to 8 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 channel 2 and with 10 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 channel 12 and with 6 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 or receivemidi -h.

    Hope this is helpful. Please let me know if you have any feedback.

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups