Balancing Audio in Software

March 6th, 2022
music, tech, whistling
A few months ago I ported my whistle controlled synthesizer to the Raspberry Pi. I configured it with mono output, and ran it through a DI box to get a balanced XLR output I could send to a sound board. I realized a few weeks ago, however, that I don't actually need a DI box, and I can balance the audio in software. Now that I've made the change I wanted to write about how it works.

To send an audio signal, you need two conductors: the signal and a reference (ground):

This works fine, unless you get radio frequency interference. There's energy in the air, from intentional broadcasts or noisy devices, and the weaker your signal or longer your cable the more it will shift the signal:

There are a few different technical solutions, but the most common one in audio is to use a balanced signal. In addition to our signal, we add an "anti-signal" which is the same signal but reversed:

Instead of interpreting the signal relative to ground, we now interpret it relative to the anti-signal. Absolute magnitude is unimportant, what matters is the delta. Now when we get interference, it still shifts our signal, but it makes an almost identical change to our anti-signal, and the difference between the two signals is almost unchanged:

Normally you create the anti-signal with a transformer, in a DI box, but my software already has access to stereo output. If I want to send X, I can write X to the left channel and -X to the right. With a 3.5mm to 1/4" TRS cable I can be as far as I need to be from the board without worrying about interference.

(Do be careful not to use a 3.5mm to XLR cable: you need to connect to the mixer's "line" and not "mic" input. The latter often will provide "phantom power", which is designed to feed microphones power backwards, through their output. The soundboard provides +48V to both the signal and anti-signal pins, relative to ground. This could break your sound card, since that's a lot of voltage to something that was probably not designed to receive it. You might think you could turn off phantom power on inputs that don't need it, but on the (cheaper) mixers you would typically see at a contra dance or bar there is typically one switch for the entire board.)

Comment via: facebook, lesswrong

Recent posts on blogs I like:

Development RCTs Are Good Actually

In defense of trying things out

via Thing of Things March 25, 2024

Clarendon Postmortem

I posted a postmortem of a community I worked to help build, Clarendon, in Cambridge MA, over at Supernuclear.

via Home March 19, 2024

How web bloat impacts users with slow devices

In 2017, we looked at how web bloat affects users with slow connections. Even in the U.S., many users didn't have broadband speeds, making much of the web difficult to use. It's still the case that many users don't have broadband speeds, both …

via Posts on March 16, 2024

more     (via openring)