open-audiovisual
Search GitHub

KORG

Korg nanoKEY2

Korg nanoKEY2 is a MIDI hardware controller by KORG: 25 keys, 2 buttons and 1 touch strip.

It sends Pitch bend, CC and Note on channel 1. The profile cites 3 sources. 25 of its controls are marked unverified: the number is our best reading, and Learn rebinds it in one move.

  • Manufacturer docs
  • 25 unverified
Kind
hardware device
Maker
KORG
Controls
28 controls
Messages
Pitch bend · CC · Note
MIDI channels
1
LED feedback
none sent
Signals
midi/nanokey2/…
Port name matches
/nanokey\s*2/i
NANOKEY2OCT−OCT+Pitch −/+MOD

Play Korg nanoKEY2 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 nanoKEY2 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 nanoKEY2
ControlTypeMessageChNumberSignalLED feedbackVerified
Pitch −/+ bend touch strip Pitch bend · springs to centre 1 0–16383 · centre 8192 midi/nanokey2/bend — yes
MOD mod button CC · momentary 1 1 midi/nanokey2/mod — yes
SUSTAIN sustain button CC · momentary 1 64 midi/nanokey2/sustain — yes
Keys keys keys Note · velocity 1 48–72 (C3–C5) midi/nanokey2/keys/on · midi/nanokey2/keys/off · midi/nanokey2/n48…n72 — unverified

LED feedback is not modeled for this one yet, so OAV does not light its LEDs. Every control still plays and sends its message.

Notes on single controls

Sources

  • manufacturer nanoKEY2 Parameter Guide (KORG)factory settings: SUSTAIN button = CC 64, MOD button = CC 1 (momentary or toggle, on/off values editable); PITCH−/PITCH+ send pitch bend that returns to centre on release; keyboard, pitch, mod and sustain all transmit on the Global MIDI channel
  • manufacturer nanoKEY2 MIDI Implementation v1.00 (KORG)transmits note on/off (keyboard; note-off velocity 64), control change (MOD, SUSTAIN), pitch bend (PITCH buttons)
  • manufacturer nanoKEY2 Owner's Manual (KORG)ports: Mac "nanoKEY2 KEYBOARD" (in) / "nanoKEY2 CTRL" (out), Windows "nanoKEY2", with the KORG driver "nanoKEY2 1 KEYBOARD" / "nanoKEY2 1 CTRL"; OCT−/OCT+ shift ±4 octaves; 325 × 83 × 13 mm

Notes

Factory settings. KORG does not print the factory Global MIDI channel; channel 1 is assumed (set it in KORG KONTROL Editor if yours differs, or use the element's channel attribute). PITCH− and PITCH+ are two buttons that send one pitch-bend message, so they are drawn as one bipolar strip. OCT−/OCT+ shift the keyboard inside the unit and send nothing of their own. No LED feedback.

Port names it recognises

matches
/nanokey\s*2/i
prefers
/keyboard/i
avoids
/ctrl/i

Signals

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

Use it

Use Korg nanoKEY2 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-nanokey2" 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-nanokey2&readout"
            width="720" height="206" style="border:0;max-width:100%" allow="midi"
            title="Korg nanoKEY2"></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-nanokey2" 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-nanokey2 to make the on-screen controller this one; a real Korg nanoKEY2 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-nanokey2' }));
In your sketchControlMessage
notePressed(note, velocity)48–72 (C3–C5)a key goes down
p5.js sketch
function draw() {
  background(20);
}

function notePressed(note, velocity) {   // a key goes down
  circle(random(width), random(height), velocity * 100);
}

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.