How To Connect A Google+ Hangout-On-Air To a Conference Bridge: Part 3 – VoiceMeeter

The prior two installments in this series dealt with interconnecting an audio conference bridge and a Google+ Hangout-On-Air. The Hangout-On-Air allows a limited number of interactive participants with no connectivity to the PSTN. The audio conference allows audio-only participants, including both access via the PSTN and direct SIP connections. The combination allows more people to participate, which is ideal. The fact that it supports HDVoice is also great.

Nice as that solution is, it hasn’t addressed another facet of how we’ve been doing VUC calls. I’ve been struggling with an arrangement for adding production audio to the call along with my own participation. By “production audio” I mean things like a pre-recorded opening or closing, or anything else that might enhance the presentation.

In recent calls I’ve been making more use of Wirecast to add extra production value to the video stream. In particular, #VUC478 on 2600Hz Mobile took advantage of an additional camera and flexible shot selection in order to see the demo using the Nexus 5 that they had sent me for the call.

Wirecast is basically a software implementation of a television production switcher. It can accommodate a variety of sources, allowing clean switching between sources on-the-fly. It also allows for some compositing and effects. It can roll in prerecorded video and audio from files on disk.

One of it’s more significant function is the ability to act as a “virtual webcam.” That allows it to be used to put user defined video sources into apps like Adobe Connect,  GotoMeeting HDFaces, Hangouts and Skype….any app the would access a webcam. This has increased the scope of its use dramatically since v4.0 was released in the fall of 2012. It’s a really handy tool.

Wirecast-VUC481

As handy as Wirecast is, it doesn’t deal with audio especially well. It’s adequate for one-way applications, like sending a stream to YouTube, LiveStream or Justin.TV, amongst others. It’s plainly not designed to handle the sort of bi-directional audio that occurs in video conferencing, like a Hangout.

In particular, it’s not at all capable of the sort of mix-minus feeds that make Hangouts and conference calls possible. This is why I’ve been having some trouble rolling a live intro sequence into the call. At times everyone else on the call can hear it except me! Given that the sequence is a set of Wirecast scenes (pictured above) that are manually advanced to the audio read not hearing it is a problem.

This past weekend I finally found some time to evaluate a solution to this problem. I’ve tapped Vincent Burel’s VoiceMeeter software-based audio mixer to add the mixing/routing capability that Wirecast lacks. VoiceMeeter is built atop the VB Virtual Audio Cable drivers that I previously used to connect ZipDX to the Hangout.

VoiceMeeter is a virtual audio mixer with three inputs;

VoiceMeterInputs

  • Hardware Input #1 -  is most typically the local microphone, in my case the microphone on my Sennheiser DW Pro2 headset
  • Hardware Input #2 -  can be another local hardware source, but can just as easily be a virtual audio cable with the stream from the Hangout
  • Virtual Input #3 -  is the audio output of the PC, in the case the stream from Wirecast

It also has two outputs;

VoiceMeterOutputs

  • Hardware Output #A1 – feed to the earpieces on my Sennheiser DW Pro2 headset
  • Hardware Output #A2 – unused at present

The author initially intended the app to be used by podcasters who may need to record from two local microphones and add some music or effects from the PC. The tutorials show the Hardware Inputs as typically used by USB microphones or headsets.

The magic in this little 3 x 2 mixer is the ability to send your voice to the hangout, send the hangout to the headset, but not send your voice to the headset, and finally, send PC audio to both the Hangout & the headset. The schematic of the signal flow is as follows:

Headset-Hangout-Wirecast-Flow

To use it with a Hangout the Hangout audio needs to be routed into the second hardware input by way of a virtual audio cable. This is why in VoiceMeeter you see input #2 set to “Cable Output (VB-Audio Virtual Audio Cable)”

The following screen shot show the settings appropriate for the Hangout audio;

Hangout-VoiceMeeter-IO

 

If you want more explicit details about VoiceMeeter I recommend taking a look on YouTube as there a couple of nice video tutorials available.

After a few brief test calls I’m happy that this arrangement works well. It allows me to do what ever I like with the video in Wirecast, including adding a music track for the opening. I can hear the production audio and the Hangout clearly, in fact with better level control that was previously possible. My audio is passed to the Hangout cleanly, without coming back at me as echo.

In theory there is a way that I might be able rejig this arrangement to also perform the cross-connection with ZipDX. However, I’ve found that Wirecast and the Hangout plug-in are about all that my AMD FX-6100 based desktop can handle. While it might be nice to have control over everything in one place, that’s probably putting too many eggs in one basket. Further, it would mean that when someone was speaking on ZipDX the Hangout would see my video, which is also less than ideal.