W3C home > Mailing lists > Public > public-audio@w3.org > January to March 2012

Re: Chords in the MIDI API?

From: Joe Berkovitz <joe@noteflight.com>
Date: Fri, 10 Feb 2012 08:28:34 -0600
Message-ID: <CA+ojG-a-v_56bkVpDro85cg7U6_b7jKsk=mU4rG7da7xqX2NOA@mail.gmail.com>
To: James Ingram <j.ingram@netcologne.de>
Cc: public-audio@w3.org
I think that this doesn't provide as much convenience as it might seem,
which is why it isn't seen in most MIDI implementations.

For incoming MIDI the timing of a human performance is very irregular at a
small time grain and different apps infer "intended simultaneity" with a
wide variety of algorithms that can deliver different results about the
nominal time of a chord, or whether it even is one, or whether it was
rolled up or down, etc. Better to leave this to JS.

For outgoing MIDI typically one will pregenerate a set of timestamped
events stretching into the future a short interval and let the low level
driver do all the scheduling. So simultaneous timestamps suffice to cause a
truly simultaneous chord that doesn't depend on latency in the higher
layers of the architecture.

On Feb 9, 2012 4:29 PM, "James Ingram" <j.ingram@netcologne.de> wrote:

> I'm wondering if, for convenience, Chords could become part of the MIDI
> API.
> ChordOns would simply be a list of NoteOns which are conceptually
> synchronous (received or sent within a very short time span). Similarly
> with ChordOffs.
> My experimental AssistantPerformer [1] software uses a span of 12ms to
> collect input NoteOns and NoteOffs into such packages. These are much
> easier to program with than single notes.
> As I remember, I arrived at 12ms by trial and error, so this obviously
> needs discussing. Has anyone got a better idea of where the threshold
> should be? Maybe it should also be exposed in the API?
> all the best,
> James
> p.s. I'd like to add that I am currently working on a cleaner and leaner
> version of my software, which I'm hoping to publish as open source software
> soon. The patch editor has gone, but the notation and performance software
> have been enhanced.
> [1] http://james-ingram-act-two.**de/moritz/**
> moritzAssistantPerformer.html<http://james-ingram-act-two.de/moritz/moritzAssistantPerformer.html>
Received on Friday, 10 February 2012 14:29:11 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:49:57 UTC