W3C home > Mailing lists > Public > public-audio-dev@w3.org > March 2013

Re: Assistant Performer

From: Chris Wilson <cwilso@google.com>
Date: Thu, 7 Mar 2013 09:29:47 -0800
Message-ID: <CAJK2wqWymUuZXcqFWuv-T_pvFagpQ-GQCOcqRuvygSmQLDMzjw@mail.gmail.com>
To: James Ingram <j.ingram@netcologne.de>
Cc: public-audio-dev@w3.org
On Thu, Mar 7, 2013 at 3:52 AM, James Ingram <j.ingram@netcologne.de> wrote:

>  ... and don't actually use/need running status (yet?).
>

In other words: If the underlying system wants exclusive use of the port
> for a particular process, it releases the port when the process (i.e.
> window) closes.  Some systems don't require that ports are allocated to
> processes, so the ports don't need to be 'released'. Okay?
>

Sure.

> This does not prevent you using a MIDI device, connected through a 5-pin
> DIN connector, that sends running status - that running status just gets
> converted in the chain before it gets to the Windows/Mac API, or before it
> hits USB if you're using a USB-MIDI interface.  The only thing this
> prevents you doing, pragmatically, is ramming data containing running
> status into a send()'s buffer parameter - and we don't really need message
> compression in that method, in my opinion, particularly as we'll have to
> expand in to test validity (and to pass on to CoreMIDI, at least) anyway.
>
> Interesting. Put as simply as possible, that means that a Web MIDI
> application can receive, but not send running status messages. Right?
>

Sort of.  More accurately, "A MIDI device connected to a computer running a
Web MIDI application may be sending running status, but a Web MIDI
application will never see that running status data - it will see the
expanded MIDI messages."

Section 8, which is about  receiving messages, says that the (read-only)
> MIDIMessageEvent.data is
>
> A Uint8Array containing the MIDI data bytes of a single MIDI message.
>
> "a single MIDI message" therefore seems to include Running Status messages
> in this context. Maybe 8.1 should say so explicitly - just as 7.3.1
> explicitly excludes RS?
>

No - running status is a way of compressing *multiple* MIDI messages into
one long stream.  At this point, the UInt8Array could only contain the
bytes of ONE message in that stream - so it would have to be expanded
already.


> I ran into Running Status and SysEx messages while creating my Message
> 'class', and decided to include them in my MIDI library in case they might
> be useful later. (Its better to get such things out of the way while close
> to the problem.)
> With your permission, I'd like to include your explanation (credited, of
> course) in my Running Status documentation. Such things shouldn't get lost.
> :-) Okay?
>

Of course.

-Chris
Received on Thursday, 7 March 2013 17:30:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 7 March 2013 17:30:18 GMT