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.)

Referenced in: Embedded Whistle Synth

Comment via: facebook, lesswrong, substack

Recent posts on blogs I like:

Donation recommendations for effective altruists (July 2026)

My recommendation for donors who are American citizens or permanent residents is that they donate directly to high-value political candidates.

via Thing of Things July 22, 2026

Let's Taboo the V-Word

Read this post on Substack.

via Home July 12, 2026

Agentic test processes, LLM benchmarks, and other notes on agentic coding from Galapagos Island

I've been using AI fairly heavily since last November and the whole thing is a funny experience. An agent will do something that, if a human did it, you'd immediately fire them. My reaction, of course, is to act as if this is great and spin up a t…

via Posts on July 3, 2026

more     (via openring)