Akai MPC On A Budget: Build A Touchscreen ESP32 MIDI Controller With The NM-CYD-C5

A MIDI controller does not need a keyboard, mechanical pads, or a custom circuit board. In this project, I turn the NM-CYD-C5 into a compact 12-pad ESP32 MIDI controller for Ableton Live (Code and a step-by-step guide are provided).
The board draws the controls on its own touchscreen, sends notes to a Mac over Bluetooth Low Energy MIDI, and requires no external components beyond a data-capable USB-C cable for programming and power.
Key Takeaways
The NM-CYD-C5 combines an ESP32-C5, a 2.8-inch color display, and a resistive touchscreen on one board, so the controller needs no separate display or touch module.
The finished device sends 12 MIDI notes over BLE and appears in macOS as CYD MIDI Pads; Ableton Live receives it as a standard MIDI input.
A four-point calibration routine stores the touchscreen correction in flash, preventing the wrong pad from triggering after a restart.
USB is used to upload the sketch and power the board. In this build, musical data travels over BLE MIDI rather than USB MIDI.

What The NM-CYD-C5 Board Is
CYD stands for Cheap Yellow Display, a popular family of ESP32 development boards sold with a color screen already attached. The NM-CYD-C5 is a newer variant built around the 240 MHz ESP32-C5. It includes 16 MB of flash, 8 MB of PSRAM, a 320 × 240 ST7789 display, an XPT2046 resistive touchscreen, two USB-C ports, a microSD slot, Wi-Fi 6, Bluetooth Low Energy, and IEEE 802.15.4 support for Zigbee and Thread.
That integration is the board’s main advantage for a beginner. A conventional touchscreen project requires a controller, display, touch panel, wiring, and a verified pin map. Here, the major parts are already assembled, leaving the project focused on software, touch calibration, and MIDI.
What This DIY MIDI Controller Does
The sketch creates a 4 × 3 pad grid. Each pad sends one MIDI note on channel 1 with a fixed velocity of 110. The display changes the touched pad to white while the note is active, then sends Note Off when the finger is released.
Pad Row | MIDI Notes | Musical Range |
Top | 60, 61, 62, 63 | C, C♯, D, D♯ |
Middle | 64, 65, 66, 67 | E, F, F♯, G |
Bottom | 68, 69, 70, 71 | G♯, A, A♯, B |
MIDI does not contain sound. The CYD sends instructions describing which note started, which note stopped, and how strongly it should play. Ableton Live receives those instructions, while a software instrument or Drum Rack generates the audio.
This separation is important: the board can remain small and inexpensive because the Mac performs the synthesis, sampling, recording, and effects processing.


