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.