A data visualization dashboard for Mixxx, designed to help Swing and Blues DJs analyze their library, sets, and playing habits. It parses the Mixxx SQLite database to provide insights into played tracks, tempos, artists, and more.
It is meant to complement my use of Mixxx for social dance events, allowing me to reflect on my choices, rediscover forgotten tracks, and find new ideas for future sets.
This application uses Python (Dash & Plotly) to query the mixxxdb.sqlite file, which contains all metadata for your Mixxx library and playlists.
The dashboard relies on a workflow where sets played are saved as playlists with a date and a short description of the event.
The dashboard consists of four main sections:
Aggregate metadata from past sets to analyze trends over time.
- Set Filtering: Easily select sets by date, style (e.g., Blues vs. Lindy), or manually via a collapsible checklist.
- Artist Stats: See who you play the most and identify "one-hit wonders" vs. staples.
- BPM Distribution: Analyze the tempo range of your sets.
- Song Repetition: Track how often you repeat songs across different sets.
Deep dive into specific sets to analyze the flow of the night.
- Track Sequence: Visualize the order of songs played.
- BPM flow: View the tempo progression throughout the set.
- Duration & Ratings: Review track lengths and your own ratings.
- Spotify Export: Recreate your DJ sets as public Spotify playlists with a single click via OAuth integration.
Meta-analysis of your entire music library.
- Rating Distribution: See how you've rated your collection.
- BPM Overview: Understand the tempo distribution of your whole library.
Analysis of your crate classification system to help organize and audit your library structure.
An online example with a subset of data can be found here:
Live Dashboard
- AI Metadata Enhancement: Use external APIs or AI tools to enrich library data (e.g., finding original recording dates, identifying band members/personnel, classifying sub-genres like Big Band vs. Small Combo).
- Advanced Crate Analysis: More detailed insights into how tracks are organized.
You can compile this application into a standalone Windows executable (.exe). This allows you to run the dashboard without needing to install Python or Poetry on the target machine.
- Python 3.12+
- Poetry
- Install dependencies:
poetry install
- Run the build command:
poetry run pyinstaller --onedir --noconsole --add-data "assets;assets" app.py --noconfirm --clean - Copy required files:
After the build finishes, you need to manually copy your configuration and private database into the
dist/app/folder:- Copy
config.jsonintodist/app/ - Create the directory
dist/app/src/db/and copyextra_features.sqliteinto it.
- Copy
Go to dist/app/ and run app.exe. It will automatically launch your default web browser and open the dashboard at http://127.0.0.1:8050.

