[Jack-Devel] Is JACK suitable for this?

Robin Gareus robin at gareus.org
Wed Sep 4 17:09:49 CEST 2019


On 9/4/19 4:42 PM, Mechamania wrote:
> Hi all,
> 
> I'm new to this list and would like to ask the people on this list for
> some advise.
> 
> I'm searching for a tool to transfer hundreds of audio channels from an
> existing application to some code of our own.
> 
> The existing application is SuperCollider and as I understand it
> supports connections by JACK.
> 
> But is JACK suitable to connect hundreds of audio channels? We need low
> latency. Will JACK be low latency? 

Yes, even thousands and more. Some WFS systems use JACK.

Communication between applications happens in the same process cycle,
without any latency.

Buffersize is a runtime option and only relevant for I/O only. It is low
latency, limited only by your hardware.


> How many times are the samples internally copied?

Port-data is kept in shared-memory, that is zero-copy.

(data may be copied if you mux ports or do 1:N connections).

> Is it true that all audio will be routed through some network layers?

No. There are are however jack-clients that allow to bridge between
jack-instances over the network.

> How difficult will it be to add audio input to our own application to
> receive audio from JACK?

I found JACK to be one of the simplest audio APIs to use.

Just connect to JACK, register ports, set a process-callback method, and
you're set. Check out simple_client.c and capture_client.c at
https://github.com/jackaudio/jack2/tree/develop/example-clients

The hard part is usually setting up JACK and tweaking a system for low
latency.

Also double-check if supercollider's JACK client is up to the task. I'm
pretty sure it is, but I have no personal experience with it using
hundreds of channels. That might need some tweaks for low latency, too.

Cheers!
robin



More information about the Jackaudio mailing list