Summary

  • Web MIDI deixa um aplicativo encontrar portas de entrada e saída, receber mensagens de um teclado e falar com sintetizadores ou equipamentos de iluminação. MIDI leva eventos e controles, não o som que sai das caixas.
  • Identificar as portas pode revelar o conjunto de aparelhos de alguém. Mensagens System Exclusive, ou SysEx, alcançam funções próprias de cada fabricante; por isso passaram a exigir uma autorização mais forte.

O rascunho do W3C de dezembro de 2012 imaginou o navegador como uma ponte de baixo nível. A página lista entradas e saídas MIDI, recebe e envia mensagens. Um teclado pode controlar um aplicativo; o aplicativo pode mandar notas a um sintetizador; uma mesa pode controlar luzes. O documento faz uma distinção preciosa para qualquer pessoa que já confundiu cabo MIDI com cabo de áudio: uma mensagem informa que uma nota começou, que um controle mudou ou que o tempo avançou. Quem produz o som é o instrumento. O navegador pode reger a banda, mas não precisa fingir que comprou uma bateria.

Essa simplicidade permitia aproveitar aparelhos existentes. O navegador não teria de interpretar o significado musical de cada botão; o programa e a musicista fariam isso. Ao mesmo tempo, a ponte expunha pistas sobre o que estava conectado. A proposta inicial incluía uma fingerprint persistente para reencontrar a mesma porta depois de reiniciar. No estúdio cheio de teclados parecidos, é uma gentileza. Para uma página curiosa, também é um retrato parcial do estúdio, junto ao fabricante, nome e versão da porta. O próprio texto já tratava a enumeração dos aparelhos e as mensagens especiais como questões de privacidade e segurança. A agenda de contatos do estúdio tinha utilidade e preço.

A diferença decisiva aparece no SysEx. Uma mensagem comum pede uma nota ou altera um controle. System Exclusive fala o dialeto particular de um dispositivo e pode consultar ou modificar timbres, ajustes e outros dados internos. Uma página que quer tocar uma melodia não está pedindo a mesma coisa que outra que quer administrar a memória do instrumento. O rascunho de março de 2015 deu forma a essa diferença com requestMIDIAccess({sysex:true}). Negado esse poder extra, o pedido falha. O músico ganhou uma porta para tocar sem entregar automaticamente a chave da oficina.

No uso diário, a oficina tem problemas pouco glamourosos. Um cabo se solta no meio da sessão. Uma batida programada para um instante específico chega tarde e todo mundo percebe. O aplicativo pode aparecer dentro da página de outro site. A API precisa representar o estado das portas e programar o envio das mensagens, enquanto deixa a interpretação dos comandos com o aplicativo. O navegador organiza o trânsito; a partitura continua com quem toca.

O rascunho de 20 de outubro de 2026 coloca placas mais claras nessa entrada. A permissão chama-se midi, e sysex: true é mais forte que o acesso comum. Sem ela, enviar SysEx gera erro e o SysEx recebido é ocultado. requestMIDIAccess() só aparece em contexto seguro. A Permissions Policy define a função midi com lista padrão 'self', impedindo que uma página incorporada receba a chave só por estar no mesmo quadro. O texto examina também o que mensagens específicas poderiam fazer a hardware vulnerável. É a análise de uma possibilidade técnica, não o relato de uma epidemia de sintetizadores atacados.

O histórico de publicações do W3C mostra rascunhos em 2012, 2013, 2015 e uma sequência nova de 2024 a 2026. Datas de publicação marcam o trabalho da especificação; não dizem que todo navegador passou a agir do mesmo modo naquele dia. A questão que atravessa os anos é mais tangível: como deixar a web usar um instrumento que pertence a uma pessoa sem dar a qualquer URL livre acesso ao estúdio inteiro?

A musicista aperta outra tecla. O navegador entrega a nota, o sintetizador responde. A ligação funciona porque a fechadura faz parte da ponte. O porteiro não atrapalhou a música; apenas pediu uma chave diferente para abrir as gavetas.