[linux-audio-dev] XAP and Event Outputs

David Olofson david at olofson.net
Mon Dec 9 09:06:02 UTC 2002


On Monday 09 December 2002 14.49, Steve Harris wrote:
> On Mon, Dec 09, 2002 at 11:39:38AM +0100, David Olofson wrote:
> > In theory, the problem is very easy to solve: Have the host throw
> > in "shadow event ports", and then have it sort/merge the queues
> > from those into a single, ordered queue that is passed to the
> > actual target port.
>
> I dont think this totally solves the problem.
>
> There is also the latency problem, if the instrument generates
> output events with the same timestamp as some input event
> (reasonable) then it wont receive those same event until its next
> processing block, what does it do then? They are all arriving
> "late".

That's the feedback loop problem. As long as the host runs plugins in 
the correct order, you'll never see this unless you *actually* have 
loops in your network.


> Should the host add latency to the events (by adding one blocks
> worth to the event time)?

In an actual loop, yes, it would have to do that - at least the way 
timestamps work in Audiality. (Running time, wrapping, not related to 
buffer boundaries.)

The way VST does it however, that wouldn't be needed, since 
timestamps are related to buffers. 0 == start of this buffer. Might 
look nice to plugins, but I forsee minor nightmares in multithreaded 
hosts, hosts that want to split buffers, hosts that support different 
buffer sizes in parts of the net, hosts that support multiple sample 
rates in the system, communication over wire,... (Yet another reason 
why I think the VST event system is a pretty bad design.)


> Of course this is only a problem when you have graphs with
> feedback, otherwise there is a linear execution order that ensures
> this kind of problem wont happen.

Exactly.

BTW, feedback loops would be the major reason why a host would want 
to run parts of the net with smaller buffers. See why I discarded the 
idea of buffer related timestamps? :-)


//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 -'
.- M A I A -------------------------------------------------.
|    The Multimedia Application Integration Architecture    |
`----------------------------> http://www.linuxdj.com/maia -'
   --- http://olofson.net --- http://www.reologica.se ---



More information about the Linux-audio-dev mailing list