Script events

Event types

Available events are...

  • Button initialization

  • Button press

  • Button release

  • Received Control Change command

  • Received NRPN command

  • Received Program Change command

  • Received Note On command

  • Received Note Off command

  • Received Channel Pressure command

  • Received PitchBend command

  • Received Sysex command

  • Changed variable content

  • Configuration parameters

Button initialization event

The button initialization event is triggered when the button is loaded, either when Stream Deck starts or when a profile/page/folder with the button is loaded. The primary purpose of the init event is to prepare an image and text on the button, but any action can be executed.

Incoming Midi events

For incoming Midi events, all commands triggered by the event are run. If an incoming midi event triggers multiple commands, they are executed in the order they appear in the script.

The plugin monitors both midi commands sent from your daw and commands sent from Stream Deck buttons.

Press/release events

For button events, multiple script commands can be defined, and if so, the plugin will cycle through them one by one and loop back to the first script command after executing the last defined command. Press and release events are treated as pairs since you can't press a button without eventually releasing it.

Command order

The order of button commands is important. When the button is pressed and released, the commands will be executed in the order they appear in the script.

The following example will mimic a Hold button that plays a note while the button is held.



If an accompanying event is missing, no action will be taken for the event. The following example will mimic a Toggle button where a note starts with the first press and stops with a second press (no actions are taken on the release events).



Please note that many events are treated differently when used in multi-event commands. This table describes the event logic used in single-event commands; please see the Multi-event commands page for the event logic in multi-event commands.



The (init) event is triggered once for each button; when the button is loaded.