Akai MPD232: SysEx data. Has anyone got the messages for the RGB pads?

Hello guys!

I’m trying to gather as much information as possible about the Akai MPD232 MIDI controller SysEx data. Does anyone have information to expand here?

At the moment, I have practically the control of the entire device, but I am missing everything related to the control of the RGB lighting of the 16 pads. Does anyone have information about it?

This is all I have collected:

                           USB MIDI Device: AKAI MPD232. SysEx Data

Device Modes:

  • F0 47 00 36 30 00 04 01 00 00 01 F7 ➜ Device Mode 01: Lock all except the pads.
  • F0 47 00 36 30 00 04 01 00 00 02 F7 ➜ Device Mode 02: Unlock all. It does not send SysEx data.
  • F0 47 00 36 30 00 04 01 00 00 08 F7 ➜ Device Mode 08: Unlocks to send SysEx on MIDIIN4 for all buttons (no pads)
  • F0 47 00 36 30 00 04 01 00 00 38 F7 ➜ Device Mode 38: Unlocks to send SysEx on MIDIIN4 for every button, pad, fader

Controls:

  • F0 47 00 36 30 00 04 01 00 01 _ _ F7 ➜ Demo Mode: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 02 _ _ F7 ➜ Preset Change: _ _ = number of preset

  • F0 47 00 36 30 00 04 01 00 07 _ _ F7 ➜ Tap Tempo: _ _ = (>=01 off, 00 on)

  • F0 47 00 36 30 00 04 01 00 0E _ _ F7 ➜ Lock: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 11 _ _ F7 ➜ Full Level: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 12 _ _ F7 ➜ 16 Level: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 13 _ _ F7 ➜ Note Repeat: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 14 _ _ F7 ➜ Pad Banks: _ _ = (00 A, 01 B, 02 C, 03 D)

  • F0 47 00 36 30 00 04 01 00 15 _ _ F7 ➜ Control Banks: _ _ = (00 A, 01 B, 02 C)

  • F0 47 00 36 30 00 04 01 00 16 _ _ F7 ➜ Time Division: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 17 _ _ F7 ➜ Seq On/Off: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 19 _ _ F7 ➜ Seq Rec: _ _ = (00 off, 01 on)

  • F0 47 00 36 30 00 04 01 00 1A _ _ F7 ➜ Step Bank: _ _ = (00 01-16, 01 17-32)

  • F0 47 00 36 30 00 04 01 01 79 _ _ F7 to
    F0 47 00 36 30 00 04 01 02 00 _ _ F7 ➜ Sequence Lights

  • F0 47 00 36 31 00 04 01 0B 0E _ _ F7 to
    F0 47 00 36 31 00 04 01 0B 2D _ _ F7 ➜ Sequence Button

  • F0 47 00 36 31 00 04 01 00 _ x _ y F7 ➜ Display ASCII: _ x = Start number, _ y = Letter in ASCII

  • RGB LEDS ???

General format of Akai specific SysEx MIDI messages

Byte #
1 0xF0 - SysEx message start.

2 0x47 - Manufacturers ID Byte (47 ➜ Akai).
3 0x00 - Device ID. This is usually 0x00 but may change if you have multiple devices connected.
4 0x36 - Product model ID (36 ➜ MPD232).
5 0x30 - Message type identifier – for example, 0x66 indicates a configuration request message.

6 0x00 - Number of data bytes, MSB.
7 0x04 - Number of data bytes, LSB.
(MSB * 128 + LSB) represents the number of bytes in the section.
The MIDI standard reserves the most significant bit in a byte, so only the lowest 7 bits of
each byte can be used to indicate the number; treating the bytes as a short won’t work.

8 0x01 - Data byte 1
9 0x00 - Data byte 2
10 0x0E - Data byte 3
11 0x01 - Data byte 4
Data bytes containing more information (depending on the message type).
The number of bytes in this section is conveyed by bytes #6 and #7.

12 0xF7 - SysEx message end.

What interests me the most are the SysEx messages that control the RGB lighting change of the pads. This is probably a string of more than 10 bytes, with 3 bytes destined for RGB color, probably 00 00 00 to 7F 7F 7F. I suspect it would go something like this:

  • F0 47 00 36 ?? 00 04 ?? _R _G _B F7 ➜ _R _G _B = (00 00 00 to 7F 7F 7F)

SysEx data may have things in common with similar Akai devices (MPD226, MPD218, or old models). Anyone have information on these topics?

