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.
Patch Dump SYSEX parse into knobs, etc - MIDI Designer Q&A

Patch Dump SYSEX parse into knobs, etc

+1 vote
asked Sep 1, 2016 in Advanced by jmm1 (280 points)

1 Answer

0 votes
 
Best answer

You Cannot Parse Multi-Control Sysex (yet)


Thanks for the various questions you've asked on this topic. Right now (August 2016) there is no way within MIDI Designer to parse a sysex and break it into its constituent controls. We're investigating some short-term solutions (perhaps using Midi Bridge) and some longer-term solutions (building this functionality into MIDI Designer).

The historical note on this is that MD was originally created as a performance tool, but so many of our users are using MD to create fantastic editors for complex MIDI targets.... We're thinking about how to implement this functionality in MD... The design-time UI -- as usual -- is the problem. It has to be funcitonal and intuitive like the the rest of MD.

Any notes you may have regarding how the sysex looks for your particular MIDI target, or how you would see this working in MD, or anything related would be well appreciated.

Thanks for your patience as we grow to accommodate our users' needs.
answered Sep 1, 2016 by MIDI Designer Team (Dan)
selected Sep 2, 2016 by MIDI Designer Team (Dan)
Thanks for your reply as it confirms my thoughts - I wanted to make sure I hadn't missed anything.  I have had success with LEMUR developing a NORD template - It takes the Patch dump SYSEX string.  and then I break it up into a series 2 byte segments.  Each of these are then assigned to the various controllers.  Lot of work as Lemur has many variables per control.

I guess that would be the way for MD to do it.
Right now in LEMUR there is some scripting to be done to break up the SYSEX string. maybe that is something that could be simplified in MD.  I think it would be easy to program because I would imagine all synths would do the same.  LONG string that has to be broken up.
Let me know if I can be of help in testing at least with the NORD, Blofeld, Juno60
Thanks so much... Help testing, eventually, definitely! For right now, I've put a question up here: http://mididesigner.com/qa/5103/how-does-your-midi-targets-bulk-dump-work

Any light you can shed is great (please put responses on THAT question). If the thing is just a matter of choosing offset and number of bytes and assigning them to a control... that's not as bad as what I'm imagining (pulling apart bytes, etc.)

Thanks!
Dan

Dan Rosenstark
Author, MIDI Designer
dream | create | play
Well it was a pretty ambitious idea but the device s the Fractal Audio AxeFx. I have both a 2 and the original. MIDI details for the II are here:

http://wiki.fractalaudio.com/axefx2/index.php?title=MIDI_SysEx

Basically you 'get' data the same way you send it you just change the opcode. Since MDP can send a squirt of MIDI Sysex the 'set' is no problem and you could even send the 'get' but since MDP is essentially 'deaf' to the response it's a non-starter.

An iPad editor is like the Holy Grail for those devices. People have been asking for one for years but the manufacturer is a small company with limited resources. It took them forever to do their PC/Mac editor...  Someone in the user community took a solid cut at an editor with Lemur. I dug into the Lemur implementation and modded it (it had gotten out of date with the format, etc). Lemur basically allows you to write code for the panel but the way the Lemur panel queried and updated the params was just a horror show.

Anyway, I got MDP and was hoping it might somehow be able to do it.  I started playing with a write only panel on the AxeFx Ultra since I didn't have a computer hooked up to it and missed a control panel/editor... I got one running for preset changes and a lot of the basic front panel setting that have default MIDI CC based controls.... that was kind of fun/useful, so I did the amp models in the Ultra including all the deep parameters this works well for changing values but it quickly became obvious that it's practicality was limited. Making an on the fly adjustment to a param without knowing your starting point was just too painful.

Given how easy it was to say 'send this sysex blurb' I had hoped it would have been easy to have a query... I wanted to start with the preset changes getting updated since those are a lot simpler so I posted the question here about querying for data back from a device and felt like it was pretty obviously impractical with the super controller thing and if that was the method proposed by the dev it just was not going to happen with this tool.

I had hoped MDP2 being a major revision would have a lot more depth in this regard... so checked when it came out but it didn't look like it merited a reboot of the effort... I don't know what other people do with it since I am a guitar guy but for guitar based MIDI stuff it seems almost like you would *have* to have more 'read' capability to build useful things...

Anyway thanks for your response; let me know if I am missing something.
 

Sigh.
Hi Fraggen, can you explain in a bit more detail what "just change the opcode" means, perhaps with a concrete example or two? As you know, getting feedback from MIDI devices is a nightmare of inconsistency (hence this question http://mididesigner.com/qa/5103 and the myriad answers), but 1) if we can tease out one or two use cases that we can hit, that's a possibility. If it's just a mathematical transformation -- e.g., when you see this message, translate it to this other one -- we might be able to handle this single case 2) Also, this use-case might also be achievable via MidiBridge or MidiFlow by translation. 3) Have you thought of asking the equipment manufacturer to provide a specific MIDI implementation for this case? They have dozens of employees, sell several products which cost over $1000 each, and definitely have tons of resources.... are they even interested in this use case?

Another way to go is to consider keeping your presets in MD... it's a different way to work, but it's definitely a strong one.

Thanks in advance for your response, and thanks for your comment,
Dan
It is explicitly defined in the page I cited; when sending data you change one byte to the same command to determine whether you are setting or getting:

Message format:

    0xF0 sysex start
    0x00 Manf. ID byte0
    0x01 Manf. ID byte1
    0x74 Manf. ID byte2
    0x03 Model #
    0x02 Function ID (2)
    0xdd effect ID bits 6-0
    0xdd effect ID bits 13-7
    0xdd parameter ID bits 6-0
    0xdd parameter ID bits 13-7
    0xdd parameter value bits 6-0
    0xdd parameter value bits 13-7
    0xdd parameter value bits 15-14
    0x00 0=query value, 1=set value
    0xdd checksum
    0xF7 sysex end

Response format:

    0xF0 sysex start
    0x00 Manf. ID byte0
    0x01 Manf. ID byte1
    0x74 Manf. ID byte2
    0x03 Model #
    0x02 Function ID (2)
    0xdd effect ID bits 6-0
    0xdd effect ID bits 13-7
    0xdd parameter ID bits 6-0
    0xdd parameter ID bits 13-7
    0xdd parameter value bits 6-0
    0xdd parameter value bits 13-7
    0xdd parameter value bits 15-14
    0xdd
    0xdd
    0xdd
    0xdd
    0xdd
    0xdd null-terminated string byte0
    0xdd byte1
    ...
    0x00 null character
    0xdd checksum
    0xF7 sysex end
Apparently Audeonic (makers of MidiBridge) are planning to release a MIDI conversion tool that will easily take care of the Axe-FX case. Should be out in the next few months. We just discussed this specific case and it will definitely handle it... Exciting stuff!
Yes, this is extremely cool news. Thanks a lot for following up on it. I will have to check out Audeonic, I am not familiar with them or MidiBridge. It would be really great to have this hardware control with some visual feedback on the settings and presets incorporated into the panel.
...