- From: Chris Wilson <cwilso@google.com>
- Date: Thu, 7 Mar 2013 09:29:47 -0800
- To: James Ingram <j.ingram@netcologne.de>
- Cc: public-audio-dev@w3.org
- Message-ID: <CAJK2wqWymUuZXcqFWuv-T_pvFagpQ-GQCOcqRuvygSmQLDMzjw@mail.gmail.com>
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 UTC