Here at Pivotal, we know pair programming is great. We strive to pair 100% of the time.
Sometimes, a pair might want to work on something complicated by getting in the zone together – to listen to music while pair programming. (It’s best when your pair shares the same taste in music as you!)
Other times, a pair may need to answer a call from a remote pivot or client. They typically will want to do these things while also avoiding disturbance to the team and the rest of the people on the floor.
Still other times, one pair might have trouble hearing with the background noise on the floor, and want to use headphones to amplify their pair’s voice above the noise.
If you’re an aircraft pilot – or you’ve been in an aircraft with someone who is – you’ll have seen how well a plane’s headset system works:
– The pilot and co-pilot have microphones that send audio to each other’s headphones, so they can talk to each other at any time.
– There is a “transmit” button, which causes what both people say to be transmitted by the plane’s communications system on whatever channel is active.
– The pilot and co-pilot both hear the plane’s communications system through their headsets.
This walkthrough will set up something similar in software, which will let you and your pair wear USB headphones, adjust your volume individually, and both “transmit” to people you work remotely with. This setup is something you won’t know you need until you try it!
Stage 1 – talk to each other through your headsets
Following these steps will route the audio from one microphone to the other headset, and vice versa.
1. Plug in both pairs of headphones. We use Logitech G35 USB headphones for their great sound quality and convenient microphone mute button.
2. Download LineIn from Rogue Amoeba’s freebies page.
3. Extract LineIn and option-drag it to create a second copy. The copy will be called “LineIn 2″.
4. Open both copies of LineIn. Arrange them so they’re not on top of one another. Configure one LineIn to send audio from one left pair of headphones to the other, and configure the other LineIn to send audio the opposite direction.
5. Click “Pass Thru” on both instances of LineIn to start your headphone pairing setup.
6. You should now hear each other while wearing your headphones, which cancels out some of the noise on the floor.
This lets you block out background noise and deal with any hearing problems.
Stage 2 – music in the background
1. Open “Audio MIDI Setup” (via Spotlight with Command-Space).
2. Click the “+” icon at the bottom left and select “Create multi-output device”.
3. Select your new multi-output device on the left hand side.
4. On the right hand side, ensure only your two pairs of headphones have checkmarks next to them.
5. Right-click the multi-output device and choose “Use this device for sound output”.
6. Optionally, right-click the multi-output device again and choose “Play alerts and sound effects through this device”.
7. Open iTunes or your music playing program and make sure it is configured to output audio to the default system device.
8. Adjust the volume so it doesn’t drown you out, and enjoy your music.
9. If you find your pair is quieter or louder than you and want to change the mic volume, select the headphones you want to adjust. The “M” slider on the “Input” tab controls your microphone volume.
10. You’ll also notice the multi-output device does not let you adjust the volume the normal Mac way. If you want like your volume louder than your pair, adjust the “1” and “2” sliders on the “Output” tab for your headphones.
Great, now you and your pair can zone out.
Stage 3: Pair on remote calls
At Pivotal Labs we like to help clients and developers in other offices by joining remote calls. Pivots may use Screenhero to remote pair with them, or may join a Hangout or Skype call. The cross-headphone music setup forms a foundation for remote calling between pairs. In stage 3, you will combine both microphones.
(Side note: you may have read about an “aggregate device”. We don’t use the aggregate device because the two microphones become 2 separate input channels. Applications that use microphones assume a single input channel. So your remote person will only hear one microphone.)
1. Download and install Soundflower – we won’t be using its user interface, so you can Quit the icon in the menu bar.
2. Open “Audio MIDI Settings” again, right click “Soundflower (2CH)” and select “Use this device for sound input”.
3. Where you made 2 copies of LineIn in stage 1, option-drag again to make “LineIn 3″ and “LineIn 4″.
4. Open your third and fourth instance of LineIn and arrange the windows so they are not on top of one another. Use both instances of LineIn to send audio from each pair of headphones to “Soundflower (2CH)”. Click “Pass Thru” on both to start them sending audio.
5. Ensure your application – eg. Screenhero or Google Hangouts – is configured to use the default system device for both input and output. Note that Chrome doesn’t allow microphone access in Incognito mode.
6. You’re done – go make your remote call.
These instructions should only take a few minutes – it is worthwhile to invest time in an ideal setup because you typically work with remote people for an hour or more.
But be careful: developers wearing headphones can be detrimental in the long run so consult your anchor and PM to decide whether this suits your team and project.
If you need help ask in the comments. Enjoy your new headphone pairing setup!