[whatwg] Proposal: <audio> and text/event-stream

Charles Pritchard chuck at jumis.com
Fri May 28 17:31:19 PDT 2010

Hi All,

I'm exploring programmable MIDI, and would like to generate some

Currently: <audio src="data:audio/midi;base64,...."></audio> is a valid
way of generating a MIDI file; and if the browser actually supports midi,
it can result in a playable stream.

Live midi requires a data stream.

I'd like to see <audio> work with postMessage
and <audio src> work with text/event-stream.


Event Source is a good starting point...

for something something like this to make sense.
<audio src="data:text/event-stream,">

But it gets strange when trying to add a mime type. needing discussion:
<audio src="data:text/event-stream,data%..audio/midi," id="livemidi">

postMessage is used in the JS API to send events:
document.onkeydown = function(e) {
   bytecode = keyboardEventToBytecode(e);

By using postMessage, the target could be an audio tag,
a web worker, or a web socket, and by implementing text/event-stream,
the browser could receive midi events from a web socket.

This is a proposal to extend the <audio> tag, and usage recommendation
for data:text/event-stream. This proposal follows current specs closely, 
and is not restricted to MIDI.


The full Web Workers is a bit heavy for this use case:

Mozilla has been drafing a raw audio API:
MIDI byte code is quite a bit smaller, and so typed arrays are not 

Buffering issues are generally outside the scope of the W3C APIs.


More information about the whatwg mailing list