Korg NanoKontrol2 - 8 decks, cueloops, save loops - (v2.2)

Here’s a mapping for the Korg NanoKontrol2 (korg.com/nanoseries2)… The mapping is a bit complex, you might want to take a look at the attached spreadsheet, which sets out what all the buttons and stuff do in all the various modes. I developed and tested this for Mixxx 1.11 - not sure how it will perform on earlier versions. A bunch of it should work though, I think.

IMPORTANT: Use the Korg Kontrol Editor configuration software to set the LED MODE to EXTERNAL, or the LED indicators won’t work. The software can be downloaded from the “support and downloads” link on this page:

UPDATE: Version 2, 2.1, 2.2
configurable to control up to 8 decks (if it’s set to less than 8, the rest will be samplers), adds slip mode controls, hotcue loops - jump to hotcue and start a loop, save the current loop inpoint as a hotcue, bigger range of loop lengths on the loop dial, better access to more controls from the various modes, move hotcues to different buttons. The files attached to this post have been updated to version 2.2, and the spreadsheet has been updated (new controls, and controls that have been moved are in bold in the updated spreadsheet.) Check the spreadsheet - I may have missed something when updating these instructions.

While this mapping has most of the transport controls you might need to use the Nanokontrol2 as your only controller for Mixxx (and there’s room for you to add things like a knob crossfader if you want), it’s really designed as a second controller for people with other controllers covering the basic DJ functions… This mapping intends to give you access to a lot of special functions that might be inaccessible from a standard controller with a limited number of buttons - all hotcues, detailed looping controls, keylock, quantize, etc…

The mapping provides four modes, with several modifier keys. The faders are permanently assigned to the volume for each track, and each mixer strip (fader, S, M, R buttons) can be thought of as relating to a deck in Mixxx. From left to right, the decks are Channels 1-8 by default, but you can edit the .js file to change it to 2 or 4 Channels, then the rest will be Samplers. The init script activates eight deck support in Mixxx (or support for however many decks you enable if you edit NK2.numDecks).

By default, the NanoKontrol controls 8 decks (ie: [Channel1] through [Channel8]). By changing the NK2.numDecks variable on line 4 of the .js script file, you can change the deck configutation. Set NK2.numDecks=4 for 4 [Channels] and 4 [Samplers], or to 2 for 2 [Channels] and 6 [Samplers].

The “Marker Set” button is used to select the modes - hold it down and then press the S, M, or R button for one of the decks to select S, M, or R mode for that deck. The S, M, or R button should flash to show which mode and deck you’ve selected. Press Marker Set again to cancel out of that mode, and get back to the default mode.

S mode gives you VU meters and beat indicators.

M mode gives you access to 32 hotcues for the selected deck.

R mode gives access to loops and beatjumps.

The “Marker <” (MOD 1) and “Marker >” (MOD 2) buttons are momentary on modifiers. When held down they alter the functionality of some of the buttons in each mode. Cycle is also a modifier, but it toggles on and off.


Without modifiers:
S toggles slip mode for that track.
M toggles Mute for that track.
R toggles PFL for that track.

With MOD 1:
SMRs become High, Mid, and Low Kills.

With MOD 2:
S = flanger
M = keylock (moved from s button in ver. 1)
R = quantize (moved from m button in ver. 1)

With CYCLE on
flanger, mute, and the kills become momentary on, rather than toggles.

With MOD 1 and MOD 2:
top two rows are master VUmeters.
Bottom row shows beat indicators for all playing tracks
Row 2 buttons are BPM tap buttons for each deck.
Row 3 buttons are beatsync for each deck.

With Marker Set, MOD 1 and MOD 2

  • displays the crossfader orientation of each track. Don’t mess with this unless you know what that means… S is left, M is middle, R is right.
  • orientation for each track can be changed by pressing these buttons.

LEFT BUTTONS (default mode):
rewind: toggle quantize all decks
ffwd: toggle keylock all decks
Stop: toggle slip mode for all decks
Play: momentary mute of master volume
Cue is not used yet.

KNOBS (left to right):
Waveform Zoom all decks
head volume
head mix
master balance
master vol
flanger LFO Period
flanger LFO Depth
flanger LFO Delay

