Alright here we go.

Unsatisfied with any of the available X1 mappings for SSL 2.0, i went ahead and created my own (with the help of some serious use of MIDIPipe) to function exactly how i like.

Download ZIP:

Basically this allows for a DJM-800 style filter sweep in SSL 2.0 on a single knob/button combo for each deck on the X1.

You can look at the labels in the NI Controller Editor to get an idea of what everything does.

I'm thinking about making a video at some point if i get some free time, but for now this will have to do.

Below are the contents of the readme. Please let me know if you get it working or if you have any suggestions for subsequent updates!

Included readme:

Kontrol X1 Mapping for Serato Scratch Live 2.0 - RC3 by myrobotlove


--- mappings ---

Put the OCD_X1_SSL2_rc3.xml file in your MIDI folder inside your ScratchLIVE folder (usually in the Music folder inside your Home (user name) folder in OS X

for example:

(user name)\Music\ScratchLIVE\MIDI


Put the .nckx1 file wherever you like, and load it with the NI Controller Editor software.

Go to File > Open Template

and choose OCD_X1_SSL2_rc3.nckx1

You may want to hit "Save Configuration" in the File menu after loading this template, and make sure your X1 is plugged in when you load the template, and that it saves to the X1.


The .mipi file can also go wherever you like, but needs to be loaded using a program called MIDIPipe, which can be downloaded for free at:

--- effects ---

Put the two included effects files into the Effects folder located in the same place as the MIDI folder, inside your ScratchLIVE folder. If it doesn't exist, make it. Same goes for the MIDI folder.



Plug in your X1 and observe the pretty light show. Once it's initialized, load up the NI Controller Editor if you haven't already, and load my included template.

Once the template is loaded CLOSE NI Controller Editor. This is important because having it open can interfere with MIDIPipe functioning correctly.

Once NI Controller Editor is closed, launch MIDIPipe and load the included .mipi file.

If the .mipi file is working properly, the blue buttons at the bottom half of the X1 should light up momentarily when pressed.


You may need to go into the "Midi In" and "Midi Out" modules in the RIGHT COLUMN in MIDIPipe and select the proper Ins/Outs from the X1. My saved ones may not translate nicely to your setup.

Just select the proper MIDI ports on the X1 that look similar to whats already selected when you load the MIDIPipe file (should look something like "Traktor Kontrol X1 Left - MIDI input port 0" and "Traktor Kontrol X1 Left - MIDI output port 0")

IMPORTANT: The LAST "Midi Out" at the very bottom of the list in the right column needs to be connected to a VIRTUAL output, not the X1.

If its not already connected to "MidiPipe - X1", you need to make it.

(the blue LED's may still light up even if this is not configured correctly, so take note!)

Hit the drop down list of available MIDI Outputs within this module and select "Edit Virtual Outputs". Create a new Output called "MidiPipe - X1"

Now select that output for the last "Midi Out" ONLY. The first "Midi Out" near the top of the right column should be connected to the X1.


Once you've got that all loaded up and the blue LEDs are lighting up when pressed, you can launch Scratch Live. I would recommend having the latest version which is currently Release Candidate 3, which is the version used while making this mapping.

Once SSL is running and your crates/playlists are all loaded, go into settings and hit the MIDI tab.

If you've put the .xml file in the right place, you should see it in the list of available MIDI mappings. Select it and hit Load.

Before you continue, make sure you have the DJ-FX and SP-6 plugins activated in the Plugins tab on the settings page.


Now try turning the right Browse/Load knob and see if it scrolls your playlists! (make sure you're not on the SHIFT page of the X1)

If it doesn't, then uh-oh, you've done something wrong! Double check everything! Trouble-shoot!

If it does, yay! Off to a good start.


Now, open the DJ-FX panel and turn FX knob 3 on either right or left decks on the X1. This should move TWO FX super-knobs each when you turn the X1 knobs all the way from left to right.

Your next move is to load my included effects into FX 1 and 2 in SSL on both the left and right DJ-FX banks. You may want to assign the left bank to deck 1, and the right bank to deck 2 at this time also.

The desired effect is for a single knob to control both low-pass and high-pass filters.

I believe the OCD - LPF should be loaded on FX1, and HPF on FX2, do it for both sides/decks (no Serato interface while writing this!). If you don't hear anything or it sounds wrong, load the presets in the opposite order.

Now hit FILTER 3 ON button on the X1 and turn the knob while a song is playing. Does it work?! The ON button should be a toggle, and it should turn on FX 1 AND 2 on each side respectively.


This is what all the MIDIPipe fuss is about: to have a single X1 knob/button combo control TWO FX sections in SSL, for that nice DJM-800 style filter sweep that I, and I bet others, have come to love.

Funny enough, Serato could save us all a LOT of time by simply allowing us to map a single physical knob or button to MULTIPLE software controls (not to mention control of SSL's MIDI output to control LEDs!). A function Ableton has had forever, so hopefully this will change in a future release!

Until then, this works really well as long as you've loaded all the files in the proper order and all your inputs/outputs are set up correctly.



Unfortunately MIDIPipe is Mac only, so for windows users you'll have to get a program like Bome's MIDI Translator. Unfortunately you will have to recreate the MIDIPipe file's functionality, which will take some understanding of how MIDI works, but essentially you are doing this:

CC message from one of the X1 knobs is being SPLIT into two new CC messages so that, for example, 0-63 on CC #6 (representing the physical X1 knob) is translated to 0-127 on CC #106 and 64-127 on CC #6 is translated to 0-127 CC #107.

This essentially turns each half of one knob into two separate virtual knobs with full movement.

The tricky part is getting Scratch Live to map to the VIRTUAL knob messages, and not the original message coming from the X1.

MIDIPipe has a "hijack" mode that allows this (e.g. it "hides" the X1's original output from being detected by other software). If Bome's has something similar, use it while mapping the MIDI translated FX knobs to SSL, but make sure you TURN OFF hijacking once the control is mapped, otherwise your X1 MIDI ports will get scrambled.

ALSO: I recommend setting the new virtual knobs to a MIDI channel other than the one that the X1 uses by default. Make sure the X1's MIDI info isn't being duplicated by Bome's either, otherwise Serato will freak out. You can prevent this by filtering out the X1's original MIDI channel from the new virtual output that (i assume) Bome's creates for your new "virtual" knobs.

Sounds complicated, but with a little understanding of how MIDI messages work, it shouldn't be too hard to figure out through a bit of trial and error!



When you're setting up at your gig, remember to plug in and load things in the proper order:

- Plug in the X1 (let it initialize)
- Load the MIDIPipe file
- Launch Scratch Live 2.0

Ive used this setup out a few times already and its a blast. Have fun, comments & suggestions are welcome.