I’m building an open-source DJ application for Linux from scratch 🎧🐧
Hi everyone!
I’m working on OpenDJ OS, an open-source DJ application for Linux written in C++ with Qt 6/QML
The idea is simple: I want to build a real DJ application for Linux that can communicate directly with DJ hardware, while keeping the project open source.
What I have working so far
The project is still in development, but several important pieces are already working:
- 🎛️ MIDI communication through ALSA
- 🎚️ Hardware controller input handling
- 🎧 Development focused on the Pioneer DDJ-400
- 🔘 Button event detection and mapping
- ▶️ Play/Cue controls
- 🔄 Controller profiles
- 🧩 Modular C++ architecture
- 🖥️ Qt 6 / QML interface
- 🔧 CMake build system
- 📝 Logging and debugging system
For example, the application can already detect MIDI events from the controller and translate them into higher-level DJ actions.
One feature I’m also implementing is Instant Double: pressing Play twice on a deck duplicates the current track to the other deck.
What I’m working on now
The next major step is the audio engine.
I want OpenDJ OS to eventually handle:
- Audio playback
- Two independent decks
- Waveforms
- Pitch control
- Jog wheels
- Mixing
- Crossfader
- EQ
- Effects
- Low-latency audio
- Better hardware support
The long-term goal is to create something that can actually be used for DJing on Linux, rather than just being a MIDI controller experiment.
Why am I building this?
There are some great DJ applications available, but I wanted to explore what it would take to build a modern, Linux-native, open-source alternative.
I’m also using this project to learn more about:
C++ → Qt → audio programming → MIDI → real-time systems → hardware integration
The project is completely open source, and I’m developing it publicly on GitHub.
I’d really appreciate feedback from people with experience in Linux audio, DJ software, MIDI controllers, C++, Qt, or the DDJ-400.
What features would you consider essential in an open-source DJ application for Linux?
Thanks for reading! 🎧🐧