El acceso a dispositivos MIDI ahora requiere el permiso del usuario

François Beaufort
François Beaufort

La interfaz digital de instrumentos musicales (MIDI) es una forma estándar de comunicación entre instrumentos musicales electrónicos, hardware y computadoras. La API de Web MIDI permite que los sitios web controlen sintetizadores virtuales, baterías y otros instrumentos conectándose al teclado o control MIDI del usuario.

Navegadores compatibles

  • Chrome: 43.
  • Borde: 79.
  • Firefox: 108.
  • Safari: No se admite.

Origen

Debido a problemas de seguridad para acceder libremente a dispositivos MIDI conectados con la API de Web MIDI, el grupo de trabajo de audio del W3C solicitó un requisito de permiso explícito para todo el uso de la API de MIDI en la especificación de Web MIDI. Este cambio, que antes solo se aplicaba al uso avanzado de MIDI (mensajes SysEx) en Chrome, ahora también se aplica a las interacciones MIDI estándar.

Esto significa que toda la API de Web MIDI ahora está protegida detrás de una solicitud de permiso. Este cambio se lanzará de forma gradual a partir de Chrome 124.

Captura de pantalla de la solicitud de permiso de Web MIDI en Chrome.
Mensaje de permiso de Web MIDI en Chrome.

En el siguiente código, se muestra cómo controlar el mensaje de permiso que se activa llamando a navigator.requestMIDIAccess() cuando el usuario aún no otorgó el acceso.

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

Solicita compatibilidad con mensajes SysEx con navigator.requestMIDIAccess({ sysEx: true }) solo si tu sitio web necesita esta función de forma absoluta. Es posible que las cadenas de mensajes de permisos de Chrome cambien en el futuro.

Prueba

Este cambio se lanzará de forma gradual en Chrome 124. Es posible que debas ejecutar Chrome con el interruptor de línea de comandos --enable-features=BlockMidiByDefault para habilitarlo de forma local en tu dispositivo.

Para probar este cambio en el sitio web https://permission.site, haz clic en los botones “MIDI” y “MIDI + SysEx”.

Navegadores compatibles

El acceso a los dispositivos MIDI requiere permiso del usuario en los navegadores Chrome y Firefox.

Comentarios

El equipo de Chrome y la comunidad de estándares web quieren escuchar sobre tu experiencia con este cambio. Para enviar comentarios, escribe en los problemas de GitHub existentes o presenta nuevos.

Agradecimientos

Gracias a Michael Wilson por revisar esta publicación.