<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On 5 Oct 2014, at 19:58, Paul Davis <<a href="mailto:paul@linuxaudiosystems.com">paul@linuxaudiosystems.com</a>> wrote:<br><div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">On Sun, Oct 5, 2014 at 2:27 PM, Will Godfrey <span dir="ltr"><<a href="mailto:willgodfrey@musically.me.uk" target="_blank">willgodfrey@musically.me.uk</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;"><br>
But, what happens if the synth was registered with jack before the sequencer?<br>
Presumably it is now going to get it's MIDI data *after* it has already<br>
processed that callback.</blockquote><div><br></div><div>JACK clients are executed in the order required by their interconnections. If client A *sends* data to client B, then client A will always execute before client B.<br><br></div><div>if you're silly enough to create a feedback loop, then the  order becomes undefined.</div></div></div></div></blockquote><br></div><div><span style="font-family: TimesNewRomanPSMT;">Actually the order did get defined in the end: If you make a connection that closes a feedback loop then all existing connections stay in the same order and the new connection therefore becomes a ‘backwards’ connection. All new connections either impose a new forward ordering constraint between  clients or, if that is impossible, become backwards connections to preserve the existing order. Prior to this change adding a feedback connection or any subsequent connection to a graph could alter the order that connected clients were executing in but that doesn’t happen any more.</span><div style="font-family: TimesNewRomanPSMT;"><div><br></div><div>There’s an edge case though where you add a feedback connection and then remove any forward connections. Last I looked jack 1 re-orders things so the feedback connection becomes a forwards one (better for low latency) but jack 2 leaves the connection backwards (better for “clickless connection”).</div><div><br></div><div>Simon Jenkins</div><div>Bristol, UK</div></div></div></body></html>