INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Any way to derive a "center channel" with mix functions or other functions?  (Read 1300 times)

ths61

  • World Citizen
  • ***
  • Posts: 162

There is no "Software or DSP" forum so I am posting these questions here.  If it needs to be moved to another sub forum, please let me know which forum would be appropriate.

1) Is there a way to derive a "common signal" center channel from the left and right stereo channels using the mix or other functions in MC ?

(L + R) adds the entire left and all right signals, I just want to extract the common intersection of the 2 signals.
(L - R) and (R-L) inverts and adds, which appears to remove the common intersection which is what I would like to capture.

I would like to generate 3 channels similar to the following:

[Left Common] [Common] [Common Right]

2) Are the MC mixing and XO filter functions all done in 64-bit like the volume control ?

Thanks much.
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

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.
Logged

ths61

  • World Citizen
  • ***
  • Posts: 162

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
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

RoderickGI

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 8186

I did some math earlier to try to work out how to just get the Common audio by itself using MC's functions. Failed, same as above. I couldn't separate Common.

No time now to document, but similar to your explanation ths61.
Logged
What specific version of MC you are running:MC27.0.27 @ Oct 27, 2020 and updating regularly Jim!                        MC Release Notes: https://wiki.jriver.com/index.php/Release_Notes
What OS(s) and Version you are running:     Windows 10 Pro 64bit Version 2004 (OS Build 19041.572).
The JRMark score of the PC with an issue:    JRMark (version 26.0.52 64 bit): 3419
Important relevant info about your environment:     
  Using the HTPC as a MC Server & a Workstation as a MC Client plus some DLNA clients.
  Running JRiver for Android, JRemote2, Gizmo, & MO 4Media on a Sony Xperia XZ Premium Android 9.
  Playing video out to a Sony 65" TV connected via HDMI, playing digital audio out via motherboard sound card, PCIe TV tuner

ths61

  • World Citizen
  • ***
  • Posts: 162

If this is NOT doable with the existing feature set, maybe it can be a NEW FEATURE REQUEST ?
Logged
Main - JRMC31 -> custom ALSA_cdsp -> CamillaDSP(2x8 channel 64-bit FIR convolution) -> 8 channel DAC
Office - JRMC31 -> Asus Xonar Essence STX -> W4S STI-1000 -> Mini-Magnepans
Shop - JRMC31 -> W4S MicroDAC -> Adcom GFA-2535 -> B&W Rock Solid

mwillems

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 5234
  • "Linux Merit Badge" Recipient

Oh I see, I had forgotten about the residual unique right inverted.  I'm not sure how to do it then, I'm sad to say  :-[
Logged
Pages: [1]   Go Up