Mixxx Midi Mapping
Description
This is my attempt at mapping the Pioneer DDJ-SR for Mixxx.
Oct 14, 2013 So I started making a mapping for the SCS.4DJ. It turns out to be quite easy - however, I also wanted a two way communication (so use the leds in the SCS.4DJ to show the current setting in Mixxx). I still need to finetune some stuff, but last weekend was quite succesful! So here is my question: does anyone else would like to have this map? It enables MIDI controls to be mapped to QtScript (aka Javascript/EMCAScript) functions stored in function library files, freeing Mixxx from a one-to-one MIDI mapping ideology. These user-created functions can then do anything desired with the MIDI event such as have a single controller button simultaneously affect two or more Mixxx properties (“controls”), adjust incoming control values to work better with Mixxx. Traktor Mapping for Denon MC4000 with 4 Track Decks (Martin Paquin edit). Ean Golden's Midi Fighter 3D Mapping 'Jam-on-it' over 7 years ago: by eangolden: 55 likes. May 24, 2012 This video walks you through mapping a MIDI controller's jog wheel to scripted scratching and pitch bend functions starting from nothing using Mixxx, which is free, full-featured, cross-platform.
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:
- Download the following two files:
- Copy these to the
[Mixxx Directory]/controllersfolder. 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/
- 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 Setupsection below) - Open (or restart) Mixxx, and enjoy using your (semi-functional) controller
Controller Setup (important!)
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+Playon 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.
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?

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.
Development Tips
- Run Mixxx from a terminal with the
--controllerDebug --developerarguments. This gives you all debug output there from your controller, enables theDevelopermenu, 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 ;-)
Check out the release announcement for a list of new features.
Although Mixxx 2.2.3 contains many important updates and bugfixes, it's possible some users may experience issues. If you do, you can still get our previous stable version, Mixxx 2.1.8.
Mixxx is available for Windows, macOS, and Linux.
You don't need to pay for Mixxx because you can get it here for free.There is no official paid or 'pro' version of Mixxx.The version available here is the full version.We happily provide Mixxx for free and donations are appreciated but not required.
Windows
macOS
Ubuntu
Download Mixxx 2.2.3 for 16.04 (Xenial) or later:
Open a terminal, and enter:
This will install the latest version of Mixxx from the Mixxx PPA on Launchpad.
Including usability, tools, games, and Windows design software, the launch from the Mac dock with CrossOver Mac did never look better. CrossOver programs enable you to run many popular Windows games, including copy & paste, keyboard shortcuts, and Mission Control. Crossover for the mac. CrossOver 2020 Within one program CrossOver 2020 Mac operates games from Macintosh, productivity software and utilities. CrossOver is an easy-to-use, single-click interface that makes installing your games quick and easy. Change easily from Mac to Windows without rebooting, using a virtual machine and buying a Windows certificate.
Ubuntu Repositories:
Ubuntu also provides a version of Mixxx which can be installed directly from the Ubuntu Software Centre. This version is usually woefully out of date; therefore using the PPA is advised.
Fedora
An RPM packagefor installation is available in theRPM Fusion repositories.
Please refer to RPM Fusion's instructionson how to enable the repositories on your system. Mixxx only requires enabling thefree repository; the nonfree repository is not necessary for Mixxx.
Normally we have just been clicking past that until we get that worked out. At the moment with this connection we get a 'Server cannot be verified' warning box pop up the first time someone logs in. This version 2 does seem to be simplified from the Windows version and the version 8 I've seen in screenshots. Teamviewer mac 10. 7.
RPM Fusion builds are maintained by the Mixxx development team.We support the next, the current, and selected previousFedora release(s) if possible.
Linux / Source Code
The Mixxx source code is made available under the GPL v2 or later. Please check the LICENSE file in our source tree for complete licensing information.The latest code from Mixxx's 2.2 branch is hosted on GitHub:
Compilation instructions are available for Windows, macOS, and Linux.
Mixxx is available for Windows, macOS, and Linux:
Windows
Midi Mapping Software
AAC playback requires Windows 7 or greater or Windows Vista with a platform update.