Control Change setup

Channel

Select the Midi channel that should be used. When you change Midi channel for one button, the change affect that button only but the new Midi channel selected will be the default channel for all new buttons that will be created from that point on (for all kind of commands).

Please note that the Midi channels are numbered 1-16 (that is normal for humans) but the Midi protocol uses 0-15 (that is normal for computers). If your daw/device uses 0-15 numbering, please subtract 1 from the channel in the dropdown list.

Command

Select the command that should be triggered. The dropdown list include "standard" command names but the command sent only include the number of the command. The actual result of the command change is determined by the device/daw that receives the command.

Value

Set the values that should be sent for "On" and "Off" for the command. The default values are 127 for "On" and 0 for "Off" but if your device/daw require some other values you can change them.

Button type

Select how the button should interact with the device/daw:

  • A Push Button will always send an "on" command when it is pressed.
  • A Toggle Button alternates between "on" and "off" when it is pressed.
  • A Hold Button will send an "on" command when it is pressed and an "off" command when the button is released.
  • A Fader Button repeatedly sends increasing or decreasing values as it is pressed and can be used to control e.g. a volume fader. Two Fader buttons can be configured to control the same fader, one increasing and the other decreasing the value.
  • A Cycle Button cycles through a distinct set of values defined in a configuration file.

Minimum hold time
(Only visible if button type is "Hold")

For Hold buttons, some devices or daws might miss the "off" command if it is sent too soon after the "on" command. The Cubase "Forward" function will e.g. ignore the "off" command if it is sent quicker than 250 milliseconds after the "on" command (...don't ask me why). If you hit a Hold button a very short time and the recipient system doesn't react on the "off" command, try to add a minimum hold time (milliseconds). If your key press is shorter than that time, the plugin will delay the sending of the "off" command until the minimum time has passed.

Fader step
(Only visible if button type is "Fader")

When a Fader Button is pressed, it start sending values from whatever level it had. The Interval field defines how often new values should be sent while the Increment field defines in how large steps the value should be incremented/decremented. The default values will increase/decrease the value one step every 100 milliseconds, i.e. 10 steps per second the button is pressed.

The First Delay field enables a delayed start of the repetitions and can be used to alter the functionality of the Fader button.

  • If set to 0, the repetitions start immediately.
  • If set to a reasonably small value (say 500 ms) you will get a computer keyboard kind of behavior where you get an immediate action when you press the button, and the repetitions will start after a while.
  • If set to a large value (say 5000 ms) you will get a Step button that only increment/decrement the value a single step (according to the Increment field) every time it is pressed.
A Fader button can show a value on the button. This value could be the simple Midi value sent/received or it could be a translated value (e.g. a db value for a volume fader). In the dropdown, select if No value, the Midi value or a Translated value should be displayed on the button. For a translated value to be displayed, you must also select the file that holds the mappings between midi values and translated values. Please see Translation files for more details.

Cycle step
(Only visible if button type is "Cycle")

A cycle button is totally dependent on a configuration file ("Translation file") that defines the steps that the button should cycle through. Each time the button is pressed it moves to the next configured item in the configuration file, sends the Midi value and displays the (possibly translated) value on the button and (optionally) a button image for that specific value.

The End behavior dropdown defines the behavior when the button comes to the last item in the configuration file.

  • Stop means that no more increments are made, it is "stuck" on the last item in the list and each time the button is pressed the same value is sent (as defined in the last item in the list).
  • Loop means that it will loop around and start over from the other side of the list.
  • Bounce means that it will change direction and going back through the list in the direction it came from.
A Cycle button will show a value on the button as defined by the translation file. Each item in the list can have a unique display both in terms of text and image. Please see Translation files for more details.

When a new Cycle button is defined, it will always start on the first item in the configuration file, and move "up" (i.e. every press move to the next item in the list). You can at any time change direction by holding the button pressed for more than one second.

Midi Out port

Select the Midi port that should be used for sending commands. If available, the default port "StreamDeck2Daw" is selected when you create a button but you can select any other port if required. When you change Midi port for one button, the change affect that button only but the new Midi port selected will be the default port for all new buttons that will be created from that point on (for all kind of commands).

Midi In port

Select the Midi port that should be used for receiving commands. If available, the default port "Daw2StreamDeck" is selected when you create a button but you can select any other port if required. When you change Midi port for one button, the change affect that button only but the new Midi port selected will be the default port for all new buttons that will be created from that point on.
If the button is a Push Button and you don't require feed-back of the command for the button, please set the input port to "No MIDI Input". This will tell the plugin that the other party will never send any state to the button, and since it is a Push Button the plugin will always keep it in the "off" state.

Icon

Initially, the same icons are set for all midi actions. You can of course chose whatever icons you like, but a set of Midi related icons are bundled with the plugin (please see the Installation section for details).

The Midi Control Change action in StreamDeck is defined to have two states and hence have two icons. The first icon is used for the off/inactive state and an icons displaying this state should be chosen. The second icon is used for on/active state and an icon indicating this should be selected.

If a translation file is used, you can have unique icons for every step defined in the translation file. If you want to use that feature, you must not define any icons for the action itself in the Stream Deck editor. Please see Translation files for more details.

Button states

Some actions are instant actions that really haven't any on or off states (e.g. "go to next marker"). These actions should be configured as Push buttons and need only have the first icon configured. For these actions it is important to set the Midi in port to "No MIDI Input" so the plugin knows that the state will never be changed by the other party.

For actions that receive feed-back from the other party, please select the appropriate Midi in port. The state of the button will in this case be a mix of local actions and remote actions.
Example: assume that you configure a button to activate the "Play" function in Cubase (using Generic Remote). If you press Play in Cubase, that command will be sent to the plugin and the button will show the "active" state. If you press the StreamDeck Play button, the command will be sent to Cubase but there will not be any immediate response (for the Play function); in this case the plugin itself set the button in the "active" state. If you now press "Stop" in Cubase, the state for the Play button will be changed by Cubase. Hence the state of the button will be controlled from two sides; this might sometimes cause the button to be out of sync with the actual state, but as soon as a state is sent from the other party it will be in sync again.

Fader and cycle buttons do not have "states" (active/inactive) per se since they handle continuous/step values. The values range from 0 to 127 and as long as the value is below the defined "On" value for the button, the "inactive" state icon will be used. When the value is above the "On" value of the button, the "active" icon for the button will be used. You can use this eg. to get a visual clue if a volume exceeds a certain level. If you use a translation file, more visual states may be displayed as each step can be given a unique image.