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

PrevNext  Index
DateFri, 29 Dec 2017 15:57:00 -0600
From Brian Sorahan <[hidden] at gmail dot com>
To[hidden] at lists dot jackaudio dot org
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?
PrevNext  Index

1514584652.12819_0.ltw:2, <CAPtu4TyD=FfnyKmDyxjQ0hYKWYw-e8DAw6xVUXAoxus4dcJLuQ at mail dot gmail dot com>