Map any button to anything
A tablet, MIDI pad, Stream Deck key, foot pedal or contact closure can fire any action in the app. The pattern is the same for all of them.
Controller nodes (Add Controller in the right-click menu) all work the same way:
- Whatever you press or move comes out of the node's State pin as data keys, for example
midictl.Pads.pad3,oscsurf.Tablet.1.fader1orhotkeys.Keys.next. - Feedback rows light the controller's LEDs and keys from ShowKontrol's state: deck playing, on air, cue active, E-STOP, any data key.
So mapping a button is State → Trigger → Action.
OSC: the guided way#
- Add Controller → OSC In. Set Listen Port to the port your tablet or app sends to (8000 by default).
- In the node's settings, open the KEYS drawer and click + Add Key. Pick an address it has received, Type Address…, or Learn (next received) and touch the control.
- You land inside the node with a Trigger already watching that address.
- Add an Action, wire the trigger into it, set Category = Application and pick an action from the submenus, for example Screens › Live or System › E-STOP Engage.
MIDI pads, Stream Deck, pedals, GPI#
| Controller | Key to trigger on |
|---|---|
| MIDI Controller (Launchpad, APC…) | midictl.<Name>.padN, State On |
| Stream Deck node | streamdeck.<Name>.keyN, State On |
| Hotkeys (keyboard, pedal, clicker) | hotkeys.<Name>.<Label>, State On |
| Game Controller | gamepad.<Name>.a …, State On |
| Serial GPI | gpi.<Name>.inN, State On |
| Mackie Control | mackie.<Name>.play …, State On |
Right-click the key in the node's Live Data → Add Trigger, then add the Action.
Light it up#
Add a Feedback row on the controller node. Choose the pad or key, a condition (Deck Playing, Cue Active, E-STOP, Data Key …) and a colour. The first active row for a pad wins.
