[gmpi] Re: R: Re: Topic 4: Host Interface

  • From: Tim Hockin <thockin@xxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Fri, 28 Mar 2003 09:26:17 -0800 (PST)

> 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

Other related posts: