[linux-audio-dev] XAP: Plugin: "But I'm not ready!"

David Olofson david at olofson.net
Wed Dec 18 11:31:01 UTC 2002


On Wednesday 18 December 2002 16.18, Steve Harris wrote:
> On Wed, Dec 18, 2002 at 02:53:50PM +0100, David Olofson wrote:
> > You move the play position marker.
> >
> > 	Plugins get the position changes from the timeline,
> > 	and those that need to, do their best to prebuffer
> > 	audio data from disk, or whatever. While doing that,
> > 	the put a "1" on their "READY" Control Outputs, that
> > 	are connected to the transport control.
> >
> > You press "Start".
> >
> > 	The transport control simply waits until it has
> > 	received a "0" from each one of the "READY" Controls
> > 	it's watching. Then it actually starts the sequencer.
> > 	If there are no READY Controls in the net, the
> > 	sequencer will just start instantly.
>
> I'm wondering if this can't be handled better in a non RT manner,
> like the activate call in LADSPA, but with the addition of some
> kind of time position.

But then you have to stop the whole net along with the sequencer, as 
soon as you have one of those "non-instant" plugins in the net. The 
very point is to avoid that.

Besides, this doesn't just happen when you activate a plugin, but 
could happen as soon as you move the transport, or change a control. 
Sure, it can be handled with control hints, saying these controls are 
not RT safe, but I think that's a bit restrictive.
 

> The plugin will likly have to flush its internal buffers anyway, so
> it might just be easier and cleaner to do it outside the normal RT
> context.

That kind of solution would need explicit API support as well, so I'm 
not sure it makes anything easier.


//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://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---



More information about the Linux-audio-dev mailing list