Prototipo funzionale avanzato · Hardware di riferimento validato: Raspberry Pi 4 · Roland via USB-MIDI2026

Piano Core

Sistema intelligente di apprendimento e riproduzione per pianoforte

Il mio ruolo

Architettura del prodotto · Core musicale in tempo reale · Integrazione ESP32/firmware · Interfaccia web · Ingegneria dell’affidabilità

01

Panoramica

Piano Core è un’appliance smart piano local-first. Collegata a un pianoforte digitale compatibile via USB-MIDI, trasforma lo strumento in un sistema moderno di apprendimento, riproduzione e pianoforte interattivo, senza dipendere da un servizio cloud.

L’obiettivo di prodotto a lungo termine è un dispositivo consumer: disimballare, collegare l’alimentazione, collegare il pianoforte via USB-MIDI, connettersi al Wi-Fi e aprire il sistema da telefono, tablet o PC. L’utente non deve mai comprendere Raspberry Pi, Linux, SSH, indirizzi IP, porte, dettagli MIDI o systemd.

Una regola architetturale mantiene il prodotto onesto: Piano Core resta l’unica autorità musicale. Uno stato musicale canonico e una timeline guidano riproduzione e pratica; il rendering nel browser non è mai autorità musicale, i renderer non possono far avanzare la Pratica, e una riconnessione o ricarica dell’UI recupera semplicemente lo stato autoritativo.

02

Screenshot reali del prodotto

Qui verranno inseriti esclusivamente screenshot reali del prodotto, senza mockup o immagini stock.

01

Interfaccia web locale su telefono, tablet e PC

Qui verranno inseriti esclusivamente screenshot reali del prodotto, senza mockup o immagini stock.

/projects/piano-core/desktop-01.webp
02

Guided Practice con obiettivi wait-for-note

Qui verranno inseriti esclusivamente screenshot reali del prodotto, senza mockup o immagini stock.

/projects/piano-core/mobile-01.webp
03

Tastiera LED ESP32 durante la riproduzione

Qui verranno inseriti esclusivamente screenshot reali del prodotto, senza mockup o immagini stock.

/projects/piano-core/desktop-02.webp
04

Ricerca nella libreria MIDI sul catalogo indicizzato

Qui verranno inseriti esclusivamente screenshot reali del prodotto, senza mockup o immagini stock.

/projects/piano-core/mobile-02.webp

03

Architettura

Pianoforte digitale fisico

Strumento di riferimento Roland

Appliance Piano Core

Raspberry Pi 4 · StateStore · Playback Core · LibraryService

API & eventi in tempo reale

Stato musicale canonico e timeline

Renderer & tastiera

Telefono · Tablet · PC · Tastiera LED ESP32

04

Stato del progetto

Realizzato

  • Ingresso USB-MIDI fisico dal pianoforte digitale
  • StateStore canonico come unica autorità musicale
  • Playback Core deterministico
  • LibraryService con indicizzazione, ricerca e risoluzione MIDI — oltre 100.000 brani MIDI indicizzati
  • Guided Practice con comportamento Wait-For-Me e obiettivi di nota/accordo
  • Semantica di pratica: rilascio della nota ripetuta, rifiuto della nota errata e completamento degli accordi
  • Proprietà chiara tra attività di pratica e di riproduzione
  • Integrazione tastiera LED ESP32 con mappatura calibrata 88 tasti / 196 LED
  • Web/API locale responsive per telefono, tablet e PC
  • Identità persistente di appliance e dispositivo
  • Persistenza attraverso riavvii, reboot e sostituzione dell’applicazione
  • Funzionamento indipendente da DHCP dopo il lavoro di affidabilità

In sviluppo attivo

  • Consolidamento del prototipo di riferimento verificato verso il percorso di prodotto consumer definito nella roadmap seguente

Pianificato

  • Premium UI V2 con rendering WebGPU-first
  • Spartiti professionali, Falling Notes e visualizzazione ibrida
  • Mani 3D realistiche, motore di diteggiatura e pianificazione del movimento delle mani
  • Apprendimento adattivo
  • Onboarding QR Wi-Fi e provisioning captive
  • Aggiornamenti firmati con rollback
  • Enclosure consumer e carrier board personalizzata

05

Decisioni tecniche

Perché Piano Core resta l’unica autorità musicale?

Uno stato musicale canonico e una timeline mantengono riproduzione e pratica deterministiche. I renderer — telefono, tablet, PC o future UI premium — possono mostrare e interagire, ma non possono far avanzare la Pratica da soli. Quando l’UI si riconnette o si ricarica, recupera lo stato autoritativo invece di indovinare.

Perché un’appliance locale invece di un prodotto cloud?

Pratica, riproduzione e libreria indicizzata girano localmente sull’appliance, e l’appliance mantiene identità e funzionamento indipendenti dal comportamento DHCP dopo il lavoro di affidabilità. Il core musicale non dipende da un servizio cloud.

Perché un controller LED ESP32 separato?

La mappatura calibrata 88 tasti / 196 LED gira su hardware ESP32 dedicato, mantenendo l’illuminazione della tastiera indipendente dal core musicale sul Raspberry Pi.

06

Problemi risolti

  • 01Mantenere uno stato musicale canonico attraverso riconnessioni e ricariche dell’UI
  • 02Semantica di pratica precisa: obiettivi wait-for-note, rilascio della nota ripetuta, rifiuto della nota errata e completamento degli accordi
  • 03Persistenza dell’appliance attraverso riavvii, reboot e sostituzione dell’applicazione
  • 04Funzionamento indipendente da DHCP per l’affidabilità nelle reti domestiche reali

07

Tecnologie

Hardware di riferimento

  • Raspberry Pi 4
  • Pianoforte digitale Roland via USB-MIDI
  • Controller tastiera LED ESP32
  • Mappatura calibrata 88 tasti / 196 LED

Core musicale

  • StateStore canonico
  • Playback Core deterministico
  • LibraryService · indicizzazione/ricerca/risoluzione MIDI

Apprendimento

  • Guided Practice (base implementata)
  • Comportamento Wait-For-Me
  • Obiettivi di nota/accordo & semantica di completamento

Delivery

  • Web/API locale responsive
  • Eventi in tempo reale
  • Identità persistente dell’appliance

08

Cosa dimostra

Piano Core dimostra la mia capacità di costruire un prodotto appliance local-first completo: un core musicale canonico, riproduzione deterministica, vera semantica di pratica guidata, hardware LED dedicato e affidabilità da appliance — la base verificata per la roadmap consumer.

Ti serve un sistema simile?

Posso progettare e sviluppare una soluzione adatta al tuo flusso di lavoro, al team e agli obiettivi aziendali.

Parliamo del progetto