Numark NS6ii

I just got a NS6ii after mixing on a Mixtrack Pro (the first) and noticed there was not a preset/mapping done for it so I figured I would have to be the one to try and get it working.
I started by going through the presets for the other Numark controllers that are similar and was able to get much of the board running using the Mixtrack Platinum preset by Matthew Nicholson.
Working out of the box: Platter LCD screens. Deck # Buttons. Play, Cue and Synch. Channel Volume Faders and Cross Fader. Hotcues 1-4
The EQ section seemed to work but it was running through the scripts so I remapped everything to keep it more simple and streamlined.
The Load Track and FX assign is working.

Not Working Yet.
VU meters
Srtip Search
Scratch Mode (the track stops and wont start again)
Pitch Adjust (i have them working for deck 1 & 2 but need to poke around in the scripts to get them to shift to 3 & 4)

I will update as i go and get a copy of my mapping uploaded soon.

I’m soooooo excited to have this board working as much as i do already.

1 Like

That’s great news! I’m considering to buy a NS6II too and I was wondering how easy it is to control Mixxx with it. Actually I’m surprised to see jogwheels displays work out of the box, neat!

I’m confused by one thing though: from my understanding the channels 3 and 4 are meant for RCA line/phono inputs, or is it possible to use them for Mixxx decks 3 and 4?

By the way, @jakkle21 it’s been a while since your post so can you share your impressions so far with the controller?

Hello All.
I’m sorry for the long delay. I live off-grid with so electricity and internet are scarce.
First, to answer your question @al3x, you can use channels 3 and 4 as either RCA inputs or as Decks 3 and 4 in Mixxx. There are little toggle switches on the board that change from RCA input to digital control and there is a button on the board to toggle between controlling Deck 1/3 and 2/4 in Mixxx.
As for using the NS6II. I love it. it feels really solid. The action on all the controls are really nice. The LCD screens are helpful and i really like having the full set of EQ controls for all four channels.

Okay here is my mapping so far.
since my first post, I’ve got the strip search and the pitch adjust working.
Also the “View” “Back” and “Area” Buttons help with Library movement
I’m still using almost entirely the script for the Mixtrack Platinum so there is still some weirdness I haven’t figured out however the board is very much usable as-is.
NS6_II_MIDI_1.midi.xml (101.1 KB) Numark-NS6II.js (47.9 KB)
common-controller-scripts.js (20.3 KB) lodash.mixxx.js (116.6 KB) midi-components-0.0.js (43.4 KB)

Channels 3/4: nice to hear, actually that’s exactly what I’d like to have so I can for example plug an AUX in channel 4 and use channel 3 for a Mixxx deck, neat. Can’t wait to put my hands on one of those toys, and thanks a lot for sharing the mappings, and don’t forget to update this thread if you have news about it :wink:

Living off-grid: that sounds truly intriguing and fascinating, by any chance do you keep any kind of blog about it?

I don’t have a blog or anything, thank you for the interest though. I am trying to document my camper van conversion project but so far I only have a few pictures and not anything online. It’s hard for me to make the time for much more currently.
So I’ve been trying to get the VU meters working and it looks like they may work through a more complex SYSEX message. I’m not much of a programmer so I’m not really sure. I need to spend more time with wireshark and serato to see what they are saying to each other.
Even with the board not doing everything yet it’s still really nice to mix on and I really enjoy playing with it.

Bumping in cause I would like to buy a Ns6ii too to Upgrade from my Platinum

Sorry for the lack of recent updates. I’m still plugging away on the mapping. I will try and upload the newest version in a few days.

Okay, Here is my latest version. (49.4 KB)
Any control that works on deck 1 should also work when switched to deck 3 and the same when switching between decks 2 and 4.
Know issues: - Mixer: The channel VU meters still don’t work. The PFL buttons take 2 clicks to toggle while only 1 for the LED to change. The Cross-Fader assign switches don’t work. “L PREP” Button does nothing. Non of the “Sort-By” Functions work. - Decks: Before a track is loaded, the platter position shows as 1/2 full. The “Take-Over” LEDs don’t work. “Parameter Shift” < > Buttons do nothing. Shift Functions don’t work on “Slip” (Quantize) or “Bleep” (Keylock), although Keylock can be activated by pressing both “Pitch-Adjust” buttons at the same time. Non of the “Pad-Mode” Buttons work. On the LCD screens, the “Pitch Adjust” Arrows, the “Pitch %”, the “Pitch range” and the “Keylock” indicator don’t work. The “Touch-FX” button does nothing “Beat Knob” does nothing.
Some of these I’m making progress on, some I just noticed while writing this up.
I think everything else is working.
I finally figured out how to get the jogs scathing and I love how they feel.
The Pads don’t switch modes but they default to a row of hot-cues and a row of auto-loops so they are still very fun and playable as they are.

