> I have a question about what functionality should be provided via event > streams versus interfaces. For example, automation data could be events I think that simpler is better. Providing two ways of doing things makes twice the work. As I see it, ALL control changes are event driven. This includes time info, tempo, knobs, filenames, etc. There isn't any reason (that I can see) not to have it as such, and it prevents another set of interfaces from making more work for everyone. > could be done via an interface. One important issue is buffering, events > can sit in buffers whereas interfaces are immediate. Another is the duplex In thinking about this, I envisioned a simple state diagram. As soon as we (the plugin) are active, we only receive events (timestamped, can be anywhere in future linear time, specifically during the next time slice) or we have our methods called at time-slice boundaries. This immediately suggests that things such as control data (which should be anywhere in time, by nature) should NOT be passed via methods, but events. Methods to manipulate the plugin state, controls to manipulate the plugin. Or something like that. > issue, if you want an immediate response an interface seems to be the way This is true, but what control event needs a response? It's important to get the seperation between sending the plugin a message such as "become active" and sending the 'thing that a plugin models' (such as a synth) a message such as "set knob X to value Y". > to go. So for automation, I can imagine having both a parameter interface > that describes parameters, converts from values to text, etc., and having > the automation data sent to the plug via an asynchronous pin. As soon as I see two ways of doing the same FUNDAMENTAL thing, I think there is something wrong with the design. Tim ---------------------------------------------------------------------- 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