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
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.
| Control | Type | Message | Ch | Number | Signal | LED feedback | Verified |
|---|---|---|---|---|---|---|---|
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
pitchPitch wheel: Novation says it sends pitch bend messages; the channel is not printed — it follows the Keys Channel (default 1), assumed.modDefault CC 1 per the Launchkey MK4 Components Guide (Mod Wheel/Strip tab: "default is CC 1"; editable in Components). Its MIDI channel is not printed — the Keys Channel (default 1) is assumed.k1The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k2The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k3The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k4The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k5The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k6The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k7The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).k8The power-on Encoder mode is Custom 1 (Settings → Power On Modes), but Novation prints no default CC for it — the values are set in Components. CC 21–28 on channel 1 is a placeholder: CC 21–28 are the encoders' DAW-mode numbers (channel 16) in the Programmer's Reference. Check the number and channel in Components, or use 學習. Absolute vs relative is also a Components option (relative not assumed).sustainSustain pedal jack: default CC 64 per the Launchkey MK4 Components Guide (Pedal tab: "default is CC 64"; editable). Channel is not printed — the Keys Channel (default 1) is assumed.
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
Embed it with one line
No import map, no build step. Change
layout, addhardware="ask"for a Connect button.<script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script> <oav-controller profile="novation-launchkey-25-mk4" readout></oav-controller>Or as an iframe
For places that only take an iframe. Every event arrives as a
postMessage.<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>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.
<!-- 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.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=novation-launchkey-25-mk4' }));| In your sketch | Control | Message |
|---|---|---|
knob1 | 1 k1 | CC 21 · Ch 1 |
knob2 | 2 k2 | CC 22 · Ch 1 |
knob3 | 3 k3 | CC 23 · Ch 1 |
knob4 | 4 k4 | CC 24 · Ch 1 |
knob5 | 5 k5 | CC 25 · Ch 1 |
knob6 | 6 k6 | CC 26 · Ch 1 |
knob7 | 7 k7 | CC 27 · Ch 1 |
knob8 | 8 k8 | CC 28 · Ch 1 |
pad1 | pad1 | Note 36 · C2 · Ch 10 |
pad2 | pad2 | Note 37 · C#2 · Ch 10 |
pad3 | pad3 | Note 38 · D2 · Ch 10 |
pad4 | pad4 | Note 39 · D#2 · Ch 10 |
pad5 | pad5 | Note 44 · G#2 · Ch 10 |
pad6 | pad6 | Note 45 · A2 · Ch 10 |
pad7 | pad7 | Note 46 · A#2 · Ch 10 |
pad8 | pad8 | Note 47 · B2 · Ch 10 |
pad9 | pad9 | Note 40 · E2 · Ch 10 |
pad10 | pad10 | Note 41 · F2 · Ch 10 |
pad11 | pad11 | Note 42 · F#2 · Ch 10 |
pad12 | pad12 | Note 43 · G2 · Ch 10 |
pad13 | pad13 | Note 48 · C3 · Ch 10 |
pad14 | pad14 | Note 49 · C#3 · Ch 10 |
pad15 | pad15 | Note 50 · D3 · Ch 10 |
pad16 | pad16 | Note 51 · D#3 · Ch 10 |
notePressed(note, velocity) | 48–72 (C3–C5) | a key goes down |
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).
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.