Hello, world. I’m MacDara Conroy, and this is my blog.


Capturing sound from Mac apps on a budget

One relatively niche tool that I’ve found incredibly useful in my media doings over the last few years is Rogue Amoeba’s Audio Hijack for macOS. Essentially it’s a one-stop shop for recording audio from any source on your Mac: you point it to where the sound is coming from, like an external mic or a VOIP app like Skype (to use examples I’ve relied on in the past), press record and bam, there’s a file, ready to go.

I can tell you it’s made the process of recording phone interviews much less painless, no faffing around with extra cables or hardware required. However, as great as it is at what it does — and its toolset goes way beyond my basic audio capturing requirements — it’s not cheap.

The current version, Audio Hijack 3, retails for $73. That’s significantly more than what I paid a few years ago for Audio Hijack Pro (its previous incarnation, which no longer seems to work as intended in macOS Mojave). And even with the discount my licence would supposedly get me, the price would still be a multiple of 10. If you’re not a particularly heavy user (like me, since I haven’t been doing phoners on the regular) that’s a difficult expense to justify.

But there is an alternative method that can achieve similar results on a budget, using free software: namely the digital audio editor Audacity, and the Soundflower audio loopback system extension.

If you’re prepared to manually switch your system settings whenever you need to get the job done, this option should be relatively straightforward and take seconds to prep each time.

First things first, the following instructions work great for capturing a single source of audio from an app on your Mac. They don’t work so well for Skype, as it will only record the other person’s side of the conversation. There is probably an answer I’m not smart enough to figure out that will pass your mic sound to Audacity along with your caller’s but without their audio echoing. But I have found another solution, one that’s still free, which uses the bundled Quicktime Player instead of Audacity and some different settings adjustments. Here’s a blog post with an easy step-by-step tutorial. I’ve tested the setup and can verify it works.

I’ll presume you already have some familiarity with Audacity and how it works, so I’m skipping straight to setting up with Soundflower so you can start recording. My instructions here are based on the Audacity wiki with a few added steps that I needed to get things working on my own system.

Installing Soundflower on Mojave is not without friction, with all the extra safety precautions Apple have put in place, but it’s simply a matter of manually authorising the installer and giving it the few minutes it needs to do its thing, no restart required. (Also, keep the .dmg handy in case you ever want to uninstall.)

Whether this following step is necessary I’m not certain, but it appears to have solved others’ pass-through issues and it didn’t do me any harm: open Audio Midi Setup (it’ll be in your root Applications or Utilities folder) and you should see two entries for Soundflower in the list of audio devices on the right. Select ‘Soundflower (2ch)’ and in the Input tab, make sure the Master slider is not set to Mute, and that the slider is all the way over to the right at 1.0. For good measure, side it over to 0 on the left and back to 1.0. Do the same for the Master slider in the Output tab.

Here’s a handy (and short) YouTube clip that will show you what to do, though I found it unnecessary to add the new Multi-Output Device:

Go to System Preferences > Sound and in the Output and Input tabs, select ‘Soundflower (2ch)’. If you try to play back any sounds now, all you’ll hear is silence since we haven’t yet got an app ready for the audio to pass through.

(But while you’re here, click in the Sound Effects tab and select your usual sound output method — headphones for your external speakers, for instance — in the dropdown list for ‘Play sound effects through’; that should ensure any system sounds like notifications won’t be picked up in your recording.)

Next, and here’s an important step I missed when I was first setting this up and scratching my head as to why no audio was passing to Audacity: go to Security & Privacy, select Microphone from the list on the left, and ensure that Audacity is one of the apps in the list you’ll see on the right that is allowed microphone access. Also confirm that the box is checked next to it. (That was my problem.)

Now, open Audacity and in the dropdown for Recording Devices, the second one in the row, select ‘Soundflower (2ch)’. The Audio Host (first dropdown) should be the default ‘Core Audio’; likewise the Recording Channels (third) should be ‘2 (Stereo)’ and the Playback Device (fourth) ‘Built-in Output’.

Go to whatever app you want to record sound from and set it playing. You won’t hear anything yet but we’re getting to that. Go back to Audacity and click on the recording level meter next to the microphone symbol to start monitoring (there should be a label on the bar when you hover over it with the cursor). If the previous steps worked, you should see the meter flutter in green and hear your sounds playing back. Congratulations, you’re now ready to record!

When you’re done, you can edit the file directly in Audacity (since that’s what the app is for) and export into whatever audio format with whatever level of quality you prefer.

Granted, all of this is a bit more complicated than opening a single app that does most of it for you. But if you’re reasonably competent (you won’t break anything, and you can always retrace your steps to set things back as they were) and it’s not something you’ll be doing every day, I think it’s worth the little extra effort.

Update 2018.12.13: I’ve become aware of JACK, or the Jack Audio Connection Kit, which can apparently do marvels with rerouting sound sources between apps. However the latest version for the Mac hasn’t worked since High Sierra came out last year due to security changes within the OS. If there’s any change on that front, please do hit me up with an email or on Twitter (details on the about page) since I’d quite like to get JACK working for other, music-related purposes.

Pings (testing)