Aggiunge il README con descrizione, istruzioni e screenshot
This commit is contained in:
1 parent
5d2b8e5a5d
commit
f0639ec8b9
3 files changed
+116
-34
No files matched your search
-34
@@ -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`).
|
||||
@@ -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/
|
||||
|
||||

|
||||
|
||||
## 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 |
Reference in new issue
Block a user