PWA che separa voce, batteria, basso e strumenti da un brano, interamente nel browser. Nessun upload, nessun server, nessun costo: il file non lascia il dispositivo dell'utente.
App completa e funzionante: interfaccia, mixer, PWA installabile, service worker, export WAV.
Il motore AI reale Open-Unmix UMX-L è già attivo (USE_REAL_ENGINE = true): gira via
WebAssembly, interamente client-side. I pesi del modello (~44 MB) si scaricano una volta sola
alla prima apertura e restano poi in cache per l'uso offline.
I service worker non funzionano aprendo il file direttamente: serve un piccolo server locale.
cd peel
python3 -m http.server 8080Apri http://localhost:8080, trascina un MP3 e vedrai il mixer con i 4 canali.
(Alla prima apertura il modello Open-Unmix UMX-L, ~44 MB, viene scaricato una sola volta.)
git init
git add .
git commit -m "Peel: impalcatura iniziale"
git branch -M main
git remote add origin https://github.com/pezzaliapp/Peel.git
git push -u origin mainDue opzioni, entrambe a costo zero:
- Cloudflare Pages (consigliato): collega la repo, build command vuoto,
output directory
/. Regge bene i ~45 MB di pesi del modello. - GitHub Pages: Settings → Pages → Deploy from branch
main/ root.
È un sito statico: nessuna build, nessun backend.
Il motore reale è già collegato e in funzione (USE_REAL_ENGINE = true in app.js):
la separazione avviene con Open-Unmix UMX-L eseguito via WebAssembly nel browser,
senza alcun server.
Open-Unmix (UMX-L) è scelto perché è MIT su codice e pesi ed è addestrato sul dataset aperto MUSDB18-HQ: la strada legalmente più pulita. I pesi (~44 MB) si scaricano una volta sola alla prima apertura e il service worker li tiene in cache persistente per l'uso offline.
peel/
├── index.html interfaccia
├── styles.css tema studio scuro
├── app.js logica: decode, mixer, export WAV (USE_REAL_ENGINE = true)
├── worker.js motore AI: Open-Unmix UMX-L via WebAssembly
├── sw.js service worker (offline + cache del modello)
├── manifest.webmanifest PWA
├── icons/ icone app
├── LICENSE MIT (solo il codice)
└── README.md
- Codice di questa app: MIT (vedi
LICENSE). - Pesi del modello: inclusi in
models/, sotto licenza Open-Unmix (MIT) e addestrati sul dataset aperto MUSDB18-HQ. Sono scaricati dal browser alla prima apertura (~44 MB, poi tenuti in cache) e l'attribuzione agli autori originali è sempre mantenuta.
- La separazione AI nel browser è lenta (alcuni minuti a brano, di più su mobile): è il prezzo del "tutto gratis e privato". La UI mostra già un avviso sui brani lunghi.
- Suggerisci agli utenti di non separare materiale protetto da copyright senza diritto. Il rischio è basso (i file restano sul dispositivo), ma un disclaimer è prudente.
- I risultati migliori si ottengono su musica registrata in modo tradizionale (strumenti e voci reali mixati in studio): è il materiale su cui Open-Unmix è stato addestrato. Su brani generati da AI (es. Suno) o molto compressi/masterizzati in modo aggressivo la separazione può risultare scadente — le sorgenti sono già fuse all'origine o schiacciate dal mastering, e il modello fatica a distinguerle.
Creato da Alessandro Pezzali — pezzaliapp · https://www.alessandropezzali.it