open-audiovisual
Search GitHub

KORG

Korg nanoKONTROL2

Korg nanoKONTROL2 is a MIDI hardware controller by KORG: 8 knobs, 8 faders and 35 buttons.

It sends CC on channel 1. The profile cites 4 sources. No control is flagged unverified.

  • Manufacturer docs
  • Community notes
  • LED feedback
Kind
hardware device
Maker
KORG
Controls
51 controls
Messages
CC
MIDI channels
1
LED feedback
yes, lights are driven by MIDI
Signals
midi/nano2/…
Port name matches
/nanokontrol\s*2/i
NANOKONTROL2◀▶Set◀▶◀◀▶▶■▶●12345678SMR1SMR2SMR3SMR4SMR5SMR6SMR7SMR8

Play Korg nanoKONTROL2 on screen Full screen ↗ Raw JSON ↗ All controllers

Drag knobs and faders · tap pads and keys · or plug the real one in and press Connect. Nothing is sent anywhere unless you add a MIDI out.

MIDI implementation

Every control of Korg nanoKONTROL2 and the message it sends

Generated from the profile file, so it is the same table the on-screen controller plays. Channels are 1–16; numbers are real MIDI numbers.

MIDI implementation of Korg nanoKONTROL2
ControlTypeMessageChNumberSignalLED feedbackVerified
1 k1 knob CC 1 16 midi/nano2/k1 — yes
2 k2 knob CC 1 17 midi/nano2/k2 — yes
3 k3 knob CC 1 18 midi/nano2/k3 — yes
4 k4 knob CC 1 19 midi/nano2/k4 — yes
5 k5 knob CC 1 20 midi/nano2/k5 — yes
6 k6 knob CC 1 21 midi/nano2/k6 — yes
7 k7 knob CC 1 22 midi/nano2/k7 — yes
8 k8 knob CC 1 23 midi/nano2/k8 — yes
1 f1 fader CC 1 0 midi/nano2/f1 — yes
2 f2 fader CC 1 1 midi/nano2/f2 — yes
3 f3 fader CC 1 2 midi/nano2/f3 — yes
4 f4 fader CC 1 3 midi/nano2/f4 — yes
5 f5 fader CC 1 4 midi/nano2/f5 — yes
6 f6 fader CC 1 5 midi/nano2/f6 — yes
7 f7 fader CC 1 6 midi/nano2/f7 — yes
8 f8 fader CC 1 7 midi/nano2/f8 — yes
S s1 button CC · momentary 1 32 midi/nano2/s1 CC 32 · on 127 / off 0 yes
S s2 button CC · momentary 1 33 midi/nano2/s2 CC 33 · on 127 / off 0 yes
S s3 button CC · momentary 1 34 midi/nano2/s3 CC 34 · on 127 / off 0 yes
S s4 button CC · momentary 1 35 midi/nano2/s4 CC 35 · on 127 / off 0 yes
S s5 button CC · momentary 1 36 midi/nano2/s5 CC 36 · on 127 / off 0 yes
S s6 button CC · momentary 1 37 midi/nano2/s6 CC 37 · on 127 / off 0 yes
S s7 button CC · momentary 1 38 midi/nano2/s7 CC 38 · on 127 / off 0 yes
S s8 button CC · momentary 1 39 midi/nano2/s8 CC 39 · on 127 / off 0 yes
M m1 button CC · momentary 1 48 midi/nano2/m1 CC 48 · on 127 / off 0 yes
M m2 button CC · momentary 1 49 midi/nano2/m2 CC 49 · on 127 / off 0 yes
M m3 button CC · momentary 1 50 midi/nano2/m3 CC 50 · on 127 / off 0 yes
M m4 button CC · momentary 1 51 midi/nano2/m4 CC 51 · on 127 / off 0 yes
M m5 button CC · momentary 1 52 midi/nano2/m5 CC 52 · on 127 / off 0 yes
M m6 button CC · momentary 1 53 midi/nano2/m6 CC 53 · on 127 / off 0 yes
M m7 button CC · momentary 1 54 midi/nano2/m7 CC 54 · on 127 / off 0 yes
M m8 button CC · momentary 1 55 midi/nano2/m8 CC 55 · on 127 / off 0 yes
R r1 button CC · momentary 1 64 midi/nano2/r1 CC 64 · on 127 / off 0 yes
R r2 button CC · momentary 1 65 midi/nano2/r2 CC 65 · on 127 / off 0 yes
R r3 button CC · momentary 1 66 midi/nano2/r3 CC 66 · on 127 / off 0 yes
R r4 button CC · momentary 1 67 midi/nano2/r4 CC 67 · on 127 / off 0 yes
R r5 button CC · momentary 1 68 midi/nano2/r5 CC 68 · on 127 / off 0 yes
R r6 button CC · momentary 1 69 midi/nano2/r6 CC 69 · on 127 / off 0 yes
R r7 button CC · momentary 1 70 midi/nano2/r7 CC 70 · on 127 / off 0 yes
R r8 button CC · momentary 1 71 midi/nano2/r8 CC 71 · on 127 / off 0 yes
◀ trackprev button CC · momentary 1 58 midi/nano2/trackprev CC 58 · on 127 / off 0 yes
▶ tracknext button CC · momentary 1 59 midi/nano2/tracknext CC 59 · on 127 / off 0 yes
Cycle cycle button CC · momentary 1 46 midi/nano2/cycle CC 46 · on 127 / off 0 yes
Set markerset button CC · momentary 1 60 midi/nano2/markerset CC 60 · on 127 / off 0 yes
◀ markerprev button CC · momentary 1 61 midi/nano2/markerprev CC 61 · on 127 / off 0 yes
▶ markernext button CC · momentary 1 62 midi/nano2/markernext CC 62 · on 127 / off 0 yes
◀◀ rew button CC · momentary 1 43 midi/nano2/rew CC 43 · on 127 / off 0 yes
▶▶ ff button CC · momentary 1 44 midi/nano2/ff CC 44 · on 127 / off 0 yes
■ stop button CC · momentary 1 42 midi/nano2/stop CC 42 · on 127 / off 0 yes
▶ play button CC · momentary 1 41 midi/nano2/play CC 41 · on 127 / off 0 yes
● rec button CC · momentary 1 45 midi/nano2/rec CC 45 · on 127 / off 0 yes

