Open
Description
We have so far been able to use synchronous send
but this provides no mechanism for backpressure.
The current implementation in Chrome uses large internal buffers to hide this issue, but this is wasteful and results in the browser silently dropping messages when the buffer is overrun. This condition is not common with normal MIDI messages, but sysex messages can be of arbitrary length and can be slow to send, so Chrome also puts limits on those as well.
In order to allow implementations to avoid these buffers and arbitrary limits, we need a mechanism for non-blocking send
.