Technological Terror

Wednesday, January 18, 2006

Podcasting in Garageband Using Two USB Headsets

Introduction or: How I Wanted to Become a Rich and Famous Podcasting Celebrity

I've been meaning to hop on the podcasting gravy train for several months (thanks originally to Dawn & Drew), but have been too lazy to actually do anything about it. Well, new with iLife '06 is the Podcasting Studio built into Garageband '06 (aka Garageband 3). I watched the keynote address, and checked out the previews on apple.com, and said to myself: "I can do this. More importantly, I can do this easily." Garageband nicely sets up a male and female vocal tracks, a podcasting metadata track, and even a couple jingle and effects tracks. About the only thing it doesn't do is come up with witty banter.

With visions of pod-stardom dancing in my head, I picked up a couple USB headsets (Logitech Premium USB Headset 350), rushed home and plugged them into Garageband. That's when things went sideways. It turns out that Garageband can only accept input from one audio device, and likewise can only output sound to one audio device. While it can accept input in up to 8 audio channels, not many people out there have a multi channel USB audio mixer.

After googling around for quite a while, I came to the conclusive -er- conclusion that it was not possible to podcast with two USB microphones in Garageband without some very expensive external mixer. It was possible to do with the regular stereo headsets, but again only with an iMic and a few Y-adaptors.

Fortunately, I dug deeper and after a few hours came up with my own solution; I discovered that yes, it is possible to use 2 USB headsets. Further, you can playback your Podcast in proper stereo on both headsets. Read on for the 6 easy steps.


Step 1: The Mise en Place

Assemble and install the following components:
  1. OS X and iLife '06
  2. 2 USB Headsets or Microphones
  3. Soundflower 1.1
  4. Audio Hijack Pro 2.6.4
  5. Stinky Cheese
  6. Salty Crackers

Step 2: Setup Audio Hijack Pro

Remember when I said Garageband can only accept sound input from one audio device, but that device can have multiple audio channels? Well, Soundflower is a swell little hack that emulates two brand new audio devices: a 2 channel and a 16 channel device. Audio Hijack Pro is what's going to map the microphone and headphone of your USB headsets to the channels of those devices. For 2 USB headsets, you're going to need to add 6 Hijack sessions: 2 sessions for the 2 microphones, and 4 sessions for the 4 speakers (complicated huh?).

Let's start with the microphones. In Audio Hijack Pro:
  1. Create a new session and rename it something creative like: "Mic 1".
  2. In the dropdown under Audio Source, select "Audio Device".
  3. In the dropdown to the right of Input Device, select the first of your USB headsets.
  4. In the dropdown to the right of Output Device, select "Soundflower (16ch)".
  5. Click the "Advanced" button.
  6. Leave the Input Device Settings set to "Default", but under Output Device Settings, change the Left Channel to "1" and the Right Channel to "2".
  7. Hit "OK".
  8. Repeat the above steps for the second microphone ("Mic 2"), but select the second of your USB headsets as the Input Device, and set the Left Channel to "3" and the Right Channel to "4".


Alright, we've now got both of our microphones set up. Next we configure it so that both headsets give us stereo sound output from Garageband. Again in Audio Hijack Pro:
  1. Create a new session and rename it something creative like: "Monitor 1 Left".
  2. In the dropdown under Audio Source, select "Audio Device".
  3. In the dropdown to the right of Input Source, select "Soundflower (2ch)" (not 16ch).
  4. In the dropdown to the right of Output Device, select the first of your USB headsets.
  5. Click the "Advanced" button.
  6. Under Input Device Settings, change the Left Channel to "1" and the Right Channel to "1" as well.
  7. Under Output Device Settings, change the Left Channel to "1" and leave the rest set to "Default".
  8. Hit "OK".
  9. Repeat the above steps for the "Monitor 1 Right", but instead of using channel "1" use channel "2" for all three that you set above.
  10. Repeat the above steps for Monitor 2, the only thing different is that you'll be using the second of the USB headsets as your Output Device for the Left and Right Monitor



Finally, you have to set all 6 sessions to start hijacking the audio. Do this by selecting them in turn and pressing the "Hijack" button.

Half-way there, but that was hardest part. Time for a break.


Step 3: Eat Stinky Cheese on Salty Crackers

