[gmpi] Re: 3.15 MIDI

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Wed, 16 Jun 2004 01:11:26 -0700

Tim said:

OK, the requirements are:

* host-manages parameters
* MIDI CCs must "just work"
* all control changes must be undoable
* plugins must only need 1 control protocol.

Sorry, I don't accept that those are the requirements, both because I think they're insufficiently detailed, because I think there are better options, and because the group has not agreed on them.


The following proposal would be simpler, and provide better functionality:

* Plug can OPTIONALLY tell host whether it wants the MIDI-originated events sent to it to be a) passed through as raw MIDI messages/bytes, or b) converted into GMPI events using either the Well-Known-Controls, or a custom MIDI->GMPI parameter name map the plug provides.

<Note, this .could. be handled a little differently, for example per-parameter granularity might be better, e.g. you want to receive note-ons via MIDI, but global volume via GMPI. In either case, the host should be able to track parameters. I.e., in conversion mode, every MIDI event is resolved to a specified GMPI parameter (or else discarded); in MIDI mode parameters are not also driven by GMPI messages; the multiple-state problem is avoided, only one datatype per parameter needs to be tracked, and all actual routing is handled via the GMPI setParameter message.>

* Plug can OPTIONALLY have "MIDI Message" output parameters/ports, again optionally with a plug-custom MIDI->GMPI parameter names map.

* "MIDI Message" is a added as a new parameter data type, meant to be used ONLY a) when plug says it wants receive events as MIDI, b) when a plug has a "MIDI Message" output parameter, and c) for SysEx messages, which are always passed to the plug verbatim. Functionally identical to the current blob type, just typed differently.

* "MIDI Message" GMPI events are handled exactly the same as those for any other parameter datatype, including host responsibility for MIDI message 'undo'

This adds very little complexity to the host or API; does not special-case MIDI message transport in the graph; therefore, gets all the host-managed parameter functionality in there; lets those plug authors who -want- to receive and send MIDI to do so; does not burdening other plug developers in any way.

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