Connect multiple receiver to a multi-track mac

Hello everybody, I am new here.

I live in Italy and volunteer for an association that works with disabled people and teaches them how to play music.

Sometimes we have peculiar situations that require a fancy way of connecting the instrument and the headphones monitor, so that it can be very time consuming setting up the musician and the instrument.

If we can switch to wireless this problem can be reduced very much.

What I am trying to achieve is to have 8 aux track in a logic project, each of them going in a different output of a virtual device (I am using blackhole 16ch). This 8 channel I want to send them via wifi to 8 different raspberry pi zero W.

For now I installed jack and jacktrip on both my mac (OS 13) and raspberry pi zero w (OS trixie)

I started a server on the mac using

jacktrip -S -n 8 -B 5000

And on the RPi

jackd -d dummy -r 48000 -p 1024 -P 4 &

jacktrip -c -n 8 -D

And I am trying to record something in input on the pi with jack_capture. But everything is silent.

Can you help me figure out what I am doing wrong?

If I record the output of blackhole I get some audio so I think the device is correctly sending audio.

I tried a new thing:

If I run jacktrip -s -n 4

without QJackCtl running (so the jack server is not running) it starts a jackd server.

Then if I connect with the client, I am able to record sound and the cannel are working.

On the other side, if I run jackd with QJackCtl the channels will remain silent.

I can’t figure out why

1 Like

Hi @gianmarco and Welcome! Any progress?

There are just a few on this Forum using the Pi with JackTrip and even fewer using command line but I do have some thoughts and info.

Have you checked that the JackTrip version and JACK audio settings (sample rate, buffer size) are compatible between the server and all clients?

Did you open qjackctl’s “Connect” window and drag connections from your hardware inputs to JackTrip’s inputs and JackTrip’s outputs to your hardware outputs?

Are you connecting several clients to the same server in hub mode? If so, I see the -p flag for patching on the client side but not for the server.

A lot more info can be found in an online search (google) and I have included a few key points below.

Please keep us posted!

Key JackTrip Patching Commands (Audio Routing)

These options configure how audio flows on the hub server:

  • -p <#> or --hubpatch <#>: Sets the audio patching mode (0-5).

    • 0: Server sends audio to clients (default).

    • 1: Client loopback (hear yourself).

    • 2: Client fan-out/in (server mixes, no loopback).

    • 4: Full mix (server mixes all, includes loopback).

  • -i or --includeserver: Include server’s audio in mixes for modes 2 and 4.

  • -u or --upmix: Upmix mono clients to stereo.

Example: jacktrip -S -p 4 (Starts a hub server with a full mix, including loopback).

on closer look at your commands I see that you have a capital S for the server, which indicates hub mode, but you have small c for the client which indicates peer-to-peer.

A client connecting to a hub server would need a capital -C.

Hi synthia.
In the next few days I will tell you what I tried, for now, I don’t have clear the difference between hub (capital S and C) and standard (lower case s and c). Can you explain me that?

G

1 Like

The Capital -C (Clients) and -S (Server) flags are for a Hub Server, also known as a “Server Based Network”, where all Clients connect to a single Server that facilitates all connections between Clients. The Hub Server machine is a “many-to-one” configuration and needs to have adequate resources to host all of the Clients in the session.

The small -c (clients) and -s (server) configuration also known as a peer-to-peer (p2p) was designed for one-to-one and a smaller number of connections where each client is physically connected to every other client. Theoretically, each client machine “hosts” every other client in the session and would need to have the resources for it.

Please feel free to ask for more clarification.

Hi @Synthia thank you for your answer.
I now am using this commands:

on the mac:

jacktrip -S -D
(i want to handle the connections myself)

on the RPi

jackd -d alsa -d hw:0,0 -r 44100 -p 1024 -n 2 -P
jacktrip -C -n 2

Now what is bothering me is that I have an aggregated device that include a blackhole 16CH (16 in and 16out) and the built-in output (2ch). In total I should have 18 outs and 16 ins.

If I run the server and run jack_lsp i get:

jack_lsp

system:capture_1
system:capture_2
system:capture_3
system:capture_4
system:capture_5
system:capture_6
system:capture_7
system:capture_8
system:capture_9
system:capture_10
system:capture_11
system:capture_12
system:capture_13
system:capture_14
system:capture_15
system:capture_16
system:playback_1
system:playback_2
system:playback_3
system:playback_4
system:playback_5
system:playback_6
system:playback_7
system:playback_8
system:playback_9
system:playback_10
system:playback_11
system:playback_12
system:playback_13
system:playback_14
system:playback_15
system:playback_16
system:playback_17
system:playback_18
__ffff_192.168.1.74:send_1
__ffff_192.168.1.74:send_2
__ffff_192.168.1.74:receive_1
__ffff_192.168.1.74:receive_2

as you can see I have 18 playback and 16 captures (that is ok with my 16 in and 18 out aggregated device), the problem is that the only way I have to send audio to the RPi is doing:

jact_connect system:capture_1 __ffff_192.168.1.74:send_1

but this for me is nonsense, I was expecting to send a playback. In fact LOGICX sees 18 out and can route the aux to them….

this is very confusing.

and still if I run jackd myself there is no way I can send audio. if I let jacktrip handle it, everything works….. and the logs seems identical….

Right away I see in your command line the jackd sample rate at 44.1k but Jacktrip default is 48k and jackd should be also.

Further analysis I will do when I can.

Also I am not sure it is relevant but Blackhole channels begin on 3 and 4 because the system has 1 and 2. Confusing I know!

I can confirm that both are running at 44.1 otherwise I would have gotten an error of sampling mismatch (i did sometimes)