Novation
Novation Launchpad Pro MK3
Novation Launchpad Pro MK3 is a MIDI hardware controller by Novation: 64 pads and 41 buttons.
It sends Note and CC on channel 1. The profile cites 2 sources. No control is flagged unverified.
- Manufacturer docs
- LED feedback
- Kind
- hardware device
- Maker
- Novation
- Controls
- 105 controls
- Messages
- Note · CC
- MIDI channels
- 1
- LED feedback
- yes, lights are driven by MIDI
- Signals
midi/lppro3/…- Port name matches
/lppromk3/i/launchpad\s*pro\s*(\[?mk\s*3\]?|3\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 Launchpad Pro MK3 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 |
|---|---|---|---|---|---|---|---|
pad1 |
pad | Note · velocity | 1 | 11 · B-1 | midi/lppro3/pad1 |
note 11 · on 37 / off 0 | yes |
pad2 |
pad | Note · velocity | 1 | 12 · C0 | midi/lppro3/pad2 |
note 12 · on 37 / off 0 | yes |
pad3 |
pad | Note · velocity | 1 | 13 · C#0 | midi/lppro3/pad3 |
note 13 · on 37 / off 0 | yes |
pad4 |
pad | Note · velocity | 1 | 14 · D0 | midi/lppro3/pad4 |
note 14 · on 37 / off 0 | yes |
pad5 |
pad | Note · velocity | 1 | 15 · D#0 | midi/lppro3/pad5 |
note 15 · on 37 / off 0 | yes |
pad6 |
pad | Note · velocity | 1 | 16 · E0 | midi/lppro3/pad6 |
note 16 · on 37 / off 0 | yes |
pad7 |
pad | Note · velocity | 1 | 17 · F0 | midi/lppro3/pad7 |
note 17 · on 37 / off 0 | yes |
pad8 |
pad | Note · velocity | 1 | 18 · F#0 | midi/lppro3/pad8 |
note 18 · on 37 / off 0 | yes |
pad9 |
pad | Note · velocity | 1 | 21 · A0 | midi/lppro3/pad9 |
note 21 · on 37 / off 0 | yes |
pad10 |
pad | Note · velocity | 1 | 22 · A#0 | midi/lppro3/pad10 |
note 22 · on 37 / off 0 | yes |
pad11 |
pad | Note · velocity | 1 | 23 · B0 | midi/lppro3/pad11 |
note 23 · on 37 / off 0 | yes |
pad12 |
pad | Note · velocity | 1 | 24 · C1 | midi/lppro3/pad12 |
note 24 · on 37 / off 0 | yes |
pad13 |
pad | Note · velocity | 1 | 25 · C#1 | midi/lppro3/pad13 |
note 25 · on 37 / off 0 | yes |
pad14 |
pad | Note · velocity | 1 | 26 · D1 | midi/lppro3/pad14 |
note 26 · on 37 / off 0 | yes |
pad15 |
pad | Note · velocity | 1 | 27 · D#1 | midi/lppro3/pad15 |
note 27 · on 37 / off 0 | yes |
pad16 |
pad | Note · velocity | 1 | 28 · E1 | midi/lppro3/pad16 |
note 28 · on 37 / off 0 | yes |
pad17 |
pad | Note · velocity | 1 | 31 · G1 | midi/lppro3/pad17 |
note 31 · on 37 / off 0 | yes |
pad18 |
pad | Note · velocity | 1 | 32 · G#1 | midi/lppro3/pad18 |
note 32 · on 37 / off 0 | yes |
pad19 |
pad | Note · velocity | 1 | 33 · A1 | midi/lppro3/pad19 |
note 33 · on 37 / off 0 | yes |
pad20 |
pad | Note · velocity | 1 | 34 · A#1 | midi/lppro3/pad20 |
note 34 · on 37 / off 0 | yes |
pad21 |
pad | Note · velocity | 1 | 35 · B1 | midi/lppro3/pad21 |
note 35 · on 37 / off 0 | yes |
pad22 |
pad | Note · velocity | 1 | 36 · C2 | midi/lppro3/pad22 |
note 36 · on 37 / off 0 | yes |
pad23 |
pad | Note · velocity | 1 | 37 · C#2 | midi/lppro3/pad23 |
note 37 · on 37 / off 0 | yes |
pad24 |
pad | Note · velocity | 1 | 38 · D2 | midi/lppro3/pad24 |
note 38 · on 37 / off 0 | yes |
pad25 |
pad | Note · velocity | 1 | 41 · F2 | midi/lppro3/pad25 |
note 41 · on 37 / off 0 | yes |
pad26 |
pad | Note · velocity | 1 | 42 · F#2 | midi/lppro3/pad26 |
note 42 · on 37 / off 0 | yes |
pad27 |
pad | Note · velocity | 1 | 43 · G2 | midi/lppro3/pad27 |
note 43 · on 37 / off 0 | yes |
pad28 |
pad | Note · velocity | 1 | 44 · G#2 | midi/lppro3/pad28 |
note 44 · on 37 / off 0 | yes |
pad29 |
pad | Note · velocity | 1 | 45 · A2 | midi/lppro3/pad29 |
note 45 · on 37 / off 0 | yes |
pad30 |
pad | Note · velocity | 1 | 46 · A#2 | midi/lppro3/pad30 |
note 46 · on 37 / off 0 | yes |
pad31 |
pad | Note · velocity | 1 | 47 · B2 | midi/lppro3/pad31 |
note 47 · on 37 / off 0 | yes |
pad32 |
pad | Note · velocity | 1 | 48 · C3 | midi/lppro3/pad32 |
note 48 · on 37 / off 0 | yes |
pad33 |
pad | Note · velocity | 1 | 51 · D#3 | midi/lppro3/pad33 |
note 51 · on 37 / off 0 | yes |
pad34 |
pad | Note · velocity | 1 | 52 · E3 | midi/lppro3/pad34 |
note 52 · on 37 / off 0 | yes |
pad35 |
pad | Note · velocity | 1 | 53 · F3 | midi/lppro3/pad35 |
note 53 · on 37 / off 0 | yes |
pad36 |
pad | Note · velocity | 1 | 54 · F#3 | midi/lppro3/pad36 |
note 54 · on 37 / off 0 | yes |
pad37 |
pad | Note · velocity | 1 | 55 · G3 | midi/lppro3/pad37 |
note 55 · on 37 / off 0 | yes |
pad38 |
pad | Note · velocity | 1 | 56 · G#3 | midi/lppro3/pad38 |
note 56 · on 37 / off 0 | yes |
pad39 |
pad | Note · velocity | 1 | 57 · A3 | midi/lppro3/pad39 |
note 57 · on 37 / off 0 | yes |
pad40 |
pad | Note · velocity | 1 | 58 · A#3 | midi/lppro3/pad40 |
note 58 · on 37 / off 0 | yes |
pad41 |
pad | Note · velocity | 1 | 61 · C#4 | midi/lppro3/pad41 |
note 61 · on 37 / off 0 | yes |
pad42 |
pad | Note · velocity | 1 | 62 · D4 | midi/lppro3/pad42 |
note 62 · on 37 / off 0 | yes |
pad43 |
pad | Note · velocity | 1 | 63 · D#4 | midi/lppro3/pad43 |
note 63 · on 37 / off 0 | yes |
pad44 |
pad | Note · velocity | 1 | 64 · E4 | midi/lppro3/pad44 |
note 64 · on 37 / off 0 | yes |
pad45 |
pad | Note · velocity | 1 | 65 · F4 | midi/lppro3/pad45 |
note 65 · on 37 / off 0 | yes |
pad46 |
pad | Note · velocity | 1 | 66 · F#4 | midi/lppro3/pad46 |
note 66 · on 37 / off 0 | yes |
pad47 |
pad | Note · velocity | 1 | 67 · G4 | midi/lppro3/pad47 |
note 67 · on 37 / off 0 | yes |
pad48 |
pad | Note · velocity | 1 | 68 · G#4 | midi/lppro3/pad48 |
note 68 · on 37 / off 0 | yes |
pad49 |
pad | Note · velocity | 1 | 71 · B4 | midi/lppro3/pad49 |
note 71 · on 37 / off 0 | yes |
pad50 |
pad | Note · velocity | 1 | 72 · C5 | midi/lppro3/pad50 |
note 72 · on 37 / off 0 | yes |
pad51 |
pad | Note · velocity | 1 | 73 · C#5 | midi/lppro3/pad51 |
note 73 · on 37 / off 0 | yes |
pad52 |
pad | Note · velocity | 1 | 74 · D5 | midi/lppro3/pad52 |
note 74 · on 37 / off 0 | yes |
pad53 |
pad | Note · velocity | 1 | 75 · D#5 | midi/lppro3/pad53 |
note 75 · on 37 / off 0 | yes |
pad54 |
pad | Note · velocity | 1 | 76 · E5 | midi/lppro3/pad54 |
note 76 · on 37 / off 0 | yes |
pad55 |
pad | Note · velocity | 1 | 77 · F5 | midi/lppro3/pad55 |
note 77 · on 37 / off 0 | yes |
pad56 |
pad | Note · velocity | 1 | 78 · F#5 | midi/lppro3/pad56 |
note 78 · on 37 / off 0 | yes |
pad57 |
pad | Note · velocity | 1 | 81 · A5 | midi/lppro3/pad57 |
note 81 · on 37 / off 0 | yes |
pad58 |
pad | Note · velocity | 1 | 82 · A#5 | midi/lppro3/pad58 |
note 82 · on 37 / off 0 | yes |
pad59 |
pad | Note · velocity | 1 | 83 · B5 | midi/lppro3/pad59 |
note 83 · on 37 / off 0 | yes |
pad60 |
pad | Note · velocity | 1 | 84 · C6 | midi/lppro3/pad60 |
note 84 · on 37 / off 0 | yes |
pad61 |
pad | Note · velocity | 1 | 85 · C#6 | midi/lppro3/pad61 |
note 85 · on 37 / off 0 | yes |
pad62 |
pad | Note · velocity | 1 | 86 · D6 | midi/lppro3/pad62 |
note 86 · on 37 / off 0 | yes |
pad63 |
pad | Note · velocity | 1 | 87 · D#6 | midi/lppro3/pad63 |
note 87 · on 37 / off 0 | yes |
pad64 |
pad | Note · velocity | 1 | 88 · E6 | midi/lppro3/pad64 |
note 88 · on 37 / off 0 | yes |
Shift shift |
button | CC · momentary | 1 | 90 | midi/lppro3/shift |
CC 90 · on 3 / off 0 | yes |
◀ prev |
button | CC · momentary | 1 | 91 | midi/lppro3/prev |
CC 91 · on 3 / off 0 | yes |
▶ next |
button | CC · momentary | 1 | 92 | midi/lppro3/next |
CC 92 · on 3 / off 0 | yes |
Session session |
button | CC · momentary | 1 | 93 | midi/lppro3/session |
CC 93 · on 3 / off 0 | yes |
Note notemode |
button | CC · momentary | 1 | 94 | midi/lppro3/notemode |
CC 94 · on 3 / off 0 | yes |
Chord chord |
button | CC · momentary | 1 | 95 | midi/lppro3/chord |
CC 95 · on 3 / off 0 | yes |
Custom custom |
button | CC · momentary | 1 | 96 | midi/lppro3/custom |
CC 96 · on 3 / off 0 | yes |
Seq seq |
button | CC · momentary | 1 | 97 | midi/lppro3/seq |
CC 97 · on 3 / off 0 | yes |
Projects projects |
button | CC · momentary | 1 | 98 | midi/lppro3/projects |
CC 98 · on 3 / off 0 | yes |
▲ up |
button | CC · momentary | 1 | 80 | midi/lppro3/up |
CC 80 · on 3 / off 0 | yes |
▼ down |
button | CC · momentary | 1 | 70 | midi/lppro3/down |
CC 70 · on 3 / off 0 | yes |
Clear clear |
button | CC · momentary | 1 | 60 | midi/lppro3/clear |
CC 60 · on 3 / off 0 | yes |
Dup dup |
button | CC · momentary | 1 | 50 | midi/lppro3/dup |
CC 50 · on 3 / off 0 | yes |
Quant quant |
button | CC · momentary | 1 | 40 | midi/lppro3/quant |
CC 40 · on 3 / off 0 | yes |
Fixed fixed |
button | CC · momentary | 1 | 30 | midi/lppro3/fixed |
CC 30 · on 3 / off 0 | yes |
▷ play |
button | CC · momentary | 1 | 20 | midi/lppro3/play |
CC 20 · on 3 / off 0 | yes |
○ rec |
button | CC · momentary | 1 | 10 | midi/lppro3/rec |
CC 10 · on 3 / off 0 | yes |
Pattern patterns |
button | CC · momentary | 1 | 89 | midi/lppro3/patterns |
CC 89 · on 3 / off 0 | yes |
Steps steps |
button | CC · momentary | 1 | 79 | midi/lppro3/steps |
CC 79 · on 3 / off 0 | yes |
Pat Set patset |
button | CC · momentary | 1 | 69 | midi/lppro3/patset |
CC 69 · on 3 / off 0 | yes |
Vel velocity |
button | CC · momentary | 1 | 59 | midi/lppro3/velocity |
CC 59 · on 3 / off 0 | yes |
Prob prob |
button | CC · momentary | 1 | 49 | midi/lppro3/prob |
CC 49 · on 3 / off 0 | yes |
Mutate mutation |
button | CC · momentary | 1 | 39 | midi/lppro3/mutation |
CC 39 · on 3 / off 0 | yes |
Micro micro |
button | CC · momentary | 1 | 29 | midi/lppro3/micro |
CC 29 · on 3 / off 0 | yes |
Print print |
button | CC · momentary | 1 | 19 | midi/lppro3/print |
CC 19 · on 3 / off 0 | yes |
sel1 |
button | CC · momentary | 1 | 101 | midi/lppro3/sel1 |
CC 101 · on 3 / off 0 | yes |
sel2 |
button | CC · momentary | 1 | 102 | midi/lppro3/sel2 |
CC 102 · on 3 / off 0 | yes |
sel3 |
button | CC · momentary | 1 | 103 | midi/lppro3/sel3 |
CC 103 · on 3 / off 0 | yes |
sel4 |
button | CC · momentary | 1 | 104 | midi/lppro3/sel4 |
CC 104 · on 3 / off 0 | yes |
sel5 |
button | CC · momentary | 1 | 105 | midi/lppro3/sel5 |
CC 105 · on 3 / off 0 | yes |
sel6 |
button | CC · momentary | 1 | 106 | midi/lppro3/sel6 |
CC 106 · on 3 / off 0 | yes |
sel7 |
button | CC · momentary | 1 | 107 | midi/lppro3/sel7 |
CC 107 · on 3 / off 0 | yes |
sel8 |
button | CC · momentary | 1 | 108 | midi/lppro3/sel8 |
CC 108 · on 3 / off 0 | yes |
Arm arm |
button | CC · momentary | 1 | 1 | midi/lppro3/arm |
CC 1 · on 3 / off 0 | yes |
Mute mute |
button | CC · momentary | 1 | 2 | midi/lppro3/mute |
CC 2 · on 3 / off 0 | yes |
Solo solo |
button | CC · momentary | 1 | 3 | midi/lppro3/solo |
CC 3 · on 3 / off 0 | yes |
Vol vol |
button | CC · momentary | 1 | 4 | midi/lppro3/vol |
CC 4 · on 3 / off 0 | yes |
Pan pan |
button | CC · momentary | 1 | 5 | midi/lppro3/pan |
CC 5 · on 3 / off 0 | yes |
Sends sends |
button | CC · momentary | 1 | 6 | midi/lppro3/sends |
CC 6 · on 3 / off 0 | yes |
Device device |
button | CC · momentary | 1 | 7 | midi/lppro3/device |
CC 7 · on 3 / off 0 | yes |
Stop stop |
button | CC · momentary | 1 | 8 | midi/lppro3/stop |
CC 8 · on 3 / off 0 | yes |
LED feedback is modeled for 105 of its controls: the LED column says which message lights each one.
Sources
- manufacturer Launchpad Pro [MK3] Programmer's reference manual (Novation)official. 'Programmer mode layout' diagram (p.19): 8×8 pads = notes 11–88, 11 bottom-left, +1 to the right, +10 per row up; top row CC 91–98 (CC 90 top-left, CC 99 the logo); left column CC 80, 70 … 10 (top to bottom); right column CC 89, 79 … 19; the row under the grid CC 101–108, the row under that CC 1–8; 'all buttons and pads accept either Note or Control Change messages. The indicated type is which is sent by the device'. LEDs: note-on or CC on ch 1 = static, ch 2 = flashing, ch 3 = pulsing, velocity / value = palette index (0 off, 3 white, 5 red, 13 yellow, 21 green, 37 turquoise, 45 blue); Live/Programmer toggle F0 00 20 29 02 0E 0E <0|1> F7; three ports LPProMK3 MIDI / DIN / DAW
- manufacturer Launchpad Pro [MK3] User Guide v1 (Novation)official. §3 Hardware Overview (what is printed on each button: the top row ◀ ▶ Session Note Chord Custom Sequencer Projects, the left column ▲ ▼ Clear Duplicate Quantise Fixed Length Play Record, the right column Patterns … Print to Clip, the Ableton track controls Record Arm … Stop Clip); §10.4 pressure mode off / polyphonic / channel; §10.7 Programmer mode: hold Setup, press the orange Scene Launch button, release Setup; the unit always powers on into Live mode
Notes
Models Programmer mode, the one layout in which every pad and button has a documented message. Live mode (what the unit boots into) is different: Note, Chord, Custom and Session modes each send their own notes. Enter Programmer mode from the unit (hold Setup, press the orange Scene Launch button, release Setup) or with the SysEx F0 00 20 29 02 0E 0E 01 F7 (stays off by default: the element sends no SysEx). Use the first port, "LPProMK3 MIDI" (macOS), not DIN or DAW. The manual gives a channel only for lighting (ch 1 static, 2 flashing, 3 pulsing); channel 1 for what the pads and buttons send is an assumption (the worked examples are all channel 1), not a line of the manual: unconfirmed. Pads send velocity; their pressure (off, polyphonic or channel aftertouch) is a unit setting and is not modelled. The labels on the buttons are what the Live-mode faceplate prints; in Programmer mode they are only positions. CC 99 lights the logo and the Setup button sends nothing: both are drawn only. LED feedback: pads light turquoise (palette 37) while played, buttons white (palette 3).
Port names it recognises
- matches
/lppromk3/i/launchpad\s*pro\s*(\[?mk\s*3\]?|3\b)/i- prefers
/midi/i- avoids
/daw/i/\bdin\b/i/midiin[23]/i/midiout[23]/i
Signals
Every control publishes midi/lppro3/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/lppro3/last.
Use it
Use Novation Launchpad Pro MK3 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-launchpad-pro-mk3" 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-launchpad-pro-mk3&readout" width="720" height="728" style="border:0;max-width:100%" allow="midi" title="Novation Launchpad Pro MK3"></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-launchpad-pro-mk3" 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-launchpad-pro-mk3 to make the on-screen controller this one; a real Novation Launchpad Pro MK3 is recognised by its port name.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=novation-launchpad-pro-mk3' }));| In your sketch | Control | Message |
|---|---|---|
pad1 | pad1 | Note 11 · B-1 · Ch 1 |
pad2 | pad2 | Note 12 · C0 · Ch 1 |
pad3 | pad3 | Note 13 · C#0 · Ch 1 |
pad4 | pad4 | Note 14 · D0 · Ch 1 |
pad5 | pad5 | Note 15 · D#0 · Ch 1 |
pad6 | pad6 | Note 16 · E0 · Ch 1 |
pad7 | pad7 | Note 17 · F0 · Ch 1 |
pad8 | pad8 | Note 18 · F#0 · Ch 1 |
pad9 | pad9 | Note 21 · A0 · Ch 1 |
pad10 | pad10 | Note 22 · A#0 · Ch 1 |
pad11 | pad11 | Note 23 · B0 · Ch 1 |
pad12 | pad12 | Note 24 · C1 · Ch 1 |
pad13 | pad13 | Note 25 · C#1 · Ch 1 |
pad14 | pad14 | Note 26 · D1 · Ch 1 |
pad15 | pad15 | Note 27 · D#1 · Ch 1 |
pad16 | pad16 | Note 28 · E1 · Ch 1 |
… and 48 more, up to pad(64), in the same order | ||
function draw() {
background(20);
}
function padPressed(n, velocity) { // n = 1…64, as in the table
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.