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.

26 Comments:

  • Wow, that took too long didn't it? :)

    By Blogger maaarco, at Thursday, January 19, 2006 8:00:00 AM  

  • Cheers! Bloody brilliant, mate. You're a smarter man than me and I'm all the better for this little jem.

    By Anonymous Anonymous, at Friday, January 20, 2006 3:47:00 AM  

  • You are my hero!

    By Blogger mikentosh, at Friday, January 20, 2006 8:10:00 AM  

  • There is also this, an 8 channel USB mixer for only $150 if you need more than 2 inputs...

    http://www.sweetwater.com/store/detail/MultiMix8USB/

    By Anonymous Anonymous, at Monday, January 23, 2006 11:41:00 AM  

  • If you'll notice in the Notes section, I mention how only 4 of the 16 input channels are in use. But Garageband can only record on 8 input channels at a time. You can use 4 more channels from Soundflower to capture audio from applications like Skype and DVD player, etc. If you're really short, you can gain another 2 channels in Garageband by recording the audio in only one channel (it's mono anyway), but sometimes it's nice to have the two channels to play with.

    By Blogger Temple, at Monday, January 23, 2006 1:16:00 PM  

  • Nice but to complicated for your application i think.
    Try:

    1) Use Audio_Midi_Setup to create an aggregate device (command-shift-A) from your two headset devices.

    2) use this new "virtual" device in GB as an input device.

    regards Hein Blöd

    By Anonymous Hein Blöd, at Tuesday, January 24, 2006 2:06:00 AM  

  • I looked into that. As I mention in the notes, using Audio MIDI Setup, you can combine the mics (one channel each only), but you cannot combine the headphones. At most you can use only 2 of the 4 speakers of the two headsets. You can't get even mono sound output to both speakers on the two headphones, let alone the stereo that this method allows.

    By Blogger Temple, at Tuesday, January 24, 2006 9:29:00 AM  

  • I thought, that this could be achieved by using the "Configure Speakers" option in AMS cause i have done something similar with 2 M-Audio 410 some weeks ago. Not for use in GB but in Logic.
    btw. have you installed the Developer tools? There is a nice little program called AU Lab which is worse looking at it.

    By Anonymous Hein Blöd, at Wednesday, January 25, 2006 5:41:00 AM  

  • Yeah, I looked at that. But I found that you can only get 1 channel to map to 1 speaker. You can't get the Left channel to map to speakers 1 and 3 though. For only one headset, it would do the trick nicely, but Garageband can already handle 1 headset. I'll look at AU Lab, and see if I can get it to work better. Thanks for the tip.

    By Blogger Temple, at Wednesday, January 25, 2006 11:14:00 AM  

  • Thankyou for an interesting article. Some of the sound limitiations of Mac inputs and outputs can be quite frustrating. (If anyone can figure out how to send sound to multiple sound devices at the same time (in particular to external speakers AND Griffin's RocketFM) please let me know!)

    By Blogger special_k, at Wednesday, January 25, 2006 3:48:00 PM  

  • You should be able to use Audio Hijack and Soundflower. Send the output from Garageband to Soundflower (2ch) as described above, then in Audio Hijack Pro, set up any number of actual sound devices (including external speakers) to play that sound coming from Soundflower (2ch).

    By Blogger Temple, at Wednesday, January 25, 2006 3:55:00 PM  

  • You might want to grab and install Apple's Xcode development tools from http://developer.apple.com/tools/xcode

    After installing look in /Developer/Applications/Audio/ for AU Lab, as in Audio Unit lab. I'm no audio expert but it looks like it might provide a more general toolkit for audio hookups.

    By Anonymous Dave, at Wednesday, January 25, 2006 7:06:00 PM  

  • Hein suggested AU Lab too. I checked it out last night, but didn't have any success. For the Logitech USB headset, as well as the Soundflower 'devices', it wouldn't recognize any sound input abilities. It would only allow me to configure the audio input when the default built-in audio out was selected. This could be because it won't work with my Logitech headsets (or the fake Soundflower devices), though. If anybody has more luck send along an email: technologicalterror•hyperdrive.ca

    By Blogger Temple, at Thursday, January 26, 2006 10:45:00 AM  

  • the problem might be with USB iteself.

    firewire has explicit (pro) support for audio.

    are there any fw headsets?

    better yet, it would be nice if there was a bluetooth solution!

    By Anonymous Anonymous, at Friday, January 27, 2006 6:54:00 AM  

  • would this work in garageband 2

    By Anonymous Anonymous, at Thursday, February 02, 2006 6:47:00 PM  

  • Can you provide any suggestions about putting this together to record skype on two separate tracks?

    By Anonymous Anonymous, at Sunday, April 23, 2006 11:05:00 AM  

  • Your instructions were great for hooking up two USB headsets to one computer. My podcast is working very well. However, I tried using more channels to add in another person using Skype and I was unable to do it. Can you explain in more detail how to add that in?

    By Blogger Thomas Chen, at Friday, February 02, 2007 5:39:00 PM  

  • Here is a good website that shows how to setup Garageband with two USB mics with pictures:

    http://thedudesays.blogspot.com/2007/01/podcasting-with-two-usb-mics-in.html

    By Anonymous Anonymous, at Wednesday, February 14, 2007 8:40:00 PM  

  • I came across this article and believed it to be the only way. Thing is, Audio Hijack Pro isn't free to use for any longer than 10 minutes, SO I made some of my own enquiries and Mac explains how...

    You need to aggregate the audio:

    http://www.apple.com/pro/techniques/aggregateaudio/

    By Anonymous TDP, at Wednesday, July 16, 2008 3:58:00 AM  

  • Dude, thanks!

    The aggregate device everyone is talking about works only part of the time since you need to have distinctive devices. If you have two of the same device or if both use the same driver, it gets messy.

    This solution worked 100%.

    Thanks!

    By Anonymous Anonymous, at Thursday, November 06, 2008 7:21:00 AM  

  • hi,You have a very good blog that the main thing a lot of interesting and useful! usb protection , thanks

    By Blogger LokIT, at Thursday, October 21, 2010 4:51:00 AM  

  • This was really helpful!! I use two ESI UGM96 external sound devices and can now - thanks to your blog - record 4 instruments at once!

    Cheers!

    By Anonymous Anonymous, at Wednesday, November 10, 2010 11:52:00 PM  

  • This is a really great article.

    Could you please explain how would you configure audio hijack pro in order to add a skype conversation on a separate track in garageband?

    Thank you immensely.

    By Anonymous Grillo, at Sunday, December 19, 2010 1:48:00 PM  

  • No entendí varias cosas por las sig. razones:
    1-no capturo ni un ápice de tech.
    2-no hablo tanto inglés
    3-ver anteriores 2.

    De todas formas, quería dejar expreso que esas canciones que ensamblaron son geniales.
    succeses from Argentina! (in America's south, or would you prefer "South America"?)

    By Anonymous 1another, at Wednesday, June 22, 2011 1:52:00 PM  

  • I am obliged for the Blog post. Really thank you! Keep writing.

    Tactical headsets

    By Blogger SysDo, at Sunday, October 27, 2013 11:38:00 PM  

  • You have a very good blog that the main thing a lot of interesting and useful content you write here.Its very informative post.Thanks for sharing.

    By Anonymous Milton, at Friday, October 14, 2016 11:36:00 PM  

Post a Comment

Links to this post:

Create a Link

<< Home