This is my attempt at mapping the Pioneer DDJ-SR for Mixxx.
This was originally written for Mixxx v1.11.0, but I'm in the process of updating it to Mixxx 2.0 as of January 2017. This is very much a hobby project though, so updates may be intermittent.
If you just want to get your controller working with with Mixxx without bothering about the details much, then do the following:
- Download the following two files:
- Copy these to the
[Mixxx Directory]/controllers
folder. This will probably be one of the following locations:- Windows:
C:\Program Files\Mixxx\controllers
- Linux:
/usr/share/mixxx/controllers or /usr/local/share/mixxx/controllers
- OS X:
/Applications/Mixxx.app/Contents/Resources/controllers/
- Windows:
- Make sure your Pioneer DDJ-SR is plugged in, turned on, and set up to use DJ software other than Serato (see your user manual, or the
Controller Setup
section below) - Open (or restart) Mixxx, and enjoy using your (semi-functional) controller
By default, your Pioneer DDJ-SR will be in "Serato-mode". This means that some functionality quite simply won't work in Mix until you turn it off (for example, keylock for the pitch controls). To change this, do the following.
- Turn off the Pioneer DDJ-SR
- Hold down
Shift
+Play
on the left deck, and turn the power on. - Turn the left deck's keylock on.
- Restart the controller.
To use the controller with Serato again, repeat this process and turn the keylock back off again.
- General
- Cross-fader
- VU Meter LEDs
- Deck Controls
- Volume
- Play / pause
- EQ
- Highs
- Mids
- Lows
- LPF / HPF Filter
- Cue button
- Sync button (although this works differently than in Serato; still to be fixed)
- Performance Pads
- Hot Cues
- Rolls
- Sampler (without LEDs however)
- Jog Wheels
- Scratching
- Pitch Bending
- Some button LEDs
- Performance Pads:
- PAD Plus functions
- Slicer
- Sampler LEDs (but sampler itself works)
- Effects
- Slip
- High resolution knobs
In order to make things a bit easier to understand and modularised, I've written a basic build process for this mapping. This allows me to do things like define all the midi-mappings in JavaScript, and then let Node build up the final XML file that Mixxx understands. In order to do this, you'll need to do the following:
- Install NodeJS if you haven't already
- Get all of the node dependencies for this project:
- Open a console, command prompt or powershell.
- Navigate go to the project folder.
- Enter
npm install
- Build the project
- Open a console, command prompt or powershell.
- Navigate go to the project folder.
- Enter
npm run build
The final results of this will be placed in your bin
directory. They will also be copied to your process.env.LOCALAPPDATA + '/Mixxx/controllers'
folder, so Mixxx should detect them immidiately as well.
You can also optionally run npm run watch
, which will rebuild the project any time you edit a JavaScript file in the source
folder.
- Run Mixxx from a terminal with the
--controllerDebug --developer
arguments. This gives you all debug output there from your controller, enables theDeveloper
menu, and also provides you with additional development information in control tooltips. - Mixxx does not recognise
console.log(...)
, but you can useengine.log(...)
instead. - You do not necessarily have to restart Mixxx for it to detect changes, but it sometimes helps ;-)