These controls are active on most modes - some of them are overridden in some modes, as listed below.

faders - track volume
track < = rewind
track < + MOD1 = rate temp down
track < + MOD2 = rate perm down
track > = ffwd
track > + MOD1 = rate temp up
track > + MOD2 = rate perm up

REW = quantize
REW + MOD2 = quantize
FF = keylock
FF + MOD2 = keylock
Stop = toggle slip mode
Stop + MOD2 = toggle slip mode
Stop + MOD1 = beatgrid align
Play - no mod = does nothing (to prevent accidentally hitting it), but lights when track is playing
Play + MOD1 = play
Play + MOD2 = reverse play
CUE = nothing without any mods
CUE + MOD1 = cue
CUE + MOD2 = jump to start of track
CUE + MOD1 and MOD2 = jump to start of track and stop

KNOB 1 - waveform zoom
KNOB 2 - low eq
KNOB 3 - mid eq
KNOB 4 - hi eq
KNOB 5 - gain
KNOB 6 - pitch

(knob 7 isn’t used yet, and 8 is only used in M and R mode as the loop dial.)

Shows VUmeter for the selected track (top two rows), and beat indicators on the bottom row.

S = hotcues 1-8
M = 9-16
R = 17-24

S = 9-16
M = 17-24
R = 25-32

Hold MOD 2 and press any existing hotcue to clear it. OR, press any empty hotcue button (it will start to flash), then press any existing hotcue button, and that hotcue will be moved to the flashing button.

Hold MOD1 and press any hotcue to set a loop starting at that hotcue point and jump into the loop.

Hold MOD1 and MOD2 to access the R mode (loop) controls momentarily - release the MODs to get back to M (hotcue) mode

knob 8 activates a dynamic loop that changes length as you turn the knob (or changes the length of the current loop).

S = beatjump various distances back - jump distance increases from left to right
M = Beatloop roll .125, .25, .5, 1, 2, 4, 8, 16 (I don’t think the “roll” part is working for some reason - treat these as simple beatloops for now)
R = Beatloop .125, .25, .5, 1, 2, 4, 8, 16

toggle showing shorter loops – 0.015625, 0.03125, 0.0625, 0.125, 0.25, 0.5, 1, 2

Track < - loop halve
Track > - loop double

Rew - loop in
FFwd - loop out
Stop - reloop / exit

Hold down reloop/exit or any beatloop button while loop is active, and press loop halve or double to move the loop back or forward a few milliseconds each press.
Hold down loop in or loop out, and press loop halve or double to move the loop in or out point back or forward.

Hold down MOD1 to show hotcues - pressing a hotcue jumps to that hotcue point and activates a loop.

Hold down MOD2 to save current loop inpoint as a hotcue - indicators will show currently set hotcues, press one that’s not set to save - will do nothing if there is no loop currently active, or if the hotcue button you press is already set.

knob 8 activates a dynamic loop that changes length as you turn the knob. Hit reloop/exit to deactivate.

Feel free to do whatever you want with this. Modify it, copy it, redistribute it, provide the code to terrorists, take chunks and incorporate into your own mappings, print it out and eat it, whatever.



UPDATE: Version 2
Configurable to control up to 8 decks (if it’s set to less than 8, the rest will be samplers), adds slip mode controls.

Hotcue loops - jump to hotcue and start a loop immediately. Defaults to 2 beats, you can change length easily using knob 8 (loop dial). Holding down MOD1 and MOD2 while in hotcue mode provides quick access to loop controls.

And generally better access to more controls from the various modes. …and a few other behind the scenes changes to improve functionality. The files attached to the first post have been updated to version 2, and the spreadsheet has been updated (new controls, and controls that have been moved are in bold in the updated spreadsheet.) Check the spreadsheet - I may have missed something when updating the instructions in this thread.

UPDATE: Version 2.1
Added: save currently active loop inpoint as a hotcue (R mode + MOD2). With the hotcue loop feature on this mapping, this basically allows you to save a loop (and it’ll be saved with the song, so it’ll be there the next time you play it) - you just have to set it to the right length once you activate it.

Also more loop lengths on the dynamic loop dial.

