CDJ-400 Bidirectional OSC Project
This website is a work in progress. If you think this site needs something that isn't here already, post a suggestion on the forums! This applies to application suggestions and feedback (positive and negative) as well!

You can find the forums here: http://sourceforge.net/projects/cdj-400bidirect/forums


Project Goal
This aim of this project is to develop a software solution that will allow for bidirectional communication to and from the CDJ-400 device via the Open Sound Control protocol. "Bidirectional" means input via buttons and controls on the device will be output in OSC and the lights and screen can be controlled by OSC input.

Implementation Method
This project is currently being implemented in C# on the .NET platform. C# was chosen because it is easy to develop in and allowed for rapid prototyping of the concept. Several OSC and USB libraries were also available for .NET at the time when the language was being selected.

Progress
Here is a list of the elements of the project currently being worked on and their estimated (poorly) progress to completion:
  1. Reverse engineer USB input report format (95%)
  2. Reverse engineer USB output report format (90%)
  3. Translate incoming USB data to OSC output (95%)
  4. Translate incoming OSC data to USB output (95%)
  5. Create a stable application frontend for configuring input and output settings (80%)
  6. Multiple device support (80%)
  7. MIDI input (to device) support (0%)
At this point, a semi-rough proof of concept is complete which allows for configurable bidirectional communication via OSC with multiple CDJ-400 devices. However a great deal of polishing and testing needs to be done before this can be considered a complete project.

Currently the only operating system this project runs on is Windows. The project was built and tested on Windows 7 64-bit edition, however it should work on other Windows platforms due to the portable nature of the .NET platform. Feedback concerning which operating system configurations work and which do not is greatly appreciated.