L'accès aux appareils MIDI nécessite désormais l'autorisation de l'utilisateur

François Beaufort
François Beaufort

MIDI (Musical Instrument Digital Interface) est un moyen standard de communication entre des instruments de musique électroniques, du matériel et des ordinateurs. L'API Web MIDI permet aux sites Web de contrôler des synthétiseurs virtuels, des boîtes à rythmes ou d'autres instruments en se connectant au clavier ou à la manette MIDI de l'utilisateur.

Navigateurs pris en charge

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

Source

Pour des raisons de sécurité liées à l'accès libre aux appareils MIDI connectés avec l'API Web MIDI, l'Audio Working Group du W3C a demandé une exigence d'autorisation explicite pour toute utilisation de l'API MIDI dans la spécification Web MIDI. Ce changement, qui ne s'appliquait auparavant qu'à l'utilisation avancée de MIDI (messages SysEx) dans Chrome, s'applique désormais également aux interactions MIDI standards.

Cela signifie que l'ensemble de l'API Web MIDI est désormais protégé par une invite d'autorisation. Cette modification est déployée progressivement à partir de Chrome 124.

Capture d'écran de l'invite d'autorisation Web MIDI dans Chrome.
Invite d'autorisation Web MIDI dans Chrome.

Le code suivant vous montre comment gérer l'invite d'autorisation déclenchée par l'appel de navigator.requestMIDIAccess() lorsque l'accès n'a pas encore été accordé par l'utilisateur.

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.
  }
}

Demandez la prise en charge des messages SysEx avec navigator.requestMIDIAccess({ sysEx: true }) uniquement si votre site Web a absolument besoin de cette fonctionnalité. Les chaînes d'invite d'autorisation Chrome peuvent changer à l'avenir.

Tests

Cette modification est déployée progressivement dans Chrome 124. Vous devrez peut-être exécuter Chrome avec le commutateur de ligne de commande --enable-features=BlockMidiByDefault pour l'activer localement sur votre appareil.

Testez cette modification sur le site Web https://permission.site en cliquant sur les boutons "MIDI" et "MIDI + SysEx".

Prise en charge des navigateurs

L'accès aux appareils MIDI nécessite l'autorisation de l'utilisateur dans les navigateurs Chrome et Firefox.

Commentaires

L'équipe Chrome et la communauté des normes Web souhaitent connaître votre expérience avec ce changement. Faites-nous part de vos commentaires en ajoutant des commentaires sur les problèmes GitHub existants ou en signalant de nouveaux problèmes.

Remerciements

Merci à Michael Wilson d'avoir examiné cet article.