A native macOS app for DJs to convert lossless audio to MP3 and burn to CD, with full Rekordbox integration.
Created by Jarrod Drugge
- Rekordbox XML Import — Import playlists directly from Rekordbox with all metadata (BPM, key, genre, comments, label, remixer)
- Lossless → MP3 Conversion — Convert FLAC, WAV, AIFF, ALAC to MP3 via FFmpeg with ID3v2.3 + ID3v1 metadata embedding
- CD Burning — Burn finalized ISO 9660 data CDs using macOS DiscRecording framework with configurable write speeds
- Multi-Disc Capacity Bar — Visual disc fill indicator with color-coded segments showing exactly how many CDs you need
- Multi-Disc Burn Flow — Automatic pause between discs with resume prompt, per-disc progress, and live track status
- Camelot Key Display — Musical keys shown in both standard and Camelot notation (e.g., "Am (8A)")
- Drag-and-Drop — Reorder tracks between disc segments, drag audio files from Finder
- Duplicate Detection — Auto-detect and remove duplicate tracks
- Sort & Filter — Sort by title, artist, BPM, key, duration, or file size; search across all fields
- Print Labels — Generate and print track listings for each disc
- Burn History — Track all past burns with full details
- Bundled FFmpeg — FFmpeg can be bundled inside the app so users don't need to install anything
- macOS 15.0 (Sequoia) or later
- Xcode 15 or later (for building from source)
- CD/DVD burner — External USB drive or built-in (for burning)
gh repo clone keTECHNOamine/MP3CDBurner-macOS
cd MP3CDBurner-macOSRun the included setup script to download and bundle a universal FFmpeg binary:
./scripts/download-ffmpeg.shThis downloads static FFmpeg binaries for both Apple Silicon and Intel, creates a universal binary, and places it in MP3CDBurner/Resources/ffmpeg.
Then in Xcode:
- Right-click the MP3CDBurner group → Add Files to "MP3CDBurner"
- Navigate to
MP3CDBurner/Resources/ffmpeg - Check "Copy items if needed" and ensure "Add to target: MP3CDBurner" is checked
- Build and run
Note: If you skip this step, the app will fall back to using a system-installed FFmpeg (e.g., from Homebrew:
brew install ffmpeg). But for distribution to other users, bundling is strongly recommended.
open MP3CDBurner.xcodeproj- Select "My Mac" as the build target in Xcode's toolbar
- Press Cmd+R to build and run
- The app will open as a native macOS window
MP3CDBurner/
├── MP3CDBurnerApp.swift # App entry point, menu commands
├── ContentView.swift # Main window with sidebar navigation
├── Models/
│ ├── AudioTrack.swift # Track data model, format detection, duplicate fingerprinting
│ ├── AppSettings.swift # Settings model (disc size, quality, write speed)
│ ├── BurnProgress.swift # Burn workflow state with per-disc tracking
│ └── BurnHistoryModel.swift # Burn history persistence
├── ViewModels/
│ ├── PlaylistViewModel.swift # Playlist state, sorting, import/export
│ ├── SettingsViewModel.swift # Settings state management
│ └── BurnViewModel.swift # Burn workflow with multi-disc pause/resume
├── Views/
│ ├── PlaylistView.swift # Main playlist screen with toolbar
│ ├── BurnView.swift # Burn progress with per-disc sections and live track status
│ ├── HistoryView.swift # Burn history list
│ ├── SettingsView.swift # Settings tabs (General, Media)
│ └── Components/
│ ├── TrackRowView.swift # Individual track row with badges
│ ├── MultiDiscCapacityBar.swift # Visual disc fill indicator
│ ├── DiscSectionHeader.swift # Disc boundary headers in track list
│ ├── ImportConfirmDialog.swift # Append vs replace dialog
│ ├── RekordboxImportView.swift # Rekordbox XML import sheet
│ └── PrintLabelView.swift # CD label printing
├── Services/
│ ├── FFmpegService.swift # FFmpeg with bundled binary support + system fallback
│ ├── DiscBurnService.swift # macOS DiscRecording CD burning (finalized ISO 9660)
│ └── RekordboxParser.swift # Rekordbox XML parser
├── Resources/
│ └── ffmpeg # Bundled FFmpeg universal binary (after running setup script)
├── Utilities/
│ ├── CamelotWheel.swift # Camelot key notation and harmonic matching
│ ├── DiscSegments.swift # Multi-disc capacity calculation
│ └── FormatHelpers.swift # Formatting utilities (bytes, duration, BPM)
├── Assets.xcassets/ # App icon and accent color
└── scripts/
└── download-ffmpeg.sh # Downloads and bundles FFmpeg universal binary
| Shortcut | Action |
|---|---|
| Cmd+N | New Playlist |
| Cmd+O | Import Audio Files |
| Cmd+Shift+R | Import from Rekordbox |
| Cmd+S | Save Playlist |
| Cmd+Shift+D | Remove Duplicates |
- Import tracks from Rekordbox XML or drag audio files from Finder
- Arrange your playlist — sort, reorder, remove duplicates
- Check capacity — the bottom bar shows how many CDs you need, with color-coded disc segments
- Toggle "MP3 Estimate" to see projected sizes after conversion
- Click Burn — the app converts lossless files to MP3 (embedding BPM, key, genre as ID3 tags), then burns to disc
- Multi-disc burns — the app pauses between discs, shows a "Insert next disc" prompt, and resumes when you click Resume Burn
Burn Lossy is specifically designed to produce CDs compatible with the Pioneer CDJ-1000MK3:
| Requirement | Burn Lossy Output |
|---|---|
| MPEG-1 Audio Layer-3 | libmp3lame encoder, forced 44.1 kHz |
| Bit rate 32–320 kbps | 320/256/192 kbps options |
| ID3 tags v1.0–v2.4 | ID3v2.3 + ID3v1 dual tags |
| ISO 9660 CD-ROM | ISO 9660 + Joliet filesystem |
| Disc At Once / Track At Once | DAO/TAO (no packet write) |
| Finalized disc | DRBurnAppendableKey: false |
| Max 8 folder layers | Files in root (1 layer) |
During conversion, the following Rekordbox metadata is written as ID3v2.3 + ID3v1 tags:
| Rekordbox Field | ID3 Tag | CDJ Display |
|---|---|---|
| BPM | TBPM | Yes |
| Key (Tonality) | TKEY | Yes |
| Genre | TCON | Yes |
| Comment | COMM | Yes |
| Label | TPUB | Some models |
| Remixer | TPE4 | Some models |
| Title | TIT2 | Yes |
| Artist | TPE1 | Yes |
| Album | TALB | Yes |
| Year | TDRC | Yes |
./scripts/download-ffmpeg.shThen add the MP3CDBurner/Resources/ffmpeg file to the Xcode project (see Quick Start step 2).
In Xcode:
- Product → Scheme → Edit Scheme → set Build Configuration to Release
- Press Cmd+B to build
- Product → Show Build Folder in Finder
- Navigate to
Build/Products/Release/— you'll findBurn Lossy.app
mkdir -p /tmp/burn-lossy-dmg
cp -R "Build/Products/Release/Burn Lossy.app" /tmp/burn-lossy-dmg/
ln -s /Applications /tmp/burn-lossy-dmg/Applications
hdiutil create \
-volname "Burn Lossy" \
-srcfolder /tmp/burn-lossy-dmg \
-ov -format UDZO \
"$HOME/Desktop/Burn-Lossy-1.0.dmg"
rm -rf /tmp/burn-lossy-dmgThe resulting Burn-Lossy-1.0.dmg is fully self-contained — users just drag to Applications and run. No Homebrew or FFmpeg installation needed.
© 2026 Jarrod Drugge. All rights reserved.