Skip to main content
Advanced engineering
Deckmatics Academy article cover: What a Virtual CDJ Is and What It Is For
Deckmatics Academy article cover: What a Virtual CDJ Is and What It Is For
MIDI mapping, mods and homebrew · Professional · 7 min read

What a Virtual CDJ Is and What It Is For

A Virtual CDJ makes your software appear as another player on the DJ Link network: what it receives, what it publishes, what it is for and which layers it does not touch.

In a DJ Link booth, players and software form a network where each participant announces who it is and what it is playing. A Virtual CDJ lets you put your own software on that network as another node instead of observing it from outside.

It sounds like a laboratory trick, but it is not: it is a documented interoperability function with real uses in visuals, lighting and monitoring. However, it is easily confused with the equipment’s HID protocol or the idea of a virtual player that does the same as hardware. This guide separates those things.

What a Virtual CDJ is and what it is for

A Virtual CDJ is a DJ Link network participant presenting itself with a player’s identity. There is no CDJ hidden inside your computer: there is a process speaking the same language as the equipment, which the network accepts as a node.

The reference library’s documentation lists it among its main package’s capabilities, alongside two related tasks: finding a DJ Link network and monitoring devices appearing and disappearing. Creating a Virtual CDJ gives you presence; the other two provide the context of who else is connected.

Specifically, it lets your software participate in the session instead of observing it, respond to network events and test interoperability tools without depending on the manufacturer. The following table organises five often-confused elements.

Five often-confused elements
Element Working layer What you get What it is not
Virtual CDJ DJ Link network, between equipment and softwareYour software appears as another node and participates in the session.A hardware replacement.
Player HID protocol Local USB connection between equipment and computerReading physical controls and controlling LEDs, documented externally.The DJ Link network.
MIDI mapping Software, using standard messagesFunction control and feedback without modifying equipment.Player emulation.
Custom firmware or mod Inside the equipment itselfChanges to factory behaviour.Interoperability: it carries risk and affects the warranty.
Manufacturer firmware emulation Virtual machineAn experiment, with no published verified method.The same thing as a Virtual CDJ.

A Virtual CDJ works on the DJ Link network; HID is a local USB conversation. They are different layers.

What appearing as another player on the network means

Appearing as another player means three concrete things in practice:

  • You have an identity on the network. Other nodes see you arrive and leave, just as they would see a player connect.
  • You participate in exchanging session information. You are not passive: you are a node that can be included.
  • Your software stops being an island. Booth events—tempo, track and playback state—can reach your process and influence what it does.

It does not mean you have a player. There is no jog, no audio outputs and no buttons. It is an interoperability function rather than a hardware replacement, and that distinction prevents almost all disappointment.

What you receive from the network

Here is the concrete part. The API documentation describes a Virtual CDJ obtaining detailed information about what other players are doing: tempo, pitch, playback state, who is tempo master, and the source and database identifier of the loaded rekordbox track.

There is more, because the data package adds track metadata: artwork, cue points, beat grid and waveforms, both the whole-track preview and the detailed waveform through which playback moves. All this is obtained by talking to database servers running inside the players themselves.

With this material, you can know what is playing without looking at the equipment’s screen, obtain a tempo and beat reference to synchronise something external, and respond to track or state changes.

The real ceiling: four players

Know the limit before designing anything on top of it. The documentation itself acknowledges that setups using four players cannot rely on the database server interface because the project cannot occupy a real player number.

The documented route for that case is different: download rekordbox database export files from the players themselves through their NFSv2 servers, which do not depend on player number. An alternative route exists because there is a ceiling, not because everything is transparent. None of this is black magic: the project builds on earlier research and published packet analysis.

One clarification avoids confusion: session information travels over the network, not the signal of your mixes. Your Virtual CDJ does not receive the booth’s audio.

What you can publish

A node does more than listen. Its presence on the network also lets it publish its own information: that it exists, what it is and what it is doing.

That makes it interesting for external systems, since other elements can respond to what your software contributes. The limit lies here too, exactly where the network sets it: you publish what the network accepts and shares, not whatever you want to impose. There is no side route to force equipment to expose something it does not expose.

The rule follows: a Virtual CDJ does not provide access to anything the equipment is not already sharing on the network. If data is not circulating, it does not appear simply because you connect with a player’s identity.

What it is actually used for

Beyond the theory, these are the uses that justify setting it up.

Visuals

Change scenes or trigger clips from the beat and playing track without keeping time manually: the visuals system follows the session.

Synchronised lighting

The same applied to lights: trigger changes on beats or track changes, using the network as the temporal source of truth.

Monitoring

Record what played, at what tempo and for how long, to review a session later or document a test.

Research

Analyse network behaviour, test your own software and reproduce real conditions without risking booth equipment. This connects to laboratory work: emulating the protocol to test at home is a clean route and considerably more reasonable than changing equipment firmware.

A Virtual CDJ is not HID: two different layers

This mistake wastes the most time, so it deserves its own section.

The player’s HID protocol is local: equipment connected to a computer by USB. It is publicly documented from outside the manufacturer—including the simple input/output protocol controlling LEDs and detecting physical controls, with a 0x20 input header and 0x21 output header—but it remains a conversation between equipment and a computer.

DJ Link is another layer: a network between several nodes. A Virtual CDJ lives on the network and does not speak HID. There is nothing to negotiate over USB because USB is not involved.

The practical consequence is simple:

  • To read the controls of a specific player connected to your machine, use HID.
  • To have your software participate in the session alongside players, use DJ Link.

Looking for answers about one layer in the other’s documentation is the quickest way to lose an afternoon.

What you should not expect

Four expectations to set aside before starting:

  • It does not replace hardware. You will not DJ with it or use it as a backup player.
  • It does not expand what the network shares. You receive what is already circulating, no more and no less.
  • It is not a mod or alternative firmware. Distinguish precisely: an official function is supplied by the manufacturer in its software; community mapping configures standard messages; a mod changes behaviour; custom firmware is an altered binary inside equipment; reverse engineering observes and documents a protocol; and emulation reproduces one system’s behaviour in another environment. A Virtual CDJ is interoperability built on observation, not equipment modification.
  • It is not a project with a guarantee. It depends on third-party code and the network behaving as documented.

A warning: a failure in one node may affect the network. Always test in a controlled environment before introducing it into a real session. This guide provides no legal advice: rules vary by country, and technical community practice is to work on your own equipment for interoperability purposes.

Common mistakes

  • Confusing HID with DJ Link. Two layers, two different conversations.
  • Looking in the wrong place. The equipment protocol does not explain the network, and the network does not explain the equipment protocol.
  • Expecting a player. A Virtual CDJ provides network presence, not hardware.
  • Debuting it in production. The first test belongs in a laboratory, not the booth.

Next step

You now know what a Virtual CDJ is, what your software gains by joining the network and what not to ask of it. The next natural step is to stop consuming data and start building the controller: your own MIDI controller, designed for what you actually lack—stems, FX or a screen—with design decisions made before buying anything. That is exactly where the next guide continues.

Frequently asked questions

Does a Virtual CDJ replace a physical player?

No. It is an interoperability function: it makes your software appear as a node on the DJ Link network, but it has no jog, audio outputs or controls for DJing.

Does a Virtual CDJ speak HID?

No. It lives on the DJ Link network. HID is the local USB conversation between equipment and a computer, a separate layer frequently confused with this one.

Do I need special hardware to try it?

You need a DJ Link network with equipment on it. To experiment without risking booth equipment, set it up first in a controlled laboratory environment.

Does it provide access to data the equipment does not share?

No. You receive what the network is already sharing at that moment. Data absent from the network does not appear simply because you connect with a player's identity.

What is it used for in practice?

Visual tools, synchronised lighting, monitoring what is playing and research into the protocol itself and interoperability software.

Continue learning

Next lessonBuilding a MIDI Controller for Stems or FX

Decisions before buying hardware: control types, LEDs, screens and driver-free USB MIDI compatibility, with firmware logic and where to start.

Sources

  1. beat-link API — Overview Official documentation Deep Symmetry · accessed on

    Main source. The API documentation describes the library's main package as providing classes to find a DJ Link network, monitor devices appearing and disappearing, and create a Virtual CDJ. This supplies the definition and establishes it as a capability intended by the project rather than a side effect.

  2. beat-link — A Java library for communicating with Pioneer DJ Link equipment Community (additional context) Deep Symmetry · accessed on

    Context for the library implementing this capability and its practical use: communicating with DJ Link equipment, synchronising with its beats and discovering details of playing tracks. This underpins the network-information reception examples.

  3. Pioneer CDJ HID Protocol — CDJ Control Community (additional context) Análisis comunitario del protocolo HID de los CDJ · accessed on

    Separates two often-confused layers: the equipment's local HID protocol, documented externally with 0x20 input and 0x21 output headers and fixed offsets, and the distinct DJ Link network. A Virtual CDJ lives on the network and does not speak HID.

Review pending · hardware-model review · last technical review: 29/09/2026.