User Tools

Site Tools


Chapter 7: Relationships with Supercontrols

Supercontrols and Subcontrols, Concepts

Supercontrols and subcontrols are an essential part of making a custom rig in MD for almost all users. Supercontrols unlock almost all of the advanced functionality and power of MD.

  • Supercontrol — A supercontrol is a control that can control the values of another control or controls. A supercontrol's value can be changed directly, from external MIDI, or via another supercontrol.
  • Subcontrol — A subcontrol is a control whose value can be changed by another control or controls. With a few exceptions (with Button Groups, particularly), the subcontrol's value can be changed directly, as well.

Super-sub relationships are set up in Design Mode

They allow for all types of relationships

  • one-to-one (A → B)
  • one-to-many (A → B and C)
  • many-to-one (A and B → C)
  • many-to-many (A and B → C and D)

Supers and subs allow for sequential chaining, so A may control B, which in turn controls C

Not Allowed
Cyclical chaining (A → B → C → A)

Rules for Supercontrols and Subcontrols

  • No Cycle — A supercontrol may not have a subcontrol that controls the supercontrol (directly or indirectly).
  • Subcontrols Spin Supercontrols — Subcontrols only spin supercontrols if the supercontrols have only one subcontrol. Therefore, it’s often useful to chain supercontrols and subcontrols (to keep everything in sync).
  • Pedalboards — Supercontrols on pedalboards are made to work with hardware. They save their previous value for the “current page” (the normal page above the pedalboard). They also only move controls on the current page. There are several options that deal with supercontrols on pedalboards (Config → Pedalboards).

Own Values
Supercontrols do not send their values out ever, unless “Supercontrols Send Own Values” is selected (Config → Options). This is a layout-wide option.

MIDI Ranges, Supercontrols and Subcontrols

To discuss MIDI ranges, you will have to consider two concepts in contrast: the MIDI range and a message type's absolute max.

The MIDI Range: MIDI Min to MIDI Max

What you've set the MIDI Min and the MIDI Max to for a control. Note: if the control is a button, this is the MIDI ON and OFF value.

The Absolute Max

The highest MIDI Max that the message type allows.

  • For most message types: 127
  • For 14-bit message types: 16,383
  • For others: 128^B - 1 where B is number of MIDI bytes

Value Scaling

If the Supercontrol reaches zero, the Subcontrol will reach its MIDI Min.

If the Supercontrol reaches its Absolute Max, the Subcontrol will reach its MIDI Max.

If the Supercontrol reaches 60% of the Absolute Max, the Subcontrol will be 60% of the way between its MIDI Min and its MIDI Max.

Example Setup

Buttons that are subcontrols do not scale their values. They only send their ON and OFF values, ever.

MIDI Range Example, Supercontrols and Subcontrols

Setup

  • A supercontrol called VOLUME with an Absolute Max of 127
  • VOLUME controls two subcontrols, GAIN and HI-CUT
  • GAIN has a MIDI range of 20-120
  • HI-CUT has a MIDI range of 100-50 (inverted!)

If VOLUME has a MIDI Range of 0 to 127, it moves

  • GAIN from 20 → 120
  • HI-CUT from 100 → 50

If VOLUME has a MIDI Range of 20 to 100, it moves

  • GAIN from 33 → 83
  • HI-CUT from 92 → 61

If VOLUME has a MIDI Range of 100 to 20, it moves

  • GAIN from 83 → 33
  • HI-CUT from 61 → 92

Creating Supercontrol Relationships

Go to the Relationships tab in the Control Properties Pane.

Control Properties Pane
Relationships Pane
  1. In the Relationships tab, turn the Supercontrol toggle on (blue).
  2. Open the Subcontrols pane by tapping the Subcontrols button.
  3. Drag to Subcontrol Button
    • Touch this button and drag it towards the desired subcontrol
    • Release your touch when its on the desired subcontrol
    • The subcontrols bounces to acknowledge the new relationship
  • The new subcontrol appears on the Subcontrols Page.
Control Properties Pane
Subcontrols Page

Editing Supercontrol Relationships

Arrange and Remove Subcontrols

With the Supercontrol selected, access Control Properties → Relationships → Subcontrols.

The order of the subcontrols matters in certain relationships, including Button Groups.

Arrange and Remove Subcontrols

With the Subcontrol selected, access Control Properties → Relationships → Supercontrols.

For both Supercontrols and Subcontrols pages, you can swipe left to delete without hitting edit.

Surprising Defaults 

  • Buttons that are controlled by knobs are automatically grouped in a button group (like “radio buttons”). See Button Groups
  • Momentary buttons that control a knob, slider, crossfader or the axis of an XY pad will automatically become a “stepper.” See Steppers
  • When you make a control a supercontrol of an XY pad, it automatically picks up both axes. Normally, you would delete either X or Y immediately.

Cool Stuff With Supercontrols

  • Use a different number of “ticks” for a supercontrol or subcontrol.
  • Make supercontrol respond to the accelerometer.
  • Use a different MIDI min and/or max for a supercontrol. You can get different, unique values by chaining supercontrols.
  • Invert a subcontrol by inverting its MIDI min/max, inverting it by selecting inverted in the control properties, or by using invert supercontrol (which inverts how the current supercontrol affects its subcontrols).
  • Use Crossfader Overlap (was called “crossfader pieces” previously) to smoothly transition between values on different controls. Here is a full explanation With Video and an advanced example
  • Send multiple MIDI messages. See this answer on Bank Change and Program Change

Invert Supercontrol

Control Properties Pane → Relationships → Supercontrol Options → Inverted — This makes subcontrols react backwards to the direction that the supercontrol is being moved.

Subcontrols Send Current Value

Control Properties Pane → Relationships → Supercontrol Options → Send Current Value — Toggle in supercontrol options and in subcontrol options. Subcontrols of the supercontrol will send their current value instead of having their value affected by the supercontrol. [ Explanation ]

Subcontrols Send Default Value

Control Properties Pane → Relationships → Supercontrol Options → Send Default Value — Toggle in supercontrol options and in subcontrol options. Subcontrols of the supercontrol will send their default value instead of having their value affected by the supercontrol.

manual/chapter-relationships.txt · Last modified: 2015/05/11 14:55 by dr2050