Bake'n Deck for Mac 1.3.0 is out. New: Headroom finds damaged files, and USB Export can add artwork to the stick for the CDJ. Get it on the Mac App Store →
GitHub
Now on the Mac App Store

Bake'n Deck for Mac

The whole toolkit in a window, and the fastest way to use it. For DJs who will never open a Terminal, and for the parts of the workflow that only make sense with a UI: one playlist at a time, a preview before every write, a library that remembers where everything is. One-time purchase, no subscription, no account, no network access. macOS 14 or later, Apple silicon and Intel. The baken CLI stays free and MIT.

🔌

USB Export New in 1.2.0

Tick playlists in your collection XML and write them straight to a USB stick for CDJ and XDJ players, with rekordbox's own waveforms, beat grid and phrases for every track rekordbox analysed. CDJ Safe MP3 on the way, generated analysis for the rest, your My Settings, artwork from the files' embedded pictures and OneLibrary for the CDJ-3000X, XDJ-AZ, OPUS-QUAD and OMNIS-DUO are options; the last two have not been tested on a player yet. A pre-flight shows the stick's format, skipped tracks and how much will be written, stops before writing when the stick is too small, and a re-run writes only what changed. A stick written by the app has been read on a CDJ-3000 and a CDJ-2000NXS2.

Export rekordbox playlists to a USB stick without opening rekordbox: how it works, which players, and rekordbox 7's library inconsistency warning.

🎚️

Headroom per playlist Mac only

Apply gain to one rekordbox playlist, resolved from your exported collection XML to the real files, not just to a folder. Unsupported or missing entries are skipped with a count. Same gain-only, limiter-free engine, same -0.5 dBTP ceiling.

🧠

Remembers your library Mac only

The collection XML and your music folders are remembered across launches, and analysis is cached per file, so the rekordbox → CDJ loop (export, sort, apply, export to USB) becomes a routine rather than a project. Re-analysing a large library takes seconds.

👀

Preview before you write Mac only

Sort shows the exact 1A → 12B order it will produce before anything is written. Headroom shows LUFS, true peak, gain and method per track, sortable, with include/exclude toggles and audio preview of any row.

🔁

Watches the XML Mac only

When rekordbox exports the collection again, a banner offers a one-click re-sort. CDJ Safe refuses to overwrite an XML that changed since validation, so a newer export is never clobbered.

💾

Per-run backups, one-click restore Mac only

Every apply backs up into its own timestamped folder. Restore swaps the originals back atomically, keeps going past a failing file, and works after a relaunch via Restore from Folder.

🛟

CDJ Safe pre-flight Mac only

Missing files, tracks without TotalTime (their cues would not import) and a free-space estimate before anything runs. MP3s land in a playlist-named folder; the same collection XML you use for Sort is updated in place.

🧹

Mac Tune-up Mac only

Five macOS causes of a slow rekordbox, from a widely shared checklist: music in Downloads, Spotlight indexing the library drive, missing Full Disk Access, iCloud sync under the library, quarantine flags and AppleDouble files. Checked, and fixed where the sandbox allows. The five settings and the manual steps are written up in the repo, tool or no tool.

🔒

Built for the booth

No network access at all. Sandboxed: it touches only the folders you grant. One-time purchase, no subscription, no account, no ads. Bundled LGPL ffmpeg, licences shown in-app. English and Japanese, dark interface. macOS 14 or later, Apple silicon and Intel.

Headroom: gain that survives the USB export

rekordbox's Auto Gain lives in rekordbox's library and is applied by its own decks and mixer; a player reading your USB stick never sees it. Headroom measures loudness (LUFS) and true peak for every track, then writes a gain into the file that brings the whole library to one true peak ceiling, -0.5 dBTP by default (AES TD1008 §7B). Quiet tracks come up. Loud ones come down. Nothing else is touched.

rekordbox Auto Gain: why it does not reach your CDJ — where the number stops, what writing it into the file changes, and the questions people ask.

Loudness normalization for DJs: a LUFS target or a true peak ceiling?: the two ways to even out levels in the file, what each changes and which library suits which.

