Mixxx integration with Pioneer CDJs

Still interested in this?
I’ve been hacking at teknopaul (teknopaul) · GitHublibcdj and this teknopaul (teknopaul) · GitHubadj
Which acts as a Virtual Pioneer CDJ (outputs midi rather than audio)
Linux / C / ALSA and runs on a pi model B. (crazy cheap / battery powered)
I would be interested in integrating Mixxx to a CDJ network using some of this code. Complimenting, rather than replacing a CDJ backline.
The devices I’ve built so far have no screen, they auto-configure CDJs and synths, I mix with a PlayStation controller. If we could make Mixxx behave as a CDJ (or 4 CDJs) the software for your project would be ticked off.

The network protocol that Pioneer CDJs use has been reverse engineered. Take a look at Deep Symmetry · GitHub. It would be great to implement support for that in C++ in Mixxx.

I’m aware of DeepSymetry project, those guys helped me out a lot.

I have an implementation already for a lot of network protocol in C (libcdj), the prolink messages and e.g beat packets, I don’t think we need to port it to C++ ? QT can call C libs directly, I believe. But it might be a good idea anyway, replace callbacks with signals and slots.

adj has a working a Virtual CDJ with the networking and handshake protocol in C for Linux that we could borrow from, its Linux ALSA specific code so it needs a rethink. Does Mixxx have its own timekeeping internals? or does it use ALSA sequencer via a cross platform API?
In theory adj could be called as a lib too but I dont think it would be pretty, and it would be Linux only.

Does Mixxx have cross platform Netwokring too?
ProLink protocol is a bit of a mess, UDP on lots of different ports, we would benefit from cross platform networking that can follow pselect() design I would think.

C libraries can be used directly from C++ code so that works too.

What is this? The links in your first post are broken.

I split this to a new topic because it is a separate topic from putting Mixxx on an embedded device.

Mixxx uses PortMidi for cross platform MIDI I/O. I recently forked it to replace the build system with modern CMake because the original SourceForge project has not been updated in 10 years and who wants to deal with using SourceForge anyway?

Qt has cross platform APIs for networking.

Please start a new topic in our development Zulip chat. There are lots of technical details to discuss before starting to implement this in Mixxx.

Will do

I posted http:// they got mangledÂ

/teknopaul.Â

Two projects. /libcdj and /adj

http://gitlab.com/teknopaul/adj