LED feedback is modeled for 35 of its controls: the LED column says which message lights each one.

Sources

Notes

Factory scene, CC mode, global channel 1. LED feedback reaches the buttons only when LED mode is set to External in the KORG KONTROL Editor (default Internal: the unit lights its own buttons).

Port names it recognises

matches
/nanokontrol\s*2/i
prefers
/slider/i /knob/i /ctrl/i

Signals

Every control publishes midi/nano2/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/nano2/last.

Use it

Use Korg nanoKONTROL2 in your own work

  1. Embed it with one line

    No import map, no build step. Change layout, add hardware="ask" for a Connect button.

    html
    <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script>
    <oav-controller profile="korg-nanokontrol2" readout></oav-controller>
  2. Or as an iframe

    For places that only take an iframe. Every event arrives as a postMessage.

    html
    <iframe src="https://openaudiovisual.com/embed/controller/?profile=korg-nanokontrol2&readout"
            width="720" height="216" style="border:0;max-width:100%" allow="midi"
            title="Korg nanoKONTROL2"></iframe>
    <script>
      // every control the visitor plays arrives here
      addEventListener('message', (e) => {
        if (e.data?.source !== 'openav' || e.data.type !== 'control') return;
        console.log(e.data.detail.signal, e.data.detail.value);
      });
    </script>
  3. Send it to Ableton, TouchDesigner or Resolume

    What you play on screen leaves as real MIDI on the IAC bus (macOS) or a loopMIDI port (Windows). The steps are on the catalog page.

    html
    <!-- what you play on this controller → the IAC bus (macOS) → Ableton, TouchDesigner, Resolume -->
    <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script>
    <oav-controller profile="korg-nanokontrol2" midi-out="IAC" readout></oav-controller>
    <!-- Windows: midi-out="loopMIDI" · let the visitor pick a port: midi-out="ask" -->

    macOS: Audio MIDI Setup → MIDI Studio → IAC Driver → “Device is online”. Windows 11: the built-in Windows MIDI Services have a loopback (not tested by us); older Windows: install loopMIDI, add a port and use midi-out="loopMIDI".

In p5.js, with one line

The one-line injection names knobs, faders and pads by their order in this profile, the order of the table above. Add ?profile=korg-nanokontrol2 to make the on-screen controller this one; a real Korg nanoKONTROL2 is recognised by its port name.

javascript
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=korg-nanokontrol2' }));
In your sketchControlMessage
knob11 k1CC 16 · Ch 1
knob22 k2CC 17 · Ch 1
knob33 k3CC 18 · Ch 1
knob44 k4CC 19 · Ch 1
knob55 k5CC 20 · Ch 1
knob66 k6CC 21 · Ch 1
knob77 k7CC 22 · Ch 1
knob88 k8CC 23 · Ch 1
fader11 f1CC 0 · Ch 1
fader22 f2CC 1 · Ch 1
fader33 f3CC 2 · Ch 1
fader44 f4CC 3 · Ch 1
fader55 f5CC 4 · Ch 1
fader66 f6CC 5 · Ch 1
fader77 f7CC 6 · Ch 1
fader88 f8CC 7 · Ch 1
p5.js sketch
function draw() {
  background(knob1 * 255);   // 1 · CC 16
  circle(width / 2, height / 2, 50 + knob2 * 300);   // 2 · CC 17
}

Encoders, buttons, wheels and strips are not numbered: read them as midi.cc[number] in the table above, or react in controlChange(cc, value, ch).

The whole p5.js page →

Missing

Is your controller not here?

Open an issue with the brand and model, whether you have the unit and a link to the manual. Or write the profile yourself: it is one JSON file.

GitHub

Is something in this data wrong?

Every number on this page comes from one JSON file. If it disagrees with your unit or the manual, tell us which firmware you checked and we fix the file.