After the last Christmas party where I DJed, it became clear that a better archive with playback software is needed—one that might even control hardware, is mature, and preferably free. Mixxx fits this description, raising the question: How do you properly integrate high-quality WAV files for mixing, what are the options, and where are the limits?
Why WAV Automation is Discouraged
It turns out that using automation for WAV tracks is not a good idea. Naming conventions in the DJ segment vary widely, special characters often break renaming, and every mixer configuration has its own rules, making it a gamble whether information lands in the correct database fields. Manual editing is usually unavoidable, but access to the underlying database can simplify the process. Mixxx (open source, free for Windows, macOS, and Linux) servec as an example.
Mixxx + SQLite: Where the Music Really LivesMixxx uses a SQLite database, typically located at:
Depending on your system, you will find them in the following folder
- Linux: ~/.mixxx/mixxxdb.sqlite
- macOS: ~/Library/Application Support/Mixxx/mixxxdb.sqlite
- Windows: %LOCALAPPDATA%\Mixxx\mixxxdb.sqlite
⚠️ Exit Mixxx before editing, otherwise it will overwrite your changes.
SQLiteBrowser: Where to Edit
- Open the Database: Start SQLiteBrowser → open mixxxdb.sqlite
- Relevant Table: library (classic)
- Important Columns:
| Column | Meaning |
|---|---|
| title | Track title |
| artist | Artist |
| album | Album |
| genre | Genre |
| year | Year |
| tracknumber | Track number |
| location | File path |
| duration | Length |
| bitrate | Bitrate |
Direct Editing in SQLiteBrowser
Option A – Manual (for a few tracks):
- Tab “Browse Data”
- Select the library table
- Click → edit → save
CSV Workflow (for reference only!)
- Export: library table → export as CSV
- Edit in LibreOffice:
- Only edit these columns: title, artist, album, genre, tracknumber
- Do NOT touch: id, location, duration, samplerate, bitrate
- Transfer back manually in SQLiteBrowser (copy & paste by location or id)
Why a Safe „Re-Import“ Doesn’t Exist
CSV import always performs INSERT, not UPDATE → duplicate entries and broken foreign keys. Not recommended for production libraries.
The Only Safe Workflow (Proven)
Option A – Direct Editing:
- Close Mixxx
- SQLiteBrowser → library
- Sort / Filter / Edit
- “Write Changes” → start Mixxx
Option B – CSV as a working sheet (Copy & Paste, 0% risk)
Pro Tip (Backup in 10 Seconds)
cp mixxxdb.sqlite mixxxdb.sqlite.BACKUP-$(date +%Y%m%d)
Mixxx uses a relational SQLite database—download and go. For advanced users, a controller package with MariaDB, PostgreSQL, or commercial databases is more suitable.







