Le 17 févr. 05, à 15:26, Alfons Adriaensen a écrit :

On Thu, Feb 17, 2005 at 08:40:01AM -0500, Paul Davis wrote:

you can have absolute minimal latency, but that requires
locking the graph against use when it is reordered.

AFAICS, that is not the real reason. If it were, the simple solution would be to let the engine continue using a copy of the current graph while the new one is being computed and the required resources created.

Probably if look you into it deep enough you'll find that the
necessity to stop processing while new clients are created
or when the port connection change can be traced back to the
combined effect of:

1. only having one JACK-controlled thread in each client,
2. the synchronous nature of the API calls that modify
   the graph.

--
FA

These kind of problems are addressed in "jackdmp", (jackd for multi-processors) where new clients, ports and connections can be done/changed without stopping the audio stream.


Look at http://www.grame.fr/~letz/jackdmp.zip for the OSX version which contains a technical paper explaining the new implementation.

Stephane Letz



Reply via email to