>> you can have absolute minimal latency, but that requires >> locking the graph against use when it is reordered. > >AFAICS, that is not the real reason. If it were, the simple >solution would be to let the engine continue using a copy >of the current graph while the new one is being computed and >the required resources created. > >Probably if look you into it deep enough you'll find that the >necessity to stop processing while new clients are created >or when the port connection change can be traced back to the >combined effect of: > >1. only having one JACK-controlled thread in each client, >2. the synchronous nature of the API calls that modify > the graph.
stephane's new OSX implementation (jackdmp) avoids both of these, and ends up with an extra process-cycle worth of latency. he does exactly what you suggest above. is it avoidable? i don't know. stephane didn't seem to think so when we talked about it briefly on IRC. maybe it can be. --p