Performer widgets
Every front-panel widget kind, what it renders, what it binds to, and the inspector knobs that shape it.
All widgets share these inspector fields:
- Name, script identifier (
widget(name)). Must be unique per project; can be blank for non-scripted widgets. - Label, user-visible text drawn on / next to the control. Can repeat ("GAIN" on every strip).
- Size, small / medium / large preset, or free-resize via the corner handle in edit mode.
- Color, accent color for the widget's active state.
- Locked, mouse / touch input ignored; MIDI bindings still drive it.
Continuous widgets
| Widget | Use | Default size | Constraint |
|---|---|---|---|
| SwKnob | Rotary, any continuous parameter | small (2×2) | square |
| SwFader | Console-style throw | small (2×8 tall) | tall |
| SwExpressionPedal | Foot rocker | small (4×10 tall) | tall |
| SwSustainPedal | Sustain on/off (boolean but rendered like a pedal) | small (4×10 tall) | tall |
| SwDrawbar | Organ drawbar with 9 detents | small (2×8 tall) | tall |
All accept the per-control scaling curve (linear / log / exp / s-curve) and anti-misclick drag threshold.
Boolean widgets
| Widget | Use | Default size | Constraint |
|---|---|---|---|
| SwButton | Momentary | small (2×2) | square |
| SwToggle | Latching lever, optional on/off icons | small (2×2) | square |
| SwLed | Read-only state lamp | small (2×2) | square |
| SwLedButton | Latching button with embedded LED | small (2×2) | square |
| SwPad | Velocity-sensitive square pad (MPC-style) | small (2×2) | square |
Iconic toggles: set iconOn / iconOff in the inspector to any Phosphor icon name. The lever visual is replaced with the icon; on / off uses opacity to differentiate.
Radio groups: assign a radioGroupId. Members can only be turned ON by activating one; clicking the currently-on widget is a no-op.
Display widgets
| Widget | Use | Default size | Reads from |
|---|---|---|---|
| SwMeter | Digital level meter | small (2×4 tall) | bound parameter |
| SwBargraph | Bar-style level meter | small (2×4 tall) | parameter OR mixer-peak binding |
| SwVuMeter | Analog VU needle | small (8×4) | parameter OR mixer-peak binding |
| SwTuner | Note glyph + cents needle | small (8×4) | tuner-node binding |
| SwMetronome | Play / BPM / beat dots | small (10×4) | metronome-node binding |
Mixer-peak bindings (SwBargraph / SwVuMeter): pick the mixer
- strip + L/R side. Reads live from the engine's post-fader peak stream every 16 Hz. Read-only (peaks aren't user-settable).
Layout widgets
| Widget | Use | Default size | Notes |
|---|---|---|---|
| SwLabel | Free-form text label | small (2×2, free shape) | Drives the widget's label field as standalone text |
| SwPanel | Visual grouping rectangle | small (4×4, free shape) | Border + background colours configurable |
Use Panel to colour-code regions of your front panel (a green "Guitar" panel, a navy "Piano" panel). Labels for static text that doesn't drive anything, song name, scene number, FOH comms.
Binding overview
Every widget (except SwLabel and SwPanel) supports one of these binding kinds, set in the Connectivity panel of the inspector:
| Kind | Compatible widgets | What it does |
|---|---|---|
plugin-param | knob, fader, toggle, button, led-button, pad | Reads / writes a single plugin parameter |
plugin-bypass | toggle, button, led-button | Flips a plugin's bypass (toggle ON = plugin active) |
plugin-peak | bargraph, vumeter | Reads a Channel Mixer strip's post-fader peak (read-only) |
tuner-node | tuner | Mirrors a back-canvas Tuner card's reading |
metronome-node | metronome | Mirrors a back-canvas Metronome card's state |
| (unbound) | any | Script-only state, widget('NAME').set(...) writes, mouse / hardware MIDI updates the local value |
Inspector niceties
- Tooltips on every inspector field explain what the field does, in performance-distance copy.
- Strip backgrounds (graphite / navy / forest / crimson / ochre / plum) for colour-coding rows of strips.
- Per-control feedback chip shows current value next to the widget (toggle in the inspector). dBFS for meters, percent for knobs, "+3¢" for tuner cents-off.
See Bindings for the binding picker UI and Scripting → Widgets API for the script side.