Skip to content

alxgom/mixx_addon

Repository files navigation

Mixxx DJ Dashboard Companion

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.

Dashboard Preview

How It Works

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.

Set Analysis

Features

The dashboard consists of four main sections:

1. Aggregate Playlists

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.

2. Individual Playlist

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.

3. Library Content

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.

4. Crates (In Development)

Analysis of your crate classification system to help organize and audit your library structure.

Live Demo

An online example with a subset of data can be found here:
Live Dashboard

Future Roadmap

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

Compilation (Building the Executable)

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.

Prerequisites

Steps to Build

  1. Install dependencies:
    poetry install
  2. Run the build command:
    poetry run pyinstaller --onedir --noconsole --add-data "assets;assets" app.py --noconfirm --clean
  3. Copy required files: After the build finishes, you need to manually copy your configuration and private database into the dist/app/ folder:
    • Copy config.json into dist/app/
    • Create the directory dist/app/src/db/ and copy extra_features.sqlite into it.

Running the Executable

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.

Used by

Contributors

Languages