The Launchpad sends MIDI messages when buttons are pushed, and the buttons light up different colors when MIDI messages are sent to it. With the exception of the top row of buttons, each button corresponds to a MIDI note’s pitch value. Color is determined by the second byte of MIDI data (which for a MIDI note is the velocity).
MIDI messages from Launchpad
- Button Pressed: sends pitch with velocity 127
- Button Released: sends pitch with velocity 0
- Top Button Pressed: sends a MIDI CC with value 127
- Top Button Released: sends a MIDI CC with value 0
MIDI messages to Launchpad
- MIDI Note: lights up the corresponding button (if it exists) a particular color based on the note velocity.
- MIDI CC: lights up the corresponding top button (if it exists) a particular color based on the control change value.
MIDI Button mappings
The 64 square buttons in the main grid are assigned pitch values starting from 0, where each row has the first 8 contiguous values in modulus of 16. So the first row sends MIDI notes [ 0, 1, 2, 3, 4, 5, 6, 7 ] and the second row sends MIDI notes [ 16, 17, 18, 19, 20, 21, 22, 23 ], the third row starts on [ 24, 25… 31 ].
The circular buttons to the right of the main grid are the “next” button for each row. So for the first row, the circular button to the right is MIDI note 8, and for the second row it is MIDI note 24.
The top circular buttons, from left to right, correspond to MIDI CC 104 to 111
Velocity : Color mappings
The color mappings are less intuitive or structured than the button mappings. The most reasonable approach for me was to assemble a (subjective) table of the usable colors.
- Sending MIDI note 119 with velocity 48 lights up the bottom right button bright green.
- Sending MIDI note 119 with velocity 0 turns off the light of the bottom right button.
- Sending MIDI CC 107 with value 13 lights up the 4th of the top circular buttons a dim red.
- Sending MIDI note 12 with velocity 127 doesn’t do anything, because there is no corresponding button on the Launchpad.