Loopback: routing Jacktrip audio

UPDATE: September 2023

This post is for a person using command-line connection to Jacktrip and Qjackctl to manage Jack (which is the way we did it back in March of 2021).  It creates a single virtual device to route audio to and from Jacktrip.  This makes Qjackctl a lot easier to manage by providing a single interface that can be used for both input and output.

These days JackTrip has a terrific graphic user interface (GUI) that can manage audio input and output devices directly through RT Audio (eliminating the need to use Qjackctl).  In that case I would suggest creating a separate Loopback devices for audio being sent to Jacktrip and audio being received from Jacktrip.  It’s much easier to keep things straight and just as flexible.


Here’s a step-by-step post about routing Jacktrip audio using Rogue Amoeba’s Loopback software.  Loopback is a for-money successor to Soundflower and similar to BlackHole.  I like it because it is more visual and does more stuff.

The goal of this post is to get a person with a 2×2 interface going with a setup that will let them join a Jacktrip session reliably, without having to “rewire” things each time.  It also covers things like routing audio into and out of other audio software like Logic Pro, Ableton Live, Max and Zoom.

Alas, this is for Mac folks only.  Windows audio puzzles me.  I don’t have a clue how to do this on a Windows machine.

There are links to short videos that “animate” each of these steps and examples.   Click on the pictures to embiggify and read them.

Step 0: Assumptions – Click here for video

 

Step 1: Starting out – Click here for video

Create a new Loopback device.  This is just like a 2-channel Soundflower or Blackhole device – apps can send 2 channels to this gizmo, and other apps can listen to those two channels.

 

Step 2: Add components – Click here for video

It’s good to make a list of sources and destinations for audio and add them all at once.  Loopback makes guesses about the routing, which are fine but those guesses won’t work for what we’re doing.  Adding things later will sometimes cause Loopback to “rewire” the whole setup.

 

Step 3: Clear out default routings – Click here for video

All of the sources and destinations are in place, but there isn’t any routing.  This is also a good place to rename the device.  I’ve gotten into using really goofy names so that I don’t confuse myself when picking this device out of a list.

 

Step 4: Link to QJackCtl – Click here for video

Start QJackCtl at this point and make sure that it works as an interface.  QJackCtl has two buttons that can be used to select the interface — use the rightmost one, with the carrot that looks like this “>”

People who are already using Loopback and have a lot of devices may have to turn all but the new one off momentarily so that QJackCtl can find this one.  Those other devices can be turned back on once this one is selected and saved as a QJackCtl preset.

 

Step 5: Route incoming Jacktrip audio – Click here for video

Start by launching a Jacktrip connection and routing the incoming Jacktrip audio (just to the interface at first, more apps in later examples).

 

Step 6: Route local audio out to Jacktrip – Click here for video

 

The finished device – No video

This is the destination.  A device that can route 2 channels of Jacktrip in and out.

 

Variation 1: Capturing audio in a DAW (Logic Pro) – Click here for video

The quirk of Logic is that it sets audio preferences in two places.  The one that causes trouble is the Sample Rate, which is set at the project level and is quite often different than the sample rate being used by Jacktrip.  Launching a mismatched project will crash the Jacktrip session, possibly for everybody.

 

Variation 2: Capturing audio in a DAW (Ableton Live) – Click here for video

All the audio settings are set globally in Live.  But be careful to launch Live and confirm settings before launching the Jacktrip session – Live may be configured wrong when it launches and take down Jacktrip

 

Variation 3: Capturing audio in a DAW (Max) – Click here for video

This is just another variation.

 

Variation 4: Capturing audio in a DAW (Garageband) – Click here for video

There is no mechanism to change the sampling rate in Garageband, but in doing this project I discovered (and demonstrate) that I could receive and record audio from a 48k Jacktrip session even though Garageband only runs at 44.1k.  Garageband will take down a 48k Jacktrip session that’s already running, so make sure to start Garageband first.

 

Variation 5: sending more than just one mic through an audio interface with more channels – Click here for video

This is a way to avoid having to “rewire” QJackCtl every time Jacktrip has to be restarted.  This device is a preset for a multichannel mix coming from an interface with more than 2 output channels.   Pay close attention to redoing the default routing that Loopback will make when the interface is added to the device.

 

Variation 6: sending audio to Jacktrip from an app (e. g., Max) through the Pass-Thru channels – Click here for video

There are two ways to get audio from an app into the Jacktrip feed.  This is one — selecting the Loopback device as the audio output device in the app and taking care to route the audio out of the app on channels that aren’t the Dreaded Channels 1-2.

 

Variation 7: sending Jacktrip audio to Zoom – Click here for video

This is one way to get all the channels of the Loopback device into Zoom.  This will mix all the output channels, without the ability to balance the mix between local and Jacktrip audio.  So make sure to rehearse that balance.

 

Variation 8: sending audio to Jacktrip from an app (e. g., Logic) through a Loopback app-source – Click here for video

This is the other way to route audio from an app to Jacktrip — by leaving the audio settings at their defaults in the app and “spying” in the output with Loopback.  This might be preferable for a studio that already has complex routing that would be difficult to disturb.

 

Variation 9: use QJackCtl as an app-source rather than through the Pass-Thru interface – Click here for video

This one has been hit and miss for me, but it’s an option to explore….  carefully.  QJackCtl is an app that Loopback can see, and “spy” on, just like any other app that uses system audio on the Mac.