A 12-pad wireless MIDI drum controller for GarageBand, built on an ESP32-S3. Right now it's a breadboard and a lot of wires, still very much in progress, but the part that matters already works: every pad triggers its mapped drum sound over Bluetooth, with no cable to the computer at all.
Twelve momentary buttons, one per drum sound, each debounced in software so a single press reads as a single, clean hit. Twelve LEDs, one per pad, flash on every hit, with a minimum hold time built in so even the fastest tap still gives visible feedback instead of just a flicker.
On press, the board sends a MIDI Note On (and a Note Off on release) over Bluetooth LE, advertising itself as a MIDI device named DrumBox. Pair it with GarageBand, or any app that accepts Bluetooth MIDI input, and the pads work like any other drum controller. No MIDI interface, no USB cable.
Each pad is mapped to a standard General MIDI drum note on channel 10, so it plays GarageBand's default drum kit correctly with zero track configuration:
| Kick | 36 |
| Snare | 38 |
| Closed Hi-Hat | 42 |
| Open Hi-Hat | 46 |
| Low Tom | 45 |
| Mid Tom | 47 |
| High Tom | 50 |
| Crash Cymbal | 49 |
| Ride Cymbal | 51 |
| Hand Clap | 39 |
| Rim / Side Stick | 37 |
| Cowbell | 56 |
| Board | ESP32-S3 dev board: runs the firmware and the BLE MIDI stack |
| Input | 12 momentary push buttons, one per pad |
| Feedback | 12 LEDs + 220Ω resistors, one per pad |
Button and LED pins are chosen to avoid the ESP32-S3's reserved and strapping GPIOs.
It's currently a bare breadboard build, no enclosure, exposed wiring everywhere, but the firmware and the Bluetooth MIDI connection to GarageBand both work end to end. The remaining work is mechanical, not electrical: a real enclosure, and mounted pads instead of loose buttons on a breadboard.