How 3.6 measures true peak 15x faster: the ffmpeg loudnorm profile, the in-process BS.1770-4 pipeline that replaced it, and the parity numbers.

Gain only. No limiter. No dynamics change.

Headroom makes a single gain change per track and nothing else: no limiter, no compression, no EQ. Transients, crest factor and stereo image are exactly what the master carried. Only the level moves, and it moves exactly as far as the true peak allows.

The result is the maximum clip-free level for every track and a uniform ceiling across the whole stick: leave the trim at 12 o'clock and no track goes over 0 dB, and a quiet old file no longer needs the trim cranked. It is deliberately not loudness matching: a track that was mastered quiet stays a little quieter than a loud one, and that difference is left to your ears.

Limiter-based normalizerBake'n Deck Headroom
TargetAn average loudness (LUFS)A true peak ceiling, -0.5 dBTP
Loud tracksTurned down, or limitedTurned down by gain only. MP3/AAC lowered losslessly, never re-encoded
Quiet, dynamic tracksLimited upward until they hit the targetRaised as far as the peaks allow, not one dB further
DynamicsAlteredUntouched
MP3 / AACDecoded, processed, re-encodedGain field rewritten in 1.5 dB steps, bit-for-bit audio
Your cues and beatgridsDepends on the toolFiles rewritten in place, so rekordbox keeps them linked

How each format is handled

FLAC / AIFF / WAV / ALAC
↓
Lossless ffmpeg volume filter, exact gain Up or down, to the ceiling exactly. Source bit depth kept, artwork and tags stream-copied. ALAC recognised by codec since v3.3.2.
MP3 / AAC / M4A
↓
True peak above the ceiling LosslessBuilt-in Lowered natively via mp3rgain Negative global_gain steps, rounded so the result never exceeds the ceiling. Lowering never re-encodes. --boost-only opts out.
1.5 dB or more below the ceiling LosslessBuilt-in Raised natively via mp3rgain Truly lossless global_gain rewrite in 1.5 dB steps. Zero re-encoding.
Less than one 1.5 dB step below the ceiling Skip Left alone Nothing is re-encoded for gain, so a file that one step would push over the ceiling stays as it is.

Your MP3s and AACs are never re-encoded

Gain on a lossy file is written into the global_gain field, in the format's own 1.5 dB steps, up or down. The audio data is untouched, so no generation of loss is added, ever.

  • Bit-for-bit audio: only the gain field changes, and the file length does not move
  • Both directions: loud tracks come down and quiet ones go up, in whole steps
  • Within a step, nothing happens. A file already closer to the ceiling than one step is left alone rather than re-encoded to close the gap (v3.7.0)
  • Run it as often as you like. A processed library comes back with nothing to do

Supported formats

Format Method Precision Quality
FLACffmpeg volume filterExactLossless, bit depth kept
AIFFffmpeg volume filterExactLossless, ID3v2 tags kept
WAVffmpeg volume filterExactLossless, BWF metadata kept
ALACffmpeg volume filter (v3.3.2)ExactLossless, written back as ALAC
MP3mp3rgain (built-in), up or down1.5 dB stepsLossless
AAC-LCmp3rgain (built-in), up or down1.5 dB stepsLossless, .m4a, .mp4 and raw .aac
HE-AACSkipped (v4.7.0)-Left as it is: gain cannot reach its SBR high band

In the Mac app Mac only

Playlist mode: pick your exported collection XML and apply Headroom to one rekordbox playlist rather than a whole folder. Review table with LUFS, true peak, gain and method per track, include/exclude toggles and audio preview. Analysis cache per file, so re-analysing a large library takes seconds. Per-run timestamped backups with one-click restore. Damaged files are marked with where the damage starts and get no gain. Change the target or gain mode after an analysis and the table is recalculated on the spot from the measurements already taken; nothing is read again.

Sort: the key + BPM order rekordbox cannot do

