open-audiovisual
Search GitHub

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
APC MINI MK2▸▸▸▸▸▸▸▸VolPanDev▲▼◀▶12345678Master

Play AKAI APC mini mk2 on screen Full screen ↗ Raw JSON ↗ All controllers

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.

MIDI implementation of AKAI APC mini mk2
ControlTypeMessageChNumberSignalLED feedbackVerified
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

  1. Embed it with one line

    No import map, no build step. Change layout, add hardware="ask" for a Connect button.

    html
    <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script>
    <oav-controller profile="akai-apc-mini-mk2" readout></oav-controller>
  2. Or as an iframe

    For places that only take an iframe. Every event arrives as a postMessage.

    html
    <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>
  3. 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.

    html
    <!-- 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.

javascript
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=akai-apc-mini-mk2' }));
In your sketchControlMessage
fader11 f1CC 48 · Ch 1
fader22 f2CC 49 · Ch 1
fader33 f3CC 50 · Ch 1
fader44 f4CC 51 · Ch 1
fader55 f5CC 52 · Ch 1
fader66 f6CC 53 · Ch 1
fader77 f7CC 54 · Ch 1
fader88 f8CC 55 · Ch 1
fader(9)Master masterCC 56 · Ch 1
pad1pad1Note 0 · C-1 · Ch 1
pad2pad2Note 1 · C#-1 · Ch 1
pad3pad3Note 2 · D-1 · Ch 1
pad4pad4Note 3 · D#-1 · Ch 1
pad5pad5Note 4 · E-1 · Ch 1
pad6pad6Note 5 · F-1 · Ch 1
pad7pad7Note 6 · F#-1 · Ch 1
pad8pad8Note 7 · G-1 · Ch 1
pad9pad9Note 8 · G#-1 · Ch 1
pad10pad10Note 9 · A-1 · Ch 1
pad11pad11Note 10 · A#-1 · Ch 1
pad12pad12Note 11 · B-1 · Ch 1
pad13pad13Note 12 · C0 · Ch 1
pad14pad14Note 13 · C#0 · Ch 1
pad15pad15Note 14 · D0 · Ch 1
pad16pad16Note 15 · D#0 · Ch 1
… and 48 more, up to pad(64), in the same order
p5.js sketch
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).

The whole p5.js page →

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.