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
How to Set Up Show/Hide Panels With Dynamic Labels Fed Via A Picker Super - MIDI Designer Q&A
0 votes
in Advanced by ctreitzell (460 points)
edited by ctreitzell
I have read through this a few times, but a picture would really help.  Can you diagram the control flow from top to bottom usually will figure out where a super/sub relationship is not as needed, or upload a layout with just the problem controls.  

Another thing to check is a MIDI loop - ensure you are not getting back a message from the board that is locking the controls

And I think adjustable picker text size is somewhere on our wish list.
Thanks so much for the response, JK

I will endeavour to get all those things together. Really the issue is more simple than my complicated question, I think
OK, I've been trying to work up how to convey this...I made my question too complicated

three different controls to send Bank&PC
these three controls also send text to dynamic labels in panel stack of three panels

every time each one of the Bank &PC controls are touched; corresponding panel shows
and the other two panels are hidden

Essentially a radio button group supercontrolled by a corresponding variable control
OK! Success, I figured it out...and the solution is very basic
I just needed to figure out how to control the values sent to the "show" buttons from the variable controls

so I just needed to scale the values to achieve the functionality I was after

What I did was set each Bank/PC variable control as a super:
1- super to the three pickers to send variable text to dynamic labels;
2- super to a scaled variable control to send always "On" to corresponding panel (values 65-127 only)
3- super to another variable control always sending "off" to the other two hidden panels' "show" buttons (sending value range 0-64)

Further, my misunderstanding of the buttons' status:
When using a variable control to supercontrol a button
appearance of the button is:
if page text is black; button text is black throughout entire travel-
if page text is white; button text is white values 0 thru 63-
then button text turns black from values 64-127
then min value (0): button fill is clear (very low alpha) which means "off">
at first next higher tick value, then button fill looks "pressed" and button behaviour is "On"

obviously considering 7-bit midi for that explanation

that changing of text color for white text page format was throwing me off
Oh, I spoke too soon...my solution works for two sets of controls and panels...yet becomes complicated with more than two sets of controls and panels...I will dig into your answer tomorrow
Thanks for the quick answer =-D
It's interesting how deep this midi remote control stuff actually is; it's a highway system of dominoes.

My planned next task is to create FX specific hidden panels, but that then means knowing what effects are currently loaded in the hardware. One might then surmise that rather than interrogate the hardware, if the supercontrol in this architecture "could" also inform the FX section (FX selection radio button and then corresponding s/h panel) of what effect is currently loaded. That architecture might well work, but then leads to so many other questions about current hardware status...Might as well do the work, then to query the hardware! Well, query the hardware for current status and RAM slots...yet ROM slots could be entirely native in the remote layout.
Thoughts about matching MD layout settings to device status: https://mididesigner.com/qa/8634/tricks-synchronizing-mdp2-layout-current-hardware-settings
Thanks for that

I'm thinking I can go two ways on this for the CyberTwins:
1-interrogate the hardware for r-t param updates
2-use MDP presets

the thing about using MDP presets is I think that's what the users should do

as far as the FX s/h panels, I've realized an interim solution is to use the generic fx panel at first load, so there wouldn't be a handshake to the hardware until user sets a FX

and possibly the architecture you supplied here could also send a message to the layout's FX section to display the target loaded program's FX, since the CT is one effect at a time...if that works, then maybe add in the reverb...and there start the dominoes...looks like I best get adept at bitwise operators and streambyter

1 Answer

+1 vote

Multiple Picker Show/Hide


MIDI Target Manufacturer(s): Original, Generic

Here is one solution, piling up a few techniques.

We need multiple supercontrols that need to independently operate a subcontrol that groups and operates the show/hide buttons.  

The problem is that the supercontrol stimulus remains active, so those layouts sort of lock up when the supercontrols are sending different values to the button grouper.  Supercontrol relationships are always-on unless you use the enable button feature - but trying to switch the supercontrols on and off in this instance just pushes the same challenge down one level.

We are going to "break" this lockout by using our StreamByter wrap around message to only stimulate the subcontrols momentarily.  Instead of the always-on relationship, we use the same hierarchy implemented with a MIDI message.

The three show/hide relays have the same number of ticks* as the picker supercontrols, all set at the same value.  SH0 = 0, SH1 = 64, SH2 = 127.  (Four would be 0, 48, 96, 127; etc).  Type SysEx, 00 01 7E 77 0 V, MIDI Receive OFF (If MIDI receive is ON, then the same lockup happens as if direct supercontrol). * The auto prompt will always try to change these to two ticks when you set the MIDI on and off to the same value, so do not accept this change

The GP SH button has the same SysEx value, 00 01 7E 77 0 V, MIDI Receive ON

Each picker has its own set of subcontrols that send the necessary bank and program changes, Ccs, etc., to set up the desired patches.

SH Buttons are No MIDI Receive.

All the yellow controls can be hidden in play, leaving just the pickers and panels visible.

I had not considered the "wrap around" message independent of StreamByter.  MIDI SysEx with the header F0 00 01 7E 77 .. wraps around to the input of MD.  We don't need any SB code here, just a separate control to receive the wrap around message, and ensure all the possible senders have MIDI Receive off to avoid lockup.  In this case I added an extra 0, so you could add additional wrap arounds if needed (1, 2, etc)

Dsabou comes up with interesting solutions, so he might recommend an architecture to achieve this architecture.

Downloads: 166
Multiple Picker Show-Hide.mididesigner
Downloads: 166
Images
Multiple Picker Show Hide
Multiple Picker Show Hide
by jkhiser (22.5k points)
JK, Thanks! You have understood exactly what I was asking for and delivered it in a very short time, I deeply appreciate that! Thanks also for pointing out foibles with supers, very helpful.

It looks like this architecture could possibly be implemented for my question from 2019 re: controlling multiple button groups; s/h panels giving a lot of flexibility
https://mididesigner.com/qa/7285/advanced-button-groups-2-button-groups-exclude-one-group

I look forward to any other solutions members might offer up as well.
...