Thanks for all the Information so far.
This is already pretty helpful for me
Did you figure out how to light up the RGB Pads?
Or did your knowledge about Sysex on MPD 232 expand in other ways?

About the RGB Pads:
Here is an article that helped me with the lighting via sysex of an other Akai Pad Controller.
This article shows the Sysex Pad RGB workflow of the Akai Fire, but as far as I experienced it, it is adaptable for other Akai Pad controllers as well.

Wow, thank you very much for this information @Silver! I’m going to investigate this issue, see if I can get it to work with the colors and intensity of my PADs on the Akai MPD232 I didn’t know all this yet. Apparently, the brands manage to hide all this information on purpose to maintain control and that the end user ends up paying more::

Changing individual pads

It seems that FL Studio sends the entire pad array in a single SysEx message, which is probably a good thing as then all pads change color in unison. But it doesn’t need to.

To construct a SysEx message that changes the pad colors:

F0 – System Exclusive
47 – Akai Manufacturer ID (see the MMA site for a list)
7F – The All-Call address
43 – Fire Sub-ID
65 – Write Pad Array command
hh – High length byte, bits 7 through 13 of following payload
ll – Low length byte, bits 0 through 7 of following payload
Repeat for pads you want to change {…
ii – Pad index, 00 top left through 3F bottom right
rr – Red level, 00 through 7F
gg – Green level, 00 through 7F
bb – Blue level, 00 through 7F
…}
F7 – End of Exclusive

Simple as that! To make it super-real, we can change pad 4 of row 2 to full-intensity blue by sending the following SysEx message:

F0 47 7F 43 65 00 04 23 00 00 7F F7

I can easily use my MIDI Universal Controller tool to test all of this.

Thank you @Raul for posting the essential information out of the article.

I also find it pretty annoying that a lot of brands hide their information about programming with their devices.
But not all company’s do it like that: Novation for example always release a pretty helpful “programmer reference manual” for their Launchpads, which helps you to do sysex and midi communication between the device and your computer.

I have some more knowledge about the Sequence Lights:
At first it would be great if you could change your first post
and rename “Sequence Lights” to “Switches 1-8 Lights”,
because that is the naming in the MPD Editor and better understandable than Sequencing Lights.
(I thought at first you mean the Sequenzer Step Button lights with it)

And it would be also good if you could rename “Sequence Button” to “Sequencer Step Lights” to be more
clear about what you mean (I thought at first it means that the press on the Step Sequence buttons would send a sysex message)

What you could add is, that the “__” in the messages for the Switches and the Sequencer-Step-Lights are placeholder
for “00” = turning the Light off
or “01” = turning the Light On

All this changes would be great for further persons in the future, that read this threat.
Thanks in advance

Now to my research:

  1. There is a special behaviour for turning light on and off with the Sequencer-Step-Lights:
    And all odd numbers in the in the Range from 0-79 are turning the light on
    All even numbers in the same Range are turning the light off.

  2. For getting the Switch lights illuminted for Bank B you need the following messages:
    F0 47 00 36 30 00 04 01 02 01 _ _ F7 to
    F0 47 00 36 30 00 04 01 02 08 _ _ F7 → Switch lights B: _ _ = (00 off, 01 on)

  3. For getting the Switch lights illuminted for Bank C you need the following messages:
    F0 47 00 36 30 00 04 01 02 09 _ _ F7 to
    F0 47 00 36 30 00 04 01 02 10 _ _ F7 → Switch lights C: _ _ = (00 off, 01 on)

(between 09 and 10 are the hex Numbers A, B, C, D, E and F)

I tried to get the RGB Pads to light via Sysex Msg with the article I sent here in the threat.
But I couldn’t get it to work.
The last thing that could help would be a brute force attack on the mpd with sysex messages to figure it out.
But what came to mind is, that it would make sense that there is no functionality to light up the RGB Pads via sysex.
Because this device is designed to be a drum Pad controller and not a light show device. And to set the Pad colours to your liking,
they give you the mpd editor software.

Thank you for all the info. I should definitely check all this out.

I already tried to do a brute force test with different ranges of values but I couldn’t make the RGB LEDs of the PADs react. I don’t know what range of SysEx values I should try.

The Display ASCII Sysex commands are only for rewriting the current loaded Presetname.
Which was a bit disappointing for me, because I had some plans to use the whole screen to display things, but that doesn’t work.
You only can overwrite the current Presetname, which allows maximum 8 characters.

Yeah you could use it to kind of send Display Messages, but never forget that you shouldn’t save the current preset then, while you are displaying a message :wink: