APC Mini MK2 Color Palette Reference
Complete reference for the 128-color velocity palette and custom RGB control.
Primary Colors (Quick Reference)
| Color | Velocity | Hex | Approximate RGB |
|---|
| Off | 0 | 0x00 | - |
| White | 3 | 0x03 | #FFFFFF |
| Red | 5 | 0x05 | #FF0000 |
| Orange | 9 | 0x09 | #FF8000 |
| Yellow | 13 | 0x0D | #FFFF00 |
| Lime | 17 | 0x11 | #80FF00 |
| Green | 21 | 0x15 | #00FF00 |
| Mint | 29 | 0x1D | #00FF80 |
| Cyan | 33 | 0x21 | #00FFFF |
| Sky | 37 | 0x25 | #0080FF |
| Blue | 45 | 0x2D | #0000FF |
| Purple | 49 | 0x31 | #8000FF |
| Magenta | 53 | 0x35 | #FF00FF |
| Pink | 57 | 0x39 | #FF0080 |
| Hot Pink | 95 | 0x5F | #FF1493 |
Extended Color Palette
Reds (Velocity 1-8)
| Velocity | Hex | Description |
|---|
| 1 | 0x01 | Dark Red |
| 2 | 0x02 | Red-Orange Dark |
| 3 | 0x03 | White/Warm |
| 4 | 0x04 | Light Red |
| 5 | 0x05 | Red |
| 6 | 0x06 | Red-Orange |
| 7 | 0x07 | Orange-Red |
| 8 | 0x08 | Dark Orange |
Oranges/Yellows (Velocity 9-16)
| Velocity | Hex | Description |
|---|
| 9 | 0x09 | Orange |
| 10 | 0x0A | Light Orange |
| 11 | 0x0B | Amber |
| 12 | 0x0C | Yellow-Orange |
| 13 | 0x0D | Yellow |
| 14 | 0x0E | Light Yellow |
| 15 | 0x0F | Pale Yellow |
| 16 | 0x10 | Yellow-Green |
Greens (Velocity 17-28)
| Velocity | Hex | Description |
|---|
| 17 | 0x11 | Lime |
| 18 | 0x12 | Yellow-Green |
| 19 | 0x13 | Light Green |
| 20 | 0x14 | Pale Green |
| 21 | 0x15 | Green |
| 22 | 0x16 | Green Dark |
| 23 | 0x17 | Forest Green |
| 24 | 0x18 | Teal-Green |
| 25 | 0x19 | Sea Green |
| 26 | 0x1A | Aqua-Green |
| 27 | 0x1B | Turquoise |
| 28 | 0x1C | Cyan-Green |
Cyans/Blues (Velocity 29-48)
| Velocity | Hex | Description |
|---|
| 29 | 0x1D | Mint |
| 30 | 0x1E | Aqua |
| 31 | 0x1F | Light Cyan |
| 32 | 0x20 | Pale Cyan |
| 33 | 0x21 | Cyan |
| 37 | 0x25 | Sky Blue |
| 41 | 0x29 | Light Blue |
| 45 | 0x2D | Blue |
Purples/Magentas (Velocity 49-64)
| Velocity | Hex | Description |
|---|
| 49 | 0x31 | Purple |
| 50 | 0x32 | Violet |
| 51 | 0x33 | Lavender |
| 52 | 0x34 | Light Purple |
| 53 | 0x35 | Magenta |
| 54 | 0x36 | Pink-Magenta |
| 55 | 0x37 | Hot Pink |
| 56 | 0x38 | Deep Pink |
| 57 | 0x39 | Pink |
Brightness Control via MIDI Channel
The same velocity color appears at different brightness levels:
| Channel | Brightness | Usage |
|---|
| 0 | 10% | Very dim |
| 1 | 25% | Dim |
| 2 | 40% | Low |
| 3 | 55% | Medium-Low |
| 4 | 70% | Medium |
| 5 | 85% | High |
| 6 | 100% | Full (recommended) |
Example: Red at different brightness levels
output.send('noteon', { note: 0, velocity: 5, channel: 0 }); // 10% red
output.send('noteon', { note: 0, velocity: 5, channel: 3 }); // 55% red
output.send('noteon', { note: 0, velocity: 5, channel: 6 }); // 100% red
Animation Effects via MIDI Channel
| Channel | Effect | Rate |
|---|
| 7 | Pulse | 1/16 note |
| 8 | Pulse | 1/8 note |
| 9 | Pulse | 1/4 note |
| 10 | Pulse | 1/2 note |
| 11 | Blink | 1/24 note |
| 12 | Blink | 1/16 note |
| 13 | Blink | 1/8 note |
| 14 | Blink | 1/4 note |
| 15 | Blink | 1/2 note |
Example: Pulsing red
output.send('noteon', { note: 0, velocity: 5, channel: 9 }); // Red pulse 1/4
Custom RGB via SysEx
For precise color control beyond the 128-color palette:
SysEx Message Format
F0 47 7F 4F 24 00 08 [pad] [pad] [R-MSB] [R-LSB] [G-MSB] [G-LSB] [B-MSB] [B-LSB] F7
RGB Encoding Function
function encodeRGB(value: number): [number, number] {
// Split 8-bit value into MSB (bit 7) and LSB (bits 0-6)
const msb = (value >> 7) & 0x01;
const lsb = value & 0x7F;
return [msb, lsb];
}
Complete Custom RGB Function
function setCustomRGB(
output: Output,
pad: number,
r: number,
g: number,
b: number
) {
const [rMSB, rLSB] = encodeRGB(r);
const [gMSB, gLSB] = encodeRGB(g);
const [bMSB, bLSB] = encodeRGB(b);
output.send('sysex', [
0xF0, // SysEx start
0x47, // Akai manufacturer ID
0x7F, // Device broadcast
0x4F, // APC Mini MK2 product ID
0x24, // RGB LED command
0x00, 0x08, // Length (8 bytes)
pad, pad, // Start/end pad (single pad)
rMSB, rLSB, // Red
gMSB, gLSB, // Green
bMSB, bLSB, // Blue
0xF7 // SysEx end
]);
}
Range RGB (Multiple Pads)
function setRangeRGB(
output: Output,
startPad: number,
endPad: number,
r: number,
g: number,
b: number
) {
const [rMSB, rLSB] = encodeRGB(r);
const [gMSB, gLSB] = encodeRGB(g);
const [bMSB, bLSB] = encodeRGB(b);
output.send('sysex', [
0xF0, 0x47, 0x7F, 0x4F, 0x24,
0x00, 0x08,
startPad, endPad, // Range of pads
rMSB, rLSB,
gMSB, gLSB,
bMSB, bLSB,
0xF7
]);
}
Common Color Examples
// Primary colors
setCustomRGB(output, 0, 255, 0, 0); // Red
setCustomRGB(output, 1, 0, 255, 0); // Green
setCustomRGB(output, 2, 0, 0, 255); // Blue
// Secondary colors
setCustomRGB(output, 3, 255, 255, 0); // Yellow
setCustomRGB(output, 4, 0, 255, 255); // Cyan
setCustomRGB(output, 5, 255, 0, 255); // Magenta
// Pastels
setCustomRGB(output, 6, 255, 182, 193); // Light Pink
setCustomRGB(output, 7, 173, 216, 230); // Light Blue
// Brand colors
setCustomRGB(output, 8, 29, 185, 84); // Spotify Green
setCustomRGB(output, 9, 255, 69, 0); // SoundCloud Orange
Peripheral Button Colors
Track and Scene buttons have fixed colors:
| Button Type | LED Color | On Velocity | Blink Velocity |
|---|
| Track 1-8 | Red | 1 | 2 |
| Scene 1-8 | Green | 1 | 2 |
// Track button on
output.send('noteon', { note: 100, velocity: 1, channel: 0 });
// Scene button blinking
output.send('noteon', { note: 112, velocity: 2, channel: 0 });