rekordbox sorts by key or by BPM, one column at a time, and its Renumber Track Order stores only that one-column order; a CDJ plays a playlist in the order it was stored. Sort rewrites the track order inside every playlist of your exported collection.xml: Alphanumeric key 1A → 12B, ascending BPM inside each key. Names and folder structure stay; only the order changes. Point rekordbox's Imported Library at the file once and the rekordbox xml tree becomes a sorted mirror of your Playlists. Because the key then BPM order is stored in the playlist, it survives the export, for every playlist in one pass.

A compound sort you can actually export

rekordbox stores one sort column at a time with Renumber Track Order, playlist by playlist. DJ.Studio's Harmonize orders a playlist for key and BPM compatibility and exports it to rekordbox. Lexicon can store a key then BPM order with its Rewrite Order tool, once your library lives in Lexicon. Sort works on the XML rekordbox itself exports: your library stays in rekordbox, its database is never touched, every playlist is sorted in one pass, and re-running it is a no-op.

Mac only The Mac app shows the exact resulting order for a selected playlist before anything is written and offers a one-click re-sort whenever rekordbox exports again.

How to sort a rekordbox playlist by key and BPM — the steps, the sort rules, how it compares with single-column sort, and the questions people ask.

CDJ Safe: the emergency backup stick

Older players are only dependable with MP3, and rekordbox will export a FLAC playlist to USB without a word. CDJ Safe converts every track in a playlist to 320 kbps CBR MP3 @ 44.1 kHz (ID3v2.3 tags, artwork kept) and writes a matching playlist into your collection XML where each converted track inherits the source's beatgrid and hot/memory cues verbatim. Import, one right-click, export to USB. No re-analysis, no re-setting cues.

Why this matters for CDJ users

Pre-NXS2 CDJs only play MP3 reliably, and the failure shows up in the booth, sometimes mid-set. Instead of hoping the venue has NXS2 or newer decks, bake a CDJ-safe copy of the set and carry it as your emergency stick.

Sources already at exactly 320 kbps CBR @ 44.1 kHz are copied byte-identically (zero generation loss, LAME header untouched). Lossy → lossy re-encodes are flagged in the report so you can refresh those from lossless masters later. Missing files are skipped and listed rather than aborting the run (v3.2.2), so the stick still gets everything that is there.

Mac only The Mac app runs a pre-flight first: every track location resolved, missing files and tracks without TotalTime (whose cues would silently not import) listed, and a free-space estimate for the output volume. The MP3s land in a folder named after the playlist and the same collection XML you use for Sort is updated in place.

Workflow

  1. Export your collection: File → Export Collection in xml format
  2. Convert: CLI baken cdjsafe collection.xml --playlist "Sets/Friday" --out-dir ~/Music/cdjsafe. Mac app: pick the XML and the playlist, Validate, Convert
  3. Point rekordbox at the XML: Preferences → Advanced → Database → rekordbox xml → Imported Library, then restart rekordbox
  4. Import to Collection: open the rekordbox xml tree → CDJ-safe (MP3) → Friday-CDJ-safe, right-click the tracks → Import to Collection. Beatgrids and cues carry over
  5. Export the playlist to USB in EXPORT mode, as usual. This stick plays on any CDJ in the booth
Terminal — cdjsafe
$ baken cdjsafe ~/Music/rekordbox/collection.xml \
--playlist "Sets/Friday" \
--out-dir ~/Music/cdjsafe-friday

▸ Converting 24 tracks from 'Sets/Friday' → ~/Music/cdjsafe-friday
⚠ 1 track skipped: file not found on disk (Promo Edit v2)

✓ Done! 24 CDJ-safe tracks written.
• 18 re-encoded from lossless sources
• 4 re-encoded lossy→lossy (generation loss)
• 2 copied (already 320 kbps CBR MP3 @ 44.1 kHz)

⚠ Lossy→lossy re-encodes — refresh these from lossless masters before the next gig:
• Old White Label Rip
• Bandcamp 192k Download

✓ XML written: collection-out.xml (playlist 'CDJ-safe (MP3)/Friday-CDJ-safe')
ℹ rekordbox: Preferences > Advanced > Database > rekordbox xml → load the XML, restart
ℹ Right-click the imported tracks → Import to Collection — cues carried over

