Art-Net Input

WATCHOUT receives Art-Net DMX data over the network and maps incoming DMX channel values to show variables. Lighting consoles, DMX controllers, and other Art-Net devices control media parameters such as opacity, position, and color, and any other variable-driven property.

WATCHOUT does not accept physical DMX input directly. Use a DMX-to-Ethernet adapter (Art-Net node) to convert physical DMX signals to Art-Net over Ethernet before WATCHOUT receives them. If your controller already outputs Art-Net natively over Ethernet, no adapter is needed.

Enabling Art-Net

Enable Art-Net input from the Nodes window, under Node Info → Protocols, with the Art-Net toggle.

When enabled, the node listens for Art-Net packets on UDP port 6454.

External Key Format

Art-Net variables use a structured external key that begins with artnet and specifies the DMX universe and channel address. Address the universe in one of two ways:

  • Full address: artnet.net(1).subnet(2).uv(3).ch(10) — sets the Art-Net net, subnet, and universe separately.
  • Absolute universe: artnet.universe(1).ch(2) — when you give only universe (no net or subnet), it is treated as an absolute universe number. The valid range is 0–32767. If you omit it, universe 0 is used. Universe 0 maps to net 0, subnet 0, universe 0. Universe 18 (= 1×16 + 2) maps to net 0, subnet 1, universe 2.

The channel keyword accepts ch, channel, and channels — all three are equivalent.

Channel Resolutions

The resolution is set by the number of channel indices you list in ch(). List the channels in order from most significant (coarse) to least significant. The values combine in big-endian byte order. Channels are 1-indexed — channel 1 is the first channel in the universe.

  • Coarse (8-bit) — one channel. Range 0–255. Example: artnet.universe(0).ch(1).
  • Fine (16-bit) — two channels. Range 0–65,535. Example: artnet.universe(0).ch(1, 2).
  • Ultra (24-bit) — three channels. Range 0–16,777,215. Example: artnet.universe(0).ch(1, 2, 3).
  • Uber (32-bit) — four channels. Range 0–4,294,967,295. Example: artnet.universe(0).ch(1, 2, 3, 4).

Maximum Values by Resolution

When you use absolute (non-normalized) values, the maximum value depends on the number of channels. The formula is 2^N − 1, where N is the total bit depth.

ChannelsBitsFormulaMaximum value
1 (Coarse)82^8 − 1255
2 (Fine)162^16 − 165,535
3 (Ultra)242^24 − 116,777,215
4 (Uber)322^32 − 14,294,967,295

With absolute (non-normalized) values, set the variable's maximum field to match the resolution's maximum value. If the maximum is wrong, the variable's range does not match the incoming DMX data.

Normalization

Append .normalized() to the key to receive normalized values (0.0–1.0) instead of raw DMX values:

artnet.universe(0).ch(1).normalized()

Normalization divides the raw value by the resolution maximum (255 for 8-bit, 65,535 for 16-bit, and so on). Use it when your variable range is 0–1, or for consistent scaling regardless of resolution.

Update Frequency and Interpolation

The input rate is set by the sender. Art-Net senders transmit at their own cadence, so WATCHOUT updates each variable as packets arrive.

Each incoming Art-Net update is given a 50 ms interpolation window before it is forwarded to the Director. This smooths transitions between DMX value updates.

WATCHOUT subscribes only to the Art-Net universes referenced by variables in the current show. Traffic on any other universe is ignored.

Art-Net Output

WATCHOUT also sends Art-Net output through fixture cues on timelines, running at 44 FPS. For output, channel relationships, and recording, see Art-Net Fixture Cues.

Use Cases

  • Lighting desk integration — control WATCHOUT opacity, position, and blend parameters from any Art-Net lighting console.
  • DMX show control — drive WATCHOUT variables from a DMX automation system alongside lighting and mechanical effects.