As a telecommuter, I love the Internet, for obvious reasons. Strangely, though, the teleconferencing system that IEEE Spectrum editors have long been using is just one step up from a speakerphone. It only provides audio—and crummy audio at that. As a consequence, every editorial meeting I “attend” is a painful experience: Imagine trying to pick out a single voice at a noisy restaurant, in the dark, while wearing earplugs.
A partial solution is to teleport into meetings using Skype. Skype’s video capability gives you a window on what’s going on at the other end, which of course is nice. But the real advantage is that it provides much higher bandwidth audio than you get over phone lines. That makes picking out voices in a crowd much easier.
Using Skype on a laptop to attend a meeting has some shortcomings, though. One is the webcam’s field of view. Don’t expect to take in much of the room this way. Another is following individual voices, which will vary in volume and quality with how far away the person is from the computer’s microphone. Both difficulties could be overcome by connecting and controlling multiple microphones and webcams. And it turns out that with a modest bit of hacking, you can do just that.
The key is that Skype conveniently provides an application-programming interface (API). With it, another application can access many of the Skype client’s functions, including its ability to select which microphone and webcam are active.
My first attempt to use the Skype API to pull together a cheap-but-effective teleconferencing system used 10 separate webcams, each with its own microphone. I wrote a Windows program in C#, which I dubbed MicPicker, to send short text messages between two computers during a Skype session. Based on what message is received, this software selects which webcam and microphone the Skype client uses. (But use this version of Skype—later ones may have trouble switching webcams.) So with this program running at both ends, a remote attendee can choose which webcam and mic will be live during a meeting, changing that selection on the fly to follow the conversation.
Buying 10 webcams can get pricey, though. I wanted the system to be inexpensive, but I also wanted the webcams to take in as much of the scene as possible. After hunting around, I discovered one that filled the bill: Creative’s Live Cam Notebook Ultra (model VF0130). Its field of view is 85 degrees (most are 70 degrees or less), and I was able to purchase a bunch of them for US $10 each on eBay.
This particular model is no longer being manufactured, so buying them en masse, as I did, might be difficult. But it turns out that this is not a problem, for the simple reason that plugging 10 webcams into a computer doesn’t work—at least it didn’t with the computers I tried. Apparently webcams consume too much computational oomph—three or four seem to be the practical limit.
So I scaled the design down to two webcams, along with eight separate USB microphones. The microphones I purchased (Dynex USB Microphone DX-USBMIC) retail for $25, but they can be had for a lot less on eBay (I paid $8 to $12 each).
Of course, you’ll rapidly run out of USB ports if you try hooking eight mics and two webcams into a laptop. But external USB hubs are cheap, too—especially if you get the same ones I did: just under $5 each on Amazon for a seven-port no-name USB hub. These units were probably selling for so little because they come with awkwardly wimpy power supplies. That was no worry to me, though, because I sent 5-volt power to all the USB peripherals using a separate supply (the NES-35-5 supply from Jameco Electronics for $23), which I housed in a small aluminum enclosure (CMC11949-R, also from Jameco, for $12).
To mount everything neatly and keep cable clutter to a minimum, I built four slender wooden platforms to support the microphones and webcams. In an attempt to give them something of a Danish modern look, I smoothly rounded the corners and covered them in white birch veneer. I mounted one microphone at each end of each platform and affixed a webcam in the middle of two of them, putting those at the far ends of the conference table with the others spaced between. I stuck one USB hub in the hollow interior of each platform, daisy-chaining one hub to another so that ultimately there was only a single USB cable plugging into the computer, in this case a small netbook.
The webcam’s field of vision is wide enough to allow two of them to cover the entire room. In fact, a single one shows me everything except the people who sit behind or alongside it. And with eight microphones, each attendee is always reasonably close to one of them. From those webcam views, it’s easy to get a feel for who is sitting where and then switching to the best-situated mic—well, it’s easy if you know which mic is which, and that turns out to be the biggest challenge.
With the help of a confederate on-site, I can figure things out easily enough. But if somebody rearranges my wooden boxes between meetings, I get a little lost as to which microphone is placed where. Fortunately, the mics are all sensitive enough, so it’s not necessary to choose the optimal one. And trial-and-error switching from one to another soon reveals which mics work well enough to hear different people. (I’ve even added little text boxes to the microphone-selection radio buttons in the software so that I can easily note who is sitting near each mic.)
It’s a hacker’s teleconferencing solution, for sure, but it works surprisingly well—gobs better than the telephone-based unit my colleagues and I have long suffered with. And with Skype’s new group-calling capability, other off-site editors can also enjoy the new system during staff meetings. My colleagues may gripe about always having to put up with my choices of which camera and microphone is active at any given moment—I have to be in control, because the MicPicker software requires a Windows machine, and the other editors use Macs. But if they want to direct the show, they’re free to: They’ll just have to study up on Skype’s API for OS X and do their own hacking.