Hijack your audio for complete control (MacOS)

I’ve had my eye on software by Rogue Amoeba for a while, but thought I’d try to find free alternatives instead. The end result? Don’t waste your time, and just buy their stuff instead. While this is a Mac solution, there are similar solutions for Windows, and I’ll look to post those soon (as many of us don’t own Apple hardware).

Rogue Amoeba s ‘Audio Hijack‘ software allows you to “record any application’s audio, including VoIP calls from Skype, web streams from Safari, and much more. Save audio from hardware devices like microphones and mixers as well. You can even record all the audio heard on your Mac at once”, and this even works for instrument inputs and piping the results through Skype for some remote ‘jam’ action.

While there Audio Hijack has many uses, I was specifically looking for one fix, for a rather annoying issue, that my friends and I have with Skype. You see, Skype only let’s you connect one input as the “microphone/input”, and will only select the FIRST channel of a multi-channel device as well. In my case, I wanted to ‘jam’ with a musician friend of mine, who lives 500km away – and we both needed to play instruments and hear each other, while having the ability to also talk. We could have tried other VOIP solutions, but as we also wanted video, and both had Skype already installed and begging to be used.

Love it or hate it, it’s undeniable that Skype is immensely popular, offers great performance (bandwidth-adaptive, low-latency), and is available on every platform you could probably name. Skype has also become a favourite for broadcasters as a video communication tool, so why not try to make it work? Skype’s inability to use multiple inputs and channels at once (i.e. multiple microphones for a panel of guests) is a pretty dire shortcoming, but surely there’s a fix? At at least for the Mac side of things, there is: Audio Hijack. 

Here’s the issue:

  1. The USB audio interface, that I use for my guitar, has multiple channels. Unfortunately, the primary 1/4″ TS guitar input appears as Channel 2 on the device, and a combination XLR/TS jack is channel 1. Skype, at the time of testing and writing, doesn’t offer any way to aggregate, mix, or select channels from multi-channel devices, and simply selects the first channel automatically; as it’s obviously designed for a single microphone setup. With this configuration, I couldn’t send my signal across Skype even if I wanted to… as it was selecting the wrong channel, and I could not adjust that with my device OR in Skype.
  2. As I also wanted the ability to speak without changing input sources all the time, I needed a way to add a second input, perhaps for a desk microphone. As Skype only allows you to select a single input device, there was also no solution if I decided to use two microphones (one for instrument, and one for voice), as I would only be able to send on device at a time and would need to constantly switch the input from the Skype preferences. A horrible solution. Sure, I could try to use the same microphone for both instrument and voice, and mic up my amplifier cabinet instead of going direct, but that would introduce some annoying issues with the two levels of the sources, and would be hard to position correctly. Additionally, I was also hoping to achieve a silent solution so I didn’t need to run my amplifiers at all, saving me from the wrath of my wife, so there’s also that to think about.
  3. “But what about creating an aggregate audio device?” I hear you ask. Unfortunately, you can’t solve the issue above with aggregation, because Skype will only let you select a single input source, and will still only pick the first channel from the device. So, even if you created an aggregate device using something like the built-in Audio/MIDI tools within OSX (which are also quite high latency), You still need a hardware or software mixer to bus them all into a single audio input for Skype to use.
  4. And just to add further complication to the solution, there were also times where I knew we wanted to ‘jam’ to other bands tracks, so I also needed a way to either synchronise tracks across remote hosts, or a way to ALSO send a nice, clean, copy of the song across Skype as well. This is yet another “input” that would need to be witched to, or aggregated and mixed… but all the solutions I came up with would allow me to send the audio remotely, but not split it to hear locally at the same time.

 The solution

  1. Create a virtual audio device to handle the routing of signals from different sources. When I initially set this up, I installed and used the SoundFlower kernel extension for OSX (also by Rogue Amoeba). This is a free add-on that simply creates a virtual audio interface that you can use in the Skype preferences as an input, and is where you can bus all of your various signals. Importantly, this software is quite dated, and although I managed to get it working on El Capitan, it is not listed as compatible with versions of OSX above 10.4. However, as luck would have it, Rogue Amoeba looks to created a new-and-improved solution, which they call Loopback. Sure, it’s no longer free, but it will probably work a lot better than the old SoundFlower install.
  2. Install Audio Hijack. This is a US$49 tool that provides you with simple drag-and-drop modules to build a signal path. You can select various input devices, add effects and controls to the signals, send the outputs to one or more output devices, and also choose to locally record what happened (from any number of inputs, or as a complete mix).
  3. Create a new project in “Audio Hijack”.
    • Drop in an input block and set it to the desired music player (iTunes, in this case), then drop in a volume control for level adjustment in the mix, and then drop in two audio outputs: One for the USB interface I will have headphones attached to (monitoring and Skype output), and one to output to the SoundFlower (or Loopback) device we installed earlier.
    • Drop in additional input blocks and set those to the various inputs required. In my case, I had two: The USB interface for my guitar, and the microphone that I was using for voice communications. Drop in more controls, such as EQ, volume, or controls to select individual channels from the input devices, then output those to the SoundFlower device as well.
    • If you want to record what you’re doing, you can attach an audio-writer output block to each and any chain. I like to send my guitar signal, and the combined guitar signals (from my mates output as well as my input) to FLAC for fun.
    • Hit the “Go” button and watch all of the UI light up with signal paths.
  4. Now open up Skype and set SoundFlower (or Loopback) as the single input device, and the USB interface as the speakers/output. That’s all there is to it.

Now, your live iTunes track, and live guitar/instrument, and voice microphone, will all be sent to the remote host. Their response – which is surprisingly low latency – will come back through Skype and into your headphones via the USB interface (and it’s important you’re both wearing headphones… to avoid feedback). And together you all make music: Quietly, as everything is digital and not running through amplifiers. And the best part is, if you’re inspired and produce an amazing riff or solo, the output block is saving it as a FLAC for later review!

This solution is great for working around Skype input limitations, and could potentially let a panel of people perform a Skype call without crowding around a single microphone (or requiring expensive mixing desks with multiple microphone inputs). It allows you to perform aggregation, mixing, bussing, and everything you need, while giving you controls and exports over each device and the ability to live record the entire output. All for US$49.00 (Loopback costs extra, obviously).

NOTE: And yes, you can use this to rip audio from websites by setting Safari or Chrome as the input source, and by using a sound writer output… not that I tried that, because that would be bad. Don’t do that.

Comments are closed.

Create a website or blog at WordPress.com

Up ↑

%d bloggers like this: