The $50 Ultimate Software Podcaster: the Amoeba-Dino-Skypus Rex...

Inspired by Adam Curry’sUltimate Podcaster” hardware, the speech he gave as he was inducted into the Academy Of Podcasters Hall of Fame , and a desire to join the podcasting world in true NoAgenda style, I decided to try to get a simple multi user podcasting software setup that would allow me to create a podcast with a few online colleagues, without the drudgery of having to have each person record their end of the conversation, followed by lengthy post production workflows...

For me, it was LIVE TO TAPE (well, mp3) or BUST...

Also, in true NoAgenda style, I also wanted to be able to feed in audio inputs from music, jingles or any web clips that people talking on a podcast might like to play as they come up in conversation...

Standing on the shoulders of giants, I started researching multi user Skype podcast setups and came across two:

  • The Skypesaurus built by the folks at TWiT; and
  • Luca Zorzi’s (LucaTNT) great write up of his Ableton Live based Skype-o-Saurus
  • Leo Laporte’s was a write off for me, as I don’t have any sound mixing hardware, and unfortunately Luca’s was a bust as well: I don’t have $900 for a copy of Ableton Live...

    I DID however have a $50 license for Rogue Amoeba’s Audio Hijack, and I figured with some tinkering, I could get the same setup working for no extra cash outlay...

    And behold, it works: The $50 Amoeba-Dino-Skypus Rex is born:

    Audio Hijack003

    Following is a write up on how I got it all working using:

  • Audio Hijack: $50 from Rogue Amoeba
  • Soundflower: Free from Rogue Amoeba
  • Skype Launcher: Free - I ended up downloading from Softpedia as I could not identify the original author to download from their site.
  • 4x Skype Accounts: Free - I created 4 different free skype accounts named podcast-A, podcast-B, podcast-C and podcast-D.
  • Step 1: Getting Multiple Sound Devices with Soundflower (hopefully Rogue Amoeba’s new super secret app: Loopback will help remove the need for all the Soundflower fuss.. Fingers crossed)

    First, install soundflower by following the instructions.  I have used version 1.6.6b from the link above.

    Now, this was by far the most fiddly part of the whole setup. Soundflower is kind of in a software “no-mans” land, and the steps listed in Luca’s tutorial (and the tool SoundBlossomer that he built to modify the configs easily) just didn’t work. What I discovered was this:

  • KEXT loading in OS X now requires signing of the KEXT before it will load;
  • The info.plist file that is included in Soundflower only adds 2 new interfaces, and we will need at least 8 for our 4 other podcasters
  • If you change the info.plist file, the KEXT will no longer load, as the signature for the KEXT is no longer valid.
  • My issued were reported on the SoundBlossomer github page and the author confirmed my assessment and validated that my workaround (detailed next) was the only way forward.

    To solve this, I had to enable developer mode for KEXT loading using the following command from the terminal:

    $ sudo nvram boot-args="kext-dev-mode=1"

    Once that was done and I rebooted, I could edit the info.plist file to add my 8 additional audio devices. My info.plist file is available here: https://files.app.net/7bjnwQwK-.plist

    Unload the soundflower kext that is running: (note, sudo commands will need your password to authorise):

    $ sudo kextunload /System/Library/Extensions/Soundflower.kext

    Copy the info.plist you downloaded from me into the right location:

    $ sudo cp Info.plist /System/Library/Extensions/Soundflower.kext/Contents/Info.plist

    Modify the permissions from the terminal and reload the kext:

    $ sudo chown root:wheel /System/Library/Extensions/Soundflower.kext/Contents/Info.plist

    $ sudo chmod 755 /System/Library/Extensions/Soundflower.kext/Contents/Info.plist

    $ sudo kextload /System/Library/Extensions/Soundflower.kext

    a86accd357f4f5fdf21537a895af370e

    Now, you should be able to launch the Apple Midi Device manager ( found in /Applications/Utilities/Audio MIDI Setup.app) 

    and see all the new Soundflower installed interfaces:

    Audio MIDI Setup001

    Step 2: Creating the Multi-In, Multi-Out interfaces

    We now want to create the “Mix-Minus” interfaces that will let us join up all our Skype Callers on different calls so they can hear each other without creating horrible audio loop backs.  The setup we are aiming for looks something like this:

    Slide1

    In the Audio Midi Setup Application, create 4 Multi-Output devices called:

  • A-out BCD-in
  • B-out ACD-in
  • C-out ABD-in
  • D-out ABC-in
  • The idea here is that

  • Skype Call A’s microphone will be output to B,C and D so they can hear caller A talking;
  • Skype Call B’s microphone will be output to A,C and D so they can hear caller B talking;
  • Skype Call C’s microphone will be output to A,B and D so they can hear caller C talking;
  • Skype Call D’s microphone will be output to A,B and C so they can hear caller D talking;
  • In each of the 4 x Multi-Output device, select the relevant outputs by clicking the “use” tickboxes:

    Audio MIDI Setup002

    Next, create a Multi-Output device called “Host-out ABCD-in”. This device is used to make sure the Host’s voice is sent back to all of the 4 other callers in Skype. Set this device up outputting to the A_in, B_in, C_in and D_in devices as follows:

    Audio MIDI Setup003

    One last device to create: something to grab all the output from all the calls so that we can record it. Create an “Aggregate Device” and name it “All Callers”. In this device, select the following devices:

  • Soundflower (2ch)
  • A_out
  • B_out
  • C_out
  • D_out
  • Audio MIDI Setup004

    Step 3: Create the Guest Pipeline in Audio Hijack

    Now that you have created these, it is time to crank up Audio Hijack and set up the guest pipeline.

    Open Audio Hijack and create a new Blank Session.

    Using the elements in the library, create your 4 guests in a pipeline:

  • Create an input for each caller, and select their relevant “A_OUT”, "B_OUT” etc interface;
  • Populate the pipeline with whichever filters / effects that you want to be able to use for each caller (I am using denoise, a 10-band EQ, a volume controller, a VU meter so I can see what’s happening);
  • Create an Output Device with the relevant Multi-Output device (so Caller A’s pipeline will go to A-out BCD-in for example);
  • Create an Output Device for your headphones so you can hear everyone on the call; and
  • Create a Output Device and link it to the “All Callers” interface.
  • Slide2

    Step 4: Create the Host Pipeline in Audio Hijack

    Now we setup *your* pipeline:

  • Create an input and select your microphone device;
  • Populate the pipeline with whichever filters / effects that you want to be able to use for yourself (again, I am using denoise, a 10-band EQ, a volume controller, a VU meter so I can see what’s happening);
  • Create two output devices and map each of them to the following respectively:

  • "Host-out ABCD-in”; and 
  • “Soundflower (2ch)”.
  • Slide3

    Step 5: Create the Music and Sound Effects Pipeline in Audio Hijack

    Now we setup the pipeline so we can play music, jingles or clips on the web:

  • Create an “Application” input for each of the apps you want to grab audio from. I am using:

  • Chrome
  • iTunes; and 
  • SoundByte (this actually costs money, I am just using the free version till I can find a free open source alternative - the free version exits after 10 minutes)
  • Again, select any effects or meters you want to be able to use for each input (Here I am using Volume and a VU meter so I can see what is going on)
  • Create “Ducking” filters and arrange them so that when you play the sound effects, it ducks music etc correctly. You can re-arange the elements to control what ducks over / under what.
  • Create three output devices and map them to:

  • “Host-out ABCD-in” so that your callers can hear the music, sound effects or web clips'
  • “Soundflower (2ch)” so it gets captured by the “All Callers” device for recording; and
  • “Headphones” so you can hear what is being played.
  • Slide4

    Step 6: Create the Recording Pipeline in Audio Hijack

    Now we setup the pipeline so we can actually record our podcast:

  • Create an Input Device and select “All Callers”;
  • Again, select any effects or meters you want to be able to use for each input (Here I am using Volume and a VU meter so I can see what is going on); and 
  • Create a “Recoder” Output device and set up your mp3 output.
  • Slide5

    And that’s it… so what are you waiting for: Go build it and make a dent in the Universe with your epic Podcast...

    oh, and while you are at it, you should totally subscribe to the NoAgenda podcast, also known as: The Best Podcast In The Universe...