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?


> 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

> 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.

Received on Thursday, 7 March 2013 17:30:18 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:43:28 UTC