Design notes

  • The output profile is locked (320 kbps CBR / 44.1 kHz / ID3v2.3): the one combination that plays across the whole CDJ fleet back to the CDJ-850. CBR also sidesteps rekordbox's VBR cue-offset problem
  • A valid Xing/LAME header is written, so rekordbox compensates the encoder delay and cues stay sample-aligned
  • New XML entries get fresh TrackIDs and a [cdjsafe] comment marker; the playlist is named <playlist>-CDJ-safe so it cannot collide with the original on import. Your original tracks and playlists are never modified
  • Missing files are skipped and listed; a conversion that fails aborts the run and no XML is written, because a half-converted emergency stick defeats the point
  • CLI: requires ffmpeg with libmp3lame (Homebrew and winget builds qualify). Mac app: ffmpeg is bundled

Built for rekordbox, not instead of it

There is no shortage of tools that set out to replace rekordbox. Bake'n Deck is not one of them. rekordbox is where you analyse tracks, set beat grids and cues, build playlists and keep your library. Bake'n Deck takes on only the few steps rekordbox leaves out of the trip to the CDJ, and it goes through the doors rekordbox itself provides.

🗂️

Your library stays in rekordbox

Every tool works on the collection XML rekordbox exports, and results go back through rekordbox's own Imported Library. Headroom rewrites files at the same path, so cues and beat grids stay linked. Nothing to migrate, nothing to sync back.

🔐

Its database is never touched

rekordbox's master.db is never read, decrypted or written. The XML export and import rekordbox offers for other software is the only door Bake'n Deck uses.

📋

rekordbox's analysis, copied

On a USB stick, the waveforms and phrases are rekordbox's own analysis files, byte for byte apart from the rewrites rekordbox itself makes at export time. Nothing rekordbox has measured is re-guessed: analysis is generated only for tracks it never saw, and only when you ask.

📏

Measured, not guessed

The stick format was worked out from real rekordbox 7 exports and is checked against them byte for byte. Player limits come only from Pioneer DJ's operating instructions, cited page by page. What has not been measured or tried on a player is labelled untested.

🎛️

Tried on real CDJs

DJs have played sticks written by Bake'n Deck on a CDJ-3000, CDJ-2000NXS2 players and a CDJ-2000NXS, and their reports are public on GitHub. Where rekordbox is still the safer route, such as a gig stick for the OneLibrary players nobody has tested yet, the docs say so.

🎧

The DJ decides

Bake'n Deck reports facts and leaves the call to you: a damaged file or a likely transcode is flagged, not quietly fixed, and the Mac app shows what it will do before it writes. No feature, AI or otherwise, takes over a decision that belongs to the DJ.

Supply chain, handled with care

A tool that rewrites your music library and writes your gig stick has to be trustworthy down to its dependencies. Every addition to the build is treated as a risk first.

  • Each dependency is weighed: a new crate comes in only after a look at what it pulls in. SQLCipher and a vendored OpenSSL were dropped in 4.6.0, and on Apple platforms the encryption uses the operating system's own CommonCrypto since 4.6.1. The lossless MP3/AAC gain engine, mp3rgain, is by the same author
  • Every pull request is checked: GitHub's dependency review fails a change that brings in a known vulnerability of moderate severity or higher, and a licence check stops the build on any licence not on the accepted list
  • CI with the least access it needs: every GitHub Action is pinned to a full commit SHA, workflows are read-only unless a job needs more, and secret scanning with push protection, Dependabot security updates and CodeQL are on
  • No stored publishing token: crates.io releases use Trusted Publishing, a short-lived token over OIDC that only the release workflow gets, from an environment limited to version tags
  • Downloads you can verify: release archives carry SHA-256 checksums and the licence notices of every crate in the binary

How it compares

The DJ prep tools that overlap with Bake'n Deck, one job at a time. Vendor prices and features are as published on their own sites on 2026-10-08; if something has changed, tell us. A dash means the vendor does not document it. The waveAlign column was corrected on 2026-09-30 after feedback from waveAlign; every cell is checked against waveAlign's own pages.

Loudness: Headroom against the normalizers

