Skip to content

Performer widgets ​

Every Stage 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 ​

WidgetUseDefault sizeConstraint
SwKnobRotary, any continuous parametersmall (2×2)square
SwFaderConsole-style throwsmall (2×8 tall)tall
SwExpressionPedalFoot rockersmall (4×10 tall)tall
SwSustainPedalSustain on/off (boolean but rendered like a pedal)small (4×10 tall)tall
SwDrawbarOrgan drawbar with 9 detentssmall (2×8 tall)tall

All accept the per-control scaling curve (linear / log / exp / s-curve) and anti-misclick drag threshold.

Boolean widgets ​

WidgetUseDefault sizeConstraint
SwButtonMomentarysmall (2×2)square
SwToggleLatching lever, optional on/off iconssmall (2×2)square
SwLedRead-only state lampsmall (2×2)square
SwLedButtonLatching button with embedded LEDsmall (2×2)square
SwPadVelocity-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 ​

WidgetUseDefault sizeReads from
SwMeterDigital level metersmall (2×4 tall)bound parameter
SwBargraphBar-style level metersmall (2×4 tall)parameter OR mixer-peak binding
SwVuMeterAnalog VU needlesmall (8×4)parameter OR mixer-peak binding
SwTunerNote glyph + cents needlesmall (8×4)tuner-node binding
SwMetronomePlay / BPM / beat dotssmall (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 ​

WidgetUseDefault sizeNotes
SwLabelFree-form text labelsmall (2×2, free shape)Drives the widget's label field as standalone text
SwPanelVisual grouping rectanglesmall (4×4, free shape)Border + background colours configurable

Use Panel to colour-code regions of the Stage view (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:

KindCompatible widgetsWhat it does
plugin-paramknob, fader, toggle, button, led-button, padReads / writes a single plugin parameter
plugin-bypasstoggle, button, led-buttonFlips a plugin's bypass (toggle ON = plugin active)
plugin-peakbargraph, vumeterReads a Channel Mixer strip's post-fader peak (read-only)
tuner-nodetunerMirrors a Wiring-canvas Tuner card's reading
metronome-nodemetronomeMirrors a Wiring-canvas Metronome card's state
(unbound)anyScript-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.