Aggiunge il README con descrizione, istruzioni e screenshot

This commit is contained in:
luzadev committed 2026-09-18 12:56:11 +02:00
1 parent 5d2b8e5a5d
commit f0639ec8b9
3 files changed
+116 -34

No files matched your search

-34
View File
@@ -1,34 +0,0 @@
# PlayPiano
Pianoforte virtuale a 88 tasti con spartiti (MIDI e MusicXML), pentagramma, modalità apprendimento,
compositore di idee e generazione con IA locale tramite Ollama.
## Usarlo nel browser
Doppio clic su `Avvia PlayPiano.command` (macOS). Apre l'app su http://localhost:8765.
## App desktop (macOS, Windows, Linux)
Serve Node.js 20 o superiore.
npm install # solo la prima volta
npm start # avvia l'app desktop in prova
### Creare i pacchetti
npm run dist:mac # dist/PlayPiano-<versione>-arm64.dmg (Apple Silicon) e PlayPiano-<versione>.dmg (Intel)
npx electron-builder --win zip --x64 # versione portatile per Windows
npx electron-builder --linux tar.gz --x64 # versione portatile per Linux
L'AppImage per Linux richiede strumenti per processori Intel. Su un Mac con chip Apple si costruisce con Docker:
docker run --rm --platform linux/amd64 -v "$PWD":/project -w /project \
electronuserland/builder:wine /bin/bash -lc "npx electron-builder --linux AppImage --x64"
L'installer Windows (.exe) non si può produrre da un Mac con chip Apple. Si costruisce su un PC Windows con
`npm install` e `npm run dist:win`, oppure su GitHub con il flusso `.github/workflows/build.yml`.
I pacchetti finiscono nella cartella `dist/`.
## Note
- I pacchetti non sono firmati con un certificato a pagamento. Su macOS, al primo avvio: clic destro sull'app e poi "Apri".
Su Windows: "Ulteriori informazioni" e poi "Esegui comunque".
- Le idee con IA richiedono Ollama in esecuzione sullo stesso computer (http://localhost:11434).
- Campioni di pianoforte: Salamander Grand Piano di Alexander Holm, licenza CC-BY 3.0 (vedi `samples/LEGGIMI.txt`).
+116
View File
@@ -0,0 +1,116 @@
# 🎹 PlayPiano
Pianoforte virtuale a 88 tasti per suonare, leggere spartiti, imparare brani e inventare musica.
Funziona nel browser e come app desktop per macOS, Windows e Linux.
**Provalo online:** https://melody.djluza.com/
![PlayPiano con pentagramma, cascata di note e tastiera](docs/screenshot.jpg)
## Cosa fa
- **Pianoforte a coda campionato** su tutti gli 88 tasti, da La0 a Do8, con registrazioni di uno Yamaha C5. Sono disponibili anche piano elettrico, organo, synth e archi.
- **Tanti modi di suonare**: mouse, touch con più dita, tastiera del computer e tastiera MIDI. Pedale sustain, glissando e dinamica in base al punto in cui premi il tasto.
- **Spartiti**: carica file MIDI (`.mid`) e MusicXML (`.musicxml`, `.xml`, `.mxl`), anche trascinandoli sulla pagina.
- **Pentagramma** in chiave di violino e di basso, due righe per volta, con i nomi delle note (Do Re Mi oppure C D E).
- **Cascata di note "spaziale"** che scende verso la tastiera e illumina il tasto da suonare.
- **Modalità Apprendimento**: il brano avanza solo quando suoni la nota giusta. Puoi studiare una mano alla volta, rallentare fino al 25% e vedere il punteggio di precisione.
- **Compositore di idee**: genera brani da 8 a 128 battute in sei stili, con tonalità, accordi, melodia e accompagnamento.
- **Generatore di accordi**: 18 tipi di accordo con rivolti e 13 giri classici (pop, jazz, blues, canone di Pachelbel, andalusa e altri) in tutte le tonalità.
- **Idee con IA locale**: descrivi a parole il brano che vorresti e un modello di [Ollama](https://ollama.com) sul tuo computer ne progetta la struttura.
- **Registratore** ed **esportazione in MIDI** di qualsiasi brano caricato o generato.
## Comandi da tastiera
| Tasti | Funzione |
|---|---|
| `Z` `X` `C` `V` `B` `N` `M` con `S` `D` `G` `H` `J` | ottava bassa, tasti bianchi e neri |
| `Q` `W` `E` `R` `T` `Y` `U` `I` `O` `P` con `2` `3` `5` `6` `7` `9` `0` | ottava alta, tasti bianchi e neri |
| `←` `→` | cambia ottava |
| `Spazio` | pedale sustain |
| `Invio` | avvia o mette in pausa il brano |
| `Maiusc` + tasto | nota più forte |
Le etichette sui tasti si adattano al layout della tua tastiera, italiana compresa.
## Come usarlo
### Online
Apri https://melody.djluza.com/ con Chrome, Edge, Firefox o Safari.
### Sul tuo computer, nel browser
Su macOS fai doppio clic su `Avvia PlayPiano.command`. Avvia un piccolo server locale e apre l'app su
`http://localhost:8765`. Su altri sistemi, dalla cartella del progetto:
python3 -m http.server 8765 --bind 127.0.0.1
Aprire direttamente `index.html` con un doppio clic funziona, ma con due limiti: i campioni del pianoforte
vengono scaricati da internet e Ollama rifiuta le richieste della pagina.
### App desktop
Scarica il pacchetto per il tuo sistema dalla pagina [Actions](../../actions) (sezione Artifacts dell'ultima
compilazione riuscita) oppure dalle [Release](../../releases), se presenti.
I pacchetti non sono firmati con un certificato a pagamento. Al primo avvio su macOS usa clic destro e poi
"Apri". Su Windows scegli "Ulteriori informazioni" e poi "Esegui comunque".
## Idee con IA locale (Ollama)
1. Installa e avvia [Ollama](https://ollama.com), poi scarica un modello, per esempio `ollama pull gemma3:12b`.
2. Nell'app scrivi la descrizione del brano, scegli il modello e premi "Genera con IA".
Il modello decide titolo, stile, tonalità, metrica, tempo, accordi e il motivo melodico di ogni sezione.
Ogni valore viene verificato dall'app, che completa melodia e accompagnamento.
Vanno bene i modelli "instruct" da circa 8 miliardi di parametri in su. Provati: `gemma3:12b` e `gemma4:26b`.
Ollama accetta richieste solo da pagine servite su `localhost` e dall'app desktop. Per usare l'IA dal sito
online, avvia Ollama consentendo il sito:
OLLAMA_ORIGINS=https://melody.djluza.com ollama serve
## Sviluppo
Tutta l'app è nel file `index.html`, senza dipendenze né passaggi di compilazione.
| Percorso | Contenuto |
|---|---|
| `index.html` | l'intera applicazione web |
| `samples/` | campioni del pianoforte, un mp3 ogni terza minore |
| `esempi/` | brani di prova in formato MIDI, MusicXML e MXL |
| `desktop/` | contenitore Electron e icona |
| `.github/workflows/build.yml` | compilazione dei pacchetti desktop su GitHub |
### App desktop in locale
Serve Node.js 20 o superiore.
npm install # solo la prima volta
npm start # avvia l'app desktop
npm run dist:mac # crea i file .dmg nella cartella dist/
Da un Mac con chip Apple si ottengono anche le versioni portatili:
npx electron-builder --win zip --x64
npx electron-builder --linux tar.gz --x64
L'installer per Windows e l'AppImage per Linux vengono compilati da GitHub Actions. Il flusso si avvia a mano
dalla pagina Actions, oppure pubblicando un tag di versione, che crea anche una Release con i pacchetti:
git tag v1.0.0 && git push origin v1.0.0
### Pubblicazione del sito
Il sito è composto da soli file statici:
rsync -az index.html samples esempi utente@server:public_html/
## Limiti noti
- Gli spartiti in PDF o in foto non sono supportati: servono MIDI o MusicXML.
- Sul pentagramma non vengono disegnate pause, legature di valore e travature.
- Nei file MIDI le durate scritte sono dedotte dall'esecuzione, quindi possono risultare approssimate.
- I ritornelli dei file MusicXML non vengono ripetuti.
## Crediti e licenze
- Campioni di pianoforte: [Salamander Grand Piano](https://archive.org/details/SalamanderGrandPianoV3) di Alexander Holm, licenza CC-BY 3.0.
- App desktop realizzata con [Electron](https://www.electronjs.org).
Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB