L'invio di messaggi MIDI in una pagina Web
-
06-09-2019 - |
Domanda
Come posso giocare a singole note MIDI in una pagina Web?
So di due modi per farlo:
-
Scrivere un controllo ActiveX. Allora funziona solo su Windows. Ho usato per scrivere i controlli ActiveX molto tempo fa, ma ora nessuno piace installarli.
-
Scrivi un applet Java. Questo va bene se l'utente ha già installato Java, ma molti utenti disattivare le applet. Questo è il modo in cui l'ho fatto e si può vedere il risultato al newfweiler.com - se capita di lavorare su vostra particolare configurazione. Avrete bisogno di almeno Java 5, anche se suppongo che potrebbe riscrivere in Java 1.2 se dovessi. Il "Real Time Sequencer" e "Sound Sintetizzatore Java" non funzionano per me; Credo che bisogna installare wavetables o qualcosa del genere per farli lavorare.
La maggior parte degli utenti hanno installato Flash, ma ho guardato nella documentazione di Flash e Flex e non ho visto niente equivale a javax.sound.midi.
Ci sono diversi modi di giocare un file MIDI in una pagina Web, e si possono trovare "JavaScript Pianos", che riprodurre un file MIDI una nota ogni volta che si preme un tasto. Non è possibile riprodurre più note in una sola volta o tenere premuto il tasto premuto per una lunga nota.
Quello che sto cercando di fare è l'equivalente di javax.sound.midi.Receiver.send (midiMsg, -1), utilizzando solo ciò che la maggior parte delle persone in genere hanno installato sulla macchina.
Soluzione
API Usa Web Audio per riprodurre suoni e .mid-files. Si veda l'esempio di giocatore MIDI a https://surikov.github.io/webaudiofont/examples/ midiplayer.html
Usa Web MIDI API (Chrome supporta) per ascoltare tastiera MIDI. Vedi esempio a https://surikov.github.io/webaudiofont/examples/midikey.html
Altri suggerimenti
Java è ancora destinata probabilmente ad essere la soluzione migliore, anche con i pochi utenti disabilitarlo.
Io uso NoScript, e posso whitelist un sito. Direi che la maggior parte degli utenti probabilmente fare lo stesso se si fornisce contenuti interessanti.
ha fornito i seguenti (tradotto da Italiano). Direi che Flash è la strada da percorrere. Se si vuole essere ghetto si può solo ottenere 88 o giù di lì campioni di pianoforte e di giocare contro una timeline.