open-audiovisual
Search GitHub

Novation

Novation Launchkey 25 MK4

Novation Launchkey 25 MK4 is a MIDI hardware controller by Novation: 16 pads, 25 keys, 8 knobs, 1 button and 2 wheels.

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

  • Manufacturer docs
  • Community notes
  • 8 unverified
Kind
hardware device
Maker
Novation
Controls
52 controls
Messages
Pitch bend · CC · Note
MIDI channels
1, 10
LED feedback
none sent
Signals
midi/lk25mk4/…
Port name matches
/launchkey\s*(?:mk\s*4\s*)?25(?!\d)(?!\s*mk\s*(?:i{1,3}|[123])\b)/i
LAUNCHKEY 25 MK4Oct −Oct +LK 25ShiftSettings‹ TrackTrack ›ScaleChord MapArpFixed⌃⌄›FuncCaptureUndoQuantMetro■Loop▶●PitchMod12345678

Play Novation Launchkey 25 MK4 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 Novation Launchkey 25 MK4 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 Novation Launchkey 25 MK4
ControlTypeMessageChNumberSignalLED feedbackVerified
Pitch pitch wheel Pitch bend · springs to centre 1 0–16383 · centre 8192 midi/lk25mk4/pitch — yes
Mod mod wheel CC 1 1 midi/lk25mk4/mod — yes
1 k1 knob CC 1 21 midi/lk25mk4/k1 — unverified
2 k2 knob CC 1 22 midi/lk25mk4/k2 — unverified
3 k3 knob CC 1 23 midi/lk25mk4/k3 — unverified
4 k4 knob CC 1 24 midi/lk25mk4/k4 — unverified
5 k5 knob CC 1 25 midi/lk25mk4/k5 — unverified
6 k6 knob CC 1 26 midi/lk25mk4/k6 — unverified
7 k7 knob CC 1 27 midi/lk25mk4/k7 — unverified
8 k8 knob CC 1 28 midi/lk25mk4/k8 — unverified
pad1 pad Note · velocity · + poly aftertouch 10 36 · C2 midi/lk25mk4/pad1 — yes
pad2 pad Note · velocity · + poly aftertouch 10 37 · C#2 midi/lk25mk4/pad2 — yes
pad3 pad Note · velocity · + poly aftertouch 10 38 · D2 midi/lk25mk4/pad3 — yes
pad4 pad Note · velocity · + poly aftertouch 10 39 · D#2 midi/lk25mk4/pad4 — yes
pad5 pad Note · velocity · + poly aftertouch 10 44 · G#2 midi/lk25mk4/pad5 — yes
pad6 pad Note · velocity · + poly aftertouch 10 45 · A2 midi/lk25mk4/pad6 — yes
pad7 pad Note · velocity · + poly aftertouch 10 46 · A#2 midi/lk25mk4/pad7 — yes
pad8 pad Note · velocity · + poly aftertouch 10 47 · B2 midi/lk25mk4/pad8 — yes
pad9 pad Note · velocity · + poly aftertouch 10 40 · E2 midi/lk25mk4/pad9 — yes
pad10 pad Note · velocity · + poly aftertouch 10 41 · F2 midi/lk25mk4/pad10 — yes
pad11 pad Note · velocity · + poly aftertouch 10 42 · F#2 midi/lk25mk4/pad11 — yes
pad12 pad Note · velocity · + poly aftertouch 10 43 · G2 midi/lk25mk4/pad12 — yes
pad13 pad Note · velocity · + poly aftertouch 10 48 · C3 midi/lk25mk4/pad13 — yes
pad14 pad Note · velocity · + poly aftertouch 10 49 · C#3 midi/lk25mk4/pad14 — yes
pad15 pad Note · velocity · + poly aftertouch 10 50 · D3 midi/lk25mk4/pad15 — yes
pad16 pad Note · velocity · + poly aftertouch 10 51 · D#3 midi/lk25mk4/pad16 — yes
Sustain sustain button CC · momentary 1 64 midi/lk25mk4/sustain — yes
Keys keys keys Note · velocity 1 48–72 (C3–C5) midi/lk25mk4/keys/on · midi/lk25mk4/keys/off · midi/lk25mk4/n48…n72 — yes

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 Launchkey MK4 Programmer's Reference Guide v2.0 (Novation)two USB MIDI interfaces: "MIDI In / Out" carries performance (keys, wheels, pad and encoder Custom Modes), "DAW In / Out" is for DAWs; the device powers up in Standalone (MIDI) mode and a DIN output repeats the MIDI-port data; Drum mode pads: channel 10, bottom row 36 37 38 39 44 45 46 47, top row 40 41 42 43 48 49 50 51 (figure on p. 12; the pads report poly aftertouch on channel 10 when selected); in DAW mode the encoders send CC 21–28 (absolute: Plugin, Mixer, Sends) or CC 85–92 (relative: Transport) on channel 16 over the DAW port; note-off = note-on velocity 0; middle C = C3 = note 60; the Launchkey 25/37 have no faders (fader mode is 49/61 only)
  • manufacturer Launchkey 25 User Guide v3.0 (Novation)hardware: two wheels (pitch, modulation), 8 encoders, 16 velocity-sensitive pads with polyphonic aftertouch, 25 synth-action keys, sustain jack, 5-pin DIN MIDI out, no faders; keyboard powers on at C2–C4 with C3 = middle C (so C2–C4 (notes 48–72)); Settings defaults: Keys Channel 1, Chords Channel 3, Drums Channel 10, Pad Aftertouch Polyphonic, Power On Modes Encoder Custom 1 / Pad Drum; Drum mode: pads C1 to D♯2 (bottom left to top right) on channel 10; four encoder and four pad Custom Modes, edited in Novation Components (no default CC numbers printed); macOS DAW ports "Launchkey 25 DAW In" / "Launchkey 25 DAW Out", Windows "MIDIIN2 (Launchkey 25 MIDI)"; weight and size 461 × 251 mm
  • manufacturer Launchkey MK4 Components Guide (Novation support)Mod Wheel/Strip tab: default message CC 1 (editable); Pedal tab: sustain pedal default CC 64 (editable); encoders send CC or NRPN, absolute or relative, channel 1–16 or Global, set per encoder
  • manufacturer Using Launchkey MK4 in Ableton Live (Novation support)Windows: the DAW ports appear as "(Port 2)" or "MIDIIN2 (LKMK4 MIDI)" / "MIDIOUT2 (LKMK4 MIDI)" (no key count in that name, so it cannot be told from the other MK4 sizes and is left unmatched); on the other ports the article writes "Launchkey MK4 61 MIDI" and "Launchkey MK4 61 DAW (or similar)" — i.e. "Launchkey MK4 <keys> MIDI|DAW"
  • community zynthian-ui zynthian_ctrldev_launchkey_mk4_37.py (non-official)Linux port names of the Launchkey 37 MK4: "Launchkey MK4 37 DAW In" and "Launchkey MK4 37 IN 2" (the second interface); the first interface is the MIDI port
  • community Ardour surfaces/launchkey_4/launchkey_4.cc (non-official)finds the DAW port of the regular model with the regex "Launchkey MK4.*(DAW|MIDI 2|DA$)" and of the Mini with "Launchkey Mini MK4.*(DAW|MIDI 2|DA$)": the Mini MK4 is named "Launchkey Mini MK4 …", which this profile does not match

