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 metodo standard per la comunicazione degli strumenti musicali elettronici, degli hardware e dei computer. L'API Web MIDI consente ai siti web di controllare sintetizzatori virtuali, drum machine o altri strumenti collegandosi al controller o alla tastiera MIDI dell'utente.

Supporto dei browser

  • Chrome: 43.
  • Edge: 79.
  • Firefox: 108.
  • Safari: non supportato.

Origine

A causa di preoccupazioni di sicurezza relative all'accesso libero ai dispositivi MIDI connessi con l'API Web MIDI, il gruppo di lavoro Audio del W3C ha richiesto un requisito di autorizzazione esplicita per tutto l'utilizzo dell'API MIDI nella specifica Web MIDI. Questa modifica, precedentemente in vigore solo per l'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 protetta 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 codice seguente 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 il supporto dei messaggi SysEx con navigator.requestMIDIAccess({ sysEx: true }) solo se il tuo sito web ha assolutamente bisogno di questa funzionalità. Le stringhe delle richieste di autorizzazione di Chrome potrebbero cambiare in futuro.

Test

Questa modifica verrà implementata gradualmente in Chrome 124. Potresti dover eseguire Chrome con l'--enable-features=BlockMidiByDefault opzione a riga di comando per attivarlo localmente sul tuo dispositivo.

Testa questa modifica sul sito web https://permission.site facendo clic sui pulsanti "MIDI" e "MIDI + SysEx".

Supporto 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 vogliono conoscere la tua esperienza con questa modifica. Fornisci un feedback commentando i problemi GitHub esistenti o presentando nuovi.

Ringraziamenti

Grazie a Michael Wilson per aver esaminato questo post.