I'm trying to figure out how Pro Logic implements center channel extraction. Looking at how various different types of sine waves combine (a single one into two other ones), I guess I'll need to implement some type of FIR filter. I'm very new to this. It would be nice if this could be done on a sample-by-sample basis.Any help?
I am having difficulty extracting the common signal between TL and TR. I am doing this in C. Can I get a description of how to do this? Pro Logic is just an example.
I'll need to implement some type of FIR filter.
By comparing L, R, L+R and L-R, you should be able to build (or code) a simple steering system. I think the hard part with Pro Logic is getting the time-constants right. (I don't know if the timing information is published.)
Problem: When inputting L and R into Lt and Rt, anything perfectly out of phase between L and R gets erroneously sent to the surround channel upon decoding.
1. Phase-shift L by +90 degrees and R by -90 degrees.2. Find the common signal and extract it.
Caveat: Anything originally having a hollow sound will be decoded into the center channel.
There's really no way to "improve" Pro Logic decoding. Like dc2bluelight said, mixing is done while monitoring through a pro logic decoder, so the mixing engineer knows exactly how it's going to come-out... It's not perfect... It's not a discrete multichannel system like 5.1 digital... It mostly just steers (pans) the sound. With a regular Pro Logic decoder you are hearing exactly what you are supposed to hear.QuoteProblem: When inputting L and R into Lt and Rt, anything perfectly out of phase between L and R gets erroneously sent to the surround channel upon decoding. It's not a problem, and it's not erronious... That's exactly how Dolby Surround works. If there is no out-of-phase information, there is no rear channel information.If you want to take the time, you can do you own panning with an audio editor and re-encode to 5.1 digital. (I've done something like this, along with some other "tricks", to make a 5.1 surround track from a mono source.)Quote1. Phase-shift L by +90 degrees and R by -90 degrees.2. Find the common signal and extract it.OK... Now you have L & R 180 degrees out of phase with each other... You can accomplish almost the same thing by inverting one channel... Now what? If you sum the out-of-phase channels you get L-R (or R-L), and if you subtract the out-of-phase channels you get L+R (or -L-R). You still only have 2 "original" channels and you can make various summations (and subtractions) of the left & right signals. QuoteCaveat: Anything originally having a hollow sound will be decoded into the center channel. What? I don't see how "hollow sound" has any relationship to phase/amplitude of the L & R signals.
1. I want to make an open source product that lets dummies do the mixing.
2. The user may not want front channel info that's out-of-phase to go to the back channel.
3. It is possible that for decoding, simple inverting may work.
4. By "hollow sound" I mean stuff that's out of phase; put an arbitrary signal through two speakers and sit between them, with one speaker miswired.
EDIT: You do realize I want to make an application that goes from four discrete channels to two matrixed ones, right?
OK... Time to start writing some experimental code! Once you can read an audio file into an array (or each channel into an array), it's easy to add or subtract the L & R channels and put the result in a new array. I don't actullly know how to make a 90 degree phase shift (Hilbert transform?), but I'm sure you can look it up.I think you will find that there are serious limitations with matrix encoding... We tried to warn you!