Decompose stereo signal Basically the same as this question, but it was never really answered: Stereo sound separation into three sources

Imagine I have a really trivial signal:


Left: 100Hz tone + 200Hz tone + 500Hz tone
Right: 500Hz tone + 1kHz tone + 2kHz tone


I'd like to perform some operation where I can decompose Left and Right into L', R' and C. Where:


L': 100Hz + 200Hz
R': 1kHz + 2kHz
C : 500Hz


I'd like the algorithm to work reasonably well for mixed, commercial music, which would exclude just a simple FFT analysis (I think.)

I started out looking at correlation, but I don't think that applies in this case. Now I'm thinking I need to be looking at ICA, but that seems to be focused on producing N signals from a single input, and not 3 signals from 2 inputs...
There a few commercial algorithms that do exactly that (Dolby Prologic, DTS Neo 6, Lexicon Logic 7, Bose Videostage, etc.). If your project has the funds, you can simply try to license one of those.

The inner workings of these algorithms are rather complicated and typically a mixture of time domain and frequency domain feature extraction, some steering logic, and some real time steering mechanics (time variant mixers, sub band filters, etc.)

Simple signals like your example are normally easy to tease apart, however almost all music is  partially correlated and overlapping both in time and frequency. For starters it's difficult to define what actually SHOULD be in the center and the Left and Right. The algorithm has to make a lot of "artistic" decision to make sure there are no steering artifacts and it meets the design intent over a wide variety of source material.