Deck state that says how old it is.
TraraLink is an open protocol, SDK set and integration layer for sharing deck state between DJ software and hardware. Every value travels with when it was observed, how long it stays valid and where it came from. A missing value means unknown, never zero.
Read the state model Open the reference dashboard
Experimental The codec and replay tools exist. Nothing here has been qualified on hardware.
Every field is qualified
A TraraLink state datagram is a full snapshot of one logical deck endpoint. It opens with an 80-byte envelope that says who sent it, which load it belongs to and on which clock. Each value that follows carries its own observation time, validity window and uncertainty.
| Offset | Bytes | Meaning |
|---|---|---|
| 0 | 4 | Magic, ASCII TLNK |
| 4 | 4 | Major 0, minor 1 or later, message kind, flags |
| 8 | 4 | Total length and header length |
| 12 | 8 | Sequence, strictly increasing per session and endpoint |
| 20 | 16 | Persistent opaque node ID, not a serial number |
| 36 | 16 | Session ID, new after a restart |
| 52 | 12 | Clock domain and snapshot time in microseconds |
| 64 | 4 | Logical endpoint, independent of player numbers |
| 68 | 4 | Track-load generation |
| 72 | 8 | Field count and reserved bytes |
Flags carry provenance: observed, estimated, user-corrected or derived. Unknown optional fields are skipped by length; unknown critical fields reject the packet.
- Absence means unknown. A missing tempo is not 0 BPM, and a missing transport is not stopped.
- Freshness belongs to each field. A value is fresh only inside its own validity window. Expiry and confidence are tracked separately.
- A load is not a track. The generation changes on every load, even when the same track is loaded again.
- Tempo does not imply transport. A deck can report 124 BPM and be stopped.
- A datagram authorizes nothing. Sessions, discovery, control and media need an authenticated transport that does not exist yet.
Where things stand
What exists today, and what still needs to be built or proven on real equipment.
| Part | State | What that means |
|---|---|---|
| State datagram codec, draft 0.1 | Experimental | Encode, decode and replay. Tested against synthetic fixtures only. |
| Status API and reference dashboard | Experimental | Read-only view served by the CLI. Shows Disconnected when nothing answers. |
| Authenticated sessions, discovery and control | Not built | No network service should accept bare datagrams as commands. |
| TraraLink for XDJ-AZ: four decks over native PRO DJ LINK and its own Wi-Fi | Unqualified | No on-device build has been tested on the hardware. |
| XDJ-AZ UI hooks and firmware integration | Unqualified | The dashboard is a web reference for interaction design, not firmware. |
Separate projects, separate releases
Each project ships on its own schedule and works without the others, except where one is an integration of another.
- TraraLink
- The protocol, its SDKs and integrations. This site.
- TraraLink for XDJ-AZ
- The connectivity implementation for XDJ-AZ. It joins native PRO DJ LINK for all four decks and the device's own Wi-Fi under one TraraLink state model. Unqualified.
- AZ Prep
- A standalone analysis and library mod. Usable on its own, with or without TraraLink.
- AZ Offline
- Experimental research into an offline provider and cache.
- Lightbridge
- A lighting app that reads TraraLink deck state through an integration.
Reference dashboard
A read-only view of a runtime's status: decks, their freshness and provenance, devices, jobs and what the runtime says it supports. It reads /api/status from the server that serves it and says Disconnected when nothing answers.
- Opens from a corner badge with a 44-pixel touch target, or from the keyboard.
- Shows a clearly marked simulated demo, but only when you start it.
- Lists network and device settings as unavailable until they exist.