[gmpi] Re: Parameters / controls / GMPI event system - refreshment

  • From: thockin@xxxxxxxxxx
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 24 Nov 2005 13:00:05 -0800

On Thu, Nov 24, 2005 at 04:53:17PM +0100, Koen Tanghe wrote:
> In section 1.3 we talk about "audio" and "controls" as possible types of
> inputs and outputs.

These are the two fundamental types of data streams in GMPI.  Audio data
is delivered via buffers of audio-rate data in the GMPI audio sample
datatype.  Control data is delivered via time-stamped events.  Each event
may be one of several datatypes.

> Then, in section 3.8 we talk about GMPI "events", but only in terms of
> "event delivery to a plugin", no event delivery *out* of a plugin.

Think of an event as a packet on the control wire.

> Then, in section 3.11 we talk about "parameters" and say that plugins expose
> their parameters to the host and that parameters are automatable (thus
> directly modifiable by the host).

We weren't clear on this.  I see it one of two ways:

"Parameters" are the sinks for control data - when you send control data it
must terminate at a parameter.  For example, the cutoff frequency knob of a
filter plugin would be a parameter, as would be the host-to-plugin tempo
syncronization of an LFO plugin.

"Control inputs" are the sinks for control data.  Control streams are made
between control outs and control ins.  "Parameters" are the
user-interactive control inputs.  For example, the cutoff frequency knob
of a filter plugin would be a parameter, where as the  host-to-plugin
tempo syncronization of an LFO plugin would not.

Of these, I think I prefer the first - "parameter" is just an alias for
"control input".  What think?  I am trying to keep track of these
clarifications for the fledgeling specification.

> Now, do I remember correctly that:
> - GMPI events and controls are one and the same?

An event is a packet on the control wire.

> - parameters can only be changed through GMPI events/controls?


> - a GMPI plugin can only have two types of inputs and outputs: audio and
> events (= controls)?

pretty much, modulo MIDI stuff

> - parameter changes (either incoming or outgoing) all come through GMPI
> events (= controls)?


> a. "start audio sample generation for a new C4 note"
> b. "signal a snare drum event detection at time offset xyz"
> c. "change the cutoff frequency of the filter to 200 Hz"
> must come in to (a and c), respectively out off (b) the plugin using GMPI
> events through a control port (aarghh, another term...)?

Pretty much.  Whenever you go between plugins, you need some sort of
"wire".  That wire is a control signal which starts at a control output
and ends at a control input.  (we could switch to "source" and "sink"
terminology if that is clearer to people..)

> Or can a parameter change be done without going through a control port using
> GMI events?

Do you mean internal to a plugin or between plugins?

> There's also the "clock/time related" input and output, but this will 
> probably be handled through special controller messages, but I could be 
> wrong, and for this post it doesn't matter really... 

Clock stuff can be just another control signal

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: