AKAI Professional
AKAI APC mini mk2
AKAI APC mini mk2 is a MIDI hardware controller by AKAI Professional: 64 pads, 9 faders and 17 buttons.
It sends Note and CC on channel 1. The profile cites 5 sources. No control is flagged unverified.
- Manufacturer docs
- Community notes
- LED feedback
- Kind
- hardware device
- Maker
- AKAI Professional
- Controls
- 90 controls
- Messages
- Note · CC
- MIDI channels
- 1
- LED feedback
- yes, lights are driven by MIDI
- Signals
midi/apcmini2/…- Port name matches
/apc\s*mini\s*(mk\s*2|mkii)/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 APC mini 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 |
|---|---|---|---|---|---|---|---|
pad1 |
pad | Note · velocity | 1 | 0 · C-1 | midi/apcmini2/pad1 |
note 0 · ch 7 · on 37 / off 0 | yes |
pad2 |
pad | Note · velocity | 1 | 1 · C#-1 | midi/apcmini2/pad2 |
note 1 · ch 7 · on 37 / off 0 | yes |
pad3 |
pad | Note · velocity | 1 | 2 · D-1 | midi/apcmini2/pad3 |
note 2 · ch 7 · on 37 / off 0 | yes |
pad4 |
pad | Note · velocity | 1 | 3 · D#-1 | midi/apcmini2/pad4 |
note 3 · ch 7 · on 37 / off 0 | yes |
pad5 |
pad | Note · velocity | 1 | 4 · E-1 | midi/apcmini2/pad5 |
note 4 · ch 7 · on 37 / off 0 | yes |
pad6 |
pad | Note · velocity | 1 | 5 · F-1 | midi/apcmini2/pad6 |
note 5 · ch 7 · on 37 / off 0 | yes |
pad7 |
pad | Note · velocity | 1 | 6 · F#-1 | midi/apcmini2/pad7 |
note 6 · ch 7 · on 37 / off 0 | yes |
pad8 |
pad | Note · velocity | 1 | 7 · G-1 | midi/apcmini2/pad8 |
note 7 · ch 7 · on 37 / off 0 | yes |
pad9 |
pad | Note · velocity | 1 | 8 · G#-1 | midi/apcmini2/pad9 |
note 8 · ch 7 · on 37 / off 0 | yes |
pad10 |
pad | Note · velocity | 1 | 9 · A-1 | midi/apcmini2/pad10 |
note 9 · ch 7 · on 37 / off 0 | yes |
pad11 |
pad | Note · velocity | 1 | 10 · A#-1 | midi/apcmini2/pad11 |
note 10 · ch 7 · on 37 / off 0 | yes |
pad12 |
pad | Note · velocity | 1 | 11 · B-1 | midi/apcmini2/pad12 |
note 11 · ch 7 · on 37 / off 0 | yes |
pad13 |
pad | Note · velocity | 1 | 12 · C0 | midi/apcmini2/pad13 |
note 12 · ch 7 · on 37 / off 0 | yes |
pad14 |
pad | Note · velocity | 1 | 13 · C#0 | midi/apcmini2/pad14 |
note 13 · ch 7 · on 37 / off 0 | yes |
pad15 |
pad | Note · velocity | 1 | 14 · D0 | midi/apcmini2/pad15 |
note 14 · ch 7 · on 37 / off 0 | yes |
pad16 |
pad | Note · velocity | 1 | 15 · D#0 | midi/apcmini2/pad16 |
note 15 · ch 7 · on 37 / off 0 | yes |
pad17 |
pad | Note · velocity | 1 | 16 · E0 | midi/apcmini2/pad17 |
note 16 · ch 7 · on 37 / off 0 | yes |
pad18 |
pad | Note · velocity | 1 | 17 · F0 | midi/apcmini2/pad18 |
note 17 · ch 7 · on 37 / off 0 | yes |
pad19 |
pad | Note · velocity | 1 | 18 · F#0 | midi/apcmini2/pad19 |
note 18 · ch 7 · on 37 / off 0 | yes |
pad20 |
pad | Note · velocity | 1 | 19 · G0 | midi/apcmini2/pad20 |
note 19 · ch 7 · on 37 / off 0 | yes |
pad21 |
pad | Note · velocity | 1 | 20 · G#0 | midi/apcmini2/pad21 |
note 20 · ch 7 · on 37 / off 0 | yes |
pad22 |
pad | Note · velocity | 1 | 21 · A0 | midi/apcmini2/pad22 |
note 21 · ch 7 · on 37 / off 0 | yes |
pad23 |
pad | Note · velocity | 1 | 22 · A#0 | midi/apcmini2/pad23 |
note 22 · ch 7 · on 37 / off 0 | yes |
pad24 |
pad | Note · velocity | 1 | 23 · B0 | midi/apcmini2/pad24 |
note 23 · ch 7 · on 37 / off 0 | yes |
pad25 |
pad | Note · velocity | 1 | 24 · C1 | midi/apcmini2/pad25 |
note 24 · ch 7 · on 37 / off 0 | yes |
pad26 |
pad | Note · velocity | 1 | 25 · C#1 | midi/apcmini2/pad26 |
note 25 · ch 7 · on 37 / off 0 | yes |
pad27 |
pad | Note · velocity | 1 | 26 · D1 | midi/apcmini2/pad27 |
note 26 · ch 7 · on 37 / off 0 | yes |
pad28 |
pad | Note · velocity | 1 | 27 · D#1 | midi/apcmini2/pad28 |
note 27 · ch 7 · on 37 / off 0 | yes |
pad29 |
pad | Note · velocity | 1 | 28 · E1 | midi/apcmini2/pad29 |
note 28 · ch 7 · on 37 / off 0 | yes |
pad30 |
pad | Note · velocity | 1 | 29 · F1 | midi/apcmini2/pad30 |
note 29 · ch 7 · on 37 / off 0 | yes |
pad31 |
pad | Note · velocity | 1 | 30 · F#1 | midi/apcmini2/pad31 |
note 30 · ch 7 · on 37 / off 0 | yes |
pad32 |
pad | Note · velocity | 1 | 31 · G1 | midi/apcmini2/pad32 |
note 31 · ch 7 · on 37 / off 0 | yes |
pad33 |
pad | Note · velocity | 1 | 32 · G#1 | midi/apcmini2/pad33 |
note 32 · ch 7 · on 37 / off 0 | yes |
pad34 |
pad | Note · velocity | 1 | 33 · A1 | midi/apcmini2/pad34 |
note 33 · ch 7 · on 37 / off 0 | yes |
pad35 |
pad | Note · velocity | 1 | 34 · A#1 | midi/apcmini2/pad35 |
note 34 · ch 7 · on 37 / off 0 | yes |
pad36 |
pad | Note · velocity | 1 | 35 · B1 | midi/apcmini2/pad36 |
note 35 · ch 7 · on 37 / off 0 | yes |
pad37 |
pad | Note · velocity | 1 | 36 · C2 | midi/apcmini2/pad37 |
note 36 · ch 7 · on 37 / off 0 | yes |
pad38 |
pad | Note · velocity | 1 | 37 · C#2 | midi/apcmini2/pad38 |
note 37 · ch 7 · on 37 / off 0 | yes |
pad39 |
pad | Note · velocity | 1 | 38 · D2 | midi/apcmini2/pad39 |
note 38 · ch 7 · on 37 / off 0 | yes |
pad40 |
pad | Note · velocity | 1 | 39 · D#2 | midi/apcmini2/pad40 |
note 39 · ch 7 · on 37 / off 0 | yes |
pad41 |
pad | Note · velocity | 1 | 40 · E2 | midi/apcmini2/pad41 |
note 40 · ch 7 · on 37 / off 0 | yes |
pad42 |
pad | Note · velocity | 1 | 41 · F2 | midi/apcmini2/pad42 |
note 41 · ch 7 · on 37 / off 0 | yes |
pad43 |
pad | Note · velocity | 1 | 42 · F#2 | midi/apcmini2/pad43 |
note 42 · ch 7 · on 37 / off 0 | yes |
pad44 |
pad | Note · velocity | 1 | 43 · G2 | midi/apcmini2/pad44 |
note 43 · ch 7 · on 37 / off 0 | yes |
pad45 |
pad | Note · velocity | 1 | 44 · G#2 | midi/apcmini2/pad45 |
note 44 · ch 7 · on 37 / off 0 | yes |
pad46 |
pad | Note · velocity | 1 | 45 · A2 | midi/apcmini2/pad46 |
note 45 · ch 7 · on 37 / off 0 | yes |
pad47 |
pad | Note · velocity | 1 | 46 · A#2 | midi/apcmini2/pad47 |
note 46 · ch 7 · on 37 / off 0 | yes |
pad48 |
pad | Note · velocity | 1 | 47 · B2 | midi/apcmini2/pad48 |
note 47 · ch 7 · on 37 / off 0 | yes |
pad49 |
pad | Note · velocity | 1 | 48 · C3 | midi/apcmini2/pad49 |
note 48 · ch 7 · on 37 / off 0 | yes |
pad50 |
pad | Note · velocity | 1 | 49 · C#3 | midi/apcmini2/pad50 |
note 49 · ch 7 · on 37 / off 0 | yes |
pad51 |
pad | Note · velocity | 1 | 50 · D3 | midi/apcmini2/pad51 |
note 50 · ch 7 · on 37 / off 0 | yes |
pad52 |
pad | Note · velocity | 1 | 51 · D#3 | midi/apcmini2/pad52 |
note 51 · ch 7 · on 37 / off 0 | yes |
pad53 |
pad | Note · velocity | 1 | 52 · E3 | midi/apcmini2/pad53 |
note 52 · ch 7 · on 37 / off 0 | yes |
pad54 |
pad | Note · velocity | 1 | 53 · F3 | midi/apcmini2/pad54 |
note 53 · ch 7 · on 37 / off 0 | yes |
pad55 |
pad | Note · velocity | 1 | 54 · F#3 | midi/apcmini2/pad55 |
note 54 · ch 7 · on 37 / off 0 | yes |
pad56 |
pad | Note · velocity | 1 | 55 · G3 | midi/apcmini2/pad56 |
note 55 · ch 7 · on 37 / off 0 | yes |
pad57 |
pad | Note · velocity | 1 | 56 · G#3 | midi/apcmini2/pad57 |
note 56 · ch 7 · on 37 / off 0 | yes |
pad58 |
pad | Note · velocity | 1 | 57 · A3 | midi/apcmini2/pad58 |
note 57 · ch 7 · on 37 / off 0 | yes |
pad59 |
pad | Note · velocity | 1 | 58 · A#3 | midi/apcmini2/pad59 |
note 58 · ch 7 · on 37 / off 0 | yes |
pad60 |
pad | Note · velocity | 1 | 59 · B3 | midi/apcmini2/pad60 |
note 59 · ch 7 · on 37 / off 0 | yes |
pad61 |
pad | Note · velocity | 1 | 60 · C4 | midi/apcmini2/pad61 |
note 60 · ch 7 · on 37 / off 0 | yes |
pad62 |
pad | Note · velocity | 1 | 61 · C#4 | midi/apcmini2/pad62 |
note 61 · ch 7 · on 37 / off 0 | yes |
pad63 |
pad | Note · velocity | 1 | 62 · D4 | midi/apcmini2/pad63 |
note 62 · ch 7 · on 37 / off 0 | yes |
pad64 |
pad | Note · velocity | 1 | 63 · D#4 | midi/apcmini2/pad64 |
note 63 · ch 7 · on 37 / off 0 | yes |
Vol track1 |
button | Note · momentary | 1 | 100 · E7 | midi/apcmini2/track1 |
note 100 · on 1 / off 0 | yes |
Pan track2 |
button | Note · momentary | 1 | 101 · F7 | midi/apcmini2/track2 |
note 101 · on 1 / off 0 | yes |
Send track3 |
button | Note · momentary | 1 | 102 · F#7 | midi/apcmini2/track3 |
note 102 · on 1 / off 0 | yes |
Dev track4 |
button | Note · momentary | 1 | 103 · G7 | midi/apcmini2/track4 |
note 103 · on 1 / off 0 | yes |
▲ track5 |
button | Note · momentary | 1 | 104 · G#7 | midi/apcmini2/track5 |
note 104 · on 1 / off 0 | yes |
▼ track6 |
button | Note · momentary | 1 | 105 · A7 | midi/apcmini2/track6 |
note 105 · on 1 / off 0 | yes |
◀ track7 |
button | Note · momentary | 1 | 106 · A#7 | midi/apcmini2/track7 |
note 106 · on 1 / off 0 | yes |
▶ track8 |
button | Note · momentary | 1 | 107 · B7 | midi/apcmini2/track8 |
note 107 · on 1 / off 0 | yes |
▸ scene1 |
button | Note · momentary | 1 | 112 · E8 | midi/apcmini2/scene1 |
note 112 · on 1 / off 0 | yes |
▸ scene2 |
button | Note · momentary | 1 | 113 · F8 | midi/apcmini2/scene2 |
note 113 · on 1 / off 0 | yes |
▸ scene3 |
button | Note · momentary | 1 | 114 · F#8 | midi/apcmini2/scene3 |
note 114 · on 1 / off 0 | yes |
▸ scene4 |
button | Note · momentary | 1 | 115 · G8 | midi/apcmini2/scene4 |
note 115 · on 1 / off 0 | yes |
▸ scene5 |
button | Note · momentary | 1 | 116 · G#8 | midi/apcmini2/scene5 |
note 116 · on 1 / off 0 | yes |
▸ scene6 |
button | Note · momentary | 1 | 117 · A8 | midi/apcmini2/scene6 |
note 117 · on 1 / off 0 | yes |
▸ scene7 |
button | Note · momentary | 1 | 118 · A#8 | midi/apcmini2/scene7 |
note 118 · on 1 / off 0 | yes |
▸ scene8 |
button | Note · momentary | 1 | 119 · B8 | midi/apcmini2/scene8 |
note 119 · on 1 / off 0 | yes |
Shift shift |
button | Note · momentary | 1 | 122 · D9 | midi/apcmini2/shift |
— | yes |
1 f1 |
fader | CC | 1 | 48 | midi/apcmini2/f1 |
— | yes |
2 f2 |
fader | CC | 1 | 49 | midi/apcmini2/f2 |
— | yes |
3 f3 |
fader | CC | 1 | 50 | midi/apcmini2/f3 |
— | yes |
4 f4 |
fader | CC | 1 | 51 | midi/apcmini2/f4 |
— | yes |
5 f5 |
fader | CC | 1 | 52 | midi/apcmini2/f5 |
— | yes |
6 f6 |
fader | CC | 1 | 53 | midi/apcmini2/f6 |
— | yes |
7 f7 |
fader | CC | 1 | 54 | midi/apcmini2/f7 |
— | yes |
8 f8 |
fader | CC | 1 | 55 | midi/apcmini2/f8 |
— | yes |
Master master |
fader | CC | 1 | 56 | midi/apcmini2/master |
— | yes |
LED feedback is modeled for 80 of its controls: the LED column says which message lights each one.
Sources
- manufacturer APC mini mk2 Communications Protocol v1.0 (AKAI)pad matrix diagram: notes 0x00–0x3F, 0x00 bottom-left, rows bottom→top, left→right; track buttons notes 0x64–0x6B (red LED), scene launch 0x70–0x77 (green LED), shift 0x7A (no LED), all channel 1 on port 0; faders 1–9 CC 0x30–0x38 channel 1, absolute; RGB LED = note-on where the channel sets behaviour (ch1–7 = 10/25/50/65/75/90/100 % brightness, ch8–11 pulse, ch12–16 blink) and velocity = palette index (0 #000000, 3 #FFFFFF, 5 #FF0000, 37 #00A9FF …); single LEDs = note-on ch1, velocity 0 off, 1 on, 2 blink
- manufacturer APC mini mk2 User Guide v1.7 (AKAI)faceplate legends (track row: Volume, Pan, Send, Device, ▲▼◀▶; scene column soft keys: Clip Stop, Solo, Mute, Rec Arm, Select, Drum, Note, Stop All Clips); Shift + scene 6 / 7 enters Drum / Note mode; 240 × 210 mm
- community Ableton Live 12 MIDI Remote Script APC_mini_mk2 (decompiled; non-official)clip grid notes 0–63 on channel 1 (top row 56–63), drum-mode pads notes 64–127 on channel 10, track 100–107, scene 112–119, shift 122, faders CC 48–55, master CC 56; colors.py: FULL_BRIGHTNESS_CHANNEL = 6 (MIDI channel 7)
- community Ardour AKAI_APCmini_mk2.map (non-official)faders CC 48–56, scene notes 112–119, grid notes 0–63, all channel 1
- community MPC_Mapper README (non-official)the port that carries pads, buttons, faders and LEDs is named "APC mini mk2 … Control" (Linux)
Notes
Session (clip-launch) layout, the one the unit boots into: the 8×8 grid sends notes 0–63 on channel 1, bottom-left = 0. Drum mode (Shift + scene 6: notes 64–127 on channel 10) and Note mode (Shift + scene 7: notes on the second USB port) are not modelled — 學習 can rebind. Shift (note 122) is a plain button the host reads; the printed Shift legends are host functions. The unit has two USB ports: the first (…Control on Linux, plain "APC mini mk2" on Windows) carries everything here; the second carries Note mode only. LED feedback: grid pads lit at 100 % brightness (channel 7) with palette 37 (#00A9FF) while held; track buttons (red) and scene buttons (green) are single-colour, velocity 1 = on.
Port names it recognises
- matches
/apc\s*mini\s*(mk\s*2|mkii)/i- prefers
/control/i- avoids
/notes/i/midiin2/i
Signals
Every control publishes midi/apcmini2/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/apcmini2/last.
Use it
Use AKAI APC mini 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-apc-mini-mk2" 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-apc-mini-mk2&readout" width="720" height="652" style="border:0;max-width:100%" allow="midi" title="AKAI APC mini 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-apc-mini-mk2" 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-apc-mini-mk2 to make the on-screen controller this one; a real AKAI APC mini 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-apc-mini-mk2' }));| In your sketch | Control | Message |
|---|---|---|
fader1 | 1 f1 | CC 48 · Ch 1 |
fader2 | 2 f2 | CC 49 · Ch 1 |
fader3 | 3 f3 | CC 50 · Ch 1 |
fader4 | 4 f4 | CC 51 · Ch 1 |
fader5 | 5 f5 | CC 52 · Ch 1 |
fader6 | 6 f6 | CC 53 · Ch 1 |
fader7 | 7 f7 | CC 54 · Ch 1 |
fader8 | 8 f8 | CC 55 · Ch 1 |
fader(9) | Master master | CC 56 · Ch 1 |
pad1 | pad1 | Note 0 · C-1 · Ch 1 |
pad2 | pad2 | Note 1 · C#-1 · Ch 1 |
pad3 | pad3 | Note 2 · D-1 · Ch 1 |
pad4 | pad4 | Note 3 · D#-1 · Ch 1 |
pad5 | pad5 | Note 4 · E-1 · Ch 1 |
pad6 | pad6 | Note 5 · F-1 · Ch 1 |
pad7 | pad7 | Note 6 · F#-1 · Ch 1 |
pad8 | pad8 | Note 7 · G-1 · Ch 1 |
pad9 | pad9 | Note 8 · G#-1 · Ch 1 |
pad10 | pad10 | Note 9 · A-1 · Ch 1 |
pad11 | pad11 | Note 10 · A#-1 · Ch 1 |
pad12 | pad12 | Note 11 · B-1 · Ch 1 |
pad13 | pad13 | Note 12 · C0 · Ch 1 |
pad14 | pad14 | Note 13 · C#0 · Ch 1 |
pad15 | pad15 | Note 14 · D0 · Ch 1 |
pad16 | pad16 | Note 15 · D#0 · Ch 1 |
… and 48 more, up to pad(64), in the same order | ||
function draw() {
background(fader1 * 255); // 1 · CC 48
circle(width / 2, height / 2, 50 + fader2 * 300); // 2 · CC 49
}
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.