MIDI DESIGNER
The only MIDI controller for iPad, iPhone, and Mac


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
best way to send midi data with a template counting 250 controls and using presets - MIDI Designer Q&A
0 votes
in Advanced by gurbz (2.5k points)

2 Answers

+2 votes
You could do it that way, but I would recommend dividing the presets to smaller groups.  In your list above, maybe a preset for each of:

   amp modeling section, modulation effects section, delay section, FX section overdrive section, etc.

This way you can mix and match presets, and they are much more manageable this way.  Six good mod presets can can be used with nine FX presets, etc.  If you choose logical groups, the 12 presets per group are prolly good enough.  Say you have nine smaller groups x 12 presets per group = a really lot of combinations.  One big group x 12 presets = 12 complete settings.

One rule of thumb I use is to keep items grouped in a preset on a single page.
by jkhiser (22.5k points)
Thanks, I will give that a try today!
This could also be an exiting option: pressing a button (katana has 3 fx on/off buttons corresponding with three fx sections,  each split in 2 compartments) )which turns a section on and off. When turned off NO midi data is being sent. This way the midi data stream to the amp would be most effective, eliminating possible system freezes etc.
Do you think it possible to:

Send only midi data that changes instead of sending all data when changing a preset? Motivated: for example the FX2 section has delay a and FX compartments. So when selecting delay there is no need to send FX data. There can be only one compartment being used so I try to figure out how to optimise this. Any tips?

Vheers,

Gurbz
No, a group preset sends all values, even if the value has not changed.  This is another good reason to segregate presets into logical, related groups.
Ok, thanks for your fast reply again.
I understand what you mean (I think) but one thing puzzles me: if we have segegration and small related groups then I figure I need a supercontrol of 12 presets that to combine the other supercontrols. In the end I hook up a midi pedal board and hope to play patches real live. Probably my thinking is limited but do I end up with 12 presets after all because the master supercontrol has the 12-preset limit?
With your concept, the master preset should have more.  I know up to 128 works.  On your master preset page, make a copy of each of the sub-preset masters.  With good names on your sub-presets, this will make it easy to make your combinations.  This might even make a good master page for performance.  You can see master preset 1 includes "Super Chorus", "Bass Boost", "House Reverb", etc.
I ‘m missing something I think.
Ok, so:

- I copy supercontrol amp modeling section;
- I copy supercontrol FX section;
Etc

I make these subcontrol of a master supercontrol (12 presets) and copy that master master a 12 times? Sorry, I don’t get it yet.
O, you mean: master super control can have 128 presets instead of 12?
+1 vote
The master presets will have 128 locations.  If you do not accept the default 12 option, you will need to manually turn on named ticks so the presets can be named.  Here is a quick draft of the layout.  Also, do not use recall buttons on the sub presets, since the recall function will not pass through.  You can have a recall on the master -- as shown in this draft.
Images
IMG_0087.jpg
IMG_0087.jpg
by jkhiser (22.5k points)
Wow! Thanks so much for your patience and time!
And the recall button issue: I did delete it but didn’t know why it wouldn’t work. I’ve set the template up the way you described. I’ll let you know the results!
Getting a great idea to minimize the midi data: when for example FX 3 (section with delay 2 and reverb) is turned OFF MD still sends data of that section’s controls. I can block that data with a streambyter rule, lowering the data input on the devices. For example if CC 16 has value 000 block CC xxx
Nick from audeonic is a real good guy, probided some great examples of rules to block midi data and keep things snappy. The recall button on the master section works also great for reducing midi data flow. I have to figure out how to adress preset + recall with a pedalboard and this also makes it to my to-things-do list. Somehow I’m also interested in A -> B config ideas, don’t know why that is.
Messed around with the recall buttons more.  Here is a refinement.

Add recall buttons to the sub presets.  MDP2 will change the type to momentary.  Change the type back to toggle.  When the recall button is ON, it will auto recall the preset.  When off, no action.

Copy the recall buttons to the master page.  Put each recall button copy next to its sub preset copy.

