How dj-joel/mixxx works
Mixxx is live DJ software, with this fork emphasizing Auto DJ 2.0 set planning and video mixing. The principal workflow is to select and analyze tracks, load and play them on decks, then mix and perform through audio effects and output; Auto DJ adds harmonic/energy-aware planning and beatmatched, phrase-aligned transitions. Controller input, broadcasting, and video are important performance branches. The tree and excerpts support several internal layers, but do not expose Auto DJ or video implementation paths, so those nodes have no asserted source path and their internal wiring is omitted.
Main entry points: mixxxdb.cpp Track library · enginebuffer.cpp Deck playback · controllerscriptenginelegacy.cpp Controller mappings · controllermanager.cpp Controller manager
Components 15
Library and analysis
- Track library
src/database/mixxxdb.cpp - Track analysis
src/analyzer/analyzertrack.cpp - Beat and key data
src/track/beatfactory.cpp
Playback and mixing
- Deck playback
src/engine/enginebuffer.cpp - Audio effects
src/engine/effects/engineeffectsmanager.cpp - Audio output
src/audio/streaminfo.cpp
Live performance
- Controller manager
src/controllers/controllermanager.cpp - Controller mappings
src/controllers/scripting/legacy/controllerscriptenginelegacy.cpp - Controller screens
src/controllers/rendering/controllerrenderingengine.cpp - Broadcast manager
src/broadcast/broadcastmanager.cpp
Fork capabilities
- Auto DJ planner
- Video mixing
Other components
- DJ
- Audience
- DJ hardware
Connections 18
- DJ → Track library: selects tracks
- Track library → Track analysis: schedules analysis
- Track analysis → Beat and key data: produces analysis
- DJ → Auto DJ planner: requests a set
- Auto DJ planner → Track library: selects tracks
- Auto DJ planner → Beat and key data: plans transitions
- DJ → Deck playback: loads and plays
- Track library → Deck playback: supplies track
- Deck playback → Audio effects: processes audio
- Audio effects → Audio output: sends mixed audio
- DJ → Video mixing: performs video mix
- DJ hardware → Controller manager: sends input
- Controller manager → Controller mappings: dispatches events
- Controller mappings → Deck playback: controls playback
- Controller mappings → Controller screens: requests screen frames
- Controller screens → Controller manager: sends frame data
- Audio output → Broadcast manager: provides stream
- Broadcast manager → Audience: broadcasts audio