Newb - how do I get 'mid' and 'side' information, and how do I decide "this audio is already wide"?

I am attempting to write a plugin that increases the width of the incoming signal.
But the plugin would not attempt to increase the width if its already wide.

I have found out that the formula for finding mid and side is:
Side = the difference between “left” and “right,”
Mid = the sum of “left” and “right,” or mid = 0.5*(left + right)

I am guessing a Side difference of 1.0 = 100% fully wide, and 0.0 is mono. Is this correct?

And in terms of deciding “is this audio wide already” I would have to look at a wide number of samples to discern that. I.e. I wouldn’t get width information just by looking at one sample…?

mid = (left + right) / 2
side = (left - right) / 2
left = mid + side
right = mid - side

you probably wanna make a compressor then that acts on (mid and) side independently, so that you can regulate the dynamics of the stereo width depending on its input volume

1 Like

Yes, and side = -1 is anti phase.
As usually you would look on numbers like RMS (side) over a time window.

In this topic perception plays a huge role, in lower frequencies the width is hard to perceive, that’s why many mixers use a “mono-maker” to remove side information from low frequencies, because this is just eating up dynamics (and there is a reason from vinyl mastering, but that’s rather niche nowadays).

Also a caveat: if the incoming signal is mono, there is no way to boost the side signal (obviously). There are plugins like stereo-maker or exciters which “invent” a side signal to pretend the signal being wider.

1 Like

Thanks, thats useful to know too. :+1:

@daniel
Thats really helpful. “Over a time window” … I guess a few blocks of input… I’m not sure how big that time window might be but experimenting might help me know.
Good tip about low end, I’ll bear that in mind.

I guess thats how plugins like Matthew Lane’s DrMS work - by copying some of the mono information out to the sides (creating sides from mono)?

not so easy. it’s not that you just modify the side values to add or remove side. both the mid and side signal can be imagined like audio waves, just like signals in left/right space. so adding mid to side directly would just create a signal where left and right cancels out. you could make it cancel out a bit less by reducing side’s amplitude but people generally dislike when stereo enhancers change a lot about the balance of the mid signal due to lots of soundsystems still not supporting mono plus subwoofers always being mono.

i think what plugins like ozone imager are doing to add artificial side texture is adding some sort of really complex and surgical, but subtle eq curve that is different for the left and right channel, so that there are sorta so many phase shifts that it feels like there are none again. but everyone, pls correct me if i’m wrong.

an easier way to add side is by applying a bit of haas effect to a signal. it causes comb filter artefacts in mono tho. but it can be useful if you find a sweetspot where that comb filter actually sits well. it’s just not the most popular type because people are afraid of things where they actively have to check the mono mix

1 Like

@Mrugalla
Thats interesting. So when “creating” width, you don’t have the same frequencies on L and R, but you can take the frequencies of the mid and choose to put some of them for the L and some of them for the R, which means they don’t cancel each other out(?)

I suspect you are wrong. I think but haven’t measured to check that Ozone (unless you turn up the stereo maker slider) is probably a multi-band Mid-Side arrangement of some sort.

yeah i meant the stereoize parameter, as that was a subtopic here as well.


this is stereoize mode 1’s response and…

this is mode 2’s response.

both modes are widely perceived as transparent about the mono mix, but eq curve analyzer shows they are actually just very wild responses, probably so wild that it doesn’t seem wild anymore in practice. idk if that makes sense to everyone but to me it feels like that’s similiar to how unison in a synth becomes less of a phase issue if you just add more and more voices and at some point it’s so diffuse that it doesn’t sound diffuse anymore

1 Like