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