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