On Wed, Apr 06, 2016 at 12:26:32AM +0200, Alexandre DENIS wrote: > I think it should be doable to write a simple client that connects as > two unrelated clients to jack, and feeds its outputs with its inputs > with one period of delay. It will make jack2 run the client connected > to its inputs and to its outputs in parallel, since jackd doesn't see > it as a dependency; but the latency of one period is unavoidable, since > we cannot predict whether jackd will invoke first the callback for the > inputs or for the output (or maybe at the same time on different > cores). The latency is indeed unavoidable, but not for the reason you mention. The order of execution of the two parts of the 'delay' client must not be random. You need to ensure that the 'in' client runs after the 'out' client. This can be done easily by having a dummy connection. In other words, you'd have something like X -> [ A <- B ] -> Y Then in each cycle X and B can run immediately. B copies the data input by A in the previous cycle to its outputs (this can be very fast), then Y runs while X can still be busy. When X terminates, A stores the data to be read by B in the next cycle. In case X terminates before B, A still has to wait for B to terminate - this ensures that Y always has the one cycle delayed output from X. Ciao, -- FA A world of exhaustive, reliable metadata would be an utopia. It's also a pipe-dream, founded on self-delusion, nerd hubris and hysterically inflated market opportunities. (Cory Doctorow) _______________________________________________ Linux-audio-user mailing list Linux-audio-user@xxxxxxxxxxxxxxxxxxxx http://lists.linuxaudio.org/listinfo/linux-audio-user