Devices panel, Hardware controllers
The Devices panel is where you map a physical MIDI controller (faders, knobs, buttons, LEDs) to your show, without writing a script. Open it from the Devices tab in the top toolbar, next to Back, Front and Logic.
It is the no-code counterpart to the Logic panel: the same hardware-to-control wiring you could hand-write as a script is offered here as a visual surface, with bidirectional LED feedback handled for you.
How a controller is detected
Stagewright ships controller profiles, declarative descriptions of known hardware (the AKAI MIDI Mix is the first). A profile knows the device's physical layout: which control sends what, and which note lights each LED.
A controller appears in the Devices panel automatically when a MIDI-in card on the Back panel is assigned a device whose name matches a profile. For the AKAI MIDI Mix, that is the card named MIDI Mix. The same logical name a script would use with midi.input('MIDI Mix') is what the panel matches on, so a profile keeps working across rigs as long as the card name stays the same.
Every matching card is listed in the left rail, so several controllers can be configured side by side.
Nothing in the panel yet?
If the rail is empty, add a MIDI-in card on the Back panel and pick your controller as its device. The panel refreshes when you open the tab.
What you map to: front-panel controls
Each hardware control is mapped to a front-panel control, the knobs, faders and buttons you place on the Front panel. The dropdown lists them by their on-screen label; behind the scenes each is addressed by its Name (set in the control's inspector), which is the same identifier a script uses with widget('NAME'). See Widgets API for the underlying model.
So the chain is: hardware control, to front-panel control, to whatever that control is itself bound to (a plugin parameter, a mixer strip, a script macro). The front-panel control stays the single source of truth, and the panel, the hardware and any script all stay in sync through it.
Mapping a control
- Pick the device in the left rail.
- For a button (mute / solo / rec), choose a front-panel control from its dropdown. The button's signature is already known from the profile, so the binding is immediate, and the LED lights to match the control's current state.
- For a fader or knob, the profile cannot know the CC under your personal controller remap, so the panel learns it: pick a control, then move the fader/knob once. Stagewright captures the CC live and binds it.
Choosing — none — removes the mapping.
LED feedback, automatic
When a mapped button's control changes (from the hardware, the UI, or a script), Stagewright sends the matching LED message back to the device. This is the bidirectional feedback an AKAI MIDI Mix script would normally hand-roll with sendNoteOn; here it falls out of the profile. The on-screen dot on each slot mirrors the hardware LED.
Feedback runs for the lifetime of the app, not just while the panel is open, so the lights stay correct during a show with the Devices tab closed.
Persistence
Mappings are saved in the project file (under the per-project extras) and restored on load, keyed by the device's card name so two controllers never collide. On load, Stagewright replays the bindings and re-syncs the device LEDs to the project's state.
Relationship to scripting
Anything the Devices panel does can also be expressed in the Logic panel, and the two coexist: use the panel for the common cases (buttons to mutes, faders to volumes, LEDs that track state) and drop into a script for bespoke logic (exclusive-solo groups, macro pairs, conditional routing). See MIDI input & output for the scripting equivalent.