Added: Move hotcue to a different button - M mode + MOD2: previously holding down MOD2 would clear existing hotcues. Now, if you press an existing hotcue first, it will be cleared. But if you press an empty hotcue, that button will flash. Then, if you press an existing hotcue, that hotcue will be moved to the flashing button and its previous location will be cleared. Since this is accomplished by setting a new hotcue with the old hotcue’s position, and then deleting the old one, moves you make using this mapping will apply across all other controllers you’re using.

Someone is reporting that under windows 8, the LEDs won’t light on their NanoKontrol2 even when the Korg config software has been used to set the LED mode to “external.”


I use Linux, so can’t test this out - If you’re a windows user, could you please post here to let me know if your LEDs are working or not? …actually, since I don’t have a Mac either, I wouldn’t mind getting confirmation from a mac user that their LEDs are working too.

edit: This Mixxx bug is fixed now apparently.

I added your latest version to the 1.11 branch. Thanks Borfo!

I’ve tried this mapping, but wont work for me. Only volume knob works for decks 1 and 2.
Running OSX 10.7.5, mixxx 2.0. Installed driver and korg kontrol editor. Mapping with wizard works fine, but i would like to use ur mapping. Any tips?

And also finding this information in another forum was usefull:
“you need to set your leds to external mode. To do this, fire up Korg Kontrol Editor and select the device. At the very top of the controls list, you’ll see ‘Common’. Select it, find the led mode setting, and change it to external. Write back to the device, and you can now control the leds”
without it i wouldnt be able to find this function, i think you should add it also to urs manual.
Thanks for your time.

I expect the trouble you’re having relates to changes in mixxx 2.0 - I’ve been out of the loop on Mixxx for a while. I’ll be working on updating and finishing my Behringer CMD 4a mapping soon though, in the event that a fix for the nanokontrol mapping seems easy I’ll do it, but no promises.

A new mapping has been merged into Mixxx, labelled “Korg Nanokontrol 2 (alternative)”. It will be included in Mixxx 2.1. To use it with Mixxx 2.0, you can download the JS file and XML file and put them in your user controller mapping folder. Documentation for the mapping is on the Mixco website.

Any chance someone has a working mapping for the Korg NanoKontrol2 on Mixxx 2.2.2. Neither of the two built-in mappings work correctly. Thanks!

“Does not work correctly” is extremely unspecific. What issue do you have?

Hi, thanks for the response! Here are some specifics…

On Mac OS 10.15.2 / Mixxx 2.2.2 with a nanoKontrol2 with LED mode set to “external”

The Korg nanoKONTROL 2 (by Rob K) is not lighting up any LEDs. I’ve confirmed that I’ve got my device correctly set up in LED external (by testing with some controller setups with VU modes in traktor).

The Korg Nanokontrol 2 (alternative) throw an error when you try to “select” the deck via the pfl (s) button on the track: Uncaught exception at line 1 in passed code: ReferenceError: Can’t find variable: korg_nanokontrol2. I tried to compile myself in Mixco but the library throws an error. I’ll keep messing around with that since it seems like a useful library…

update on the (alternative) one… looks like there’s a dep issue for that library preventing it from running on the latest version of node… i’ll file an issue over there. once working i was able to create a new version of this control mapping and get it working in mixxx, but i never got the one that ships with mixxx to work…

updated 2: i can’t get the midi out > LED on the nanoKontrol 2 working at all in Mixxx. It seems to work fine in other programs, but I’m monitoring the midi out signals with PocketMIDI and there’s just nothing. If anyone can help me debug this I’d love some help. I’ve tried on 2.2.3, 2.2.2, and 2.1.8. So to summarize, I’ve gotten the midi in mappings to work, but I’m not getting any midi out messages.

final update: woof. ok i managed to get this working by adding a virtual midi bus and using midipipe to send the mixxx output to the nanoKontrol2. Note that if you do this you need to delete all of the input mappings from the controller preset for the midi bus, otherwise you’ll get some weird doubling behavior. i have no idea why this doesn’t just work out of the box for me on a new install of mixxx, a new nanoKontrol2, and mac 10.15.2 (catalina).

Can anyone using this controller help with documenting the mapping?
Please have a look at: https://github.com/mixxxdj/manual/issues/211