A potential wrap-up for gestures? How does this sound? I'll work it into the requirements, if it is OK with everyone. * GMPI must support grouping events into 'gestures' (*). * It must be possible to include multiple events for multiple controls in a gesture (**). * Anything that sends events can send gestures, but does not have to. * The host must handle the case of overlapping gestures for one control (***). (*) Gestures are a logical grouping of a series of events. If events are explicitly joined by gestures, then they may be handled atomically. Hosts might use this for undo functionality, touch automation, or other features. Plugins do not need to do anything for gestures. It is expected that most plugins will not be gesture-aware themselves. (**) As an example model, consider the case of a GUI plugin (or a touch-sensitive MIDI controller, or similar) controlling a DSP plugin. * When the user clicks the GUI (or touches a control), the controlling plugin sends a gesture-start event with a unique (host-provided) ID to the DSP parameter being controlled. * The host and/or plugin recognizes the gesture has started. * Subsequent events include the gesture ID, so the host and/or the plugin can group them. The gesture ID is needed in the case of multiple DSP parameters in a single gesture. The above process would be done with the same gesture ID on each parameter. The actual implementation details will be decided during the specification and implementation. The above is simply to clarify the idea. (***) Any host which allow multiple event sources for one target needs to handle overlapping or simultaneous inputs. There are a couple viable options: 1) Do nothing. Send all events to the plugin. The vast majority of plugins do not care about gesture-start and gesture-end, and will ignore them. If two sources fight, you will get a knob that jumps around. Plugins don't need to handle anything special, and ignore things they don't need. 2) Act as a priority-based switch. Based on the source of inputs, decide which events make it to the plugin, and which get dropped. Plugins don't need to handle anything special, and ignore things they don't need. Both solutions are perfectly acceptable, and are NOT mutually exclusive. ---------------------------------------------------------------------- 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