LiveWing
Companion Module

Bitfocus Companion

Control LiveWing from Bitfocus Companion using a Stream Deck, MIDI, web buttons, or any supported device.

The LiveWing Companion module connects to LiveWing's WebSocket API and exposes actions, feedbacks, and variables you can assign to any Companion-compatible surface.

Connection setup

Add a new connection, select LiveWing, and configure:

  • Host — IP address of the Mac running LiveWing (127.0.0.1 if Companion is on the same machine)
  • Port8099 (default)
  • Token — the API token set in LiveWing's settings

Bonjour discovery is supported — LiveWing advertises itself on the local network as _livewing-api._tcp.

Presets

The module ships with ready-to-use button presets. Import them from the Presets tab in Companion and drag them onto your layout.

CategoryWhat's included
ProgramOne button per source — cuts to program, lights red when live
PreviewOne button per source — routes to preview, lights green
TransitionsCUT, FADE 0.5s / 1s / 2s
AudioMute toggle per source, lights red when muted
RecordingStart/stop per recorder, lights red while recording
ReplayEnter, Exit, Play, Pause, Quick Replay, Mark In/Out, Clear Marks, Play Last Event, Live Edge, Step Frame, Skip ±2s, Loop
Replay Speeds0.25×, 0.50×, 0.75×, 1.0× — active speed lights green
Replay AnglesOne button per source — switches angle, lights blue when active

Feedbacks update in real time via subscriptions — no polling required.

FeedbackTriggers when…OptionsDefault color
Source on ProgramSource is on program outputSourceRed
Source on PreviewSource is on previewSourceGreen
Source Audio MutedSource is mutedSourceRed
Source Audio SoloedSource is soloedSourceYellow
Recorder ActiveRecorder is recordingRecorder (1–4)Red
In Replay ModeReplay mode is activeBlue
Replay PlayingTransport is playingGreen
Replay PausedTransport is pausedOrange
Replay StoppedTransport is stoppedGrey
Replay LoopingLoop is enabledBlue
Replay Speed MatchCurrent speed equals configured valueSpeedGreen
Replay Angle ActiveSource is the active replay angleSourceBlue
Output EnabledOutput channel is enabledOutput (1–4)Red
Overlay Slot ActiveOverlay slot is visible on programSlot (1–4)Yellow
Source HealthySource has a live signalSourceGreen
Source DisconnectedSource has no signalSourceRed
Transition In ProgressA transition is runningOrange

Variables update automatically and can be used in button labels.

VariableDescription
$(livewing:programSourceId)Program source ID
$(livewing:programSourceName)Program source name
$(livewing:previewSourceId)Preview source ID
$(livewing:previewSourceName)Preview source name
$(livewing:recorder0State)Recorder 1 state (idle / recording)
$(livewing:recorder1State)Recorder 2 state
$(livewing:recorder2State)Recorder 3 state
$(livewing:recorder3State)Recorder 4 state
$(livewing:replayMode)Whether replay mode is active
$(livewing:replayState)Transport state (playing / paused / stopped)
$(livewing:replaySpeed)Current playback speed
$(livewing:replayActiveAngle)Active replay angle source ID
$(livewing:replayActiveAngleName)Active replay angle source name
$(livewing:replayIsLooping)Whether looping is enabled
$(livewing:replayCurrentTime)Playhead position in seconds
$(livewing:replayDuration)Clip duration in seconds
$(livewing:replayMarkingMode)Marking mode (live / recorded)
$(livewing:replayActiveEventBin)Active event bin index
$(livewing:output0Enabled)Output 1 enabled state
$(livewing:output1Enabled)Output 2 enabled state
$(livewing:output2Enabled)Output 3 enabled state
$(livewing:output3Enabled)Output 4 enabled state
$(livewing:source_N_name)Name of source N (one per connected source)
$(livewing:source_N_health)Health of source N (live / disconnected / unknown)

Example: set a button label to PGM: $(livewing:programSourceName) to show the current live source.

On this page