Jack Transport
Jack Transport
Jack Transport provides the ability to sync Renoise with multiple Jack clients on Linux. With it you can start, stop and relocate the play position from any of the Jack enabled applications. Any software that is "jacked into" the session will react and synchronise accordingly. Jack Transport is enabled in the Audio Preferences panel, though note that it's disabled by default, even when it has been selected as the audio device.
Levels of Jack Transport Control
Level 1: Each Jack client has the power to start, stop and relocate (change the playback position of) the transport. This is represented in either seconds or sample time.
Level 2: Only one Jack client can control the Time Base, which is a combination of the tempo, time signature and beat position.
Most applications support the first level of Jack Transport control, though, at the time of writing, the second level is rarely supported. If more than one application is running which supports the Time Base, Jack will select one automatically.
Dealing with Tempo
Tempo information is exchanged only when the synchronized application supports Time Base. As stated above, most applications do not support this and so you will have to set the tempo manually.
In the case where all Jack Transport applications are Time Base aware, you still have to make sure that all clients are using the same tempo and automation. This is because playback relocation will be done in sample time instead of "beat time". All clients need to have the same base tempo in order to jump to the same positions.
Dealing with Loops
Loop information is not transmitted via the Time Base, meaning that each client will try to apply its own loops, fighting with the other Jack programs to reposition. To avoid this conflict, enable loops in the application that is currently active and disable them in the others.
PDC and Jack Transport
Jack doesn't provide a way to explicitly handle latencies, which, when combined with Automatic PDC (plugin delay compensation) in Renoise, can result in small 'misfires'. For example, if another application attempts to jump Renoise to a specific "position", Renoise will attempt to compensate by jumping to "position + overall PDC latency". If this is causing issues, you should temporarily disable the PDC in Renoise.