HTTP Permissions-Policy midi

Typ

Die midi-Direktive steuert den Zugriff auf die Web MIDI API zur Kommunikation mit MIDI-Geräten.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die MIDI-Zugriff erhalten dürfen.

http
Permissions-Policy: midi=(self)
Permissions-Policy: midi=(self "https://daw.music-production.com")
Permissions-Policy: midi=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt MIDI-Zugriff nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://sequencer.example.com", die zusätzlich zum Hauptdokument MIDI-Zugriff erhalten. Für DAW-Anwendungen.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Web-DAWs, Synthesizer und Musikproduktions-Tools.

Web-DAW mit MIDI-Controller-Support

Eine Digital Audio Workstation nutzt Web MIDI API für MIDI-Keyboard und Controller-Integration.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: midi=(self)

<!DOCTYPE html>
<html>
<head><title>Music Studio</title></head>
<body>
  <button id="connect">Connect MIDI Device</button>
  <script>
    document.getElementById('connect').addEventListener('click', async () => {
      const midiAccess = await navigator.requestMIDIAccess();
      midiAccess.inputs.forEach(input => {
        input.onmidimessage = (event) => {
          console.log('MIDI message:', event.data);
          // Process note on/off, control change, etc.
        };
      });
    });
  </script>
</body>
</html>

Music-Platform mit Embedded-Sequencer

Eine Musik-Plattform erlaubt einem Sequencer-Widget MIDI-Zugriff für externe Synthesizer.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: midi=(self "https://sequencer.music-app.example.com")

<!DOCTYPE html>
<html>
<head><title>Beat Maker</title></head>
<body>
  <iframe src="https://sequencer.music-app.example.com/editor"
          allow="midi"></iframe>
</body>
</html>

REST-API ohne MIDI-Support

Ein API-Endpunkt deaktiviert alle Hardware-Device-APIs.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: midi=(), hid=(), usb=()

{
  "status": "success",
  "presets": []
}

Vorteile für die Systemarchitektur

  • Ermöglicht professionelle Musikproduktions-Tools im Browser
  • Verhindert unautorisierten MIDI-Zugriff durch Drittanbieter-iFrames
  • Unterstützt Low-Latency-Input für Live-Performance-Anwendungen
  • Reduziert Fingerprinting-Risiken durch MIDI-Device-Enumeration

Spezifikation

Definiert in der W3C Web MIDI API Spezifikation. Unterstützt MIDI-Input und -Output. Erfordert HTTPS und Nutzer-Permission für SysEx-Zugriff.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header