Control Change/NRPN setup
Overview
The options available in the editor depend on the selected button type.
Push, Hold, and Toggle buttons have pretty simple configuration options, while Cycle, V-Pot, Scrub wheel and Fader buttons are more complex.
The features for the button types are described individually so as not to confuse things.
Channel
Select the Midi channel that should be used. When you change the Midi channel for one button, the change affects that button only, but the new Midi channel selected will be the default channel for all new buttons created from that point on (for all kinds of commands).
Please note that the Midi channels are numbered 1-16 (normal for humans), but the Midi protocol uses 0-15 (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 actual result of the command change is determined by the device/daw that receives the command.
By default, the dropdown list includes "standard" commands, but if these names are irrelevant to your configuration, you can change them to other names (please see Option files for more details).
The standard command list is divided into NRPN, Single byte, and Dual byte commands.
NRPN commands can be any of the 16.384 available commands with a value range of 0-16.383.
Single byte commands can be any of the 128 available commands with a value range of 0-127.
Dual byte commands are combinations of two single byte commands and have a value range of 0-16,383, or if you prefer to see it that way, two values in the range 0-127. A dual byte command will be sent as two separate commands; how those two commands are interpreted depends on the receiving daw.
Button type
Select how the button should interact with the device/daw:
A Push button will always send an "on" command when pressed.
A Toggle button alternates between "on" and "off" when pressed.
A Hold button will send an "on" command when pressed and an "off" command when the button is released.
A Fader button repeatedly sends increasing or decreasing values while being pressed and can be used to control, e.g., a volume fader. Two Fader buttons can be configured to control the same fader, increasing and decreasing the value.
A Cycle button cycles through a distinct set of values defined in a configuration file.
A V-pot button repeatedly sends increasing or decreasing values while pressed and can be used to control, e.g., a pan control. Two V-pot buttons can be configured to control the same target control, one increasing and the other decreasing the value. You can also have a single V-pot button where you switch direction by double-pressing the button.
A Scrub wheel button repeatedly sends the same value while being pressed and can be used to control endless controls. The Scrub wheel button is the same as a V-Pot button in most parts, except that it is endless and constantly sends the same value instead of an increasing/decreasing value.
Select a section below to learn more about the selected button type.
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. If a single byte command is selected, the max value is 127; if NRPN or a dual byte command is selected, the max value is 16,383.
The dropdown determine how received values affect the button state. The options are:
The On value and all values above will set the button in the On state. Values below the On value will set the button in the Off state.
The On value will set the button in the On state. All other values will set the button in the Off state.
The On value will set the button in the On state. The Off value will set the button in the Off state. All other values are ignored.
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.
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 the Midi port for one button, the change affects that button only, but the new Midi port selected will be the default port for all new buttons created from that point on (for all kinds 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 the Midi port for one button, the change affects that button only, but the new Midi port selected will be the default port for all new buttons created from that point on.
If the button is a Push Button and you don't require feedback on 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, choose 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 two icons. The first icon is used for the off/inactive state, and an icon indicating this should be chosen. The second icon is used for the 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 icons for the action in the Stream Deck editor. Please see the Translation files for more details.
If you use fader buttons with Mixer-like or your own fader images, you must not define any icons for the action in the Stream Deck editor. Please see the Fader configuration for more details.
Button states
Some actions are instant actions with no on or off states (e.g., "go to next marker"). These actions should be configured as Push buttons and only need the first icon configured. For these actions, setting the Midi in port to "No MIDI Input" is important so the plugin knows that the other party will never change the state.
For actions that receive feedback from the other party, please select the appropriate Midi in port. In this case, the state of the button will be a mix of local and remote actions.
For 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 sets 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.
Push buttons never set the "On" state themselves but can show an "On" state if the exact value defined as "On" is received; all other values will set the state to "Off".
Toggle and Hold are set to the "On" state if the exact value defined as "On" is sent or received; all other values will set the state to "Off".
For Push, Toggle and Hold buttons, the "On" state is set whenever the exact value defined as "On" is sent or received; all other values will set the state to "Off". For Fader buttons, the state will be "Off" as long as the fader value is below the value defined as "On" and will be "On" when the fader value is on or above the value defined as "On".
Fader, V-pot, 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 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.