Cubase Midi Setup
The StreamDeck plugin uses the functionality in the "Generic Remote" device in Cubase, so in the list of remote devices in Studio Setup, "Generic Remote" must be present.
- Midi connections
1. Select the Midi ports created using loopMIDI.
Midi Input = "StreamDeck2Daw"
Midi Output = "Daw2StreamDeck".
2. In the Studio - MIDI Port Setup in Cubase, remove both "StreamDeck2Daw" and "Daw2StreamDeck" from "In 'All MIDI In'", otherwise midi input from StreamDeck might cause unexpected results.
3. Also (optional) remove visibility for "In - Daw2StreamDeck" and "Out - StreamDeck2Daw". These ports should never be used in those roles, and hiding them minimizes the risk of unintentially selecting them later on.
4. (optional) import the template bundled with the plugin. This gives you quick start and an idea of what configuration should look like (please see the Installation section for details).
- Command configuration
Control Name (upper section): the name that you want to see in the dropdown list in the StreamDeck editor. Important! this name must be unique in the list otherwise strange things happen - but there is nothing that prevents you from entering multiple commands with the same name....
- MIDI Status: is a somewhat puzzling label since it's rather what kind of communication it refers to. Important! this must be set to "Controller", it's the only thing that is implemented in the plugin.
MIDI Channel: Any channel. It doesn't make any functional difference what channel you chose, but the combination Channel+Address must be unique for each command in the list.
Address: Any address. It doesn't make any functional difference what address you chose, but the combination Channel+Address must be unique for each command in the list. Please note that this address is not (in this context) associated with the normal CC numbers."CC1" would normally be associated with modulation wheel, but in the setup for the plugin it is only a generic number that identifies the command that should be triggered.
Max Value: Set to 127. The important thing is that it is non-zero since this indicates the "on" state of a function. (...could probably be set to something else if you want to control e.g. some volume and set it to a fixed value, but this is not tested)
Flags (upper section): These flags control how communication regarding the command will be handled.
- For the purpose of the plugin, all commands must have the "R" (Receive) flag set, otherwise Cubase won't react to the command.
- If it is a command that includes a state (e.g. Play, Stop, Record, Cycle) the "T" (Transmit) flag should be set - this causes Cubase to send the state to StreamDeck whenever it changes for whatever reason. Commands that just "execute once" (e.g. "go to next marker") should not have the "T" flag set. The latter is important because the plugin checks that flag to determine if the button should always be shown in the same state (e.g. "go to next marker" shouldn't be "On" when you have pressed it).
- The "R" (Relative) flag should be set for toggle commands that in the lower flags section has "T" (only), otherwise StreamDeck and Cubase might occasionally lose synchronization of the state.
- The "P" (Pick-up) flag has no meaning for the plugin (and probably not for Cubase either in the context of plugin communication).
Control Name (lower section): is automatically set to sync with the name on the corresponding row in the upper section.
Device, Channel/Category and Value/Action: select the action you want to perform when the command is triggered from StreamDeck. The plugin doesn't know and doesn't care what settings you enter here.
Flags (lower section): These flags control how the plugin (and Cubase) handle a command when a button is pressed.
- Push Button (P) indicates that the command always is an "on" command (e.g. "Play")
- Toggle Button (T) indicates that the command toggles between "on" and "off" (e.g. "Cycle")
- Push and Toggle at the same time (PT) indicates that the command is "on" while the button is pressed and "off" when the button is released (e.g. "forward" and "rewind").
- Neither Push nor Toggle indicates that the command is a "Fader/Knob" command and while the button is pressed the value for the fader/knob will be increased/decreased according to the Stream Deck button configuration.
- If the buttons don't behave as you expect them to, play around with these settings. Some buttons work equally well as Push buttons and Toggle Buttons (e.g. "record") and it's more a matter of taste how you want it to work.
Bank buttons and dropdown (lower section): should not be used when editing commands for the StreamDeck plugin. The plugin always work with the first bank regardless of its name and regardless of if there are more banks present.
- Cubase/plugin integration
- Whenever you make any changes in the Cubase setup, these changes are stored in an xml file. This file is read by the plugin and whatever is in that file controls completely how the plugin operates, both regarding what is displayed in the editor and what the action is when a button is pressed.
- If multiple versions of Cubase are installed on the computer, the plugin will automatically read the file for the highest installed Cubase version (see Advanced configuration if you want to use another version of Cubase).
- If multiple Generic Remote devices are configured in Cubase, the plugin will automatically use the first defined Generic Remote device (see Advanced configuration if you want to use another Generic Remote device).
- Some advice and warnings
When importing definitions to the Generic Remote configuration, always click the Apply button. The generic remote setup sometimes just forget that you loaded a file unless you do this.
Make a habit of exporting your setup every once in a while (when making changes). The generic remote setup in Cubase is know to be somewhat shaky and sometimes things happens that is not expected (see below).
Warning! there is a bug in Cubase regarding the "Delete" button on the generic remote setup screen (at least in Cubase 10.5 where it is confirmed by Steinberg). According to the manual the "selected" command should be deleted. According to reality, the second command in the list is always deleted regardless of which command is selected. This makes it tricky to make major changes to the command list, and I tend to rather edit the xml file and import it rather than trying to remove commands through the GUI.
Configure each command that you want to control from StreamDeck as follows: