Skip to content

yamo7/Piano-Learning

Repository files navigation

🎹 Piano Learning

Screenshot del Piano Virtuale in funzione Screenshot del Piano Virtuale in funzione Screenshot del Piano Virtuale in funzione Piano Learning è un progetto open-source di Realtà Mista (Mixed Reality) sviluppato per agevolare le persone nello studio del pianoforte. L'applicazione unisce VR e MR per simulare un piano in uno spazio virtuale o agganciare un sistema di apprendimento a una tastiera reale. È pensata specificamente per chi, pur non avendo conoscenze di teoria musicale, desidera cimentarsi con un piano per suonare i propri brani preferiti in modo immersivo.

🌟 Caratteristiche Principali

  • Doppia Modalità di Gioco: Supporta sia una modalità "Piano Reale" che usa ancore spaziali per allineare l'interfaccia al tuo strumento fisico, sia una modalità "Piano Virtuale" che piazza una tastiera 3D nell'ambiente tramite Plane Manager.
  • Feedback Visivo Intuitivo: Le note sono rappresentate da rettangoli che cadono in direzione dei tasti. Il colore giallo indica la mano destra, il blu la sinistra, e tonalità più scure identificano i tasti neri (diesis).
  • Modalità Guidata (Tutorial): Esclusiva per il piano virtuale, l'applicazione mette in pausa la caduta delle note e attende che l'utente prema il tasto corretto prima di far proseguire il brano.
  • Pannello delle Impostazioni: Permette di regolare il volume generale, abilitare la lettura dei nomi delle note e definire i secondi di attesa prima dell'inizio di un brano.
  • Controlli Naturali: Interazione avanzata tramite Hand Tracking, Poke Interaction con le interfacce utente e comandi vocali/controller per la riproduzione

🛠️ Tecnologie Utilizzate

Il progetto è stato sviluppato in Unity, sfruttando le funzionalità avanzate dei Building Blocks di Meta per la Mixed Reality:

  • Oculus Camera & Passthrough: Per la visione dello spazio reale.
  • Plane Manager & Spatial Anchors: Per il posizionamento spaziale accurato di tastiere e pannelli.
  • Controller Buttons Mapper & Raycast: Per l'interazione a distanza e la navigazione.

⚙️ Funzionamento e Architettura

  • Sistema di Parsing MIDI-to-JSON: I brani musicali (originariamente MIDI) vengono convertiti in JSON e interpretati per determinare nome, ottava, tempo e durata di ogni singola nota da generare in tempo reale.
  • Tastiera Virtuale: Un prefab di 7 ottave. Ogni tasto dispone di un AudioSource e un BoxCollider per riconoscere le collisioni con le dita dell'utente, simulando dinamicamente l'attacco e il rilascio sonoro tipici del pianoforte.
  • Algoritmo di Allineamento: Sfrutta i controller per mappare due punti (Virtual e Real pins) e calcolare iterativamente l'orientamento perfetto per sovrapporre il pannello delle note alla tastiera reale.
  • Sistema di Dialoghi Modularizzato: Un DialogManager centralizzato traccia e gestisce i tutorial interattivi salvando i progressi tramite PlayerPrefs.

👥 Autori

Progetto sviluppato presso l'Università degli studi di Catania, Anno Accademico 2025/2026 per la materia "MIXED REALITY AND WEARABLE VISION".

  • Trezzotos
  • yamo7
  • studio80

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors