Controlling WATCHOUT via TCP or OSC (External Control Protocol)
Controlling WATCHOUT via TCP or OSC (External Control Protocol) Overview
WATCHOUT can be controlled externally by third-party systems (AMX, Crestron, Medialon, QLab, etc.) using a TCP-based text protocol. WATCHOUT 7 also adds native OSC support. This article covers both approaches and the key differences between WO6 and WO7.
WATCHOUT 6: Legacy TCP Protocol
Connection
-
Connect via TCP to the Production PC on port 3039.
-
Send ASCII text commands terminated by a newline character (
\r\n). -
Only one production-level controller should be active at a time.
Common Commands
-
run "TimelineName"— Start a timeline by name. -
halt "TimelineName"— Pause a timeline. -
kill "TimelineName"— Stop and reset a timeline. -
gotoControlCue "TimelineName" "CueName"— Jump to a named control cue. -
load "ShowName.watch"— Load a different show file. -
getStatus— Returns current playback status.
Important Notes
-
Commands are sent to the Production PC, which relays them to the display cluster.
-
If using
getStatus, the feedback is returned on the same TCP connection. -
If your control system opens and closes the TCP connection for each command, expect latency. Keep the connection open for best performance.
WATCHOUT 7: Director-Based Control
Key Difference from WO6
In WATCHOUT 7, all external control goes through the Director (not Producer and not directly to Runners). The Director is the central coordination point.
TCP (Legacy Protocol)
-
Connect to the Director on port 3039 (same port as WO6).
-
The legacy command syntax is supported for backward compatibility.
-
run,halt,kill,loadall work the same way.
OSC
WATCHOUT 7 supports receiving OSC messages natively:
-
In Producer, enable the OSC Bridge.
-
Map incoming OSC addresses to WATCHOUT variables.
-
Use variables in Play Expressions or to trigger timelines.
OSC messages are sent to the Director's IP on the configured OSC port.
Troubleshooting
Commands sent but nothing happens
-
Verify you are connecting to the correct machine (Production PC for WO6, Director for WO7).
-
Check that the show is online — commands are ignored when the show is offline.
-
Ensure only one controller is connected. Two controllers sending conflicting commands will cause unpredictable behavior.
"Connection Lost" after external control command
-
The control system may be opening/closing the TCP socket too aggressively. Keep the connection persistent.
-
If using a Crestron/AMX, verify the module is configured for a persistent TCP connection on port 3039.
gotoControlCue not working
-
This is a known limitation in some WO6 versions — the cue name must match exactly, including capitalization.
-
In WO7, use Blocks or variable-driven control cues instead of
gotoControlCue.
load command not switching shows
-
In WO7,
loadmust be sent to the Director. Sending it directly to a Runner will not work. -
After
load, wait for the show to finish loading before sendingrun. Poll withgetStatusto check readiness.
Last updated: 30 March 2026 · Dataton Support