I’d bought pretty heavily into the iTunes ecosystem primarily because it gave me a good listening experience, but also because it had good interoperability with Apple’s AirPlay devices. But ever since upgrading to Catalina, AirPlay has refused to work for completely inscrutable reasons. I’d kind of given up on whole-home music streaming (and was thinking of getting a small FM transmitter and an analog tuner, like I did back in grad school) but then I remembered that I had a generic Bluetooth receiver that I’d bought for use in my previous car.
So, after a little bit of setup and verifying that my desktop could actually communicate to it from across my home, I was going to do the obvious thing and just set up a multi-audio output device to pipe Music.app through.
But then I remembered that I’d also bought Audio Hijack as an attempt at building my own thing like Sonarworks Reference that didn’t mess with my output routing. And while it worked well for that, I ended up going with a hardware equalizer on my speakers instead. (Which reminds me, I need to write an article about recording studio equalization.)
So, one really cool thing about Audio Hijack is that you can change the audio routing for just a single application, and it can also natively send to multiple outputs. Just a few clicks and I had Music.app sending to both my recording audio interface and to the Bluetooth receiver in the living room, and I could easily toggle each of those on and off, all without affecting the rest of my system audio. Yay!
Then I noticed that it also has audio targets for Icecast and RTSP servers. Well, the MUCK I hang out on has a streaming music server for MUCK residents. Previously I had a pretty convoluted mess of stuff to work with butt (which would pick up all of my system audio) and to get the metadata through a rather annoying script. But Audio Hijack can also get the currently-playing metadata from Music.app. And configuring it was very easy.
So, Audio Hijack has replaced several pieces of annoying/fiddly/broken software and given me a much better experience overall, while also correcting one of the biggest post-Catalina problems I was having with my music. And it also lets me do whole-house streaming (over Bluetooth) of all audio, not just formats that are blessed by Apple! So now I can also broadcast friends' twitch/icecast/etc. streams to my whole home regardless of format and without having to deal with Music.app brokenness (since it works just fine with VLC as well).
What’s also awesome is now I can selectively turn outputs on and off, much more easily than AirPlay ever allowed for, so I can keep the stream going while I’m, say, on a video conference and need to mute the music locally. And if I ever want to pretend to be an actual DJ, it also allows inserting audio inputs as well, so I could introduce my microphone (or even Logic output!) into the stream if I really wanted to for some reason.
The only downside I’ve found so far is that there’s no latency compensation on the Bluetooth, so there’s a sliiiiight delay between it playing on my computer and on my hi-fi setup. Fortunately, Audio Hijack also has a tunable delay node, so I was able to delay the local iTunes playback by 100ms and that seems to have gotten it close enough for now.
Audio Hijack does cost money, but it’s a hell of a lot easier to deal with and, heck, cheaper than any of the partial hardware solutions I’d seen for any of this either (Sonos and HomePod) and way more flexible than the Amazon or Google offerings. I’d say it’s $60 well-spent.