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