Make the sub recall buttons subs of the master presets control  Edit the master relationships page so all sub recall buttons are listed as sub controls BEFORE any of the sub presets.  [MDP2 seems to respect order here, so the recall buttons will get set before the preset is activated.]

When you store the master preset, turn on recall buttons for the subs you want recalled, turn off the remainder.

This should just send the enabled sub presets. No Streambyter filtering necessary.

It works with my small sample layout.  

One interesting thing I have not examined — the recall buttons are sending their own MIDI value, but only when activated by the master preset.  Suspect when the type is changed to toggle, MDP2 is no longer recognizing them as recall, even though they still function.  May just need to set the control to a null sysex.
That could be an extremely good idea Jk!
Working on it now.
Any chance I could update this thread with screenshots in new comments?
Okay, getting there! This works but:

I’m testing, checking presets, pressing them and checking log. Somehow preset values get send and sometimes not while not changing the values of the presets. I’m not sure what causes this, this is an iPad Air 1. Do I need to have certain supercontrol options activated, ‘buttons are send on only’ or something like that? We can’t have inconsistency here. (Of course I deleted the streambyter rules)

I tried to show it on this vid.


Vguitar forum is also supporting, I get the following input:

Great work. About the inconsistencies. Can it be that if the settings of the reverb are the same on two presets, that no reverb messages are sent?

Also it is imteresting to check with guitar sound during preset change to see if the patch changes sound good or give artifacts. And you should get reverb/delay spillover when the effects chain and reverb or delay type does not change.
On my layouts, group presets send all values even when there is no change.  The only setting I can see that might impact would be under options as sub, send only on supercontrol change -- and this should default to off.
Also when things start getting cranky, save everything, kill all apps, and reboot the iPad.  Another troubleshooting trick I use is to copy out just the page that is giving trouble to a blank layout, and see if I can get it working right in isolation from the remainder of the layout.
About the blank sysex: just choose sysex and leave it blank?
Then there is the amp: once the data is send properly I’m curious how the amp responds. Sometimes I get the idea that data has to be send according to a sequence/protocol. Maybe some sort of reset and then the data.
After testing it seems clear that values are not send when they stay the same. So: if for example delay preset 1 slapback stays the same with an other amp preset 2 or 3 OR  the delay is not used the values are not send. There can be a workaround by recalling an OFF preset so the system has a sort of ‘reset’. Thoughts anyone? The suggestion of JKRiser works wonderfully.
Thanks!
I noticed also the following: when adding subcontrols to masterpreset all subpresets and masterpresets must get stored again.
On my layouts, all presets seem to send all values, even if there is no change.  But I don't have the super-sub relationship.

You can get all the subs to always send all settings with this change -- go back to momentary buttons for all sub presets, and delete them as subcontrols of the preset.  Make a new master recall button, with the super preset and sub preset recall buttons all subs of this button.  Now when you press the master recall, all subs see their recall pressed also, and will respond.

But now we are back to where we started -- all presets always sending.  But you still have manageable size preset groups.

Here is yet another workaround.  You can control which sub groups respond by making similar the master recall button, and only including the desired effects as sub control.  Only problem is that does not lead to flexible sequencing in live performance.  Will have to sleep on this.

May have to go back to filtering the undesired commands.  Or maybe is just a don't care -- the amp may not care about the extra messages.

Sorry about the delay -- had been crashing to finish my latest update, and finally got it loaded.
Thanks, appreciate the input very much. Gonna try the suggestions!
Working on your suggestions actively.
What I learned is that the USB Midi host has very limited buffer, to much midi data results in unreliable behaviour of the amp. Hardware could be a solution. For now I need heavy duty limiting of the midi data so I reinstalled the filter and used vintage throttle on all knobs of the 339 knob design.

When I only use amp simulation section the results are really great and snappy, no problem. When recalling a complete preset the buffers get too full and the amp responds not quite right. Considering all options and narrowing it down to practical use an analog guitarplayer uses an amp and a few pedals. So if I could load an amp section as a sound foundation and add for example a gain or delay section while playing everything would be quite peachy.

