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

MIDI Designer
Design your perfect MIDI controller for iPad, iPhone, and now on M-powered Macs
LAYOUT: Korg TR Rack-Trinity - MIDI Designer Q&A

Rating: PlatinumLAYOUT: Korg TR Rack-Trinity

+3 votes
Rating: Platinum
asked Oct 31, 2018 in Community Shares by thedood (930 points)
edited Oct 31, 2018 by thedood
Matching Sysex Controls

Short answer: once the control is configured, it is always watching for a matching message, and updates when it sees one.  With the RD-2000, you have to request the data, so my tabs have a “Load” button.

Long answer:  here is how many of my tabs work:

I have a master “zone” selector to choose zone being edited — using the “channel” selector as a “zone” selector.

There are a number of sub zone selectors that provide pointers for parameters (since a zone goes from x0 xx to x6 xx, plus other offsets for effects, etc.)

For example, zone x tone character sysex is 41 10 00 00 75 12 10 00 L 3E V
    where 41 10 00 00 75 is the Roland Identifier
         12 is Data Transmission   
        10 00 L 3E is the address of tone character in zone x
        V is the single byte value

Other control settings
    Tone character display is -5 to +5 for Midi of 59d to 69d
    Assign the sub zone selector that has the +6 offset as super control
    Midi Receive On

This control now monitors continuously for a matching sysex (zone has to match the super control selection) and updates the control with v.

With the RD2000, you can request precise Sysex packets, i.e, a single desired parameter.

To read data and match controls, the tab has a “Load” super control.  This has a number of hidden sub controls that each send a sysex request.  The request matching above is: 41 10 00 00 75 11 10 00 L 3E 00 00 00 01
         11 is Data Request   
        10 00 L 3E is the address of tone character in zone x
        00 00 00 01 says I want a single byte

The ability to request precise data has let me avoid parsing a long sysex with streambyter.

But, nothing is easy.  The RD2000 will only accept eight sysex at once.  I can get up to 16 parameters with a single control by using both on and off values of a sub control.  Example, in above request, replace the 3E with V, and set the midi on/off values to 3E & 3F, ensure send ON ONLY is not selected either for the control or super control.  

I have an idea, not yet tested, to use the Roland portion of the Sysex to tell streambyter how long to delay an outgoing request, and replace that data with the std Roland header, allowing time to process the first 8+8 requests.

And I also need to post a hint on how to keep pushbutton selectors synchronized.
Hey Brett.  Mapping out dumps to determine what individual control values do can be a little tricky.  If you're lucky then the product has a SysEx map or key you can use.  How I did mine was I had a 36 byte message and knew what the first 5 or 6 bytes were.  Then I opened up the MD log, turned the first knob to 0 and sent a SysEx dump, changed the knob to 127 and sent a second sysEx dump and compared the two to determine what bytes the knob changed.  The rest of my knobs were in logical order in the sysEx dump so it didn't take too much work.  I only had about 16 parameters to map so it didn't take me too long, I'm not sure this would be a reasonable strategy for massive amounts of knobs. - Mitch
Great reply Jkhiser/Mitch very much appreciated.
Ok so the sysex controls "will" receive transmitted sysex matching the headers.
So basically RD is a very "tunable" device, and you can bend (very innovatively!) MDs parameters enough to make an interface.
I have no choice but to script with all my old beasts. I need to rip apart these streams "per" control.
I gave the streambyter documentation a read tonight and I just need to workout how to "generate" a Sysex packet to "match" the controls input, so it updates the Sysex control types V. It (streambyter) looks way cool, you can do so freaky stuff to midi (midi fx etc).
Many thanks.
Congrats, huge work!
Platinum, congrats!