[gmpi] Re: 3.15 MIDI (proposals)

  • From: Tim Hockin <thockin@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 17 Jun 2004 00:50:16 -0700

On Thu, Jun 17, 2004 at 12:14:16AM -0700, Tim Hockin wrote:
> I'm going to work on a summary email which describes the various
> semi-proposals.  I'll try not to leave anything out, but it's inevitable.


There have been a number of potential models on which to base the
requirements.  This is an attempt to put them all into one message.

What I'd like to do is to flesh these out more WITHOUT speaking to their
relative merits yet.  Let's just see if we can get sufficient details for
each model.  Sometimes, in order to prove your position, you must help
develop the other position(s).  Let's approach each one of these as if it
were the model you most wanted to see succeed.


1) All plugins can receive MIDI and GMPI control events.  The host does
not do much in the way of arbitrating MIDI.  Plugins can do whatever thy
like with MIDI.  They might use the MIDI to change parameters, or they
might process it in some way.  All plugins can send MIDI and GMPI events.

2) All plugins can only receive GMPI control events.  Each plugin can
expose a MIDI-map, which ties MIDI messages to GMPI parameters.  MIDI is
received by the host and is forwarded to plugins according to their
MIDI-map.  Some MIDI, such as SysEx will have to be special-cased.  All
MIDI semantics must be preserved in GMPI events.  Plugins can send GMPI
events, and can send MIDI through some interface, such as a host callback.

3) All plugins can receive GMPI control events.  Each plugin can expose a
MIDI-map, which ties MIDI messages to GMPI parameters.  MIDI can be
received by the host and forwarded to plugins according to their MIDI-map.
All MIDI semantics and most MIDI (byte-level) details must be preserved in
GMPI events.  Plugins can request raw (or semi-cooked) MIDI streams in
addition to or instead of the MIDI-map.  If a plugin uses MIDI data to
manipulate GMPI-managed things (such as parameters or notes) then the
plugin's MIDI hook must notify the host somehow (such as sending GMPI
events to the GMPI parameters).  Some MIDI, such as SysEx might have to be
special-cased.  Plugins can send GMPI events, and can send MIDI through
some interface, such as a host callback.

4) All plugins can receive either MIDI or GMPI control events, but not
both.  All plugins can send either MIDI or GMPI control events, but not
both.

5) MIDI can be extended.  All plugins can receive only extended MIDI
control events.  All plugins can send only extended MIDI control events.

6) All plugins can only receive GMPI control events.  Any plugin which
wants to receive MIDI can use a GMPI-provided GMPI-to-MIDI conversion
routine.  All MIDI semantics and most MIDI (byte-level) details must be
preserved in GMPI events.

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

  • » [gmpi] Re: 3.15 MIDI (proposals)