Morningstar Sysex Checksum

Raphael Jeanne's icon

Hello !
I'm trying to send Sysex to my MC6 in order to update the preset names (ableton feedback), but I'm completely lost about calculating the checksum, here's the documentation from Morningstar FX :

https://manuals.morningstar.io/mc-midi-controller/sysex-documentation-for-external-applications

And here's the "how to" calculate the CS :

The CheckSum is used to verify the message integrity. The calculation will be done on the sender’s end, and then when the SysEx message is received by the Controller, it will calculate the CheckSum of the message and then compare it to the sender’s CheckSum. If it does not match, the message is ignored.

The CheckSum can be calculated like this:

First, take the first value as F0, which is the start of the SysEx message.

Next, XOR the value with the next value.

Continue this until you reach n-2.

AND the value with 0x7F, which will give you a value of between 0 - 127.

Can anyone give me a simple method of calculating this with a max patch ? :)

Thanx !

Source Audio's icon

there are few objects that can xor a list,
jasch xorlist or lobjects lxor

you can also build it with expr object

if I understand correctly you make a list of sysex message
- 2 last numbers, checksum itself and F7 or 247 decimal.
then you xor the list and & 127 to get the checksum.

Max Patch
Copy patch and select New From Clipboard in Max.


Raphael Jeanne's icon

Awesome, it works perfectly !Thanks !