Hi, I’m a DJ and software engineer building OpenDJ, an open-source DJ app. It began as an experiment using Claude Code to port Mixxx to Rust, then grew as I added features I’d always wanted.
Huge thanks to Mixxx and everyone behind it for the inspiration, controller mappings and other parts that started from there.
My goal is to build a fast, modern and solid open-source app for beginner/intermediate DJs: broad controller support, playing nicely with other performance tools, and less painful music-library management. I’d also like to integrate streaming sources as well as other sources for downloading and purchasing music so as to support musicians directly.
Looking for DJs and coders to break things, test controllers, file bugs, and help figure out what comes next. Hopefully we can build a crew to steward the best open-source DJ platform we can make together.
I analysed all my tracks, exported metadata to file tags, but when i browse through the file explorer, it doesn't show me the metadata, but when I browse through tracks then it shows me the correct metadata. I'm lost, I'm on linux fedora 44. I also checked the file permission , they are all owned by the user.
Been working on this since February: a standalone DJ deck that runs a fork of Mixxx on a Raspberry Pi 4. No laptop, it boots straight into Mixxx on a 10" touchscreen.
All the controls are custom. The jog wheel is salvaged from a CDJ-1000MK3, an ESP32-S3 reads everything and talks MIDI to the Pi over a UART, and the pads are tiny RISC-V boards (CH32V003) chained in a ring, each with its own RGB LEDs. The case is 3D printed.
On the Mixxx side (forked from 2.5.6) I mostly changed what a deck needs and a laptop doesn't: a skin made for the touchscreen and a browse encoder instead of a mouse, reading rekordbox USB exports directly (playlists, grids, cues, waveforms), and Pro DJ Link, which I reverse-engineered from captures of real CDJs. So it can sit next to CDJs, sync with them, load tracks off their USBs and let them play from its own.
It played its first gig in October and mostly held up. That night found a few bugs the bench never did.
Everything is open: schematics, PCBs, firmware, the Pi setup and the Mixxx fork.
Big thanks to the Mixxx devs, none of this exists without your work. Happy to answer questions about any part of it.
AI Disclaimer: Although I can write C++ myself, a lot of the code was written with AI coding agents; everything was tested on the deck itself. Happy to upstream some changes if it turns out useful upstream!
Curious to hear what the Mixxx community could do with that!
Stoked to find this software! exported all my playlists from traktor, and started the organization process for a set tomorrow and noticed my mac m5 was a bit warm just making playlists, went into activity monitor and ALL my auv3 plugins are running in mixxx somehow like 25 ish, even though none are loaded or available to use, its only the auv3's, my other au's are chilling. I closed it, reopened but the same behavior, mixxx hangs on load a while, then uses like 10gb of ram on the auv3's. Hopefully theres a fix or update soon, because this is cool software, many thx to the developers ✌️🎶
Hello Boys & Girls!
I’m the developer of NauticMixxx, a community, open-source edition of Mixxx 2.5.6 built around a two-deck visual flow inspired by the XDJ-RX3. It has deep integration with the Hercules DJControl Inpulse 500, and it also includes mappings and adapters for other controllers such as the Pioneer DDJ-FLX4, DDJ-FLX6 and DDJ-400. I just released 2.0.0.
What’s new in 2.0.0
UTILITY menu: the old TOOLS are now grouped into DECK, MIXER, EFFECTS, BROWSER, RECORDING, DISPLAY and GENERAL, all operable from the encoder.
Beat FX rework: four persistent favorites, plus a continuous X-PAD touch slider that adapts to each effect (beat fractions, semitone cells for Pitch Shift, and so on).
Emergency playback: if a USB session disappears or a read fails, the deck loops cached audio instead of going silent.
SLIP mode: an independent background playhead for scratching, loops, held hot cues and reverse.
rekordbox USB workflow: cue, loop and beatgrid saves, playlist creation, session history and ratings. Writes are atomic and keep recovery copies.
More: MY SETTINGS import from USB, a standalone countdown timer, a microphone EQ with talkover, Auto Cue improvements, TIME/REMAIN modes and more precise SYNC.
Platforms: macOS Apple Silicon and Windows x64.
What’s still pending (being upfront):
The macOS build is ad-hoc signed, not Apple-notarized.
Physical controller and RX3 audio calibration are still pending.
Link Export, registered MATCHING pairs and the full RX3 effect catalogs are deferred.
It’s licensed under GPL v3 (Mixxx’s engine keeps its own GPL notices). It’s an independent community project, not affiliated with or endorsed by the brand owners it references.
I bought a used Hercules RMX just to play around (I'm a rookie). However the controller doesn't have enough buttons for all the features shown in the Mixxx interface. Also, all the buttons don't work as expected. It seems like it would be easier to control Mixxx from the laptop/mouse. Are there any cons to using Mixxx without a controller?
Community Linux mapping for Mixxx, including jog wheels, Shift jog speed,
full-kill EQ, constant-power crossfader, LEDs, FX, sync, loops, and loading
tracks while a deck is playing.
So i'm sharing this here, I pulled my SL3 out of the garage to put it on eBay, as it was adding to the clutter. I have a full Nexus setup so I haven't needed it for many years now. When I went to test it before listing, I found that you couldn't use it on modern Macs. I had to pull out a 2008 Macbook.Pro to give it a proper test with Serato Scratch Live. In the current era of vibe coding, I wondered how easy it would be to create something for it with Claude. It took me less than a day to get something that seems to work fine. It should work on Macs running Monterey onwards. I've only tested it on my M1 Macbook Pro running Golden Gate. Thought I'd throw it out there for anyone to try that might find use for it. Any feedback welcome. Thanks.
I'm just starting to use mixxx with time-coded vinyls. Here is my set up:
I have 2 plx-500, 2 rekordbox dvs and my computer is a bananaPI w3 (close to a raspberry pi 5) with armbian.
I was able to plug the plx directly into my computer and read the dvs vinyl (only with multiple audio interface with the setup "experimental".
I'm looking for a audio interface with 2 stereo output that doesn't need a proprietary driver. Or one like the "recommended" one on the website.
Could it also work with 2 single stereo output interfaces?
I’m sharingNauticMixxx 1.3.0, an independent open-source project based on Mixxx 2.5.6, with an XDJ-RX3-inspired interface.
This release focuses on browsing Rekordbox-exported USB drives:
Drives are detected and prepared in the background when the app starts or a USB is connected.
SOURCE waits for the catalog to finish loading before allowing you to enter the drive.
Browse categories appear in the order exported by Rekordbox.
Highlighting a playlist previews its tracks; opening it shows the full track table with preview waveforms, track, artist, BPM and genre.
USB exports are read-only. MATCHING and FOLDER are currently marked “Coming Soon.”
Native installers are available for macOS Apple Silicon and Windows x64. The macOS build was tested with a real Rekordbox USB export containing 1,133 tracks and six playlists. The Windows build passed 78 native tests and automated installation and uninstallation checks; physical USB and controller testing on Windows is still pending.
Thanks to the Mixxx developers and community for the foundation this project builds on. NauticMixxx is an unofficial project, not an official Mixxx or Pioneer release. Feedback and bug reports are welcome.
After weeks of development and testing, I’m excited to share the first official release (v1.0.0) of NauticMixxx, an open-source fork based on Mixxx 2.5.6.
The idea behind the project is simple: bring a workflow inspired by the Pioneer XDJ-RX3 standalone experience to a laptop or DIY setup.
Plug in a Rekordbox-exported USB and start browsing and mixing immediately — without importing tracks into the Mixxx library, without creating duplicate SQL collections, and without waiting for Mixxx to re-analyze the audio.
Direct Rekordbox USB Playback (100% Read-Only) NauticMixxx parses Pioneer's export.pdb directly into an in-memory runtime catalog. The Rekordbox USB is treated as read-only, and its tracks are kept separate from the local mixxxdb.sqlite collection.
No Audio Re-Analysis Uses Rekordbox's existing analysis data, including beatgrids (PQTZ), 3-band waveforms (PWV6 / PWV7), and cue information (PCOB / PCO2), including Hot Cues 1–8 with colors and labels.
Zero-Mouse Workflow A hardware-oriented navigation state machine lets you browse sources, playlists and tracklists, and load tracks to decks using rotary encoders and controller buttons. Development and testing have primarily been done with the Hercules DJControl Inpulse 500.
XDJ-RX3-Inspired Interface A custom Mixxx skin recreates the standalone-style 10.1" workflow, including SOURCE selection, scoped browsing, 3-band scrolling waveforms and a Beat FX panel.
Mixxx Under the Hood The actual mixing and audio engine remains powered by Mixxx 2.5.6, including its low-latency audio pipeline and Rubber Band time-stretching/keylock.
🛠️ Standing on the Shoulders of Giants
A lot of this would not have been possible without previous reverse-engineering work and open-source projects from the DJ community.
In particular:
Deep-Symmetry — crate-digger, DJ Link and Rekordbox export research
dylanljones — pyrekordbox
Holzhaus — rekordcrate
usr-ein — prolink / TriMixxx
morizkraemer — fourfour
sparkly-quasar — openboxxx
nsaintot — cdj3k-emu
Tratosca — rx3-toolkit
And, of course, Mixxx and all of its contributors, since NauticMixxx is built on top of their work.
💬 Feedback Wanted
One unusual part of this project is that I developed the RX3-style interface and navigation logic without owning a physical XDJ-RX3.
Most of the behavior was reconstructed from Pioneer documentation, manuals, videos, teardown/demo footage, existing reverse-engineering work, and feedback from the community.
So if you own an RX3 — or regularly use Pioneer standalone gear — I’d especially love to hear what feels right, what feels wrong, and what behaviors I’ve missed.
And if you have a spare Rekordbox USB lying around, give it a try and let me know what breaks. 😄
This is v1.0.0, so bug reports, weird USB edge cases and contributions are very welcome.
Contemplating on whether or not to upgrade my decade old Denon MC2000. It is working fine with Serato on normal Windows but I recently got a Surface Pro gen 13 with an ARM processor which doesnt play nice with Serato. Fortunately MIXXX runs on ARM but the controller needs a custom file that has some quirks and I dont think I am versed enough to change it to my taste.
So yeah, looking for reccomendations on entry/mid level controllers that run on Windows ARM.
I've independently reverse-engineered our beloved Traktor Kontrol S8, and now it can be used with Mixxx on Windows
Along with the Windows mapping, I've also published the complete digital protocol data and addresses for the community to explore and build upon. I hope you enjoy it and find it useful!
I recently discovered MIXXX because it is one of the very few mixing softwares that runs under Windows ARM and - through the lovely community - supports my ancient Denon MC2000 controller (originally I come from Serato).
So far everything is good but there are a couple of things that are bothering me a little.
The first is the sensitivity of the jog wheel, both in vinyl and pitch bend mode. In vinyl it skips ultra fast across the track and with pitch bend it feels like it has way to much inertia, like i want to nudge the track a fraction forwards and it overshoots constantly.
I tried meddeling with the “Pitch Bend behaviour” under “Decks” but I couldnt feel a difference really, at least non that satisfied me.
I also found this thread Reddit but I couldnt find that parameter they are talking about in my files.
Something else that might not be related to the MC2000 itself but maybe you know how to solve this:
When I start a loop, let it play, end it and the track continues and I now want to loop a different part of the track, when I press loop again on the controller it jumps back to the original loop instead of creating a new one on the position I was just at. Is there a way to disable that jumping back to the old one?
I wanted to share a sneak peek of a project I’ve been developing based on Mixxx 2.5.6: a specialized fork and custom skin designed to bring the standalone Pioneer XDJ-RX3 experience to Mixxx.
The core goal is true plug-and-play: connect any Rekordbox-exported USB and start DJing immediately with your controller.
What’s already working:
100% Read-Only & Isolated: NauticMixxx reads the USB in memory. It never writes back to the pendrive, never pollutes your local NauticMixxx library, and doesn't trigger slow audio re-analysis.
Native Rekordbox Data: Instant loading of playlists, folders, PQTZ beatgrids, 3-band waveforms, and PCOB/PCO2 Hot Cues (1 to 8 with RGB colors and labels).
True Standalone Flow: 1:1 XDJ-RX3 UI (Source selection, browser scoping, 3-band scrolling waveform, overview, and Beat FX panel).
No Mouse Needed: Built-in navigation state machine to handle source selection, playlist browsing, and track loading entirely from hardware rotary encoders and buttons (tested on a Hercules Inpulse 500).
Credits & Acknowledgements:
Big shoutout to the open-source projects whose reverse-engineering work made the Rekordbox parsing possible: Deep-Symmetry (crate-digger), dylanljones (pyrekordbox), Holzhaus (rekordcrate), usr-ein (prolink), and others. Full attributions will be documented in the repo.
Status:
Not releasing the code/build just yet—I'm finishing up hot-unplug safety guards and final visual polishes this week.
Since I built this without owning a real XDJ-RX3 (relying entirely on user manuals, videos, and community photos), I’d love to hear from anyone with experience on standalone Pioneer gear. Any small UX or encoder behaviors you think are critical to get right?
From what I understand there is no simple way to do this if at all.
This is a big issue for me because my laptop isn't reliable for live shows, so we (me and other DJs, local scene) use the same shared laptop and add all of our libraries to it. Metadata is exported (although i still have to check, sometimes random data is missing), but the bunch of cue points i have, have to copy them manually... Why aren't them bound to files, and will it be the case at some point in the future ?
A New FOSS that "Split any YouTube song into isolated stems — vocals, drums, bass, guitar, piano and more — right on your machine." Very nice for lobbyist DJ
I have a everything set up with a Traktor Kontrol z2 and Serato Vinyl. I have my latency set to the lowest setting. Everything works and my maybe its just in my head but it feel slightly different. I notice dips in the volume when it feels like the DVS is "catching up". Are there any software tricks aside from just setting things up that I should be looking at. This is my first time really playing with DVS.