PRO DJ LINK
PRO DJ LINK is the network protocol Pioneer DJ (now AlphaTheta) hardware uses to
share state between CDJs, XDJ media players, DJM mixers, and Rekordbox running
on a laptop. Now Playing implements the protocol in the alphatheta-connect
package, joining the network as a virtual CDJ so it can observe track changes,
fader state, and the DJM on-air flag.
What It Connects To
Section titled “What It Connects To”- Pioneer CDJ / XDJ media players (CDJ-2000 Nexus, CDJ-3000, XDJ-XZ, and similar).
- Pioneer DJM mixers that support PRO DJ LINK (DJM-V10, DJM-900NXS2, and similar).
- Rekordbox in Performance mode on the same local network.
How It Works
Section titled “How It Works”Now Playing participates in the link network the same way another CDJ would. After discovering existing devices by watching broadcast announcements, it joins the network with its own device ID (5 or 6, the slots normally used by laptops) and listens for:
- Status packets — real-time deck state, including the currently loaded track ID, play state, BPM, beat position, and tempo master flag.
- Metadata responses — track metadata retrieved by requesting a track ID from the player that has it loaded.
- DJM on-air flag — the hardware indicator showing which channel is currently audible.
| Port | Protocol | Purpose |
|---|---|---|
| 50000 | UDP | Device discovery (announce) |
| 50001 | UDP | Beat timing information |
| 50002 | UDP | Device status packets |
Active vs Passive Modes
Section titled “Active vs Passive Modes”- Active mode — Now Playing binds to port 50000 and announces itself as a virtual CDJ. This is the default and has the broadest feature support, but requires that no other application already holds the port.
- Passive mode — Now Playing captures packets using libpcap (macOS) or Npcap (Windows) without binding any ports. Useful for all-in-one units and situations where a bind conflict cannot be avoided. Requires packet-capture permissions.
What Data Is Extracted
Section titled “What Data Is Extracted”| Field | Source |
|---|---|
| Track ID and deck number | Status packets |
| Title, artist, album, genre, label | Metadata request |
| BPM and key | Metadata request |
| Artwork | NFS partial read from USB/SD (see Track Enrichment) |
| On-air flag | DJM mixer status packets |
| Tempo master indicator | Status packets |
| Beat position / phrase | Beat timing packets |
| Hot cues, memory cues | Metadata request (via dysentery-derived decoding) |
The extended analysis files (.EXT, .2EX) on the USB/SD drive are also parsed
for waveforms and phrase detection, where available.
OneLibrary Support
Section titled “OneLibrary Support”For Rekordbox 7.x and modern CDJ-3000 / CDJ-3000X setups, tracks live in the
encrypted OneLibrary (exportLibrary.db) format. The alphatheta-connect
package falls back to the
OneLibrary connector when it detects
the newer database layout.
Why Wired Ethernet Is Required
Section titled “Why Wired Ethernet Is Required”The protocol relies on broadcast and multicast UDP packets for both device discovery and real-time beat information. Wi-Fi access points often block broadcast traffic or drop packets under load, which leads to missing discovery announcements and glitchy beat data. A simple gigabit switch with all devices wired in resolves both issues.