[LAU] Filtering out everything but the centre position in stereo

James Harkins jamshark70 at zoho.com
Sat Aug 24 04:44:00 CEST 2019


---- On Fri, 23 Aug 2019 09:16:23 -1000 Ralf Mardorf <ralf.mardorf at alice-dsl.net> wrote ----
> Yes, there are pitfalls [1.1], however, if you have good luck, you might
> come relatively close to the desired result.

No, I don't think so.

I get the reasoning: the karaoke effect works by subtracting the two channels, so that anything that is equal volume and equal phase between the two channels will cancel out. We could call this a "residual." Then you think "if I subtract the residual from the total, I should get only the center material."

But the math just doesn't work.

L = left channel
R = right channel

residual = L - R

Well, here's the logical error. That's not actually a "residual" (whatever "residual" was expected to mean). It's just the Side of a M/S configuration, nothing more.

So then you think, "I have an original left channel -- subtract the residual and get some sort of remainder."

left_anti_residual = L - residual = L - (L - R) = L - L + R = R
right_anti_residual = R - (R - L) = R - R + L = L

So, hooray, you've flipped the left/right stereo image and not removed anything.

"But if you sum to mono"... then you get R + L = Mid. A mono mix, with nothing removed. (You had suggested that an effect that is deliberately phase-inverted between the two channels would cancel out in this case. Of course... but that's rather special pleading, isn't it? How often does that happen in the real world?)

OK, then, maybe the mistake was subtracting from the individual channels. Maybe you need to go to the total and subtract the residual.

Total = L + R = Mid of a M/S configuration.

Total - Residual = M - S = right channel + 6 dB
Total - neg(Residual) = M + S = left channel + 6 dB

Sum that to mono and you get M - S + M + S = 2M = the same mono mix, only 6 dB louder.

Simple sums and differences of left and right channels will, as far as I can see, never recover the "center" material.

hjh


More information about the Linux-audio-user mailing list