Pioneer Ddj Sb2 With Mixxx

  1. Serato
  2. Pioneer Ddj Sb2 Serato Software
  3. Ddj Sb2 Review

I recently bought the Pioneer DDJ-SX Controller and made a mapping including javascript by myself, derived from the existing Pioneer DDJ-SB2 mapping. The controller is fully functional with Mixxx, a few special button functions are included, too. Nov 20, 2015  This tutorial will take you through the DDJ-SB2 set up process step by step, from downloading Serato DJ Intro and installation to importing tracks.

Description

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.

How do I use it?

If you just want to get your controller working with with Mixxx without bothering about the details much, then do the following:

  1. Download the following two files:
  2. Copy these to the [Mixxx Directory]/controllers folder. This will probably be one of the following locations:
    • Windows: C:Program FilesMixxxcontrollers
    • Linux: /usr/share/mixxx/controllers or /usr/local/share/mixxx/controllers
    • OS X: /Applications/Mixxx.app/Contents/Resources/controllers/
  3. 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)
  4. Open (or restart) Mixxx, and enjoy using your (semi-functional) controller

Controller Setup (important!)

Sb2

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.

  1. Turn off the Pioneer DDJ-SR
  2. Hold down Shift + Play on the left deck, and turn the power on.
  3. Turn the left deck's keylock on.
  4. Restart the controller.

Serato

Pioneer dj

To use the controller with Serato again, repeat this process and turn the keylock back off again.

What's implemented?

  • 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

What's missing?

  • Some button LEDs
  • Performance Pads:
    • PAD Plus functions
    • Slicer
    • Sampler LEDs (but sampler itself works)
  • Effects
  • Slip
  • High resolution knobs

I'm a developer. How do I build this?

Pioneer Ddj Sb2 With Mixxx

Pioneer Ddj Sb2 Serato Software

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:

  1. Install NodeJS if you haven't already
  2. Get all of the node dependencies for this project:
    1. Open a console, command prompt or powershell.
    2. Navigate go to the project folder.
    3. Enter npm install
  3. Build the project
    1. Open a console, command prompt or powershell.
    2. Navigate go to the project folder.
    3. 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.

Development Tips

Ddj Sb2 Review

  1. Run Mixxx from a terminal with the --controllerDebug --developer arguments. This gives you all debug output there from your controller, enables the Developer menu, and also provides you with additional development information in control tooltips.
  2. Mixxx does not recognise console.log(...), but you can use engine.log(...) instead.
  3. You do not necessarily have to restart Mixxx for it to detect changes, but it sometimes helps ;-)