So if you have extra unused channels that you can use as "holding channels" you can get there by 1) copying "left" to two unused channels (let's call them SL and SR), 2) subtracting the "right" channel from SL, then 3) subtracting the new SL from SR. SR would then hold the common content. To summarize you subtract right from left, which gives you the left-only content, then subtract the left-only content from another copy of the whole left channel, which leaves only the "common" content.
All the DSP and internal processing is done in 64-bit right up until the mix down for output.
Glad to hear everything is kept in 64-bit.
I tried the above method but it just appears to swap left and right channels.
Subtracting is defined as
"inverting and adding" so when you subtract the right from the left, you get the unique left, (common cancels) and the unique right inverted. When you subtract that from the original left, you invert and add which cancels out the unique left, adds back the common and inverts the inverted unique right back to its original.
The "Left Only" is not "Left Only", it is "Left Only plus inverted Right Only".
Subtract Right from Left:left + inverted right ==> unique left + (cancelled common) + inverted unique right
Subtract Result from the original Left:left + inverted(unique left + (cancelled common) + inverted unique right)) ==> (cancelled unique left) + original common + original unique right
This is what I tried:
Copy Left to U1
Copy Right to U2
Subtract Right from U1
Subtract Left from U2
Subtract U1 from Left
Subtract U2 from Right
This just swaps left and right.
What did I do wrong ?
TIA