Skip to main content

Executor Pages

Executor Pages are infinite canvas surfaces where you place interactive widgets โ€” buttons, faders, color pickers, and more. They are the primary live control surface in phix, similar to a hardware wing.

Understanding the canvas#

Each executor page is an infinite canvas with a configurable viewport (pan and zoom). Widgets are placed at arbitrary (X, Y) positions and have explicit width and height.

You can have multiple pages and switch between them instantly:

execpage add "Main Controls"execpage add "FX Controls"execpage select 0    -- switch to page 0execpage select 1    -- switch to page 1

Widget types#

WidgetDescription
ButtonTriggers an action on press (or toggle)
FaderControls a value continuously (0โ€“100%)
ColorPickerInteractive color selection pad
XYPadTwo-axis control pad (e.g., pan/tilt)
LabelStatic text label
GroupGroup container for organizing widgets
RegionScope zone โ€” restricts changes to a fixture group

Button behaviors#

BehaviorDescription
momentaryFires action once on press
togglePress to activate; press again to deactivate
flashActive while held, releases on mouse-up
toggleflashToggle + flash combined
latchActivate on press, deactivate on next press
gobackGo back one cue on the bound sequence
goto:<cue>Jump to a specific cue number

Fader types#

Fader typeDescription
levelGeneric level / dimmer (0โ€“100%)
speedControls BPM of a linked speed master
timeControls a time master multiplier
grandControls the Grand Master

Widget bindings#

Each widget is bound to a backend object:

BindingExamples
PresetApply a preset on press
CueStackGo/back/flash a sequence
GroupSelect a fixture group
MasterControl a speed, time, or grand master
ExecutorControl an executor's level and buttons
CommandExecute any text command

Adding widgets via command line#

execpage widget add button preset 3.1 "Red" 0 0 2 2execpage widget add fader master 0 "Grand" 10 0 1 4execpage widget add button cuestack 0 "Go" 0 3 2 2 momentary

Arguments: <widget_type> <binding_type> <binding_ref> "<label>" <x> <y> <w> <h> [options]

Moving and resizing widgets#

execpage widget move <id> <x> <y>execpage widget resize <id> <w> <h>execpage widget remove <id>

Triggering widgets programmatically#

execpage trigger <widget_id>       -- pressexecpage release <widget_id>       -- release (for flash)execpage fader <widget_id> 0.75    -- set fader to 75%

Setup mode#

Enable setup mode to move and resize widgets without accidentally triggering them:

execpage setup onexecpage setup off

Regions#

A Region widget defines an area of the canvas that restricts actions to a specific fixture group. When a region is active, preset recalls and attribute changes only affect that group's fixtures rather than the full programmer selection.

This is useful for busking โ€” set up regions for different fixture groups and tap them to quickly switch context.

execpage widget add region group 1 "Wash Zone" 0 6 6 4

Viewport control#

Adjust the current page's view:

execpage viewport 0 0 1.0    -- pan to 0,0, zoom 100%execpage viewport -100 0 0.5 -- pan left, zoom out