Mmmm... The only thing better than cheese is stinky cheese.


Step 4: Setup Garageband

Almost done, wipe the crumbs off your hands and fire up Garageband. Now that we've set up the two mics to map to 2 input channels each on the Soundflower (16ch), and the left and right earphones of each headset to map to the appropriate left and right channels of Soundflower (2ch), we're left with a single device for input (16ch) and a single device for output (2ch). This is coincidentally just what we need for Garageband.

Now it's time to configure Garageband to use those devices ( If you have a problem with this next step, see the Notes section below):
  1. Fire up a Garageband Podcast and open the Preferences.
  2. Select the "Audio/MIDI" pane.
  3. Set Audio Output to "Soundflower (2ch)".
  4. Set Audio Input to "Soundflower (16ch)".


Garageband is now configured to output its audio (which is 2ch stereo) to the Soundflower (2ch) audio device. This device is actually just a pointer to the left and right earpieces to the USB headsets, so now Both headsets will be able to hear Garageband's stereo output. Also we've set GB to listen for input on the Soundflower (16ch) device. We've configured this device so that the mic on the first headset is mapped to channels 1 and 2, and the mic on the second headset is mapped to channels 3 and 4.

The final bit of Garageband configuration is to specify which channels of the input device map to which voice tracks:
  1. Select your first voice track, we'll call it "Mic 1".
  2. Open the Track Info pane (Command-I)
  3. To the right of Input select "Channel 1 & 2 (Stereo)".
  4. Repeat the above steps for the second voice track "Mic 2", but this time select "Channel 3 & 4 (Stereo)".

That's it, you're now ready to record using both USB headsets. You could enable the monitor for those vocal tracks, but you'll hear an echo, as there's a lag between the input and the output (even with none of these changes and just using a single headset). Now on to the final step.


Step 6: Profit

This is the final step to any plan worth a damn. I admit I'm a little hazy on this step myself (though you can help by clicking a couple ads above). How exactly you profit is up to you, but drop me a line if you have any good ideas.


Notes

Here's a list of issues I encountered and pointers I thought of that hopefully you won't have to google all over the damned interweb to figure out:

There is a utility built into Mac OS named "Audio MIDI Setup" in which you can create aggregate devices. While playing with this I found it was possible to create an aggregate device for the two microphones, I was unable to aggregate the headphones. The best you can get is to route one channel to one speaker. So, I could have the left sound out go to one speaker on one of the headphones, and the right sound out go to one speaker on the other set of headphones. You can't even get mono output on both speakers of the two headsets, let alone stereo that the above method allows. If somebody's figured a way to do this, let me know.

You'll notice that you're only using up 4 of the allotted 8 channels that Garageband can record at one time. You can easily setup some more hijacking sessions on channels 5-8 of the Soundflower (16ch) to hijack sounds from sources like: a peanut gallery mic, Skype, DVD Player, Safari, etc. Also, if you don't have a stereo mic or don't want to record two channels for your voice tracks, you can free up another 2 channels that GB can record, by using only 1 channel for each mic. You can do all sorts of fun and obnoxious things with two channels for each voice though.

I ran into a problem with my Logitech USB headsets and Garageband where I couldn't open the GB preferences while they were connected. I fiddled for a while and had intermittent results, but I found that if I couldn't open the preferences, quitting GB, removing the headsets and restarting GB worked. After the preferences were set, I could plug the headsets back in and all was well. It's annoying though, so I hope Apple addresses the bug at some point.

Another problem that drove me crazy for an hour or so was with the Logitech headsets. For some reason, occasionally while plugging them in and out, the headphones on the headsets would become muted. The system volume was up, the output device volume in System Preferences Sound pane was up, but nothing was being output. I found out that the Logitech device can become muted even though the computer thinks it's not. The solution is to mute and then unmute the Logitech USB devices in the System Preferences Sound pane. Arghhh.

You'll find that the unregistered version of Audio Hijack Pro will only hijack for 10 minutes before overlaying the sound with static. It is fairly cheap to register, and you'll get a lot of value out of looking so much damned cooler with your lean-and-mean podcasting setup, than those people with the iMics/Y-Splitters/etc.

Bees will wait to sting you, if you run into a lake. You're better off running through tall grass or bushes.

Read more...