Two targets. waveAlign and Platinum Notes match tracks to a loudness target; Headroom lines every track up under one true peak ceiling by gain alone and has no limiter at all. waveAlign's limiter only catches clipping on a track that is turned up and is usually not engaged in regular processing; Platinum Notes adds clipped-peak repair and more contrast between quiet and loud sections. If you want every track at one loudness target, waveAlign is built for that. If you want every peak on one ceiling and the trim knob still, this is for you.

Bake'n Deck Headroom waveAlign Platinum Notes 10 DeckReady rekordbox Auto Gain
ApproachTrue peak ceiling (-0.5 dBTP), gain onlyLUFS target (recommends -12 LUFS); a limiter tuned to be transparent catches clipping when a track is turned upLoudness normalisation plus clipped-peak repair and more contrast between quiet and loud sections; custom multiband dynamicsPreset mastering (7 presets): EQ, compression, limiting, sub-bass reinforcement and soft clippingA gain value per track, set at analysis and applied by rekordbox's own decks; what it measures and targets is not documented
Alters dynamicsNeverNot in regular processing; the limiter engages only to catch clippingYesYesNo
Reaches the CDJ on USB✓ baked into the file✓ written into the file✓ rewrites the audio✓ rewrites the audio✗ stays in rekordbox's library
Lossless MP3 / AAC gain✓ global_gain rewrite, bit-for-bit audio✓ no re-encoding for gain-only changesNot claimedNot claimedn/a
Works on a rekordbox playlist✓ Mac app (CLI: folders, files, globs)— (folders, files and USB drives)— (files and folders)— (browser; batches of up to 5 tracks on Studio)n/a
Cues and beatgrids stay linked✓ files rewritten in place✓ cue points, beatgrids and tags unchanged——n/a
Backup and restore✓ per run, one-click restore (Mac)✓ backup feature✓ backs up originals; restoring into DJ apps is manualn/a, in-browsern/a
Open source✓ MIT engine and CLI✗✗✗✗
Your files leave your machineNever. Mac app has no network at allDesktop app; its privacy policy lists no audio upload—No, processed in the browser (its privacy policy)No
PlatformsCLI: macOS, Windows, Linux. App: macOSWindows, macOSWindows, macOSBrowserInside rekordbox
PriceCLI free (MIT). Mac app one-time, about the price of an EPEUR 79 one-timeUSD 98 one-timeUSD 6.50 to 13.20 per month, 5 free tracks a monthIncluded

Also in this space: MP3Gain and aacgain (free, ReplayGain-based, true peak not documented; MP3Gain's site was last updated in 2018 and aacgain's last release, 2.0.0, is from January 2020) and general-purpose normalizers on the Mac App Store, some sold as yearly in-app purchases. Bake'n Deck's built-in engine for lossless MP3/AAC gain is mp3rgain, a modern MP3Gain successor by the same author.

Sort: key → BPM in the playlist, without leaving rekordbox

Several tools can show a key + BPM order. Lexicon can store one for a library that lives in Lexicon, and DJ.Studio can export its own harmonic order to rekordbox. Bake'n Deck writes it into the playlists of the XML rekordbox exports, so the CDJ follows it and your library stays where it is.

Bake'n Deck Sort rekordbox Lexicon DJ DJ.Studio Mixed In Key
Compound key → BPM order✓ Alphanumeric 1A→12B, BPM ascending inside each key✗ single-column: key or BPM✓ Cmd/Ctrl-click, e.g. key then BPMHarmonize scores playlist orders for key and BPM compatibility and picks the best-scoring one— (documents sorting by Energy Level)
Written into the playlist, survives USB export✓ into the exported collection XMLOne column only, with Renumber Track Order (manual p. 257)✓ after its Rewrite Order tool, then a sync to rekordbox or a Pioneer USB✓ exports the ordered playlist to rekordbox (M3U, or a DJ Set export with hot cues)—
Library stays in rekordbox✓ works on rekordbox's own XML export; its database is never touchedn/a✗ imported into Lexicon and synced back——
Whole library in one pass✓ every playlist, idempotentn/a———
Preview before writing✓ Mac appn/aThe sorted view is what gets stored——
PriceCLI free. Mac app one-timeIncluded in rekordboxPaid plans, from USD 10.49 per month or USD 249 lifetimeUSD 99 Studio, USD 129 Pro, USD 169 Pro + Stems, USD 209 Ultimate (one-time, 12 months of updates)USD 58