Notes

Standalone, MIDI port (the device powers up in Standalone mode; no DAW needed). Keys C2–C4 (notes 48–72), channel 1 (Keys Channel setting; octave and transpose buttons shift the range, the faceplate follows any note on the channel). Pads in the default Drum mode: notes 36–51 on channel 10 with poly aftertouch (factory Pad Aftertouch = Polyphonic), 2 × 8 as in the Programmer's Reference (bottom-left 36 … top-right 51). Pitch wheel = pitch bend, mod wheel = CC 1 and sustain pedal = CC 64 are Novation's defaults (Components Guide); the channel they use is not printed (Keys Channel 1 assumed). The 25 MK4 has no faders or fader buttons (49/61 only) and the wheels are real wheels (the Mini MK4 has touch strips; it is a different profile family and not matched). Encoders: power-on mode is Custom 1 but Novation prints no default numbers — CC 21–28 on channel 1 is a placeholder, marked unverified (學習 rebinds, or set them in Novation Components). DAW mode (Plugin / Mixer / Sends / Transport encoders, DAW pad layout, track and transport buttons, screen and LED control) needs a DAW and talks on the DAW port, channels 1, 7 and 16 — not modelled. In Standalone the DAW-control buttons send CC on channel 16 (Programmer's Reference, Figure 1) but the printed figures do not show a Launchkey 25 map: Shift, Octave, Transpose, Settings, Scale, Chord Map, Arp, Fixed Chord, Track, workflow and transport buttons are drawn, not mapped; chord, scale and arp output follows the Chords Channel (default 3) and is not modelled. Port names: macOS "Launchkey MK4 25 MIDI" / "… DAW" (per the Novation Ableton article's "Launchkey MK4 61 MIDI/DAW" pattern and the Linux names above — not seen on a Mac for this model); Windows names the first interface "Launchkey 25 MIDI" and the DAW one "MIDIIN2 (LKMK4 MIDI)". The profile matches "Launchkey 25" with or without "MK4" in either order, and neither the Launchkey Mini 25/37 (MK3 or MK4), the other MK4 sizes, nor MK3 ports. No LED feedback. Faceplate proportions come from the published size; unconfirmed on hardware.

