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

  • From: "Angus F. Hewlett" <amulet@xxxxxxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Tue, 20 May 2003 05:53:40 -0400 (EDT)

On Mon, 19 May 2003 RonKuper@xxxxxxxxxxxx wrote:

> I opt for (C) Realtime events are delivered to the plugin just-in-time, as
> they occur, via a separate entry point into the plugin.

Sorry, I don't like this idea.

> I believe there are actually situations where a plugin could render realtime
> changes just in time, even if the change arrived in the middle of processing
> an audio buffer.  (Of course we need thread safety between the entry point
> that gets realtime events, and the process routine.)

It should absolutely not be mandatory for plugins to support this. If it's
available at all, it should be as an optional interface. We should not
force plugin developers to support it.

> Here's a concrete example of how this might work.  A user is running DSP
> accelerated plugins.  The DSP can natively chug away on audio using really
> small buffers (16 or 32 samples, say), but the proxy to the DSP needs larger
> buffers.  Maybe the user wanted larger buffers for more stable streaming, or
> maybe there are some limitations to the host/DSP interface that require
> this.  Heck, maybe it's USB.
> In this scenario, a realtime volume change *could* change the volume in the
> middle of an audio "buffer", the reason being that a buffer from the host
> perspective isn't really the true buffer size.  If GMPI is going to serve as
> a possible proxy for DSP, this can definitely happen.

Possibly, but this depends on the host receiving the event at high
priority, and then have an independent event routing system that is able
to know that this particular event is intended for the low-latency-enabled
DSP device. It also potentially requires event processors to be aware of
this.

> If we design GMPI so that all events must be delivered in the same payload
> as the process() call, we lose this important capability.  Also, we lose the
> ability for plugins to freely send non-process event data to one another.

What do you mean by non-process event data?

Regards,
        Angus.


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