DJ Conversion Utility, an older XML tool DJs used for this kind of work, is end-of-life according to its vendor, which now sells DJ Conversion Utility TWO. Open-source rekordbox XML scripts on GitHub cover cleanup, conversion and analysis; none we found writes a key then BPM order back into the playlist.

CDJ Safe: the route rekordbox does not offer

rekordbox device export copies files as they are. The usual workaround, a batch conversion, produces new files that rekordbox does not know, so every cue and beatgrid has to be set again.

Bake'n Deck CDJ Safe rekordbox device export Manual ffmpeg / batch converter Lexicon DJ
Transcodes a playlist to MP3 for pre-NXS2 decks✓ 320 kbps CBR @ 44.1 kHz, locked profile✗ exports formats as they are✓ any profile, by hand✗ reports FLAC and ALAC, never converts them
Cues and beatgrids carried over✓ verbatim, into the collection XMLn/a✗ new files, links broken, re-analyze everythingn/a
Already-safe MP3s copied byte-identically✓n/aOnly if you script itn/a
Missing filesSkipped and listed; the rest still gets writtenn/aError, or silently absentn/a

Lexicon's Pioneer USB sync (added as a beta in 1.11.0, June 2026; writes OneLibrary and Device Library) can check every file against CDJ limits (off by default) and repairs header-level problems on the USB copy, such as a WAV_EXTENSIBLE header or a VBR MP3 without a Xing header, and resamples or re-encodes a few others. For a lossless library on older players its manual says to convert the files yourself before syncing, which is the job CDJ Safe does with the cues and beatgrids kept.

Get Bake'n Deck

Start with the Mac app: nothing to install, nothing to configure, ffmpeg bundled. The command line needs ffmpeg; package managers install it automatically.

Mac App Store

Bake'n Deck for Mac. Native app, no Terminal, nothing else to install. One-time purchase, no subscription. macOS 14 or later.

Download on the Mac App Store

macOS (Homebrew)

brew install M-Igashi/tap/baken

Windows (winget)

winget install M-Igashi.baken

Arch Linux (AUR)

yay -S baken-bin

Cargo / pre-built binaries

cargo install baken

ffmpeg must be installed separately. Pre-built binaries on GitHub Releases. Embedding the engine? It is on crates.io as baken-core.

CLI or Mac app?

Same baken-core, same numbers. Pick by how you like to work.

baken CLIBake'n Deck for Mac
PriceFree, MIT-licensed, foreverOne-time purchase, about the price of an EP. No subscription, no IAP
PlatformsmacOS, Windows, LinuxmacOS 14+, Apple silicon and Intel
Headroom: folder mode✓✓ drag and drop
Headroom: one rekordbox playlist✗✓
Gain only, no limiter, two-directional✓✓
Lossless MP3 / AAC gain✓✓
Review table, audio preview, library statsText report✓
Analysis cache✗✓ per file
Backups✓ backup/ folder✓ timestamped per run, one-click restore
Sort: all playlists or one✓✓
Sorted-order preview✗✓
Watch the XML, one-click re-sort✗✓
CDJ Safe✓✓ with pre-flight and free-space check
USB export to a stick✓ expressport✓ USB Export, with pre-flight
Mac Tune-up✗✓
Scriptable, pipelines, CI✓✗
ffmpegSystem install (package managers add it)Bundled LGPL build, nothing to install
NetworkOptional daily release check, --no-update-checkNone. No network entitlement
LanguagesEnglishEnglish, Japanese

Renamed from headroom at v3.0.0. The old headroom packages on brew, winget, cargo and AUR no longer receive updates; reinstall as baken. Details.

On the deck, just play.

Trim-riding and tag-hunting belong in prep, not in the mix. Bake'n Deck moves both off the deck and into your files, and leaves the music exactly as it was mastered.