Question from support e-mail today:
Message:
Hi, I have MidiDesigner 2 running on an iPad. I'm using a supercontrol
slider to control two subcontrol sliders to raise and lower volume
levels of two channels on a mixer simultaneously. The channels need to
have different relative volumes but the supercontrol brings them into
alignment. Is there a way to maintain the different volume levels
whilst still raising and lowering both simultaneously with a
supercontrol? Many thanks, Phil
-----
MDP2 supercontrols maintain a fixed relationship to subcontrol. The relationship can be scaled or ranged with named ticks. But we cannot dynamically change the scaling or starting points. When the supercontrol is moved - all subcontrols will jump to the current position commanded by the super.
I originally though this would be a great use for StreamByter. Adjust the individual controls and capture current values in SB variables. When you push the “master” control up or down, measure the changed value, and add or subtract from the stored individual control values, then transmit that adjusted value.
But - two problems
- We don’t have feedback from the SB output to the individual controls on the layout, so we don’t see the current value, and touching the control will cause a jump back to the prior value.
- What about the case where the master control is at the top of its range, you pull the individuals down to the bottom, and now want to increase with the master?
A hardware device may have a continuous control for the master. But we don’t have this type control in MDP2.
There is a solution - sort of a kludge, but it works.
Stepper controls are like a single increment continuous controller. So we just need to gang several together to get values larger than 1. The example shows +/- 10 and +/- 2 buttons. (Multiples of 2 are most efficient to code - we can get two steps from each individual stepper.)
Instructions to build the controls follow, or just import the sample page and edit Control 1, 2, 3 as necessary. Do not delete Control 1, 2, 3, and replace with existing controls, or you will have a LOT of supercontrol relationships to rebuild.
The controls:
- Build one of the individual controls - Control 1. Do not build the others yet - once the +/- controls work with one control, just “make similar” as many additional instances as needed - this saves lots of hooking up subcontrol relationships.
- For all controls below, select midi receive off.
Build one up stepper group
- Individual up stepper - momentary, supercontrol of Control 1, Options as super - stepper, no wrap around
- Make similar desired number of instances (+2 needs 1 + 1, +10 needs 5 + 1, etc)
- Make a knob to group the up steppers, supercontrol, assign the 2, 6, … up steppers, set number of ticks = number of subcontrols (see hint)
- Make a relay button, toggle, supercontrol of the group knob, options as super - snap to value 25 ms (not needed for +2, but needed for higher numbers - this ensures the super activates each individual stepper as it goes up or down, instead of just jumping to the max/min value)
- Put all above on a panel and select hide in play mode
- Finally - the button that gets pressed - momentary, supercontrol of the relay button, labeled as desired.
For the down groups, same as above, but the individual down steppers also have “inverted” in options as supercontrol.
Hint - To automatically update ticks to match number of subcontols, on the properties tab showing the subconrols, tap edit, then just tap one of the hamburger icons to the right.
The snap to value time can be increased if the control movement is too fast.
There is another similar kludge that provides arbitrary amounts of increase on one control, decrease on a separate control, but it is fairly touchy, and sort of unintuitive. Will keep noodling with it.
See in action at: