Program Change setup

Overview

Use the Program Change action to send Program Change messages, optionally accompanied by Bank Select messages. The options available in the editor are dependent on the selected button type.



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.

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.

Button type

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

  • A Push Button will send a program change command, optionally accompanied by a bank select command when it is pressed.
  • A Cycle Button cycles through a distinct set of program change commands defined in a configuration file. Cycle buttons do not send bank select commands.

Program / Bank
(Only visible if button type is "Push")

Select the program that should be triggered, optionally with accompanying bank number(s). When you change the program or bank, the program change command will immediately be sent to the connected daw/midi device so you can verify that the expected action is taken. The program/bank commands sent only include the numbers of the program and bank; the actual result of the commands is determined by the device/daw that receives the commands.

If "Send Bank Select" is marked, the value in the Coarse field will be sent as a Control Change 0 message, and the value in the Fine field will be sent as a Control Change 32 message. If you want the plugin only to send the Coarse or the Fine command (not both), leave the other command empty (=blank).

By default, the program dropdown list includes program names as defined in the General Midi standard, but if these names are not relevant to your configuration, you can change to other names (please see Option 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 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.
The Manual direction switch dropdown defines if you should be able to switch direction manually and, if so, by what method.
  • Never means that you cannot switch direction manually.
  • When held longer than... means that the button will switch direction if you hold the button longer than the number of milliseconds defined.
  • When double pressed within... means that the button will switch direction if you press the button twice within the defined number of milliseconds.
Please note that a button with End behavior=Bounce will always switch direction when it reaches the end of the list, regardless of this Manual switch direction setting.

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).

Direction indicators can be superimposed on the button image; please see the Translation files page for details.


Midi Out port

Select the Midi Ouit port that should be used. If available, the default port "StreamDeck2Daw" is selected when you create a button but you can select any other port if required.

Midi In port
(Only visible if button type is "Cycle")

Select the Midi In port that should be used. If available, the default port "Daw2StreamDeck" is selected when you create a button but you can select any other port if required. Messages on Midi in is primarily used to show state (text and/or image) on the button and but will set the "current value" which might affect the next button press.

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).

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 icon for the action itself in the Stream Deck editor. Please see Translation files for more details.