MIDI DESIGNER
The only MIDI controller for iPad, iPhone, and Mac


Talk to other MIDI Designer users about MIDI Designer, iOS MIDI and related topics. Or share layouts, pages, and ideas.

Check out our Facebook Group.

Of course, if you want to send us an email, feel free.

Open problem reports

Summary of user requests
Sequential Prophet VS - ability to reverse NRPN order? - MIDI Designer Q&A
0 votes
in Advanced by michael-raleigh (280 points)

1 Answer

0 votes

SB output rule can reverse the order of MSB/LSB for NRPNs


There is not setting in MD to reverse the order of MSB and LSB for NRPNs.  The order of LSB and MSB is not indicated in the MIDI spec, and devices should not care which order they are received.

But, you have found a device that does care.

You can manually build the NRPNs from the individual Cc messages.

Or, we are going to use StreamByter to simply delay the MSB.

I first tried a simple SB 1 rule - BX 63 = xx +D100 (delay CC 63 messages by 100 msec).  But, when we use this, something weird happens in our output - we only see the MSB message, we never get the LSB or the data values.

There is a quirk in MD - Dan treats NRPNs as a single message, not three separate messages, and this is incompatible with the shorthand SB I code.

So, we need a few more lines of SB II output code to reverse the order of LSB and MSB for NRPN messages.  Again, remember this is non standard - we have to treat the three (or four for 14 bit data) messages as a single message.  But this actually makes things easier - so this is a good anomaly.

// Edit - updated to handle the 14 bit case //

If MT == B0 # message type Cc, any channel
  If M1 == 63 # cc 63h, NRPN MSB
    SND M3 M4 M5
    SND M0 M1 M2
    SND M6 M7 M8
    IF ML > 9 # Data LSB present
      SND M9 M0A M0B
    END
    BLOCK # stop the original, unordered message
  END
END

And sorry for the delayed response - got away from checking for a few days.

by jkhiser (22.5k points)
edited by jkhiser
...