Streaming control packets are the core of Art-Net and allow real-time channel based control data to be streamed over the network. Three packets exist within this category.
- ArtDmx is the core of Art-Net; carrying a payload of zero-start code DMX512 data.
- ArtSync allows synchronization of multiple universes.
- ArtNzs provides a mechanism to transfer the more esoteric non-zero start code data which is usually manufacturer specific.
The ArtDmx packet is used to send DMX512 level data (that is zero start code) to a specific Port-Address.
Broadcast and Unicast algorithms
The ArtDmx packet could, in principle, be broadcast. However this forces all nodes to parse the ArtDmx packets to test whether the Port-Address embedded within the ArtDmx packet is destined for them. In a large system, this can put a huge processing burden on the receiving nodes. This is why the Art-Net protocol mandates the use of unicast.
In order to unicast ArtDmx, the device which originates the ArtDmx packet needs to know which nodes are consumers of the specific Port-Address. This process is covered in more detail in Subscription.
Please refer to the ArtDmx Packet Definition.
The packet length of ArtDmx can vary depending upon the length of the payload. A minimum of two channels or data slots of DMX level data must be encoded in the packet.
The ArtDmx packet is designed to transport changing information, rather than every single DMX512 frame. It is the responsibility of the device that generates ArtDmx packets (whether converting physical layer DMX512 or simply generating lighting control data) to analyse whether any of the channel level data has changed. If there is a change, then an ArtDmx packet should be sent.
Art-Net also defines a ‘Keep-Alive’ time of 4 seconds. This means that if channel level data has not changed for 4 seconds, a repeat ArtDmx packet should be sent. There is an exception to this: if the ArtDmx is being generated by a device which is converting physical DMX512 to Art-Net, Keep-Alive terminates if the DMX512 input is disconnected. This allows the absence of ArtDmx for more than 5 seconds to be used as an indicator that the DMX512 universe has disconnected.
The following table summarises the ArtDmx packet transmission rules for nodes that convert DMX512 to Art-Net:
Art-Net sets a maximum refresh rate for ArtDmx packets that are directed to a given Port-Address. This maximum is defined as the maximum refresh rate that can be achieved on the DMX512-A physical layer with a full 512 channel (data slot) payload. The actual value is 44 packets per second.
The ArtSync packet can be used to force nodes to output ArtDmx packets, from multiple universes, in synchrony. This is particularly useful in media server style applications.
When a controller wishes to use synchronous mode it unicasts multiple universes of ArtDmx and then broadcasts a single ArtSync. The ArtSync is the trigger that tells the nodes to transfer the last received ArtDmx packet to the output.
Transitioning between Synchronous and non-Synchronous modes
Art-Net is designed to allow seamless transition between synchronous and non-synchronous modes of operation.
At power on (or system reset) all nodes start in non-synchronous mode. That means that any correctly addressed ArtDmx packet will immediately be output. A node will continue to operate in non-synchronous mode until it sees a broadcast ArtSync. It then transitions to synchronous mode which means that it will buffer the last ArtDmx packet received and then output it once an ArtSync is received.
If an ArtSync is not received for 4 seconds, nodes will then transition back to non-synchronous mode.
Please refer to the ArtSync Packet Definition.
The ArtNzs packet is used to send certain DMX512 non-zero start code packets to a specific Port-Address.
Broadcast and Unicast algorithms
The ArtNzs packet can be broadcast or unicast to the network. The rules defined for ArtDmx also apply to this packet.
Please refer to the ArtNzs Packet Definition.