On my midi pedal board I could create 10 stepper buttons for 5 sections: pedal 1 stepper down amps, pedal 6 stepper up amps, pedal 2 stepper down distortion, etc.

So not giving up here but getting practical and working within boundaries of the usb-midi host.
Thinking about options:

Recalling preset of a group is one option, batch sending could also be sending a page.

Here ‘s the question I think:

How can we load a preset while not sending all data at once? Think a guitarplayer’s pedalboard.
Activating small portions/chunks of data each time is what we’re looking for here, the manufacturer of the usb-midi host confirms this.
So the best option is the recall buttons on toggle like the option mentioned by JKRiser and saving which section will be recalled. Together with vintage throttle it takes a few seconds to load but that’s reasonable between tracks. After that it is using the preset patch and turning effects on/off within the patch
On the config / midi page, try turning up the throttle value to slow down the transmission.  Also might try the vintage throttle, but the help info for that has gone missing.

But every time I adjust the throttle setting MDP2 crashes.
Everybody please keep in mind that we've got dozens of conversations going on here, which is a DREAM we once had, but we can't figure out what's urgent and needs attention. If you're talking about  a crash bug that you can replicate, we can fix it! Please email us when you discover such a thing, thanks!
Same goes for the missing Evernote docs! Evernote changed their way of doing business, but we still have the docs of course.

https://www.evernote.com/l/AAYMTQ01gp1MHqN3kv9QeBDdB7pe2R3Poe8
The config throttle is not for group presets I think but send all data or global presets. Vintage throttle works really but it takes a few seconds to load a preset. That seems to work.
So there are two issues here: one is a crash-bug and the other is a suggestion, "Provide a way to load a preset while not sending all data at once? Think a guitarplayer’s pedalboard." Is that right? Are we talking about Presets for Groups or global presets?
Bug report entered in is this broken, recurring and repeatable on two different ipads with two different layouts.
Replicated! Will fix, thanks.
Thanks Dan, group presets for now.
Master presets recalls with a momentary button subgroup presets with a recall toggle button. This way it can be decided which subgroup preset will be recalled in the masterpreset.

However: there are more options to send out batch data in MDP2.
With a midi-usb host who’s buffers are limited the question is which method works best. In this design of the katana template (more to come) I have to work with these limitations.

Questions: will global preset work better with master throttle control? Maybe it’s a option to start using send page control? I’m gonna try all options anyway but it will take time so maybe you could give your opinion on the best odds for optimising this template. About the midi-usb host: the primovasound midx-20 is a popular option for boss katana users to get access to the internal affairs of the katana. It is geared towards real live CC control, not big presets. That is something we have to try however and were trying to outsmart its buffer limitations with clever preset design and MD has a lot of options.
Hi gurbz, Mitch chiming in here.  This is an awesomely massive thread so excuse me if I'm a little behind!  I do not have experience with the midx-20 so I can't comment on that.  But personally for precise control/limiting the amount of data sent I prefer writing my own rules in Stream Byter as the customization options are highest.  First however, for ease of use in your situation, I would try the vintage throttle described in the Evernote that Dan posted above(I know there is a current crash going on there, fix is coming).  Doesn't that address your question?  
Cheers,
Mitch
Throttle adjustment crash fixed in latest Next beta. Thanks!
Mitch: thanks! Vintage throttle is my weapon of choice right now.
It is vintage but it seems to work, takes a few seconds to load a preset.
I am interested in your streambyter rules, math was not my strong suit
Dan: thanx! MDP2 rocks, never spend so much time with an app on the couch.
I'm glad it is working out for you. I've only written rules for very specific circumstances with guitar pedals in Stream Byter.  But that is what it is perfect for, making rules for rare and unique situations.
The Streambyter rules don't require much math although it is a pseudo-code language so you do have to puzzle that part out.  However there is also an active Stream Byter forum and Nic, the creator, is very active and helpful on there as well.
...