Pioneer DDJ-SX Controller Mapping

Hello everybody,

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.
What do I have to do to make it available to you? Perhaps I should make a wiki topic about it, too? How can I do that?
If someone needs this mapping, I can also attach it here I think?


If you want your mapping to be included in Mixxx, a good start is … g_mappings

don’t hesitate to ask if you have any further question.

The link sblaisot posted above describes the process in detail. Until your mapping has been reviewed and included in Mixxx, it’d be good to attach the files to the first post in this thread so users can download it.

Thank you very much for your answers! I will do everything needed to get the mapping included into Mixxx, as described at the posted link by sblaisot. The only problem at the moment is that I haven’t got time to set up git and do a wiki page about the mapping. I try to do it as soon as possible. Until then I attach the mapping here. Most of the coding guidelines and conventions should already be considered I think. If not, I will correct it. (17.3 KB)

Ok it works realy well already. A few things i noticed.

A Loop Selection and length:

  • Auto LOOP button does nothing (would be cool if this section works like in serato)
  • Jog Dials -> serato has 2 modes -> if you touch on top it’s faster movement / if you move it on the side it’s slower movement … fine adjustment for on the fly looping are realy hard at the moment because the point when it reacts is very late and than its very fast already
  • the FX settings could need some tweaking …
  • when you are in the library and try to browse throu the file system the select next sub dir button press doesn’t work

Thanks for doing this. Knowing it’s done gives me the confidence to buy this controller. Would be good if you did the updates suggested and submit it properly, but very much appreciate your efforts regardless :slight_smile:

Hi DJMaxergy, I saw that you started a wiki page for this controller. If you are not aware, we are overhauling the effects UI for Mixxx 2.1 and working on a JavaScript library to make it easy to map controllers like the DDJ-SX to fully take advantage of the new UI. An initial version of the JS library is already in the master branch, but we are currently working on reworking the EffectUnit object.

If you can compile Mixxx and use git, testing the proposed changes to the EffectUnit in the library would be appreciated. Unfortunately there is a bug in the master git branch (and Mixxx 2.0) that interferes with the proposed changes to the JS library, so to test the updates you’d have to compile my proposed fix for the bug. If you are not familiar with Git and GitHub, take a look at the Using Git wiki page, particularly for checking out GitHub pull requests locally. If that’s all too much trouble, you could wait for us to work out the details and get them merged to master, but the more people we have testing it, the better it will be.

Hi Be., yes I started and now finished the wiki page for this controller!
When you see the date of the first post here, you realize that it’s been a long time since I started the mapping and going forward now to get it included into Mixxx release (now added nearly every function the controller can handle, it is fully functional as described in the original manual and I investigated a lot of time in the code and reviewing it). To have time for these things is a real problem for me, but I really want to help concerning the development, since I’m using Mixxx exclusively for DJing.
I just installed Git onto my MAC and tried to get things to work (fork…making a branch for the controller mapping and push it). I’m using my MAC only for DJing/music, so I’m not yet very familiar with the terminal commands and git.
My next step would be to make a pull request for the mapping…so should I wait with that until the overhauling of the effects UI is complete or can I do it now?
Since compiling seems not so easy as I first saw the how-to description, I don’t know if I can manage it in the near future…I try, but I must get more into these Git and GitHub things, I think.

Here is the new, reworked, feature added and reviewed (guidelines) Pioneer DDJ-SX Mapping…for those who can test it! Please give me feedback!
See for the functional details.
Pioneer (22.8 KB)

Tell me about it. :slight_smile: I have been working on my mapping for a year now and still find things to change.

You may as well open the pull request now. I probably won’t have time to review it immediately as I am trying to finish up some big pull requests and review other mappings. The changes to the scripting engine that were holding up the changes to Components’ EffectUnit object were just merged, so I’ll finish those changes soon. Taking a really quick look at your script, I see that the effects knobs on the DDJ-SX use 14-bit MIDI. I’ll have to rework how the Pot objects in Components work to accommodate that. I don’t have any controllers that use 14-bit MIDI, so I’ll need help testing if it actually works. In the meantime, only mapping the MSB should work.

If you don’t have much time, don’t worry about it. Hopefully all the changes I was referring to before will be merged real soon.


I just purchased a DDJ-SX controller. I only use Linux and attempted to run Serato in a WIn10 Vm via Mint 18. Followed all guides to modifying FW, drivers etc, but am still getting malformed output.

I’d be happy to run your mappings and provide feedback as requested - especially as we’re in the Open Source community. As I make progress - shall I report back in this thread, PM you or create new POST. I appreciate your work and just want to know how I can help, having just purchased this controller, and get the feedback you asked for.



Note that the most recent mapping posted requires using a prerelease version of Mixxx 2.1. For now you need to use it with the Deere skin to see what is going on with the effects controls.

What do you mean by getting malformed output? Can you explain the malformation? Under MacOS the controller response and the sound output is great. Under Windows 10 I experienced additional delays concerning control and response and sometimes sound interruptions (buffer underrun) with the same settings as under MacOS.

I think it’s good if you report your experiences back here in this thread.

By the way: As far as I have seen, the mapping will work for the DDJ-SX2, too (except the colored PAD lights).

A complete mapping for this controller has been merged for Mixxx 2.1. You can use it now with a prerelease build. Refer to the wiki for details about how it is mapped. It uses the new effects and looping Controls in Mixxx 2.1, so it will not work with Mixxx 2.0.

Hi! Fantastic to discover this work being done on the DDJ-SX controller, can’t wait to try Mixxx with it (on my Linux laptop)!

I see that only the LTS versions are supported in these builds - unfortunately I’m on 17.04. When is 2.1 expected to go live?

In the meantime, the first posted script will work (in 2.0), right? (I’m not in my studio yet, can’t test)

I wish I had an answer for that… but if the build server isn’t making builds for your distro, you can compile from source.

As far as I know, yes, but 2.0 didn’t have all the features this controller is designed for, so it couldn’t be completely mapped to 2.0.

I think so…as I posted the script I already switched to the 2.1 prerelease builds to develop this mapping. But I think all of the features, implemented in that early state of the posted script, should work in 2.0.

Thanks for the replies, @DJMaxergy and @Be.!

I actually found that I had a second partition with Ubuntu 16.04 on my workstation so I fired it up and tried 2.1 yesterday with my DDJ-SX, and it worked fabulously!
The only minor detail I took note of during testing is that I expected the browser knob to give a preview of the track in the headset when I pressed it down. It feels so intuitive to do so, I think I must have used another controller with such a functionality earlier. But that’s minor, I’ll fully get used to use the “preload” button instead.

Other than that, smooth as silk! Thank you very very much for this work, DJMaxergy. If there’s any way I can assist or contribute please tell.

I’ll try to compile it on 17.04 later, Be. Thanks!

I would like to fix some minor bugs in this mapping. Can I create a new pull request for that or how can I commit the changes?