AKAI Professional
AKAI MPK mini mk3
AKAI MPK mini mk3 is a MIDI hardware controller by AKAI Professional: 8 pads, 25 keys, 8 knobs and 2 wheels.
It sends Pitch bend, CC and Note on channels 1, 10. The profile cites 6 sources. 25 of its controls are marked unverified: the number is our best reading, and Learn rebinds it in one move.
- Manufacturer docs
- Community notes
- 25 unverified
- Kind
- hardware device
- Maker
- AKAI Professional
- Controls
- 43 controls
- Messages
- Pitch bend · CC · Note
- MIDI channels
- 1, 10
- LED feedback
- none sent
- Signals
midi/mpkmini3/…- Port name matches
/mpk\s*mini\s*(3|mk\s*3|mkiii)/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 MPK mini 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 |
|---|---|---|---|---|---|---|---|
Bend bend |
wheel | Pitch bend · springs to centre | 1 | 0–16383 · centre 8192 | midi/mpkmini3/bend |
— | yes |
Mod mod |
wheel | CC · springs to centre | 1 | 1 | midi/mpkmini3/mod |
— | yes |
K1 k1 |
knob | CC | 1 | 70 | midi/mpkmini3/k1 |
— | yes |
K2 k2 |
knob | CC | 1 | 71 | midi/mpkmini3/k2 |
— | yes |
K3 k3 |
knob | CC | 1 | 72 | midi/mpkmini3/k3 |
— | yes |
K4 k4 |
knob | CC | 1 | 73 | midi/mpkmini3/k4 |
— | yes |
K5 k5 |
knob | CC | 1 | 74 | midi/mpkmini3/k5 |
— | yes |
K6 k6 |
knob | CC | 1 | 75 | midi/mpkmini3/k6 |
— | yes |
K7 k7 |
knob | CC | 1 | 76 | midi/mpkmini3/k7 |
— | yes |
K8 k8 |
knob | CC | 1 | 77 | midi/mpkmini3/k8 |
— | yes |
1 pad1 |
pad | Note · velocity · + channel pressure | 10 | 36 · C2 | midi/mpkmini3/pad1 |
— | yes |
2 pad2 |
pad | Note · velocity · + channel pressure | 10 | 37 · C#2 | midi/mpkmini3/pad2 |
— | yes |
3 pad3 |
pad | Note · velocity · + channel pressure | 10 | 38 · D2 | midi/mpkmini3/pad3 |
— | yes |
4 pad4 |
pad | Note · velocity · + channel pressure | 10 | 39 · D#2 | midi/mpkmini3/pad4 |
— | yes |
5 pad5 |
pad | Note · velocity · + channel pressure | 10 | 40 · E2 | midi/mpkmini3/pad5 |
— | yes |
6 pad6 |
pad | Note · velocity · + channel pressure | 10 | 41 · F2 | midi/mpkmini3/pad6 |
— | yes |
7 pad7 |
pad | Note · velocity · + channel pressure | 10 | 42 · F#2 | midi/mpkmini3/pad7 |
— | yes |
8 pad8 |
pad | Note · velocity · + channel pressure | 10 | 43 · G2 | midi/mpkmini3/pad8 |
— | yes |
Keys keys |
keys | Note · velocity | 1 | 48–72 (C3–C5) | midi/mpkmini3/keys/on · midi/mpkmini3/keys/off · midi/mpkmini3/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
keysLowest key at octave 0 is not printed in the docs; C3 = 48 is assumed. Keys follow any note on channel 1, so an octave shift just scrolls the on-screen keys.
Sources
- manufacturer MPK mini mk3 Quickstart Guide v1.3 (AKAI; copy hosted by Amazon)25 velocity-sensitive keys; 8 assignable 360° knobs, each sends a CC; 4-axis thumbstick: left/right bends pitch, up/down applies a mod-wheel effect; 8 velocity- and pressure-sensitive pads in Bank A (red) / B (green); CC and Prog Change pad modes; 8 programs (Prog Select + pad); 31.8 × 18.1 cm
- manufacturer AKAI support — MPK Mini MK3: how to play both pads and keys at the same time in MPC Beatspad MIDI channel 10, keybed MIDI channel 1
- community mpk3-settings — program 1 read from a unit (non-official)Program 1 'PGM:MPC': pads bank A notes 36–43 (CC 16–23, PC 0–7), bank B notes 44–51 (CC 24–31, PC 8–15), pad channel 10, aftertouch = Channel; knobs K1–K8 CC 70–77, Absolute 0–127; joystick X = Pitchbend, Y = Dual CC 1 / 1; keybed channel 1, octave 0
- community Spectrasonics — Setting up the MPK Mini mk3 (non-official)program 1 'PGM: MPC' loads at power-on; knobs CC 70–77; in CC mode bank A pad 5 = CC 20, pad 6 = CC 21
- community Ardour AKAI_MPKmini_mk3.map (non-official)knobs CC 70–77 on channel 1; pads in Prog Change mode send program 0–15 on channel 10
- community Ableton Live 12 MIDI Remote Script MPK_mini_mkIII (decompiled; non-official)USB model name "MPK mini 3"; pad translation expects notes 36–51 on channel 10
Notes
Program 1 ("PGM:MPC", loaded at power-on), pads in Note mode, Bank A. Bank B (notes 44–51) and the CC (16–31) / Prog Change (0–15) pad modes re-use the same 8 pads — a layer the faceplate cannot show, so they are not modelled (學習 rebinds; they still arrive as midi/ch/10/…). The knobs are endless but send absolute 0–127 (the unit keeps the value). The joystick is drawn as two strips: X = pitch bend (springs to centre), Y = CC 1 rising from 0 whichever way you push it ("Dual CC", springs back to 0). Pad pressure arrives as channel aftertouch on channel 10. Arp, Tap Tempo, Octave, Full Level, Note Repeat, Bank, CC, Prog Change and Prog Select act inside the unit and send nothing of their own. The pads light themselves; no LED feedback is sent.
Port names it recognises
- matches
/mpk\s*mini\s*(3|mk\s*3|mkiii)/i
Signals
Every control publishes midi/mpkmini3/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/mpkmini3/last.
Use it
Use AKAI MPK mini 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="akai-mpk-mini-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=akai-mpk-mini-mk3&readout" width="720" height="432" style="border:0;max-width:100%" allow="midi" title="AKAI MPK mini 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="akai-mpk-mini-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=akai-mpk-mini-mk3 to make the on-screen controller this one; a real AKAI MPK mini mk3 is recognised by its port name.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=akai-mpk-mini-mk3' }));| 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 | 1 pad1 | Note 36 · C2 · Ch 10 |
pad2 | 2 pad2 | Note 37 · C#2 · Ch 10 |
pad3 | 3 pad3 | Note 38 · D2 · Ch 10 |
pad4 | 4 pad4 | Note 39 · D#2 · Ch 10 |
pad5 | 5 pad5 | Note 40 · E2 · Ch 10 |
pad6 | 6 pad6 | Note 41 · F2 · Ch 10 |
pad7 | 7 pad7 | Note 42 · F#2 · Ch 10 |
pad8 | 8 pad8 | Note 43 · G2 · Ch 10 |
notePressed(note, velocity) | 48–72 (C3–C5) | a key goes down |
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);
}
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.