[gmpi] Re: 3.15 MIDI (What does it mean to be a plugin)

  • From: Chris Grigg <gmpi-public@xxxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Mon, 21 Jun 2004 23:57:40 -0700

Thanks for fetching that, Tim. The Requirements say:

" 4.21. The Parameter Pre-Processor Model

...a carefully designed way of exposing parameter interactions to the host.

1. Linked parameters
Two parameters, LEFT and RIGHT, are independant of each other, unless a third parameter, LINKED, is set to true. When LINKED is true, LEFT and RIGHT are joined at the same value, and move in lock step. When LINKED is set to false, LEFT and RIGHT can be changed independantly. All UIs must reflect this linkage.
...
To conceptually handle these issues the idea of the "parameter actor" or "event pre-processor" was established. The final implementation is up to the spec and implementation teams, but the idea is simple. Plugins can optionally expose parameter event pre-processor methods. These methods encapsulate the logic of inter-parameter dependencies. Event senders call these methods synchronously, and are immediately alerted to things such as linked or clipped parameters."


This seems to be saying that if there is parameter linkage, the actor tells the host that about all dependent parameter changes. But that's exactly what Mike says setParameterAutomated(), which he really wants to avoid, does. If multiple parameters are linked together, there will be have to be multiple calls per event.

So, I know there must be a difference, else Mike would not have OK'd actors... but what is it? Is it just about execution time and threading? These texts don't say.

-- Chris G.

Tim said:

...
I quote Mike Berry:

    In VST, which Premiere supports, there is a method called
    setParameterAutomated, which a plugin calls to tell the host that a
    parameter has changed. Setting aside the rather painful syntax issues,
    we have seen this method get called in several situations:
...
    2.) Parameter linkages, where we call setParameter on one parameter
    and we get back a setParameterAutomated call for another parameter.
...
    2 has caused innumerable headaches for us. Because parameter changes
    are often undoable, we cannot offer single parameter undo, because
    multiple parameters may change.  Non-uniform linkages have also been a
    problem.  Take 2 parameters, A and B.  When you change A it changes B,
    but when you change B, it does not change A. Now imagine automation
    recorded for A, then B. When you play back with automation, a little
    war occurs between the recorded automation for B and the implied
    values due to the linkage to A.

So the primary tenet was that it was awkward (at best) to get multiple
setParameterAutomated responses for one event. ...

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