App Kotlin Multiplatform (Android/iOS/Desktop) con Compose Multiplatform: controllo intonazione (YIN), pratica guidata, metronomo, ear training, sfide, scansione spartiti via AI, spartiti bundled e pentagramma con glifi tipografici, travature, battute e spaziatura proporzionale. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3.6 KiB
3.6 KiB
NoteMusicali
App multipiattaforma per l'apprendimento musicale, costruita con Kotlin Multiplatform e Compose Multiplatform.
Funzionalita
- Controllo Intonazione — rileva in tempo reale la nota suonata tramite microfono (algoritmo YIN)
- Metronomo — BPM regolabile, time signature, tap tempo e tuner integrato per suonare a tempo verificando l'intonazione
- Nota di Riferimento — genera qualsiasi nota cromatica con frequenza esatta per accordatura
- Pratica guidata — segui sequenze di note con feedback visivo e sonoro, metronomo integrato, modalita "Nascondi" per lettura dal pentagramma
- Sfida — suona il maggior numero di note nel tempo con punteggio, combo e pentagramma
- Ear Training — riconoscimento di note e intervalli con difficolta progressiva
- Esercizi predefiniti — scale, arpeggi e sequenze ordinate per difficolta
- Inserimento manuale — componi sequenze personalizzate con notazione italiana e durate musicali
- Scansione spartiti — riconosci note da foto di spartiti tramite AI (OpenAI / Gemini)
- Pentagramma interattivo — visualizzazione grafica delle note sul rigo musicale
- Obiettivi giornalieri — traccia il tempo di pratica da tutte le attivita con serie consecutiva e calendario
- Cronologia unificata — tutte le sessioni (pratica, ear training, sfide) in un'unica lista
Piattaforme supportate
| Piattaforma | Stato | Note |
|---|---|---|
| Android | Funzionante | Richiede API 26+ (Android 8.0) |
| iOS | Funzionante | Richiede iOS 16+, audio via AVAudioEngine |
| macOS | Funzionante | Desktop app via Compose Desktop |
Struttura progetto
NoteMusicali/
app/ # Android app module
shared/ # Kotlin Multiplatform shared code
commonMain/ # Logica condivisa (UI, audio, pitch detection)
androidMain/ # Implementazioni Android (AudioRecord)
iosMain/ # Implementazioni iOS (AVAudioEngine)
desktopMain/ # Implementazioni Desktop (javax.sound)
iosApp/ # Xcode project (SwiftUI entry point)
desktopApp/ # Desktop app module (JVM)
Prerequisiti
- JDK 17+
- Android Studio (per Android)
- Xcode 15+ (per iOS)
- XcodeGen (per generare il progetto iOS):
brew install xcodegen
Build
Android
./gradlew :app:assembleDebug
L'APK si trova in app/build/outputs/apk/debug/.
iOS
# Genera il progetto Xcode
cd iosApp && xcodegen generate
# Compila il framework Kotlin
./gradlew :shared:compileKotlinIosArm64
# Apri in Xcode, seleziona il device e Build & Run
open iosApp/iosApp.xcodeproj
Il pre-build script in Xcode esegue automaticamente embedAndSignAppleFrameworkForXcode.
macOS (Desktop)
./gradlew :desktopApp:run # Esegui
./gradlew :desktopApp:packageDmg # Genera DMG
Strumenti presets
L'app supporta preset ottimizzati per diversi strumenti:
| Strumento | Range | Buffer |
|---|---|---|
| Violino | G3 - E7 | 2048 |
| Viola | C3 - A6 | 2048 |
| Violoncello | C2 - C6 | 4096 |
| Pianoforte | A0 - C8 | 4096 |
| Chitarra | E2 - E6 | 2048 |
| Voce | D2 - D6 | 2048 |
Stack tecnologico
- Kotlin 2.1 + Compose Multiplatform 1.7
- Ktor per le chiamate API (scansione spartiti)
- multiplatform-settings per preferenze persistenti
- YIN algorithm per pitch detection in tempo reale
- AVAudioEngine (iOS) / AudioRecord (Android) / javax.sound (Desktop)