Per accedere ai dispositivi MIDI ora è necessaria l'autorizzazione dell'utente

François Beaufort
François Beaufort

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.

Supporto dei browser

  • 43
  • 79
  • 108
  • x

Fonte

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.

Screenshot della richiesta di autorizzazione Web MIDI in Chrome.
Richiesta di autorizzazione Web MIDI in Chrome.

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.

Ringraziamenti

Grazie a Michael Wilson per aver scritto questo post.