Robot pianista · MIDI · ESP32 · Impresión 3D

Un robot que toca
el piano de verdad

A robot that plays
a real piano

Servos controlados por ESP32, piezas impresas en 3D, LEDs sincronizados con cada nota y un secuenciador MIDI web que lo orquesta todo desde el navegador.

ESP32-driven servos, 3D-printed parts, LEDs synced to every note and a web MIDI sequencer that orchestrates it all from the browser.

Impresión 3D — 7 piezas STL ↗ Instagram ↗ Open Source ↗ Web Serial API ↗ MIDI.js ↗ ESP32 docs ↗ PCA9685 guide ↗


Tres cosas que ningún otro secuenciador web combina

Three things no other web sequencer combines

⚙️

Control de hardware real

Real hardware control

Envía comandos en tiempo real a servos, solenoides y motores conectados a un ESP32 via WebSocket WiFi o USB Serial. Sincronización beat-by-beat con corrección de drift.

Sends real-time commands to servos, solenoids and motors connected to an ESP32 via WebSocket WiFi or USB Serial. Beat-by-beat sync with drift correction.

🎹

Secuenciador MIDI completo

Full MIDI sequencer

Grid con arrastrar y soltar, carril de velocidades, 128 instrumentos GM, importación y exportación de archivos .mid estándar compatibles con cualquier DAW.

Drag-and-drop grid, velocity lane, 128 GM instruments, standard .mid import and export compatible with any DAW.

🧠

Análisis armónico en tiempo real

Real-time harmonic analysis

Detección automática de tonalidad (Krumhansl-Kessler), acordes con Tonal.js, heat map 4D y análisis de cadencias mientras compones.

Automatic key detection (Krumhansl-Kessler), chords with Tonal.js, 4D heat map and cadence analysis as you compose.

Interfaz del secuenciador PianoRoll

MultipestañaMulti-tab

Varios proyectos abiertos con historial de deshacer independiente por pestaña.

Multiple projects open with independent undo history per tab.

AudioContext SchedulerAudioContext Scheduler

100 ms de lookahead para timing sample-accurate. Sin jitter por setInterval.

100 ms lookahead for sample-accurate timing. No setInterval jitter.

Importación MMLMML Import

Pega notación MML directamente y aparece en el grid.

Paste MML notation directly and it populates the grid.

MinimapMinimap

Vista panorámica del proyecto con scrub rápido.

Full-project overview with quick scrub.

Mapa de motoresMotor Map

Asigna notas MIDI a servos físicos con HIT_MS garantizado por tecla.

Map MIDI notes to physical servos with guaranteed HIT_MS per key.

Sin instalaciónZero install

Funciona en Chrome, Edge y Opera. Sin npm, sin Electron, sin plugins.

Works in Chrome, Edge and Opera. No npm, no Electron, no plugins.


Escúchalo tocar

Hear it play

El robot tocando una secuencia compuesta en PianoRoll y enviada al ESP32 en tiempo real.

The robot playing a sequence composed in PianoRoll and sent to the ESP32 in real time.


¿Quieres uno? ¿Tienes preguntas?

Want one? Got questions?

Escríbeme por WhatsApp — respondo en menos de 24 h. Puedo fabricar una unidad, resolver dudas técnicas o hablar de colaboraciones.

Message me on WhatsApp — I reply within 24 h. I can build a unit, answer technical questions or discuss collaborations.

Escríbeme por WhatsAppMessage me on WhatsApp

portab76@gmail.com