[gmpi] Re: 3.15 MIDI (What does it mean to be a plugin)

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 18 Jun 2004 15:04:33 -0700

Your big post is very useful, thanks Mike. I need to think about your request for examples more, but meantime I wanted to comment on a few of the premises, mainly here:

I am more worried about the matrix of complexity and compatibility that results from having 3 fundamental types instead of 2, than for the lost possiblity of writing MIDI bytestream specific plugins.

and here:


...let me expose what, to me, are the two counterbalancing arguments:

- If we have MIDI as a format, then plugins can be written which explicitly exploit the MIDI byte stream in some way.

- If we support MIDI and GMPI control data as separate types, then we dilute the potential compatibility of GMPI hosts and plugins. Some people will choose to write plugins which only take MIDI control, not because of inherent MIDI bytestream characteristics, but just because it is familiar. Some will write plugins that only handle GMPI control data because it is more flexible or easier to understand than MIDI or whatever their reason is. These plugins will not be able to exist in the same graph without translation (host-based or other plugin based).

Right now, I think that the second consideration outweighs the first.

1. There is a proposal for making MIDI Message not a second control type, but a GMPI parameter datatype. So it wouldn't necessarily be audio + GMPI control + MIDI control, but might be audio + a GMPI control which can encapsulate MIDI among other things. So the parameter datatypes list could become { real number, integer, string, enumerated list, boolean value, opaque data, and opaque MIDI message }.


2. (Main point:) If that approach were taken, it would likely have an essentially blob-like form. The group earlier accepted that blob parameters could exist despite their semantics being opaque to the host, and despite the fact that blob receipt might change plug state in arbitrary ways, including overlapping with exposed GMPI parameters. So from this POV it seems like the NMiG folks are saying that opaque-to-the-host data is acceptable when we label it blob, but unacceptable when we label it MIDI, a distinction I find difficult to understand.

3. Motivations for having mainly or solely MIDI-driven plugs in GMPI, especially at first, are probably somewhat more weighty than just familiarity. There may be perceived commercial issues of customer==market expectation, incremental development cost avoidance, complexity avoidance, fear of introducing incompatibility with the installed MIDI world, and multi-plug-format fatigue... some of which may be illusory, but that doesn't lessen their effect on plug developers' decision process. So I think this, though not in itself conclusive, should factor into the balancing.

4. I'm vague on to what extent you considered MIDI out in your analysis, can you comment?

Hope you sleep better tonight,

-- Chris G.

----------------------------------------------------------------------
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: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: