Skip to content

Proposal: rekordbox USB Export (PDB/ANLZ) for CDJ/XDJ hardware - #20

Open
sparkly-quasar wants to merge 1 commit into
mixxxdj:mainfrom
sparkly-quasar:proposal/rekordbox-usb-export
Open

Proposal: rekordbox USB Export (PDB/ANLZ) for CDJ/XDJ hardware#20
sparkly-quasar wants to merge 1 commit into
mixxxdj:mainfrom
sparkly-quasar:proposal/rekordbox-usb-export

Conversation

@sparkly-quasar

@sparkly-quasar sparkly-quasar commented Aug 3, 2026

Copy link
Copy Markdown

Summary

This proposal adds a rekordbox USB exporter to Mixxx: a writer for the unencrypted export.pdb
(DeviceSQL) and per-track ANLZ analysis files, plus the PIONEER/ USB layout and audio copy — the
same "export my library to foreign DJ hardware" flow Mixxx already ships for Engine Prime, but for
Pioneer/AlphaTheta CDJ/XDJ gear. It addresses the long-standing #9463 / #10321 requests and
implements against the exporter-abstraction idea in #12126.

Scope is deliberately narrowed to the classic unencrypted PDB/ANLZ format (widest hardware reach
and legally cleanest). The encrypted OneLibrary / Device Library Plus format (#15556) is an explicit
non-goal here, for DMCA §1201 reasons spelled out in the doc.

Status (this is not a paper design)

  • Phase 0 — standalone writer, proven. A Qt-free C++ library emits a full export.pdb (all 20
    standard tables + the 8-colour palette) and per-track ANLZ (beat grids + hot/memory cues). Every
    output is cross-checked against two independent real-format parsers (pyrekordbox for ANLZ, a
    crate-digger-spec Kaitai parser for PDB) and diffed field-for-field against genuine rekordbox files.
  • Phase 1 — in-Mixxx exporter, working in a fork. An "Export Library to rekordbox USB" button
    (RekordboxExportJob + dialog mirroring the Engine DJ exporter, behind a REKORDBOX_EXPORT CMake
    option) compiles and links on macOS (Intel + Apple Silicon), Windows, and Linux via CI.
  • Outstanding — the real proof. Verification tier 3 (import into rekordbox desktop) and tier 4
    (playback on physical CDJ/XDJ hardware) haven't been run yet. CDJ hardware testers are very
    welcome.

Open question for maintainers

The doc treats C++ writer vs. a rekordcrate-backed (Rust) path as a genuinely open decision and
is structured so the serializer could be swapped without redoing the Mixxx adapter. I have no
attachment to my code being the answer — I'd like this to move #9463 forward however is most useful.

I'm a long-time Mixxx user offering this back to the community; happy to iterate on the doc based on
review.

Design document for adding a rekordbox USB exporter to Mixxx, following
the template. Covers the unencrypted PDB/ANLZ format (widest hardware
reach, legally cleanest); OneLibrary is an explicit non-goal. Includes a
standalone Qt-free writer library + round-trip verifier, a Mixxx adapter
mirroring the Engine Prime exporter, and the rekordcrate-vs-C++ tradeoff
as an open question for maintainers.

Related: mixxxdj/mixxx#9463, #10321, #12126.
@sparkly-quasar
sparkly-quasar force-pushed the proposal/rekordbox-usb-export branch from 46dbf54 to 27777be Compare August 3, 2026 20:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant