[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