What a USB export touches: Bake'n Deck and rbxport, measured on the same stick
There are now two ways to make a CDJ stick without rekordbox's own export. One reads what rekordbox hands out: the collection XML it exports and the analysis files it writes. That is how Bake'n Deck works. The other opens rekordbox's library database, master.db, directly. That is how rbxport works, by its own description "a music library management app inspired by rekordbox" that edits the rekordbox library in place.
We built Bake'n Deck on the first approach and say so on every page, so we owed a measurement rather than an argument. We exported the same rekordbox playlist with both tools onto the same USB stick, timed every run, and recorded every file each tool changed outside the stick.
Setup
- Machine: MacBook Air 13-inch (M3, 24 GB), macOS 27.0.1, on mains power. Both tools ran in a fresh macOS user account created for the test, so neither could reach our working rekordbox library.
- Stick: SanDisk USB 3.2 Gen 1, 61.5 GB, FAT32 on MBR, emptied before every run except the re-export runs.
- Library: rekordbox 7.2.18 in the test account, 200 tracks copied from a working DJ library (9.0 GB), imported and analysed by rekordbox, one playlist with all 200. The mix is what that library holds: 91 FLAC (16 and 24-bit, 44.1 and 48 kHz), 82 AIFF, 16 MP3, 10 M4A, and 1 WAV. Four of the M4A files turned out to be damaged, which became part of the result.
- Bake'n Deck: the
baken expressportcommand line at 4.8.0, the engine inside Bake'n Deck for Mac 1.4.0, reading the collection XML rekordbox exported. For conversion it called Homebrew's ffmpeg 9.0.2; the Mac app bundles its own ffmpeg build. - rbxport: 1.9.0 with its defaults (Library Protection on), driven through its own AppleScript
exportcommand, which returns when the export is done. rbxport always writes both the OneLibrary and the Device Library databases, so Bake'n Deck was run with--onelibrarytoo. - Runs: three of each scenario, the tool that went first alternating between rounds, 45 seconds of rest between runs. rbxport's conversion cache was deleted before each conversion run, so every conversion was cold.
- Audit: before and after every run, a SHA-256 of every file in rekordbox's library folder (
master.db, the analysis files), rekordbox's settings folder, and the 200 music files, plus a list of every file modified anywhere in the test account's home folder.
The scripts and the raw results are on GitHub.
Speed
Median of three runs, range in brackets. Wall time is from the command until the tool reported the export finished.
| Scenario | Bake'n Deck | rbxport |
|---|---|---|
| Full export onto an empty stick | 818.6 s (735.1 to 821.8), 197 tracks, 9.68 GB | 959.5 s (955.5 to 1071.9), 200 tracks, 9.71 GB |
| CPU time, full export | 4.8 s | 32.5 s |
| Re-export right after, nothing changed | 3.6 s (2.8 to 3.6) | 0.6 s (0.6 to 0.6) |
| With conversion for older players, onto an empty stick | 382.7 s (365.1 to 415.8): 188 tracks converted to 320 kbps MP3, 9 MP3s copied, 2.68 GB | 1913.3 s (1899.3 to 1916.4): 97 tracks converted to 320 kbps MP3, 99 copied as they were, 6.52 GB |
| CPU time, conversion run | 638.6 s | 1093.9 s |
- The full export is mostly waiting for the stick. Both tools spent most of the run writing about 9.7 GB to a USB stick, at 11.8 MB/s for Bake'n Deck and 10.1 MB/s for rbxport. Bake'n Deck finished 141 seconds sooner (15%) and used about a seventh of the CPU time. rbxport wrote three more tracks (see below) and one more database file (
exportExt.pdb), about 37 MB more in all. - rbxport re-exports faster. With nothing changed, rbxport reported "Already up to date" in 0.6 seconds. Bake'n Deck copied no audio again either but rewrote its two databases,
export.pdband OneLibrary, in 3.6 seconds. - The difference is a record of the last export. rbxport leaves one on the stick (
PIONEER/rbxport/manifest.json): a digest of the request, and the size and modification time of every source file and of every file it wrote. When all of them still match, it stops before building anything, so an unchanged re-export is mostly reading file information. Its own USB export pipeline reference describes this, and since size and time cannot prove two files are equal, it offers a "Verify all files" option that reads them. Bake'n Deck keeps no record, on the stick or anywhere else. On every run it reads the start, middle, and end of each track's audio and every analysis file on the stick, compares them with what it would write, and skips the ones that match, but it always buildsexport.pdband OneLibrary anew and finishes writing each to the stick before it replaces the old one. About 0.3 of its 3.6 seconds were CPU time; the rest was waiting for the stick. - The conversion runs did different work, so read them with that in mind. Bake'n Deck's CDJ Safe turns every track that is not already a compliant MP3 into a 320 kbps CBR MP3, AIFF and WAV included. rbxport's Maximum CDJ compatibility, set to MP3, converts what it considers incompatible (here FLAC and M4A) and copies MP3, AIFF, and WAV as they are. Bake'n Deck converted almost twice as many tracks and still finished in a fifth of the time, using several CPU cores at once, and its stick holds 2.68 GB against 6.52 GB because everything on it is MP3.
What each tool wrote outside the stick
| Bake'n Deck | rbxport | |
|---|---|---|
master.db | Never opened. The source code contains no reference to it | Opened. On its first launch rbxport created master.db-wal (0 bytes) and master.db-shm (32 KB) beside it, which stay after it quits |
master.db contents during 9 exports | Unchanged | Unchanged |
| rekordbox's analysis files and settings | Unchanged | Unchanged |
| The 200 music files | Unchanged | Unchanged |
| Elsewhere in the home folder | Nothing | Its own records in ~/Library/Application Support/rbxport: 362 files during a full export, about 590 during a conversion run (its conversion cache) |
With its default Library Protection on, rbxport did not change rekordbox's database while exporting. That is the measured result and we report it as such. The difference that remains is the one the two approaches are built on: rbxport opens rekordbox's encrypted database and, with Library Protection off, writes to it (track edits, and its Import from a stick, which brings cues, beat grids, play history, and ratings back into the library), as its own documentation describes. Bake'n Deck never opens that database at all, with protection or without, because it never needs to.
Damaged files
A working library is not a clean one. Three of the M4A files in the sample were truncated (no moov atom, unplayable anywhere), and a fourth opens normally but carries corrupt audio data: ffmpeg decodes it as noise.
| Bake'n Deck | rbxport | |
|---|---|---|
| 3 truncated M4A, full export | Left out, each named in a warning | Copied onto the stick |
| 3 truncated M4A, conversion | Left out, each named in a warning | Reported as failed |
| AAC with corrupt audio, full export | Copied as it is | Copied as it is |
| AAC with corrupt audio, conversion | Converted into noise without a warning (a bug, now fixed) | Reported as failed |
The bug this test found in Bake'n Deck. CDJ Safe handed the damaged file to ffmpeg, which decoded it as noise, logged 1,667 decoding errors, and still exited normally. Bake'n Deck trusted the exit status and counted the track as converted. The resulting MP3 is 334 seconds of noise at an average of -9.5 dB (the original is 373 seconds), which a CDJ would play as loud noise in the booth. rbxport reported the same file as failed. We fixed it the day we found it: since baken 4.10.0 a conversion fails when ffmpeg reports more than ten decoding errors, and the track is left out and named with the reason (#299). Bake'n Deck for Mac 1.4.1 ships the fix.
What we take from it
- If you want your library to stay rekordbox's, written only by rekordbox, Bake'n Deck is built for that: it reads the XML rekordbox exports and never opens
master.db. - On this machine and this stick, Bake'n Deck wrote a full stick 15% faster and converted for older players about five times faster; rbxport re-exported an unchanged stick six times faster.
- rbxport left the database untouched during these exports with its default protection, and it caught the damaged file that Bake'n Deck did not, until 4.10.0.
Limits of this test
One machine, one stick, one library sample of 200 tracks, three runs each. The sticks were not played on hardware for this test; sticks written by Bake'n Deck have been read on a CDJ-3000 and a CDJ-2000NXS2 before. Bake'n Deck was measured through its command line, which runs the same engine as the Mac app. Memory use is not compared, because one tool is a desktop app with a window and the other was a command line. rbxport was measured at 1.9.0 and changes quickly; anyone can rerun the same scripts.
Measured 2026-11-05 and 06. Sources for rbxport's behaviour: its README, its USB export and AppleScript guides, and its release notes, read 2026-11-05. rekordbox, CDJ, and Pioneer DJ are trademarks of AlphaTheta Corporation; rbxport is a trademark of its owner.
Bake'n Deck USB Export
Bake'n Deck for Mac is on the Mac App Store. It writes the stick from the XML rekordbox exports, with rekordbox's own analysis, and can run Headroom and Sort on the same playlist first. The baken command line is free and MIT licensed.
Export rekordbox playlists to a USB stick without opening rekordbox →