Media Slot Queries
In order to correctly ask for the root menu for a media slot, you need to know what kind of media (rekordbox or unanalyzed) is present in the slot so you can send the proper Tr value in your menu requests. You might also want to show information about the entire media collection, such as its name, size, date created, number of tracks, number of playlists, and free space. All of these things can be determined by sending a packet like the one shown below to port 50002 on the player that holds the slot, with appropriate values for D (the device number you are posing as), Dr (the device owning the slot), and Sr (the slot you’re interested in). These bytes have the same values used in CDJ status packets.
Since this packet uses subtype 00, the length sent in lenr has the value 000c, reflecting the twelve bytes which follow it.
The player will respond by sending a packet like the one shown below to port 50002 on the IP address specified in your query packet (so you want to supply your own address to get the response). This contains the information about the media mounted in the slot.
Since this packet uses subtype 00, the length sent in lenr has the value 009c, reflecting the number of bytes which follow it.
The name of the media stick (as assigned in rekordbox) can be found as a UTF-16 encoded string starting at byte 2c, and up to 40 bytes long, padding with trailing null characters.
This is followed by a textual representation of the creation date of the media database,
encoded in the same way, starting at byte 6c, up to 28 bytes long.
(Neither of these fields have meaningful values for “media” served by rekordbox mobile from its collection on a phone.)
The number of rekordbox tracks present in the database is found in bytes a6 and a7 (this will be zero if there is no rekordbox database present).
The value col at byte a8 tells the player what color it should tint its user interface when it has loaded tracks from the media (and also the color to tint the light around the USB slot on the CDJ-3000):
| Value | Meaning |
|---|---|
|
Default |
|
Pink |
|
Red |
|
Orange |
|
Yellow |
|
Green |
|
Aqua |
|
Blue |
|
Purple |
Tr at byte aa reports the type of tracks available, with the same values used in CDJ status packets.
In other words, it will have the value 01 when a rekordbox database is present, and 02 otherwise; this is the same value that must be sent as Tr in order to make a successful request for the root menu associated with this media.
The value set at byte ab indicates whether there is a “My Settings” file present on the media.
If it has a non-zero value, when the user links to that media (or navigates to its root menu), the player will pop up an alert saying to press the Menu button to load My Settings (which allows the player configuration to be quickly restored to the DJ’s preferred state).
The actual settings are found in the
/PIONEER/folder at the root of the mounted media, in the filesMYSETTING.DAT,MYSETTING2.DAT, andDEVSETTING.DAT. The DJ’s Kuvo profile information is in the same folder, in the filedjprofile.nxs.The details of these files have not yet been explored.
The number of rekordbox playlists present on the media (also zero if there is no rekordbox database) is found at bytes ae and af.
Finally, there are two eight-byte numbers at the end of the packet.
The value at bytes b0 through b7 is the total capacity of the media (in bytes), and the value at bytes b8 through bf is the number of unused bytes left on it.
Media Slot Broadcasts
In addition to responding to queries, standalone CDJs periodically broadcast media slot information packets (type 06) on port 50002 without being queried.
These broadcasts use the same packet format as the media response packet described above.
This allows passive observers to learn about mounted media without sending any packets to the network. The broadcasts occur when media is inserted or ejected, and periodically while media is mounted.
| All-in-one units like the XDJ-XZ, XDJ-RX series, and Opus Quad do not send these unsolicited media slot broadcasts. Implementations that need media slot information from these devices must either query for it actively, or attempt to access the media without prior knowledge of its contents. See XDJ-XZ Limitations for more details. |