-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Developer Guide
The purpose of this guide is to give you, our intrepid contributor, an overview of the Mixxx codebase. Mixxx is a big project with millions of lines of code so it can be daunting at first. If you know how to get around then it really isn't that big and scary.
This guide is a work in progress. If you have any questions, join the Mixxx Zulip chat to get live help from developers
First, get the code of Mixxx using Git.
To understand this guide, you should have a working experience with a systems language like C, C++, or Java. You should be able to get by with trial and error even if you don't know these. It will help significantly if you have some experience with the Qt Framework which Mixxx uses extensively.
We also highly recommend that you use a C++ IDE rather than a text editor. Mixxx is a huge project spread across hundreds of source code files. IDEs index the entire code tree and allow you to jump from where a function is used to its definition, even if that is in another file (which it often is). Without this powerful tool, you will spend a lot of time simply finding the code you're looking for instead of understanding what it is doing. We have guides for setting up several IDEs to work on Mixxx, but feel free to use whatever IDE you prefer.
Please check out the Learning resources page to learn about the basics and underlying concepts
These are the fundamental building blocks used almost everywhere in Mixxx. You should skim these first so that you aren't confused when you see them in other sections.
- Startup
- Library
- Shoutcast
- Mixing Engine
- Deck/Sampler Processing
- Effects Framework
- SoundManager (OS audio interface)
- SoundSource (per-format audio decoding)
- Analysers (beat detection, key detection, waveform analysis, replaygain, etc.)
- Vinyl Control
- Controllers (MIDI, HID, etc.)
- Keyboard Control
- Preferences Dialogs
- Waveforms
- Skins
- GUI Widgets (non-skin)
Mixxx is a free and open-source DJ software.
Manual
Hardware Compatibility
Reporting Bugs
Getting Involved
Contribution Guidelines
Coding Guidelines
Using Git
Developer Guide
Creating Skins
Contributing Mappings
Mixxx Controls
MIDI Scripting
Components JS
HID Scripting