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