Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 1.18 KB

README.md

File metadata and controls

31 lines (19 loc) · 1.18 KB

jack2_split

A program that facilitates parallelism in serial jack graphs by introducing latency. Only useful for jack2/jackdmp - it does nothing but add latency in jack1 setups.

What?

If you have a jack processsing graph that looks like this:

capture -> A -> B -> playback

where A and B are jack clients, then A and B must be scheduled in series due to the linear dependency.

Running A and B serially might produce xruns (i.e. violate the scheduling deadline imposed by jackd) while running only A or only B might not.

jack2_split can be used to remedy the situation by using the following graph:

capture -> A -> jack2_split -> B -> playback

jack2_split breaks the serial dependency by registering two jack clients which respectively only have terminal input and output ports. It copies the buffers from its inputs to its outputs after the current process cycle. This introduces one additional period of latency into the graph, but allows jack2/jackdmp to schedule A and B in parallel (e.g. on two cores).

The resulting two independent graphs then look like this:

capture -> A -> jack2_split

jack2_split -> B -> playback