Re: [linux-audio-dev] XAP and Event Outputs

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] XAP and Event Outputs
From: David Olofson (david_AT_olofson.net)
Date: Mon Dec 09 2002 - 16:00:50 EET


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


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Dec 09 2002 - 16:04:51 EET