Technical FAQ
In-depth answers about Active Loops in rekordbox XML, Pioneer's POSITION_MARK format, Serato’s Markers2 tag, hot cues vs memory cues and more. For general questions see the home page FAQ.
Active Loops and the Rekordbox XML format
Pioneer's rekordbox XML format (rekordbox.xml) does not have a field for storing the "Active Loop" state. Every loop — whether it was a Hot Loop, a Memory Loop, or an Active Loop — is written as a generic POSITION_MARK element with Type="4" Num="-1". Once serialised to XML, it is impossible to tell them apart. When you re-import the file the loop will appear as a plain Memory Loop and will not trigger automatically on playback. This is a structural limitation of the XML format, not a bug in DJ Cue Bridge.
In Rekordbox's internal database (master.db), loops carry an "active" flag that tells the software to auto-trigger the loop when the playhead passes a certain point.
• Hot Loop — a loop assigned to a hot cue pad (A–H). Pressing the pad starts the loop.
• Memory Loop — a loop stored as a white marker (Num=-1). Visible on all CDJs without a connected laptop.
• Active Loop — a Memory Loop with the "active" flag set; the CDJ/XDJ begins looping automatically.
The active flag lives only inside master.db. The XML export format has no equivalent attribute, so the distinction is lost as soon as you export.
Inside a rekordbox.xml file each cue or loop is a POSITION_MARK element. The Type attribute indicates the kind of marker:
• Type="0" → regular cue point (hot cue or memory cue)
• Type="1" → fade-in marker
• Type="2" → fade-out marker
• Type="3" → load marker
• Type="4" → loop (has both Start and End attributes)
Num is the pad assignment: values 0–7 map to hot cue pads A–H; Num="-1" means the marker is a Memory marker (no pad assigned, white on the CDJ waveform). So Type="4" Num="-1" is a Memory Loop — Pioneer's XML cannot encode anything more specific than that.
No. Once Rekordbox has written the XML, the active-loop flag is gone. The only way to preserve Active Loops is to keep your library in Rekordbox's own database (master.db) and avoid relying on XML round-trips for that information. DJ Cue Bridge faithfully converts everything the XML format supports, but it cannot invent data that Pioneer chose not to include.
Rekordbox hot cues vs memory cues — what to choose
Hot Cues (Num 0–7, colored pads A–H) are only accessible when a laptop running Rekordbox is connected to the CDJ. On a standalone CDJ-3000 or XDJ-RX3 loading from a USB drive they are visible but cannot be triggered without pad hardware (or by pressing the pad on a compatible player).
Memory Cues (Num=-1, white diamonds on the waveform) are always visible on all Pioneer players regardless of whether a laptop is connected. They can be jumped to manually and work even on older CDJ-2000 hardware.
For most DJ setups — especially club riders where you plug a USB into house CDJs — Memory Cues are the safer choice. DJ Cue Bridge offers a "Both" option that writes each point twice (as a hot cue and as a memory cue) so you get the best of both worlds.
If you used the "Hot Cues" mode in DJ Cue Bridge the markers are stored with Num=0–7 (pad assignments). On a standalone Pioneer player loading from USB, hot cues are visible in Rekordbox Performance mode when exported to the USB, but require you to export the library to the drive first. If you see no markers at all, check that:
1. You re-exported the library to the USB after importing the rekordbox.xml in Rekordbox.
2. The file in Rekordbox is linked to the correct audio file path.
If you want guaranteed visibility without those steps, re-run the conversion with the "Memory Cues" or "Both" option.
Serato Markers2 tag — how it works
Serato stores cue points, loops and beatgrid information as custom ID3 tags embedded in the audio file. For MP3 and AIFF the container is a GEOB (General Encapsulated Object) frame with description "Serato Markers2". For FLAC it is a Vorbis comment named SERATO_MARKERS_V2. In both cases the value is a base64-encoded binary payload.
Important caveat: Serato only writes these tags to a file after you actually set at least one cue point or loop on that track. Tracks that have been imported into the library but never edited will have no Serato tags in the audio file at all — even though they appear in the library and have BPM data.
DJ Cue Bridge decodes that payload, extracts cue points and loops, and re-encodes them for the target format. Because the data lives in the audio file, no Serato library folder is needed — just the audio files themselves.
Serato uses two separate storage locations, and it is important to understand what each one contains:
• Audio file tags (GEOB "Serato Markers2" for MP3/AIFF, SERATO_MARKERS_V2 Vorbis comment for FLAC) — this is where cue points, hot cues, loops and beatgrid data actually live. Serato writes these tags the moment you set a cue or edit the beatgrid on a track.
• The _Serato_ library folder (~/Music/_Serato_) — contains two databases:
– database V2 (binary, ~7 KB per 12 tracks): stores only track metadata — filename, title, artist, BPM, length, bitrate, date added — and a few boolean flags (played, missing, etc.). It does NOT contain cue points.
– Library/location.sqlite (SQLite, Serato DJ Pro 3+): stores the same kind of track metadata plus playlist/crate assignments. Cue data can appear here in the asset_auxiliary table, but only for tracks that have been fully analysed and had cues set; it is empty for tracks that were simply imported.
Consequence for DJ Cue Bridge: the tool reads from the embedded audio-file tags. If a track has no Serato tags (because no cue was ever set, or because you disabled "Write ID3 Tags" in Serato preferences), DJ Cue Bridge will find nothing to convert. Make sure each track has been cue-edited at least once in Serato before running the conversion.
Serato supports up to 8 hot cues (0–7) and 9 loop slots. Rekordbox XML also supports 8 pads. If you see fewer cue points than expected:
• The track has no embedded Serato Markers2 tag — this happens when no cue was ever set in Serato on that track (freshly imported files have no tags). Open the track in Serato, drop at least one cue point, then retry.
• Serato stores "empty" slots as cue entries with no color and no name — DJ Cue Bridge skips those blank placeholders.
• If the Serato Markers2 tag is corrupted or uses an unsupported encoding variant, decoding may fail silently for individual entries.
• Loops in Serato can have the loop disabled (stored but off) — DJ Cue Bridge imports them as inactive Memory Loops since Rekordbox XML has no "disabled loop" concept.
• In Serato DJ Pro 3+ the "Write ID3 Tags" option in preferences must be enabled; if it is off, Serato stores cue data only in its internal SQLite database and DJ Cue Bridge (which reads the audio file tags) will see nothing.
Engine DJ and Mixed In Key — read-only support
Engine DJ stores its entire library in an SQLite database (m.db) with a schema that changes between software versions. Writing back to a live database without knowing its exact schema version risks corrupting the library — losing all your playlists, crate organisation and metadata. For this reason DJ Cue Bridge currently supports reading from Engine DJ but not writing to it. The recommended workflow is: Engine DJ → Rekordbox XML → import into Rekordbox.
Mixed In Key does not have a published, stable API or file format for writing cue points. The CUEPOINTS Vorbis tag (FLAC) and TXXX:CUEPOINTS ID3 tag (MP3) that MIK creates are proprietary; writing arbitrary data there risks MIK overwriting or corrupting them on the next analysis. DJ Cue Bridge reads those tags but does not write to them to avoid data loss.
File formats and audio quality
For Rekordbox, Traktor, Virtual DJ and Engine DJ conversions: no. DJ Cue Bridge only outputs a library file (rekordbox.xml, collection.nml, database.xml). Your audio files are never touched.
For Serato as a target: yes — cue points are written directly into the ID3/Vorbis tags of the audio files (GEOB "Serato Markers2" for MP3/AIFF, Vorbis comment for FLAC). You download a modified copy of each file; the original on disk is never overwritten. The audio data itself (the PCM waveform) is never re-encoded — only the metadata tag section changes. These modified files must then replace the originals in your music folder so that Serato picks up the embedded cue data when you next open those tracks.
Note: Serato's own _Serato_ library folder (database V2, location.sqlite) is never read or written by DJ Cue Bridge — it works entirely through the audio file tags.
FLAC and MP3 for tag-based codecs (Serato, Mixed In Key). For library-file codecs (Rekordbox XML, Traktor NML, Virtual DJ XML, Engine DJ SQLite) any audio format works because the library file references files by path rather than embedding data inside them.
AIFF, WAV and other formats are displayed in the track list but tag writing for those formats is not yet implemented — if you need Serato cue points in an AIFF file, convert the track to FLAC first.
Yes. Select Traktor as the source, load your collection.nml, select Serato DJ as the target. For each track that has an audio file loadable by the browser (FLAC or MP3), DJ Cue Bridge will write the Serato Markers2 tag with the converted cue points.
Note: Traktor's collection.nml contains file paths but not the audio data. DJ Cue Bridge needs the actual audio files loaded via the file picker so it can write the tags. For large collections, load the NML first and then drag the audio folder — the tool will match tracks automatically.
Compatibility and limits
There is no hard coded limit. Processing runs in a Web Worker (background thread) so the UI stays responsive during conversion. In practice:
• Up to ~2 000 audio files (FLAC/MP3) — works well on any modern computer with 8 GB RAM.
• Large library XML files (Traktor NML, Rekordbox XML) with 10 000+ tracks — the XML is parsed in memory; memory usage is proportional to collection size.
For very large collections (>5 000 tracks) use library-file mode rather than individual audio files for best performance.
Yes. DJ Cue Bridge is a Progressive Web App. After the first visit all assets are cached by the browser's service worker. You can add it to your home screen (iOS/Android) or install it as a desktop app (Chrome/Edge → "Install DJ Cue Bridge"). It will work without an internet connection — useful in a DJ booth without Wi-Fi.
No. All processing happens locally in your browser using JavaScript, WebAssembly (for SQLite) and the File System Access API. No data is ever sent to a server. The site has no backend; it is a static bundle hosted on OVH. DJ Cue Bridge has no user accounts, no analytics tracking and no telemetry.