La Web MIDI API collega un controller hardware (una tastiera MIDI, dei pad) direttamente al browser. Ogni tasto premuto arriva come un evento JavaScript.

const access = await navigator.requestMIDIAccess();

for (const input of access.inputs.values()) {
  input.onmidimessage = (msg) => {
    const [status, note, velocity] = msg.data;
    if (status === 144 && velocity > 0) {
      suonaNota(note);   // 144 = "note on"
    }
  };
}

Il messaggio MIDI sono tre byte: il tipo di evento (144 = note on, 128 = note off), il numero di nota e la velocity (quanto forte). Da lì converti la nota MIDI in frequenza e la passi a un OscillatorNode.

In poche righe hai un synth suonabile con hardware vero, dentro una pagina web. È lo stesso protocollo MIDI che collega Sonic Pi a una tastiera: linguaggio universale della musica digitale.