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.

New! Consolidated performance observations

NEW! Summary of user requests

MIDI Designer
Design your perfect MIDI controller for iPad, iPhone, and now on M1 Macs
How to show/ hide panels using the AND of two buttons? - MIDI Designer Q&A

How to show/ hide panels using the AND of two buttons?

0 votes
asked Dec 3, 2021 in Advanced by mrkarlos (130 points)
What would be cool here — impossible now — is that the subpanel also hides when the button that shows/hides the subpanel is hidden. I still need to read through the JK workaround below.

1 Answer

0 votes

SHOW / HIDE Sub panels with main panel


It is easy to turn off subpanels when the main panel is hidden.  However, there is no simple method to remember which subpanels were previously visible when the main panel is shown.  But we can chose “default” subpanels to show when the main panel is shown again.

The tool here is BUTTON OFF SETS TO DEFAULT under relationships.  This is a useful supercontrol relationship, since it only works in one direction.  If we need it to work in the ON direction, we just need to add an intermediate control to invert the status.  And you have to ensure the default value for the control is what you want.

For all the sub panel SHOW / HIDE buttons, select the main panel show hide button in BUTTON OFF SETS TO DEFAULT and ensure the sub panel show hide button default value is off.

You can do this for as many subpanels as needed.

For “or” subpanels, just add a supercontrol grouping the sub panel SHOW / HIDE buttons.  We need a dummy button for the no panels shown case.  That dummy button is the one that has the main panel SHOW / HIDE button selected for BUTTON OFF SETS TO DEFAULT, it is hidden in play mode, unless there is the user option to turn off all subpanels.

To re-show default subpanels when the main panel is shown, we need to invert the value of the main show hide button to turn off an added sub control, then use that button going off to activate a super control to show desired subpanels.  For the and case:

  • Panel show hide button, midi inverted 127 - 0, super control ->
  • Control 1, sub control of above, toggle
  • Control 2 - default value on, control 1 off resets to default, super control of  ->
  • Desired default shown subpanels

For the “or” case presets, we again use the main panel show hide button, inverted midi values, to drive an intermediate control.  That control is selected on the sub panel grouping knob for BUTTON OFF SETS TO DEFAULT, selecting the desired default value there.

Downloads: 79
Show / Hide Sub panels with main panel
Downloads: 79
Images
229B4559-5AB6-4640-9A61-B385009A08B8.jpeg
229B4559-5AB6-4640-9A61-B385009A08B8.jpeg
answered Dec 3, 2021 by jkhiser (16,080 points)
edited Dec 3, 2021 by jkhiser
Hi @jkhiser, thank you for the reply. I've been working you response into my config for the last few hours.

The challenge I have is the reply you have given assumes the state doesn't change. The reason I wanted to AND two buttons is that the state of one of the buttons will change. I am working on a layout for a Roland TR-8S. The Master Effects section uses up to 10 parameters. Each effect type uses the same parameter address but it applies to a different effect parameter according to the context e.g. Compressor, Flanger, Phaser, etc. The button in am using has the address of 0x33. In the Flanger and Phaser effects is is used to turn the Tempo Sync on or off. In the Compressor effect the same address is used for Attack.

My approach at the moment is to re-write the incoming sysex using StreamByter so the value of the Tempo Sync button uses a different address when the Phaser or Flanger FX effect is selected.

If you have any other ideas I'd welcome them.
One issue for using a SB translator is that the input and output rules have to be synchronized.  One way to do this is every time you change the effect type, then immediately query the board for current effect type.  This will let both sets of rules initialize to the correct type.  And if you can change on the device and it has Tx Edit, then every time you receive an Fx type change, then send the effect type.

I have done lots of Roland Effects, and understand the dilemma.  I am presuming you are using a different panel for each effect type.  Why not have copies of the similar button on the pages where they are similar, a relabeled copy on the one where it is different?  Sometimes I have hidden the label on a re-used control, then used a separate, different label on different panels.

Still thinking on a true AND, but haven't come up with anything yet. (It can be done with advanced SB rules and setting up a loopback from output to input, but that can be finicky at best, interfere with other midi routings, and end up in a big midi loop.)
...