Mixxx Library: Safely Managing WAV Files

Datum

de-icon en-icon

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 Lives

Mixxx 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

  1. Open the Database: Start SQLiteBrowser → open mixxxdb.sqlite
  2. Relevant Table: library (classic)
  3. Important Columns:
ColumnMeaning
titleTrack title
artistArtist
albumAlbum
genreGenre
yearYear
tracknumberTrack number
locationFile path
durationLength
bitrateBitrate

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!)

  1. Export: library table → export as CSV
  2. Edit in LibreOffice:
    • Only edit these columns: title, artist, album, genre, tracknumber
    • Do NOT touch: id, location, duration, samplerate, bitrate
  3. 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.





 

back

 

further