Mixxx is Free and open source DJ software for Windows, Mac and Linux that gives you everything you need to perform live mixes.
In 2011, I took over as the project lead developer. Together with a handful of core developers and hundreds of contributors we work together to produce the best free DJ software available. You can check out our code on GitHub.
As the lead developer I am involved with nearly every major change to Mixxx. Some of the major projects I’ve been heavily involved with over the years include:
- OpenGL waveforms (my GSoC project)
- SQLite-based music library
- arbitrary numbers of decks (previously Mixxx was hard-coded to 2)
- waveform scratching
- sample decks
- worker-thread based architecture for decoding audio
- key detection and pitch shifting
- dynamic / resizable UI (rewrite of the original skin system)
- modular effects system (combined plugin-based and native effects)
- non-constant beatgrids (allows mixing tracks that change tempo)
- master sync (persistent syncing of decks)
- concurrent library scanner
- internationalization / translation support
- tools for making evidence-based changes (performance metrics)
- unit testing
When I joined the project you couldn’t run Mixxx for more than a few minutes without encountering crashes. That’s what happens when you have thousands of lines of C++ written by 3 distinct teams of people over the course of a decade with close to no documentation!
My biggest contribution to Mixxx has been restructuring the codebase to prevent common problems that lead to segfaults (i.e. reduction of mutable shared state across threads, separation of realtime callback code from the rest of Mixxx, modularity and good conservative code practices). Stability is a feature!
I enjoy working on Mixxx because it combines my love of electronic music, software engineering and product design.