[Jack-Devel] How does JACK handle feedback connections?

Brian Sorahan bsorahan at gmail.com
Fri Dec 29 22:57:00 CET 2017


I read here about how JACK handles the client ordering using the sortfeeds
and truefeeds list
https://github.com/jackaudio/jackaudio.github.com/wiki/A_guide_to_the_Jack1_source_code#data-structures

So with a graph like this:

A -> B -> C

When I make a connection between C and A:

C -> A

Then C will be added to A's sortfeeds list and the processing order will be
retained: [A, B, C].
My question is: when does A actually get C's output data? If JACK allows
the connection, then A should get as input C's output data. Is there a
one-cycle delay? That's kind of what I interpreted this
<http://jack-audio.10948.n7.nabble.com/Some-more-explanations-on-jackdmp-td1606.html#a1608>
to mean.

I also read this
<http://jack-audio.10948.n7.nabble.com/JACK-design-flaw-and-Proposal-td882.html#a898>
but didn't walk away with a clear idea of what JACK actually does.

This paper
<http://www.grame.fr/ressources/publications/Jackdmp-ICMC2005.pdf> says

In the event of feedback loops, there is no ”correct” ordering of the
> graph, so Jack just picks one of the legal possibilities.


Is the "legal" choice that JACK is making here the same thing as what is
discussed on the Wiki page at the top of my post?

Also, do jack2 and jack1 behave the same in this regard?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.linuxaudio.org/archives/jackaudio/attachments/20171229/596fce7d/attachment.html>


More information about the Jackaudio mailing list