Bake'n Deck for Mac is out. Headroom, Sort and CDJ Safe in a native app, no Terminal needed. Get it on the Mac App Store →
GitHub
Mac app 1.0 out now CLI v3.7.0

What you prep in rekordbox
is what plays on the deck.

rekordbox does three things in software that never survive the trip to a CDJ. Bake'n Deck bakes each one into the files themselves, on your Mac. Here is all of it in five minutes.

Prefer the Terminal? The free baken command line for macOS, Windows and Linux runs the same baken-core engine, and always will.

brew install M-Igashi/tap/baken
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.

🎚️

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

Auto Gain is a performance-mode setting; 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.

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.

Most DJ loudness tools chase a LUFS target and push dynamic tracks through a limiter to get there. That changes the music. Headroom does the one thing a mastering engineer would sign off on: a single gain change per track. 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, so the trim knob stays where you left it. It is deliberately not loudness matching: a track that was mastered quiet stays a little quieter than a loud one, because the only way to change that is a limiter, and a limiter is what you bought a well-mastered track to avoid.

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.
1.0 to 1.5 dB below the ceiling Opt-in Re-encode for the exact gain libmp3lame / AAC at the original bitrate, volume filter only. Off by default; you confirm it.
Within 0.05 dB, or less than 1.0 dB below Skip Left alone A fraction of a dB is not worth a generation of loss (v3.3.1).

Why the opt-in re-encode is safe at high bitrates

Re-encoding an MP3 or AAC for gain only at 256 kbps or higher adds quantisation noise below -90 dB, far under the audible threshold.

  • ABX tests: listeners cannot distinguish a 320 kbps → 320 kbps gain-only re-encode
  • Waveform preserved: gain is a multiplication, no compression or EQ is applied
  • Original bitrate kept, libmp3lame at its highest quality setting
  • It is opt-in and only ever offered for a raise between 1.0 and 1.5 dB; lowering never re-encodes

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
MP3ffmpeg re-encode (opt-in, raises only)ExactInaudible at ≥256 kbps
AAC/M4Amp3rgain (built-in), up or down1.5 dB stepsLossless
AAC/M4Affmpeg re-encode (opt-in, raises only)ExactInaudible at ≥256 kbps

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. Apply is locked whenever the target or gain mode changed after the analysis, so a table computed for one ceiling is never applied under another.

Sort: the key + BPM order rekordbox cannot do

rekordbox sorts by key or by BPM, never by both at once, and a CDJ plays a playlist in the order it was stored. Sort rewrites the track order inside every playlist of your exported collection.xml: Camelot 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 order lives in the playlist and not in a view, it survives the export.

A compound sort you can actually export

Lexicon's multi-column sort is a display sort. DJ.Studio's Harmonize builds a mix timeline. rekordbox's own sort is a view. None of them changes the order a CDJ will follow. Sort writes the order into the playlist itself, for every playlist in the library 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, checks that your export uses Camelot notation, 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

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-09-07; if something has changed, tell us. A dash means the vendor does not document it.

Loudness: Headroom against the normalizers

Two philosophies. waveAlign and Platinum Notes match tracks to a loudness target and use a limiter or other processing to get there, which changes how the music sounds. Headroom lines every track up under one true peak ceiling by gain alone and never alters dynamics. If you want loudness matching with a limiter, buy waveAlign. If you want the master untouched 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) with a mastering-grade limiterLoudness normalisation plus clipped-peak repair and tonal shapingPreset mastering: loudness, EQ, dynamics, clip removalGain offset toward an average loudness, applied at playback
Alters dynamicsNeverYes, limiterYesYesNo
Reaches the CDJ on USB baked into the file rewrites the audio rewrites the audio rewrites the audio performance mode only
Lossless MP3 / AAC gain global_gain rewrite, bit-for-bit audioNot claimedNot claimedNot claimedn/a
Works on a rekordbox playlist Mac app (CLI: folders, files, globs) folders and USB drives folders per-track uploadn/a
Cues and beatgrids stay linked files rewritten in placen/a
Backup and restore per run, one-click restore (Mac)n/a, in-browsern/a
Open source MIT engine and CLI
Your files leave your machineNever. Mac app has no network at allYes, upload requiredNo
PlatformsCLI: macOS, Windows, Linux. App: macOSWindows, macOSWindows, macOSBrowserInside rekordbox
PriceCLI free (MIT). Mac app one-time, about the price of an EPEUR 79 one-time (EUR 49 launch price until 2026-09-30)USD 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, no true peak, unmaintained) and generic Mac App Store normalizers with yearly in-app purchases and no DJ context. Bake'n Deck's built-in engine for lossless MP3/AAC gain is mp3rgain, a modern MP3Gain successor by the same author.

Sort: nothing else writes key → BPM into the playlist

Several tools can show a key + BPM order. Only one writes it into a rekordbox playlist so the CDJ follows it.

Bake'n Deck Sort rekordbox Lexicon DJ DJ.Studio Mixed In Key
Compound key → BPM order Camelot 1A→12B, BPM ascending inside each key single-column: key or BPMDisplay only (Cmd-click). Playlist Sort reorders playlists, not the tracks insideHarmonize orders tracks by key and BPM inside a mix timeline Energy Level sort
Written into the playlist, survives USB export into the exported collection XML a view track order is changed by drag and drop output is a mix or timeline
Whole library in one pass every playlist, idempotentn/a
Preview before writing Mac appn/a
PriceCLI free. Mac app one-timeIncluded in rekordboxUSD 199 lifetime or USD 9.99 per monthUSD 129 Pro, USD 299 UltimateUSD 58

Rekord Buddy and DJ Conversion Utility, the older XML tools DJs used for this kind of work, are both end-of-life. Open-source rekordbox XML scripts on GitHub cover cleanup, conversion and analysis; none we found writes a Camelot-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 moves libraries between DJ apps
Cues and beatgrids carried over verbatim, into the collection XMLn/a new files, links broken, re-analyze everythingn/a
Already-safe MP3s copied byte-identicallyn/aOnly if you script itn/a
Missing filesSkipped and listed; the rest still gets writtenn/aError, or silently absentn/a

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
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.