MeteorStudioASU / lcc

LCC (Localization Cue Correction) is a solution for spatialized audio through stereo speakers. LCC is a lightweight implementation of crosstalk cancellation so your left ear hears the left channel of audio, and your right ear hears the right channel of audio while ensuring unwanted audio signal coloration is mitigated.
MIT License
180 stars 13 forks source link

Feature Request: 7.1 support is "poor", Soundfield is in front #17

Closed ionizer999 closed 4 years ago

ionizer999 commented 4 years ago

As suggested on HN, I tried to downmix 7.1 to HRTF binaural audio and then use LCC with it, but the problem is that the soundfield is in the front.

I can hear however a clear difference between Front-Right and Side-Right, but almost no difference in Side-Right and Rear-Right.

Is there any way (without adding additional speakers) to move the soundfield further behind me? (Like that that cloud that you showed in your illustration would just be behind the listener)

I think that is all that I would need to get the same effect as my headphones for 7.1.

Thanks a lot and this project just rocks! 👍

I've never enjoyed music as much as with this one :). (I even prefer it to my headphones for certain songs as it's so great!)

mattlane66 commented 4 years ago

We agree. Free-field listening can be much more immersive than those in closed-field experiences (headphones). You get to use your natural HRTF that way!

I think you need to run LCC in a 4.0 system (run LCC in a closely-spaced stereo pair in front, and run LCC in a closely-spaced stereo pair in the rear). Perhaps implementing LCC into a Raspberry Pi is the easiest way to achieve this...You can also see our white paper about millisecond delay controls to digitally position physical rear channel devices for better placement options.

ionizer999 commented 4 years ago

@mattlane66 So it's not possible to tweak the parameters to move the soundfield behind me and make use of the HRTF processing? With just two stereo speakers?

mattlane66 commented 4 years ago

I would not describe what is going on as HRTF processing. Regardless, to get full 360 degree sound field, you will need rear pinnae reflections, i.e., a rear sound source. I have tried this once. I must say, it is pretty cool; however, an ideal speaker placement, content type, and frontal stereo speaker model can make all the difference.

ionizer999 commented 4 years ago

Okay, let me explain my setup:

Headphone setup:

Windows 7 (on VM):

7.1 audio (front left, front center, front right, side right, rear right, rear left) => HeSuVi HRTF processing w Equalizer APO => Headphones

LCC setup:

7.1 audio (front left, front center, front right, side right, rear right, rear left) => HeSuVi HRTF processing w Equalizer APO => LCC => Stereo speaker

I can clearly hear the different sounds as being at different directions. The only problem is that the soundfield is in front of me and not behind me. [I can hear a clear different between e.g. front-left and side-left and even rear-left is nearer to me than front-left, but it's all still in front of me]

I thought it might be possible to move the soundfield either via LCC or some other audio processing trick.

I am trying the calculator (https://docs.google.com/spreadsheets/d/1T-DLmeTnY7_G5r1Y6eCyb26_8nCWtbaTdC0ao0j30cw/edit?usp=sharing) also - but having a hard time to understand what to give as input to LCC based on those values. (I have read both papers)

mattlane66 commented 4 years ago

Just for clarity again, LCC is not for headphones (unless you are modeling your pinnae to get externalization and model your room/speaker setup, then you can use LCC as a modeling experience in your headphones).

It is a myth that loudspeakers need HRTF processing. Throw that notion out. I am also suspect of your equalization stage. Room/loudspeaker correction is fine, but anything else makes me question the choices being made.

You cannot use any LCC parameters at the moment, as we have not opened them up; therefore, the calculator is not useful to you right now.

Again, an ideal speaker placement (closely-spaced point source drivers or planar drivers), the content type, and speaker model can make all the difference.

ionizer999 commented 4 years ago

@mattlane66 Yes, understood both that LCC is not for headphones and that loudspeakers don't need HRTF.

I was naively assuming that it's possible to simulate binaural audio via LCC as well as someone had said on HN that for position based audio it should first be processed for binaural and then be sent via LCC.

I guess that is just not possible without 4 speakers, right? (one pair in the front, one pair in the back)

So the ideal setup for a home-theatre then would be (provided we had an ATMOS decoder):

   |
--   --
   |

and then we should be able to e.g. model all dimensions for games, right - e.g. 8.2.4?

mattlane66 commented 4 years ago

That is not a naive assumption. LCC does enables binaural content to be reproduced over closely-spaced stereo loudspeaker devices.

No. But, I definitely would recommend reading our white paper.

ionizer999 commented 4 years ago

@mattlane66 Yes - LCC does allow that, but only with 2 pairs of speakers like in the paper not just one pair of closely-spaced-speakers in the front, right?

mattlane66 commented 4 years ago

Sorry. I am not clear on what you are asking.

ionizer999 commented 4 years ago

@mattlane66 I tried to simulate a full 7.1.4 setup using just LCC with one left and one right loudspeaker.

But LCC right now only supports stereo (the other channels are not output at all), so I tried to use a HRTF in-front of it. That did not work well.

And now I realize I am stupid -- I wanted to originally ask for the feature to be implemented to support full 7.1 in the LCC application directly (e.g. reading from 8 channels and downmixing to two stereo speakers, while creating the nice soundfield around the head).

mattlane66 commented 4 years ago

We really do not espouse the principles of more then 4.0 (or 4.2) channels; albeit, wave field synthesis makes a lot of sense (but that is not practicle), but anything above say 4.0 just does not add up for us. A 4.0 system with LCC will outperform any point source mono surround system and its protocol. So, just decode 7.1 to 5.1 and use the 5.1 content with an LCC-enabled 4.0 or 4.2 system.

ionizer999 commented 4 years ago

I'll open a new issue with a proper feature request.