I want to post a progress update. I am still working on this mapping. I’ve created a pretty good “map” of all midi codes that the buttons put out.
I’ve fixed the PFL toggles, the Slip/quantize buttons and the "bleep/keylock buttons. I’ve also mapped the parameter shift buttons to halve/double the loop size.
I’ve also found the color codes for the pads so once i get the pad-modes working they will be color coded.
I need to setup a git-repository for the mapping and cleanup my code.
Even without it being finished, I still mix with this controller for a few hours every week and love it.
If anyone comes across one at a good price, i highly recommend it. Very nice board.
I still haven’t tested what happens when you plug a second computer into the board, i should really do that.
Also I need to start working on the documentation for the wiki.

Does anyone know what is wrong with my code for the crossfader orientation?
The Switch has three-positions, A-Off-B the channel is the same as the decks channel.
Right now regardless of which side i put the switch to it just toggles between the center and the left.
I have it mapped to “note on” in the xml file. Changing it to “note off” will invert the toggle and having both makes it stop working.
The control is 0x1E for all four channels/decks.
The “Value” changes with the switch. Left = 0x01 Center = 0x00 and right = 0x02 and the “OP code” is 0x9 for either side and 0x8 for the middle.

NS6II.crossfaderOrientation = function (channel, control, value, status, group) {
var deck = channel + 1;
if (value = 0x00) {
script.toggleControl(group, “orientation”, 1);
else if (value = 0x01) {
script.toggleControl(group, “orientation”, 0);
else if (value = 0x02) {
script.toggleControl(group, “orientation”, 2);


changing “script.toggleControl” to “script.triggerControl” makes the control “flash” to the left side and reset to the middle.
If I missed any relevant info, let me know.

These are both for binary Controls whereas orientation is a ternary switch. Use engine.setValue instead.

@Be0 thank you for the reply.
I changed the code to engine.setValue and it still is not working. It seems that the script isn’t reading the value field correct. If I’m missing something simple, let me know.
I will keep messing with it and reading.
I did get it to go to the right instead by switching the (group, “orientation”, 1); to (group, “orientation”, 2); in the first line.

In the code you posted above, you assign 0x00, 0x01, 0x02 to value instead of comparing it. Use the equality operator === instead.

Thank you @hlzhs . I was just able to get it working.
The new code is

NS6II.crossfaderOrientation = function (channel, control, value, status, group) {
var deck = channel + 1;
if (value === 1) {
engine.setValue(group, “orientation”, 0);
else if (value === 2) {
engine.setValue(group, “orientation”, 2);
else if (value === 0){
engine.setValue(group, “orientation”, 1);
else return


It works as intended! Thank you both for the help! very very appreciated.
I also changed the the values from 0x00, 0x01 & 0x02 to just 0, 1 & 2

I finally got around to testing the duel USB feature and it works great. It is easy to switch from one computer controlling the board to each computer controlling half or just do a full switchover form one to the other.
I didn’t test running differnt software on the two computers but I imagine it works just as well. I will update when I test it with Serato on one and Mixxx onthe other.

I’m making slow but steady progress on this mapping. I will upload the latest version to git-hub as soon as i figure out how to do that.
Does anyone know how to properly implement the “sort_column_toggle” control? I am trying to use it in my script like follows

NS6II.areaKey =  function (channel, control, value, status, group) {
    if (value != 0x7F) return;

        if (NS6II.shift) { 
            engine.setValue(group, "sort_column_toggle", 20);
        else {engine.setValue(group, "MoveFocus", 1);


The “MoveFocus” part works as intended but the “sort_column” doesn’t seem to do anything.

Okay, I have created a new repository on Github for my mapping. It is available here.

Check the Roland Dj-505 mapping, it uses sort_column_toggle to map the 'Sort By BPM", “Sort by Artist”, etc. Buttons on the controller.

Instead of maintaining a separate repository please fork mixxxdj/mixxx and create a feature branch originating from the 2.3 upstream branch.