Using Loopback to Output to Multiple Speakers on macOS Simultaneously
When Apple announced the Studio Display I ended up buying one. You can read my full review of the Studio Display.. When I ordered the Apple Studio Display I knew I was going to use it with my iMac. In fact, I ended up using it as my primary monitor. After I connected and setup the Apple Studio Display I started looking at various aspects. One of the things that I tried out were the speakers on the Studio Display.
The speakers on the Studio Display are significantly better than those in my 2017 iMac, even though they are better, I wanted to see if I could use all of the speakers at the same time. I knew that the iMac speakers would not be as good, but they would still be something.
During this testing, the screen on my iMac began to crack. I did not know if it would stop or if it would continue to expand. Therefore, I ended up buying a Mac Studio and a second Studio Display. You can read my review of the Mac Studio.
With both the iMac and the Mac Studio, I tried looking to see if macOS could do this natively, but I could not find a way of being able to output to both the Studio Display and the iMac speakers at the same time. macOS only lets you choose a single output at a time.
I thought about which apps that I knew of that I could use that would be able to output to both deices at the same time. I knew it was an app from Rogue Amoeba, who is a prominent Mac developer who specializes in Mac audio apps. They have a couple well-known apps, Audio Hijack and SoundSource, but I knew neither of these were the one I was thinking of. I ended up going to their website to figure out the name. The app I was thinking of is Loopback. We will get to how I use Loopback in a bit, but first let us look at how I use audio most of the time.
A vast majority of time I listen to just about everything using my headphones. This could be music, an audiobook, or podcasts. When I am listening to audio I am almost always using my headphones paired with my iPhone. The reason I do this is because I can listen to audio whenever I go without having to pause it or move the audio between devices.
There are those times that I may want to briefly checkout a video that someone has sent me and instead of using my iPhone, I will likely use the Mac I am on. I do this so that I do not need to necessarily pause the audio I am listening to. Even with this there are times when I would like to listen to music while doing other things on my Mac and not have to use my headphones. For those times, I want to be able to have the music sound as good as possible, and internal speakers on the Macs I own are just not good enough. And this is where Loopback can come in handy.
Loopback is an app that allows you route audio from any Mac app, or input, to another app, or any audio output. For inputs, this can be a microphone, an app, or another input. Some examples of inputs can be a game system, or stream deck, a microphone, or even just the macOS system audio.
When you first start up Loopback you will be shown a Quick Tour. A good description of what Loopback is capable of comes straight from the first page on this Quick Tour. It states:
"Loopback's magic is built on its ability to create “virtual audio devices”, which appear on your system exactly like a physical device. These virtual devices merge sound from multiple applications and inputs into a single source. Virtual devices pull audio from source apps and devices, then routes it with a set of channel mappings. In seconds, you can get a virtual audio device configured, then select it as an input or output in any audio application on your system."
There are three possible items within a Loopback device, a Source, Output Channels, and Monitors. A default Loopback device will two items defined, a "Pass-Thru" source, and a single two-channel item.
A "Pass-Thru" device is a virtual sound output device that can be used to, as the name suggest, pass output to the device to Loopback for processing. Before we dive further into Loopback, let us look at the setup.
Setup (With a BIG Caveat)
There is one caveat when it comes to installing Loopback, and that caveat is a rather large one.In order to get Loopback running on an Apple Silicon machine you will need to change the security model of macOS. This is done by entering into recovery mode and then changing the "Security Mode" to "Reduced Security". The reason that this is required is because on Apple Silicon machines Kernel Extensions are not allowed to load by default, and it takes a deliberate action to allow these items to run.
It should be noted that you cannot run Loopback without changing the security settings on an Apple Silicon Mac and then subsequently allowing the extension after reboot.
I would like to see do a more in-depth vetting of some companies and allow them to run within the "Full Security" mode. This would likely require a change to the overall approach to macOS, so it is not likely to occur, but it could be something that Apple could take on, if they chose to do so. Now, let us get back to Loopback.
Naming a Device in Loopback
Given that you can have as many loopback devices as you would like, you will want to keep them all straight. This is best accomplished by providing them with a descriptive, or at least easily identifiable name. To name a device, perform these steps:
- Open Loopback
- On the left side, Locate the Loopback Audio device that you want to rename
- Click on the Loopback Audio Device you want to rename.
- On the right pane, Click on the "pencil" icon next to the name.
- Enter in the new name for the device.
- Either press the "Enter" key or click outside of the edit box.
That is all it takes to rename a device. Now that you have the item named, you may want to actually use it for the system. Let us look at that next.
Loopback Device as Output
The "Pass-Thru" loopback item is the key to being able to use multiple speakers simultaneously. As mentioned earlier, the Pass-Thru is a virtual device. What this means is that it is available as a virtual speaker device. This means that you can set the output for your Mac to the Loopback device. The way that you are able to have Loopback perform any of the processing that you have specified within your Loopback setup.
To set a device as the system output device, perform the following steps:
- Open System Preferences
- Click on the "Sound" system preference pane.
- Click on the "Output" item at the top of the screen.
- Locate the output device that you want to use as your system output.
- Click on the output device you want to use as the system output.
As soon as you click on the output device, the system audio should change to the Loopback device. Now that we have that covered, let us look at how I have configured Loopback to be able to output to multiple speakers simultaneously.
Multiple Speakers for Output
The Studio Display has a set of six stereo speakers which can easily out perform many other audio setups. The real question is how do you get dual Studio Displays to output audio at the same time. Let us look at how I managed to accomplish that.
Before I came across the final setup, I tried a couple of different approaches that ultimately were not right. Let us look at some of those false starts next.
I did manage to go through a couple of different iterations for the Loopback setup to try and create a dual speaker setup before I added a new Loopback Device and set everything back to its defaults, which is what I actually wanted.
Before I stumbled on using the default setup, I tried another setup. It looked like this:
As you can see I specified the Music app as the source, since it is the primary app I wanted to control, I had a single set of channel outputs, for channels 1 and 2. The left channel was connected to every other output channel. Similarly, the right channel was placed on the remaining outputs.
There were two issues with this approach, other than being the actual wrong approach. First, only one of Studio Display's volume outputs could be controlled with the function keys on the Mac keyboard. This ultimately meant that I would have to manually adjust the volume for the other Studio Display.
The second issue is that the configuration ends up negating some features of songs. In particular, by linking outputs to each channel on the Studio Displays, if a song is mastered for Dolby Atmos, the Music app would no longer be able to properly provide the full Atmos experience.
Another iteration that I tried was a similar one, but instead of just two output channels I had setup eight channels with the left and right channels going to each of the corresponding channels on each set of channels. Each of the channels is then connected to each corresponding channel on the Studio Displays. The same issues existed for this approach as the last ones. Instead, the best approach is actually a rather simple one.
The setup that I ended up with, is, actually very simple. If you are using Loopback, it is actually quite simple. All I did was add both Studio Displays as "Monitors". Once I did this, anything that is pushed through the Pass-Thru device will be output to both Studio Displays simultaneously.
Here is my actual setup:
The actual setup is deceptively simple. It uses the default Pass-Thru device, connected to a single two-channel output, and then the left and right channels are connected to the proper corresponding channel on each of my Studio Displays. With this setup, and by setting the default audio output to "Studio Displays", and that is all I need to do.
This still does have a couple of downsides. First, some apps will have their own preferences for which device to use for output, therefore may have to set the app's specific output. This may be a choice that you made previously, or the app could have some other undefined behavior. Typically, this is easy enough to fix, but it is something to be aware of.
While taking screenshots of Loopback, I did come up with another possible setup. This one is similar to the one that I set up as my final one, but instead of setting up left and right on each of the Studio Displays, I came up with the idea of connecting the left channels to one Studio Display and the right channels to the other Studio Display.
Things Not to Try
Throughout all of my testing I went through a number of iterations to see what might work. One of them was to output to a HomePod mini. I can unequivocally say, do not bother. The reason I say do not bother is not because it does not sound great, it absolutely does, but the HomePod mini has a significant delay when outputting to the HomePod mini along with any other speakers. It can easily become problematic and you can begin to get a headache trying to listen to anything on another set of speakers at the same time as the HomePod mini.
The way that I am using Loopback is just one way of using it. Loopback is capable of routing audio from any device or app to any app or device. Loopback is what Apple should have built into macOS, but they have not. Therefore, Loopback is needed to fill in the void.
If you have a Studio Display connected to a Mac, it might be worthwhile to take a look at Loopback and see if you will be able to have audio output to all of your speakers simultaneously. Loopback is capable of doing so much more than I have covered here. What I described above only scratches the surface of what is possible with Loopback. This is just a single possible use case for the app, but one that might be particularly helpful if you have multiple Studio Displays.