[gmpi] Re: MIDI: Common event coding

  • From: Tim Hockin <thockin@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 24 Jun 2004 18:23:41 -0700

On Thu, Jun 24, 2004 at 03:08:37PM -0700, Tom White wrote:
> > My biggest fear is that if we provide MIDI inputs,
> > then synths will use that and ignore GMPI.
> 
> I think you may be right, but I don't think there is anyway to
> change that, really.

Well, we can pretend to be an 800 pound gorilla and say "thou shalt use
GMPI".  Or more realistically, we can take three steps to eliminate the
problem:

1) Make it really EASY (conceptually and code-wise) to switch to GMPI.
Really, every synth out there in VST-land is controllable by MIDI for
note-on/off/pitchbend/aftertouch/etc. but also provides VST automation for
all it's parameters, right?  So conceivably, these synths would provide
GMPI parameters for all the things it had VST parameters for.  So the only
MIDI that really matters is the note control side of things, right?

2) Write lots of sample code to show how to be properly GMPI.

3) Evangelize the benefits of being properly GMPI.

If it really didn't hurt much, would it still happen that way?

> Despite the limitations of MIDI some of you have raised, I am
> sure that there are more synth plugins using MIDI than not.

Sure, but I believe it is because of lack of any standardized option that
is truly better.  

> On the other hand, we could abandon MIDI for plugin control and
> try and force the plugin developers to develop their own translation
> layers or else recode their apps. If they aren't interested in doing
> anything beyond MIDI control, the translation layer makes the most
> sense, but when you consider that there are only a few hosts and
> dozens of plugins, it makes a lot more sense for the hosts to do
> the wrappers, and I suspect developers just won't do it. In any case,

I don't want to belittle Chris's opus at all, I'm just making sure I've
fully explored everything in my own brain.

What if we just let them have their MIDI in?  I'm assuming that they would
do GMPI-style parameters to get the advantages of GMPI parameters, and
mostly just be concerned with note-control (is that a fair assumption)?
Hosts that really do MIDI can just route them a MIDI stream.  If the
plugin shooses to do things with MIDI that are outside the scope of GMPI,
it's on their own heads.

Hosts that don't want to route MIDI can use a simple GMPI->GMPI+MIDI
wrapper.  It's less efficient, but it means that you always have GMPI.
This would work as:
 - Host receives MIDI
 - Host converts to GMPI
 - Host sends GMPI to wrapper
 - Wrapper converts note-control (or everything) to MIDI
 - Plugin is happy

GMPI-pure hosts would work, if somewhat less efficiently (minor as
compared to DSP work).  Plugins that need MIDI input could be converted
over time.  This GMPI wrapper could be part of the SDK or publicly
available.  Plugins NEED midi to function would specify that as a flag or
something.

All of this argument is based on the assumption that synths will be
exposing proper parameters anyway, and not TOTALLY relying on MIDI.  Even
in the stapled proposal, they have to expose GMPI parameters.

> GMPI... at least until there are substantial resources available.
> The result is that hosts will probably have to figure out how to
> support the MIDI apps in both scenarios.

Well, we did talk about VST and AU wrappers.  If developers don't feel
that they are ready for a pure GMPI, they can keep writing as VST.  As
time goes on, they will see the light and convert to pure GMPI.

> Since the result is the same in either case, it seems to me that
> leaving MIDI "in" is actually the better choice... it represents
> the least amount of work for the most people.

It's just so heartbreaking to know that all these plugins will be broken
for non-MIDI input.  All these synths will not work in my theoretical host
(unless I choose to sequence MIDI).  GMPI arpeggiators won't work with
these synth.  GMPI strummers and all sorts of other GMPI processors won't
work with these plugins.  And the API will be forever pock-marked by the
staple-holes.

I'd rather they stay in some other format until they actually see the
light, honestly.  I'm really stuck trying to understand how a developer
will do all the GMPI parameters, identifcation, audio connections,
meta-data, UI, etc and then utterly BALK when it comes time for note
control.

Ah well, reqs for now, and details on this when it is appropriate.
Concessions might have to be made.

Tim

----------------------------------------------------------------------
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: