A consultant recently asked what the latency of Q-SYS Software-based Dante™ is relative to the Q-SYS CDN64 Dante I/O card. The simple answer is that the lowest receive latency for Software-based Dante is currently 2 mS. Note that when we talk about “latency”, we are referring to receive latency, since latency is managed in Dante solutions by the receiving Dante node.
The Q-SYS CDN64 Dante I/O card, which utilizes the Audinate Brooklyn II module, is typically set at 1 ms but can go as low as 150 µs on a single Gigabit Ethernet switch. By contrast, the lowest receive latency available on an Audinate Ultimo-based device is 1 ms.
Ultimo is a low channel count (2×2 and 4×4) single-chip Dante solution, which virtually all low channel count Dante devices in the market are based. However, like many things in our industry there’s some subtlety and nuances that’s useful to know.
Nuances of Dante Devices
Dante transmit latency is relatively fixed at about 1/3 of the device latency setting. If a Dante receiving device is set for 1 ms receive latency, then the Dante transmitting device spends about 1/3 ms capturing 16 audio samples (at 48 kHz sampling rate, simultaneously for up to 4 channels), putting it into an audio flow and getting it onto the network.
The remainder of the time is taken up by the flow’s transit time over the network and audio data buffering by the Dante receive device. Buffering allows the Dante receiving device to play out the received audio samples exactly 1 ms after they were sampled by the Dante transmitting device, thanks to the use of the Precision Timing Protocol (PTP). PTP allows all Dante devices on the network domain to share a common sampling clock and absolute time.
When a Dante device’s latency is set (per device in Dante Controller or per Software-based Dante / CDN64 in the Q-SYS design), the device’s receive data buffer is being configured to accommodate the worst case for the actual network environment (largely driven by the number of switch hops, but there are other factors to consider). This Dante latency setup is a receive latency applied to all devices receiving the same flow, so that the audio has time to arrive at all receiving devices and play out at the same time.
For example, if Q-SYS transmits the same audio to two Dante devices, one set for 1 ms receive latency and another set for 5 ms receive latency, both devices will play the audio with a 5 ms latency to maintain audio synchronization at the device outputs. Since this happens “under the hood”, it is entirely possible that audio latency from an audio input to a given output will be more than whatever’s been set in Q-SYS – depending on the latency settings of the receiving device(s).
Key Takeaways
- Default Dante latency varies according to the specific Audinate solution – Software-based Dante, Brooklyn II, Broadway and Ultimo all have different latency ranges, from as little as 150 µs to 5 ms.
- Dante receiving nodes adjust their receive buffer length based on the user setting. Dante transmit latency is relatively fixed at 1/3 of the receive latency setting.
- If the same Dante audio signal is sent to two (or more) receiving devices, all devices will automatically be set to the longest receive latency among the devices. This guarantees that audio playback will be synchronized across all of the receiving devices.
More information about setting Dante device latency can be found here