[gmpi] Re: gmpi Digest V1 #65 topic: Inter-parameter linkages

  • From: Mike Berry <mberry@xxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Thu, 15 Apr 2004 12:20:24 -0600



Paul Davis wrote:

Sure.  Imagine a simple stereo gain.  Left and Right gains may or may not
be linked.  Their linkedness depends on a third parameter.

1) LINKED is set to false
2) You record automation for LEFT and RIGHT independantly.  The host stores
  that for later
3) LINKED is set to true
4) Play back automation

The automation has been invalidated by an event outside of the
automation.

I don't see it the same way. The host receives the LINKED parameter change. It passes it through the actor and realizes that this changes the values for one or both of volume parameters. It then updates its stored values for the linked parameters as part of the action which changes the LINKED parameter.


mike - are you serious? you are going to edit the stored automation
data so that it becomes linked? how do you decide which parameter should
be "master" and how do you "unlink" it later? undo/redo history for
raw automation data ???


If we don't store raw automation data, how it deterministic randomization ever going to work? The actor doesn't have the info necessary to know whether to randomize or not, or what the playback position is. Only the host knows this.
You also cannot do morphing, or any actor operation that has a time element to it if the actor is always called.
In the linked parameter case, you have to choose between two problems. If you don't edit the linked data, then you have automation values which are incorrect, and are displayed that way by the host. If you do edit it, then linking followed by unlinking is not necessarily the same as linking followed by undoing the linking. In the first case, the linked parameters still are equal after unlink, which they may not have been prior to linking. In the undo case, the original data is restored.
So yes, I would choose to edit the stored raw data. This is what we do for AfterEffects plugins which use parameter supervision (which, BTW, is not a great solution to this problem or I would have suggested it).
If I understand your question about masters, what I would expect to happen after the linking when you moved one param, is that we would call the actor which would return the value for the other param, and we would record both. It wouldn't matter which was master.
This does raise an interesting issue, though. The actor, when presented with left volume, will need to know the current value of the link param before it can know whether or not to alter right volume. So maybe the actor needs to be able to call back to the host to request the current value of other params.




This is the only way to keep the stored automation consistent with what would occur during playback, which is critical, at least for us.


if you store "real" parameter values (i.e. post-actor) then there has
to be a way to send them back to the DSP without the actor.

if you store "requested" parameter values (i.e. pre-actor) then there
has to be a way to send them through the actor.

isn't it that simple?

The actor call should be separate from the DSP set parameter call in all cases, so the host can decide when to call the actor and when to just call the DSP.
--
Mike Berry
Adobe Systems



---------------------------------------------------------------------- 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: