[gmpi] Re: MIDI: Common event coding
- From: lists@xxxxxxxxxx
- To: gmpi@xxxxxxxxxxxxx
- Date: Fri, 25 Jun 2004 17:33:28 -0400
Since I've put the time into getting caught up with list traffic
(~400 messages in the past few days alone), in spite of my better
judgment I might as well mix a couple metaphors, take a dive in the
lava stream, and pop up from below radar. Call it a misguided attempt
make myself feel better about the two days of my life I'll never get
back.
Here are some (I hope quick, probably not) observations on the recent
MIDI/no MIDI discussion, distilled from about twelve different unsent
messages I composed over the past two weeks.
I'm sensing a gradual, if uneasy consensus, which puts MIDI inside
the wall. If so, this is A Good Thing.
That it happened after a tremendous amount of teeth gnashing and
non-requirements oriented dialogue is pretty unfortunate. My post is
an attempt to make the NoMIDIinTheGraph camp feel better about the
hoped for consensus and the need to take the MIDIinTheGraph
constituency seriously.
First, an assumption. By Generalized Music PlugIn, my understanding
is that we are talking a larger scope than plug-ins that eat, munge,
and spit audio buffers and control protocols that operate on those
buffers. We envision a format that allows the marketplace to
transcend existing plug-in formats (both audio and "musical") and
provide a "write once, deploy lots of places" approach. I further
assume that few people, if any, are interested in building an ivory
tower that is destined to remain unoccupied.
If I've got any of this wrong, kindly slap Delete and I thank you for
your time.
Frankly, as Matt Mora expressed recently, I was surprised by amount
of discussion at the requirements phase of walling MIDI-oriented
plug-ins outside the spec (MIDI's obvious shortcomings granted, of
course). MIDI is common, virtually to the point of ubiquity in
plug-ins and hosts. It may or may not be the internal data format of
a given software, but it is the lingua franca.
Ideally, there would have been a short discussion on a "MIDI must be
supported via the plug-in graph" and that's about it; in my opinion,
"how" should be left to the spec'ing phase. This could have ridden
sidecar to a proposal that we ensure as a requirement a certain
degree of event and control protocol resolution and flexibility.
Instead we got a fairly religious discussion (interesting in its own
right, sure) that MIDI ought to be replaced entirely.
(I blame myself for bowing to my fear and being absent; I doubt my
participation would have made much material difference, but it would
make this "late to the party" complaining seem less shrill.)
My take:
:: MIDI is a de facto standard; treating it otherwise risks a "dead
on arrival" GMPI
:: the burden of proof should be on a justification to wall MIDI
outside the format; from what I can tell, there are primarily two
arguments, neither sufficient (from my vantage point):
: plug-in runtime state may not be knowable, therefore undo isn't
guaranteed
- I agree with Ron, it's an edge case (dangitall, pervasive undo is
a worthy goal), especially since there is no guarantee that some
other plug-in behaviors may be undoable/rewindable outside the
context of MIDI
: MIDI provides insufficient note and controller parameter control,
particularly in its tendency toward a piano instrument bias and
low data resolution, there a replacement is required
- yes indeed, nothing new there; this is a topic for some other
standards group dealing with data formats, software, and external
hardware in the same context (i.e., a MIDI 1.x replacement)
:: some plug-ins will want to munge MIDI directly; they should be welcome in
the Generalized Music PlugIn universe
:: Chris's proposal from Tuesday on having MIDI bytes ride sidecar
seemed pretty attractive to me as a compromise in that it opens the
door to alternate protocols. (Insert customary kvetching about why
more than one protocol is bad but is sometimes the only appropriate
compromise in a world with an overwhelming, ever increasing variety
of legacy software and hardware.)
Since having MIDI in the graph seems so controversial, I should
provide some discussion behind my viewpoint.
Tim Hockin recently wrote:
My biggest fear is that if we provide MIDI inputs,
then synths will use that and ignore GMPI.
I think Tim's inadvertently making my point, one that IMHO hasn't
received enough attention in the past week or two. (For the moment,
let's forget that GMPI is an unknown set, even if *much* discussion
treats it as a known set with properties offering advantages over
MIDI and no disadvantages.)
If developers use MIDI and ignore GMPI, let's trust that they would
have their reasons (not merely "laziness" or "lack of vision"). This
is an easy point to ignore or to demean in our rush to put the stake
in MIDI's heart for its perceived (and actual) shortcomings.
In my opinion, a "no MIDI, period" requirement is practically a
guarantee that GMPI would sit virtually unused on the shelf by most
mainstream products. A successful GMPI universe should include
freeware and commercial, mainstream and non-mainstream products.
How would we possibly garner sufficient interest from the host app
authors if you force them into sequencing new, perhaps incompatible
data models (non-trivial) and presenting new UI (equally
non-trivial)? And if you don't force them, what's the point of using
different protocols exclusively on either side of the graph wall?
Offer an option to MIDI, and developers may eventually take the high
road and cause a slow groundswell of user demand through superior
products. (Users will not create this demand on their own, no matter
how elegant a technical solution is, without experiencing the
products themselves first.)
This isn't to say that I would not recommend either extending MIDI
(Ron's offer to get floats into MIDI seemed pretty interesting, but
didn't generate too much followup) or complementing it. Both are
worthy of some discussion at the requirements phase, but not a
detailed discussion.
I can sympathize (more than may be apparent) with many of the posters
who don't want to participate in another effort that continues to
hamstring available musical expression; I see this an unavoidable
outcome of having a new standard adopted widely into a mature
universe of products.
As we all (certainly I, painfully) have learned in the past, "build
it, and they will or will not come, but probably not if it's a long
drive out of town."
Cheers,
Jim Rippie
P.S. I might be familiar to a couple of the active GMPI list
participants but not to most of you, so here's a quick c.v...I've
worked as a musician (primarily guitar player) with mainstream tools
(e.g., Nuendo, Digital Performer, Cakewalk) and non (CSound, Max),
I've worked on the QA and product management side at a couple of
music software companies, and done developer programs at the
operating system level. Long story short, think of me as a product
management type voice, not engineering.
P.P.S. MIDI sounds bad
----------------------------------------------------------------------
Generalized Music Plugin Interface (GMPI) public discussion list
Participation in this list is contingent upon your abiding by the
following rules: Please stay on topic. You are responsible for your own
words. Please respect your fellow subscribers. Please do not
redistribute anyone else's words without their permission.
Archive: http://www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe
- Follow-Ups:
- [gmpi] Re: MIDI: Common event coding
- From: Jeff McClintock
- [gmpi] Re: MIDI: Common event coding
- From: Tim Hockin
- [gmpi] Re: MIDI: Common event coding
- From: Jack O'Quin
Other related posts:
- » [gmpi] MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
- » [gmpi] Re: MIDI: Common event coding
My biggest fear is that if we provide MIDI inputs, then synths will use that and ignore GMPI.
- [gmpi] Re: MIDI: Common event coding
- From: Jeff McClintock
- [gmpi] Re: MIDI: Common event coding
- From: Tim Hockin
- [gmpi] Re: MIDI: Common event coding
- From: Jack O'Quin