Re: [LAD] A bit more MIDI clarification please

From: Simon Jenkins <sjenkins@email-addr-hidden>
Date: Mon Oct 06 2014 - 00:02:04 EEST

On 5 Oct 2014, at 19:58, Paul Davis <paul@email-addr-hidden> wrote:

> On Sun, Oct 5, 2014 at 2:27 PM, Will Godfrey <willgodfrey@email-addr-hidden> wrote:
>
> But, what happens if the synth was registered with jack before the sequencer?
> Presumably it is now going to get it's MIDI data *after* it has already
> processed that callback.
>
> 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.
>
> if you're silly enough to create a feedback loop, then the order becomes undefined.

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.

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”).

Simon Jenkins
Bristol, UK

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Mon Oct 6 00:15:05 2014

This archive was generated by hypermail 2.1.8 : Mon Oct 06 2014 - 00:15:05 EEST