[gmpi] Re: MIDI: Common event coding

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

Other related posts: