AKAI Professional
AKAI LPD8 (mk2)
AKAI LPD8 (mk2) is a MIDI hardware controller by AKAI Professional: 8 pads and 8 knobs.
It sends Note and CC on channels 1, 10. The profile cites 4 sources. 8 of its controls are marked unverified: the number is our best reading, and Learn rebinds it in one move.
- Manufacturer docs
- Artist's TouchDesigner tool
- Community notes
- 8 unverified
- Kind
- hardware device
- Maker
- AKAI Professional
- Controls
- 16 controls
- Messages
- Note · CC
- MIDI channels
- 1, 10
- LED feedback
- none sent
- Signals
midi/lpd8/…- Port name matches
/lpd\s*8/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 AKAI LPD8 (mk2) 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 |
|---|---|---|---|---|---|---|---|
Pad 1 pad1 |
pad | Note · velocity | 10 | 36 · C2 | midi/lpd8/pad1 |
— | unverified |
Pad 2 pad2 |
pad | Note · velocity | 10 | 37 · C#2 | midi/lpd8/pad2 |
— | unverified |
Pad 3 pad3 |
pad | Note · velocity | 10 | 38 · D2 | midi/lpd8/pad3 |
— | unverified |
Pad 4 pad4 |
pad | Note · velocity | 10 | 39 · D#2 | midi/lpd8/pad4 |
— | unverified |
Pad 5 pad5 |
pad | Note · velocity | 10 | 40 · E2 | midi/lpd8/pad5 |
— | unverified |
Pad 6 pad6 |
pad | Note · velocity | 10 | 41 · F2 | midi/lpd8/pad6 |
— | unverified |
Pad 7 pad7 |
pad | Note · velocity | 10 | 42 · F#2 | midi/lpd8/pad7 |
— | unverified |
Pad 8 pad8 |
pad | Note · velocity | 10 | 43 · G2 | midi/lpd8/pad8 |
— | unverified |
K1 k1 |
knob | CC | 1 | 70 | midi/lpd8/k1 |
— | yes |
K2 k2 |
knob | CC | 1 | 71 | midi/lpd8/k2 |
— | yes |
K3 k3 |
knob | CC | 1 | 72 | midi/lpd8/k3 |
— | yes |
K4 k4 |
knob | CC | 1 | 73 | midi/lpd8/k4 |
— | yes |
K5 k5 |
knob | CC | 1 | 74 | midi/lpd8/k5 |
— | yes |
K6 k6 |
knob | CC | 1 | 75 | midi/lpd8/k6 |
— | yes |
K7 k7 |
knob | CC | 1 | 76 | midi/lpd8/k7 |
— | yes |
K8 k8 |
knob | CC | 1 | 77 | midi/lpd8/k8 |
— | 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.
Sources
- manufacturer LPD8 mk2 User Guide v1.2 (AKAI)4 programs, pad modes Note / Prog Chng / CC; no default numbers listed
- artist's tool AKAI_LPD8.tox (the artist's TouchDesigner tool)pads arrive as notes on channel 10, knobs as CCs on channel 1 on his unit
- community Spectrasonics — Setting up the LPD8 mk2 (non-official)knobs CC 70–77 in program 1
- manufacturer AKAI support — LPD8 MKII: How to use 16 pads and knobs in MPC Beatspad notes 36–43 (as a setting, not stated as the default)
Where this profile comes from
Che-Yu Wu's TouchDesigner tool: MIDI In (Device ID + Active toggle) → select ch10n* → Pad1–8, select ch1ctrl* → K1–K8, math 0..127 → 0..1, bound both ways to custom parameters (Pads page: 8 momentary pulses, Knobs page: 8 floats) and to an 800×200 panel (pads left, knobs right). TouchDesigner's MIDI In CHOP names channels 1-based (ch1ctrl75 = CC 74, ch10n37 = note 36); the numbers here are real MIDI numbers. AKAI_LPD8.tox
Notes
Pad note numbers are the common program-1 layout (36–43) but not printed in the manual — pads are marked unverified; 學習 rebinds them in one tap each. The pads light themselves; no LED feedback is sent.
Port names it recognises
- matches
/lpd\s*8/i
Signals
Every control publishes midi/lpd8/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/lpd8/last.
Use it
Use AKAI LPD8 (mk2) 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="akai-lpd8" 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=akai-lpd8&readout" width="720" height="216" style="border:0;max-width:100%" allow="midi" title="AKAI LPD8 (mk2)"></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="akai-lpd8" 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=akai-lpd8 to make the on-screen controller this one; a real AKAI LPD8 (mk2) is recognised by its port name.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=akai-lpd8' }));| In your sketch | Control | Message |
|---|---|---|
knob1 | K1 k1 | CC 70 · Ch 1 |
knob2 | K2 k2 | CC 71 · Ch 1 |
knob3 | K3 k3 | CC 72 · Ch 1 |
knob4 | K4 k4 | CC 73 · Ch 1 |
knob5 | K5 k5 | CC 74 · Ch 1 |
knob6 | K6 k6 | CC 75 · Ch 1 |
knob7 | K7 k7 | CC 76 · Ch 1 |
knob8 | K8 k8 | CC 77 · Ch 1 |
pad1 | Pad 1 pad1 | Note 36 · C2 · Ch 10 |
pad2 | Pad 2 pad2 | Note 37 · C#2 · Ch 10 |
pad3 | Pad 3 pad3 | Note 38 · D2 · Ch 10 |
pad4 | Pad 4 pad4 | Note 39 · D#2 · Ch 10 |
pad5 | Pad 5 pad5 | Note 40 · E2 · Ch 10 |
pad6 | Pad 6 pad6 | Note 41 · F2 · Ch 10 |
pad7 | Pad 7 pad7 | Note 42 · F#2 · Ch 10 |
pad8 | Pad 8 pad8 | Note 43 · G2 · Ch 10 |
function draw() {
background(knob1 * 255); // K1 · CC 70
circle(width / 2, height / 2, 50 + knob2 * 300); // K2 · CC 71
}
function padPressed(n, velocity) { // n = 1…8, as in the table
circle(random(width), random(height), velocity * 100);
}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.