At my desktop computer, I switch back and forth between speakers and headphones several times per day, depending on what I’m listening to and whether my toddler is asleep across the hall. Obviously I could just plug/unplug the headphones as needed, but that’s a lot of cycles on the audio jack, and leaves me scrambling for the end of the headphone cord every time I want to plug it back in. Plus, I run my headphones through an external amplifier, so there are a lot of cords involved and some of them are pretty buried. For a long time I handled this switch in software – I ran my speakers from the motherboard audio and my headphones from a PCIe sound card. Some drivers will even let you soft-assign jacks to different outputs, which could save you the second sound card. Then switching devices is just a matter of two clicks in the OS system tray or menu bar.
Software switching works pretty well, but it has a few quirks. Most obvious is that it’s hard to switch devices while you’re running a full-screen program like a game. And even once you switch, some programs won’t actually recheck that setting until they’re relaunched. Finally, I’ve been doing a lot of video conferencing and voice chatting lately, and a lot of those programs completely ignore the system-wide setting and provide their own device selection, which means poking through unfamiliar menus.
In the end, I decided to make my own switch box in hardware.
This is a silly project. You can buy these things on Amazon for $10 or $20 and you’ve got your choice of 1/8″ TRS or RCA jacks, with or without a volume knob, with anywhere from 2 to 8 outputs. But if you don’t immediately see the appeal in spending all day building something you could have bought for less money, I can’t explain it to you. Besides, I wanted a stereo/mono switch for those times I encounter a low-quality video on YouTube with all the audio on one channel, and none of the commercial models offer that.
I bought a small aluminum project box that happened to match one of my amplifiers, and got to work making it fancy.
First, I laid out the front and back panels in Inkscape so I could easily transfer them to the laser cutter. Our 45W CO₂ laser can’t cut aluminum, but it can usually bleach the anodizing to make very crisp markings.
I started with a test etch on a piece of plywood so I could make sure I had the settings and positioning right.
Once I got an engraving path I liked, I stuck the aluminum panels in the laser and… nothing.
Whatever dye was used in this anodizing proved very resistant to the laser. Even after an agonizingly slow full-power pass, there was a shadow of an image too faint to even photograph.
Instead, I wrapped the panels in blue painter’s tape and burned the labels through that. Then I lightly sandblasted the mask.
I didn’t get good photos of this process, because I was frustrated and scrambling for ideas, and wasn’t really sure it would even work.
After peeling off the tape and giving them a quick rinse, this is what I ended up with.
Not bad at all.
Now for the electrical. You can sometimes get away with converting a stereo signal to mono by just tying the left and right channels together, but this can behave unpredictably when the channels aren’t producing the exact same waveform. It’s better to use a resistor network to make sure the load is always safe for the equipment; I based mine on the summing design here.
Because the resistor network adds a small amount of attenuation, I sketched out two possible circuits. The first option bypasses the resistor network in stereo passthrough, ensuring there’s no loss in quality for the setting I’ll use most often. The second version always leaves the resistor network in place so there’s no change in attenuation when switching between stereo and mono – I understand this can sometimes be useful in audio mastering. It also requires one less switch contact (though you can trim the other circuits down as well, if you don’t insist on switching the ground path like I did – I figured this would help avoid any issues with ground loops). If I had used this option, I would have wanted to make sure my resistors weren’t inductive or capacitive. I understand metal film resistors at these values should be okay, but I didn’t look into it very far.
It’s worth noting that this only works on line-level signals, before the amplifier. If I used my computer’s audio output to drive headphones directly, I would probably have needed to forgo the mono summing and just wired up the A/B switch.
I ordered some isolated RCA jacks and some 3PDT switches, and started hooking everything up. The actual values of the resistors aren’t at all critical, but it’s very important that the left and right channels are well matched. My stash of cheap “1%” resistors are more like 2% at best, so I used a multimeter to pick the closest matching pair I could find.
And here’s the fully assembled box. I laid out my panels based on some other audio equipment I had sitting around, but it turns out my RCA jacks in particular had hexes and washers that took up a lot more space than I’d accounted for and covered my labels. This is a minor annoyance at this point, and it’s on the back panel where I don’t see it. I’ll probably replace the panel eventually, but it’s fine for now.