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

Also check out the Facebook Group.

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

MIDI Designer
Design your perfect MIDI controller for iPad, iPhone and iPod touch.
Is there a format for working out the sysex communication capabilities of a device? - MIDI Designer Q&A

Is there a format for working out the sysex communication capabilities of a device?

0 votes
asked May 9, 2018 in Basic by muckleberry (500 points)
It’s possible (but not particularly likely) that they send out sysex that’s like the sysex they receive. A MIDI monitor (like Snoize MIDI Monitor on OS X0 would help...

If there is any software or tools that talk to the thing, then you “sniff” the MIDI, too.

1 Answer

0 votes

What you have is a typical codebreakers challenge. Just depends on how much work you want to put it to it.

You might be able to do it all with just MD, pages, and numbers on iPad, but suspect would be easier with a larger computer and more powerful tools.

What you are going to need to do:

1. Figure out the appropriate headers and checksum format for the device.  (Maybe the oldest similar device with documentation will help you start — once a mfr has a system, they tend not to change it without reason).
2. Get the device to respond to a data request.
3. Figure out a memory map — what locations have valid memory, how big/small a data request will the device respond to?

Once you have the device responding, now just hunt and peck
4. Take a memory dump (as many sysex data requests to get full image)
5. Change a single parameter on the device
6. Take a memory dump again
7. Paste the two into a spreadsheet, one byte in each cell, and set up a template to highlight difference
    1. Row 1 = dump 1, before change
    2. Row 2 = dump 2, after change
    3. Row 3 = Compare {Numbers would be: IF(AB6≠AB7,"XX”,””)}

You may have some false positives.  Maybe it is keeping a clock somewhere, etc. And the checksum should change.

8. See if sending the two values noted above in Sysex back to device cause the parameter to change.  How many bytes do you have to send?  Is it a four byte location, and only the last byte changed from 0 to 1?  08 00 00 00 to 08 00 00 01?  So you have to send four bytes.  Etc.
9. Once you have it responding, continue with this parameter at min and max, to determine the full range of acceptable values and mapping to response.

Now you have a single parameter working, go back to step 5, with another parameter.

The first parameter may take hours, days, or weeks.  The second maybe an hour.  After that, it will become almost automatic.

Update: looks like p52 of the online owners manual should help with #1 and #2.  I am not familiar with how the device works, but if it is just editing presets, then proceed as above, dump preset, change single value, dump preset, compare values, etc.
answered Jun 5, 2018 by jkhiser (10,590 points)
edited Jun 5, 2018 by jkhiser
A big, big thank you jkhiser for your comprehensive course of action. I really appreciate the time and effort you put in to respond to my query. It sounds daunting, but I’ll certainly give it ago. Fortunately, nature endowed me with limitless patience - this could be the acid test!

Thanks again!