Port names it recognises

matches
/launchkey\s*(?:mk\s*4\s*)?25(?!\d)(?!\s*mk\s*(?:i{1,3}|[123])\b)/i
prefers
/\bmidi\b(?!\s*2)/i /midi\s*1/i
avoids
/daw/i /midiin2/i /midi\s*2/i /\bin\s*2\b/i /port\s*2/i

Signals

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

Use it

Use Novation Launchkey 25 MK4 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="novation-launchkey-25-mk4" 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=novation-launchkey-25-mk4&readout"
            width="720" height="413" style="border:0;max-width:100%" allow="midi"
            title="Novation Launchkey 25 MK4"></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="novation-launchkey-25-mk4" 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=novation-launchkey-25-mk4 to make the on-screen controller this one; a real Novation Launchkey 25 MK4 is recognised by its port name.

javascript
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=novation-launchkey-25-mk4' }));
In your sketchControlMessage
knob11 k1CC 21 · Ch 1
knob22 k2CC 22 · Ch 1
knob33 k3CC 23 · Ch 1
knob44 k4CC 24 · Ch 1
knob55 k5CC 25 · Ch 1
knob66 k6CC 26 · Ch 1
knob77 k7CC 27 · Ch 1
knob88 k8CC 28 · Ch 1
pad1pad1Note 36 · C2 · Ch 10
pad2pad2Note 37 · C#2 · Ch 10
pad3pad3Note 38 · D2 · Ch 10
pad4pad4Note 39 · D#2 · Ch 10
pad5pad5Note 44 · G#2 · Ch 10
pad6pad6Note 45 · A2 · Ch 10
pad7pad7Note 46 · A#2 · Ch 10
pad8pad8Note 47 · B2 · Ch 10
pad9pad9Note 40 · E2 · Ch 10
pad10pad10Note 41 · F2 · Ch 10
pad11pad11Note 42 · F#2 · Ch 10
pad12pad12Note 43 · G2 · Ch 10
pad13pad13Note 48 · C3 · Ch 10
pad14pad14Note 49 · C#3 · Ch 10
pad15pad15Note 50 · D3 · Ch 10
pad16pad16Note 51 · D#3 · Ch 10
notePressed(note, velocity)48–72 (C3–C5)a key goes down
p5.js sketch
function draw() {
  background(knob1 * 255);   // 1 · CC 21
  circle(width / 2, height / 2, 50 + knob2 * 300);   // 2 · CC 22
}

function padPressed(n, velocity) {      // n = 1…16, as in the table
  circle(random(width), random(height), velocity * 100);
}

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.