Hi,
Inside a SysEx string, is not possible to have values more than 7F.
Values inside SysEx massage must be from 00 to 7F.
This is a Midi SysEx rules.
In your example, you wrote:
F0 <sysex reciever ID> B0 00 01 20 01 7F
When you want to send B0 00 01 20 01, is better to use (CC) Control Change commands. For your reference, your above example follow running status rules.
The original (without running status rules) is:
B0 00 01 B0 20 01
CC00 001 , CC32 001
Here you can use CC00 and CC32 (Bank Select) messages, following with PC (Program Change), maybe...
Also:
F0 <sysex reciever ID> 90 3C 3A 40 78 3C 6E 7F
90 3C 3A 40 78 3C 6E, follow running status rules.
The original is:
90 3C 3A, 90 40 78, 90 3C 6E
Here you can use Note On messages.
Solution.
On MD you can use a combination of buttons. Each button can transmit different kind of message and value. In this way you trigger just one button but the linked buttons transmit the rest of your midi data.
I am not shure for this, but maybe other solution is to program just one button on the MD but thinking SysEx and using the following trick.
Program any button to send SysEx data.
The MD send the first F0 and the last F7. Both F0 and F7 are hidden on MD because send this values internally. So, the values to be put, will be as follows:
90 3C 3A 40 78 3C 6E
I hope the MD will send F0 90 3C 3A 40 78 3C 6E F7
Last but not least.
Many devices use values over than 7F.
In this case, values larger than 7F, you have to split or/and divide the value to e.g. upper and lower midi byte (MSB-LSB).
♪♫♪