Wires every input of a Web MIDI access to a MidiSynth: channel messages go to
event, system-exclusive ones (framed by 0xF0 and 0xF7) to sysex, and everything
else (clock, active sensing, a message with no data) is dropped, because a synth
voices notes, not transport. The access is taken as a value, so a test hands in a
fake and a browser hands in navigator.requestMIDIAccess()'s answer through
requestWebMidiInput.
Wires every input of a Web MIDI access to a
MidiSynth: channel messages go toevent, system-exclusive ones (framed by 0xF0 and 0xF7) tosysex, and everything else (clock, active sensing, a message with no data) is dropped, because a synth voices notes, not transport. The access is taken as a value, so a test hands in a fake and a browser hands innavigator.requestMIDIAccess()'s answer throughrequestWebMidiInput.