[gmpi] Re: Time Summary (was *Ping*)

  • From: David Olofson <david@xxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 20 May 2003 19:17:14 +0200

On Tuesday 20 May 2003 12.02, Angus F. Hewlett wrote:
> On Tue, 20 May 2003, David Olofson wrote:
> > Also note that we'll probably need a feature that allows
> > process() to return before the actual work is done, and a way of
> > notifying the host upon completion. VST has such a feature, and
> > AFAIK, it's specifically meant for plugins that wrap DSP hardware
> > and the like. (No point in blocking the whole audio thread in
> > process(). The host might have other things to do that doesn't
> > depend on the output of this plugin.)
>
> But DSP cards on VST are NOT actually implemented in this way, and
> it has implications for downstream plugins.

I'm thinking about the new VST 2.x stuff:

        // notify host that we want to operate asynchronously.
        // process() will return immedeately; host will poll
        // getCurrentPosition to see if data are available in time.
        virtual void wantAsyncOperation (bool state = true);

        // host then requests this via effGetDestinationBuffer
        // external dsp, may have their own output buffe (32 bit float)
        virtual void hasExternalBuffer (bool state = true);

        // for external dsp, see wantAsyncOperation ()
        virtual long reportCurrentPosition ();

        // for external dsp (dma option)
        virtual float* reportDestinationBuffer ()


> DSP cards on VST simply
> declare that they have one buffer of latency, so each time
> process() is called they return the data that was passed in in the
> previous process(). This isn't ideal because if a host calls
> process() too often it will block waiting for the DSP card. (that's
> the difference between time latency and data latency... VST does
> not provide a means to differentiate, and some hosts assume it's a
> data latency)

Well, yes, that's the only way to do it with VST 1.0. Either way, the 
data latency thing applies regardless, unless the DSP card returns 
the data fast enough for it to stay in "block sync" with the host.


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`-----------------------------------> http://audiality.org -'
   --- http://olofson.net --- http://www.reologica.se ---


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