Re: Is JACK suitable for this?
Robin Gareus <[email protected]> Wed, 4 Sep 2019 17:09:49 +0200
| Newsgroups | gmane.comp.audio.jackit |
|---|---|
| Message-ID | <[email protected]> |
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