L'interfaccia MIDI (Musical Instrument Digital Interface) è un modo standard per comunicare con strumenti musicali elettronici, hardware e computer. L'API Web MIDI consente ai siti web di controllare sintetizzatori virtuali, drum machine o altri strumenti collegandosi alla tastiera o al controller MIDI dell'utente.
Per motivi di sicurezza la possibilità di accedere liberamente ai dispositivi MIDI connessi con l'API Web MIDI, il W3C Audio Working Group ha richiesto un requisito di autorizzazione esplicito per tutti gli utilizzi dell'API MIDI nella specifica Web MIDI. Questa modifica, che in precedenza veniva applicata solo all'utilizzo avanzato di MIDI (messaggi SysEx) in Chrome, ora si estende anche alle interazioni MIDI standard.
Ciò significa che l'intera API Web MIDI ora è controllata da una richiesta di autorizzazione. Questa modifica verrà implementata gradualmente a partire da Chrome 124.
Il seguente codice mostra come gestire la richiesta di autorizzazione attivata chiamando navigator.requestMIDIAccess()
quando l'accesso non è già stato concesso dall'utente.
try {
// Prompt user to access MIDI devices.
const access = await navigator.requestMIDIAccess();
// Get lists of available MIDI controllers...
} catch (error) {
if (error.name === "SecurityError") {
// The website is not allowed to control and reprogram MIDI devices.
}
}
Richiedi l'assistenza per i messaggi SysEx con navigator.requestMIDIAccess({ sysEx: true })
solo se il tuo sito web ha assolutamente bisogno di questa funzionalità. Le stringhe dei prompt di autorizzazione di Chrome potrebbero cambiare in futuro.
Test
Questa modifica verrà implementata gradualmente in Chrome 124. Potresti dover eseguire Chrome con l'opzione a riga di comando --enable-features=BlockMidiByDefault
per abilitarlo localmente sul tuo dispositivo.
Prova questa modifica sul sito web https://permission.site facendo clic sui pulsanti "MIDI" e "MIDI + SysEx".
Supporto del browser
L'accesso ai dispositivi MIDI richiede l'autorizzazione dell'utente nei browser Chrome e Firefox.
Feedback
Il team di Chrome e la community degli standard web desiderano conoscere le tue esperienze relative a questo cambiamento. Fornisci feedback commentando i problemi di GitHub esistenti o presentando quelli nuovi.
Link utili
Ringraziamenti
Grazie a Michael Wilson per aver scritto questo post.