Unlock Your Mixes: The Simple Power of Mid-Side EQ

Share
Audio waveform splitting and converging

Mid-side matrixing might sound like some super advanced audio wizardry, the kind of thing you drop into conversation to sound like you know what you're talking about. But honestly, it's not that complicated. We can actually write the code for it right now using Reaper's JS programming environment.

Let's start with the encoder. We'll create a variable called mid. This will be the sum of the left and right channels. In computer terms, that's spl0 (the first channel) plus spl1 (the second channel). Then, we end the line with a semicolon. Next, we create a variable called side. This is the difference between the left and right channels: spl0 minus spl1. Now, we write these mid and side values back to the first two audio channels, replacing the original signals. So, spl0 becomes mid, and spl1 becomes side.

Now for the decoder. It's pretty much the reverse. We create a left variable, which is spl0 (our mid signal) plus spl1 (our side signal). And a right variable, which is spl0 minus spl1. We then write these back to the output pins: spl0 equals left, and spl1 equals right.

Key Takeaways

  • Mid-side processing separates your stereo signal into a "mid" (mono) component and a "side" (stereo difference) component.
  • This allows for targeted EQ, saturation, or compression on the center or the sides independently.
  • A common misconception is that mid-side is overly complex; it's based on simple addition and subtraction.
  • Applying stereo saturation or distortion in mid-side mode can yield significantly different and often more pleasing results than standard left-right processing.
  • Gain staging is important: ensure your mid and side signals are correctly balanced to avoid clipping or unwanted level changes.

The Gain Staging Problem

When you first run this code, you might notice everything gets much louder. What went wrong? Well, when we add the left and right channels to get the mid signal, we're essentially creating a mono sum. But if you just add them without dividing by two, your mix bus could clip as soon as you hit the mono button. We need to do the same for the side signal to keep the relative levels consistent.

So, we need to divide the mid calculation by two and the side calculation by two in the encoder. And in the decoder, we do the same for the left and right calculations.

A More Elegant (But Not Ideal) Solution

It's kind of neat that the encoder and decoder code look so similar. We could even make them identical by dividing by the square root of 2 instead of 2. This way, you could technically use just one mid-side plugin and run two copies of it, one before and one after your stereo effect. However, this isn't perfect. The mid channel still gets attenuated by 3dB between plugins, which could potentially cause clipping if your original left and right signals were already pushing limits.

Understanding Stereo Width

What's a "normal" stereo width? While there's no strict definition, in my experience, the side channel is usually about 6dB lower than the mid channel. This doesn't mean it sounds narrow; you can still have a wide mix if the low frequencies are kept in mono.

Mid-Side Saturation: A Game Changer

Now, let's talk about stereo saturation or distortion plugins that don't have a mid-side option. Why is this a big deal? Let's use FabFilter Saturn as an example. When we run two sine waves, panned hard left and right, through a heavy saturation algorithm in Left-Right mode, they turn into square waves and get a full set of odd harmonics.

But switch to Mid-Side mode, and those two sine waves distort together, creating intermodulation distortion. It's a completely different sound. The same applies to a full mix – it just sounds different.

So, why wouldn't a stereo distortion plugin offer this? If yours doesn't, you can simply put it inside a mid-side matrix. However, using a stock mid-side matrix or something like Voxengo MSED can sometimes make the side channel cleaner than the mid, because the side is lower in level.

The Practical Approach

Here’s a better way for saturation and distortion. In our encoder plugin, we'll gain compensate the mid channel by dividing by two, but not the side channel. In the decoder plugin, we'll divide the side channel by two, but not the mid channel. This effectively boosts the side channel by 6dB between the plugins. This approach works really well for saturation and distortion, and can also be useful for mid-side compression, though often separate controls are preferred there.

It's a small detail, but many producers don't realize how different mid-side saturation sounds or how simple mid-side matrixing actually is. If you're a Reaper user and want the JS code for this, it's ready to copy and paste in the description below.

Skip the rabbit hole — our engineer does the EQ math. $250/track master, $800/song mix.

Read more