Summary

  • Web MIDI permet à une application de repérer des ports MIDI, de recevoir les gestes d’un clavier et d’envoyer des commandes à un synthétiseur ou à un système d’éclairage. Les messages MIDI transportent des événements, pas du son.
  • La liste des appareils révèle une installation, tandis que les messages System Exclusive peuvent toucher aux données propres à un fabricant. Les travaux du W3C ont donc isolé SysEx derrière une permission plus forte.

Le charme du vieux clavier tient à ses touches et à ses boutons, pas à son aptitude à réclamer une mise à jour. Le projet W3C de décembre 2012 proposait de le relier à une application du navigateur sans demander au web de devenir musicien. L’application énumère des entrées et des sorties, écoute des messages, en expédie d’autres. Le même mécanisme peut servir une boîte à rythmes ou une console de lumière. Le protocole indique qu’une note démarre, qu’un contrôleur bouge ou qu’une horloge avance. Le son, lui, sort de l’instrument. Une page peut tenir la baguette ; elle ne devient pas l’orchestre.

Cette sobriété technique cache une question moins musicale. Pour retrouver le bon clavier lors de la prochaine session, le premier texte donnait au port une empreinte persistante. Une installation où plusieurs machines portent presque le même nom y gagnait un repère pratique. Une page curieuse y gagnait aussi un indice sur le matériel branché, accompagné du fabricant, du nom et de la version. Le projet signalait déjà le risque lié à l’énumération et aux messages propres aux appareils. Un carnet d’adresses du studio reste un carnet d’adresses, même lorsqu’il est écrit en JavaScript.

Le vrai laissez-passer s’appelle System Exclusive, ou SysEx. Un message de note dit au synthé de jouer. Un message SysEx parle un dialecte particulier au constructeur et peut concerner des réglages, des sons mémorisés ou d’autres données internes. C’est utile pour piloter précisément une machine ; c’est une demande plus large que « laisse-moi jouer do ». Le projet de mars 2015 a rendu cette différence visible dans requestMIDIAccess({sysex:true}). Si cet accès supplémentaire est refusé, la demande échoue. Le clavier peut rester un clavier sans livrer en prime la clé du local technique.

La porte ne se réduit pourtant pas à une boîte de dialogue. Un périphérique peut être débranché au milieu d’une séance. Une note doit partir à l’heure prévue, pas lorsque le navigateur se souvient de regarder sa montre. Une page peut vivre dans le cadre d’un autre site. Le modèle conserve donc les ports, leur état et l’envoi horodaté des messages, tandis que l’application décide ce que les boutons signifient. Le navigateur organise la circulation ; il n’écrit pas la partition.

Le projet W3C du 20 octobre 2026 précise le guichet. La permission s’appelle midi et son option sysex: true est plus puissante que l’accès MIDI ordinaire. Sans elle, l’envoi d’un message SysEx provoque une erreur et les messages SysEx entrants sont masqués. requestMIDIAccess() relève d’un contexte sécurisé. La politique de permissions donne à la fonction midi une liste d’autorisation par défaut limitée à 'self' : une page insérée dans un cadre ne reçoit pas les clés du studio par simple voisinage. Le texte examine aussi les conséquences possibles d’ordres propres à certains appareils. Il décrit un risque technique, sans transformer une hypothèse en incident historique.

L’historique officiel des publications déroule les brouillons de 2012, 2013 et 2015, puis une nouvelle série de 2024 à 2026. Ces dates rythment le travail de normalisation ; elles ne donnent pas une date unique à l’arrivée de l’API chez tous les lecteurs. La question qui a survécu à ces années est presque domestique : comment inviter le web dans une pièce pleine d’instruments sans lui confier toutes les armoires ?

Le propriétaire presse encore une touche. Une note part, une autre revient, le synthé répond. La conversation fonctionne parce que la frontière existe. Un bon portier laisse entrer la musique et demande une autre clé pour ouvrir les tiroirs.