Built
- USB MIDI capture from Roland
- Raspberry Pi Python service
- Real-time WebSocket communication
- Precise 88-key LED mapping
- MIDI search and playback
- Chromium kiosk interface
- Automatic startup with systemd
Interactive MIDI learning and visualization system
Role
Product Design · Hardware · Firmware · Backend · UI
01
I transformed a Roland digital piano into a networked learning and visualization instrument using a Raspberry Pi, ESP32, touch display and a calibrated LED system mapped to all 88 keys.
Live USB MIDI is processed by a Python service and distributed over WebSockets. Played notes illuminate immediately, while MIDI playback visualizes upcoming notes across the keyboard for a piano-roll-style learning experience.
The system runs independently without a laptop. A dedicated touch interface provides the MIDI library, search, playback controls and system status, while the wider RediON²⁶ platform can monitor and control it.
02
Real photographs and screenshots for this project will be added here.
03
Roland Digital Piano
USB MIDI source
Raspberry Pi
Python MIDI · Library · WebSocket API
ESP32 · 196 LEDs
Low-latency calibrated lighting
7-inch Touch UI · RediON²⁶
Control and visualization
04
05
The Roland needs a real USB-MIDI host, ALSA support, persistent services, local storage and HDMI output—responsibilities better suited to Linux.
The ESP32 provides predictable low-latency LED updates while the Pi remains focused on MIDI processing, library management and orchestration.
One real-time event stream can drive the LED controller, touch interface, RediON²⁶ dashboard and future visualizers without duplicating protocols.
06
07
08
PLUTO Piano Brain demonstrates my ability to engineer a complete embedded product across hardware, firmware, Linux services, networking, real-time protocols and user-interface development.