• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Stereo Crosstalk Elimination (reduction) Par Excellence!

OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
I love that you have the spirit and curiosity to build and experiment with this. The science is far beyond me, but it is nevertheless interesting.
Thanks! Like the title I have here says, I'm addicted to fun and learning. I don't fully understand the science either. I played with a wave simulator and it let me see basically what is happening with this array, but I haven't got the math figured out. I've had to violate my idea of being fully horn loaded becasue I can't get the midrange horns small enough to fit together as close as they need to. These 10" drivers are so loud and clear that I hardly see the need anyways.
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
I finally took a measurement of the SPL difference I'm getting from left to right ear. The chart below shows the level reduction in the right ear compared to the left ear for a left panned signal in my 3 speaker array. It's not natively quite this good, but tonight I managed to successfully apply recursive crosstalk reduction to the side channels.

!!!

This is a total trip. I contacted Rogue Aeomeba asking if they knew a way to do sample level delays in Audio Hijack.

They gave me the link to this free AU component that does the trick: https://www.voxengo.com/product/sounddelay/

This lets me apply a 3 sample delay, which is about right for recursive crosstalk elimination at 48kHz sample rate. I played with the normal recommended sound reduciton of 2 to 3 decibles but it just sounded confused. Then I realized that I already had a head start because of my 3 speaker array inherently creating some crosstalk reduction. I measured that to be around 7.5 to 15 decibles, so I initially reduced it with roughly appropriate EQ curve and then applied successive recursions with -2.5dB.

Eureka!

I think this is a big step up for this array, and it has an advantage over recursive crosstalk with a 2 speaker system for two reasons:

1. The center signal is completely untouched by the recursion alogrithm.
2. The alogrithm starts off much quieter so it has much less audible effect when listening off axis and less troublesome effects on tonality overall. To my ears it sounds cleaner and more natural than without it.


I'm getting excellent width now. A left panned sweep sounds like it's completely off to my side, 180 degrees! I can probably get it better with a little more measurements and experimentations.
LeftPannedSignalRightEarResponseComparedToLeft.jpg
 

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
I finally took a measurement of the SPL difference I'm getting from left to right ear. The chart below shows the level reduction in the right ear compared to the left ear for a left panned signal in my 3 speaker array. It's not natively quite this good, but tonight I managed to successfully apply recursive crosstalk reduction to the side channels.

!!!

This is a total trip. I contacted Rogue Aeomeba asking if they knew a way to do sample level delays in Audio Hijack.

They gave me the link to this free AU component that does the trick: https://www.voxengo.com/product/sounddelay/

This lets me apply a 3 sample delay, which is about right for recursive crosstalk elimination at 48kHz sample rate. I played with the normal recommended sound reduciton of 2 to 3 decibles but it just sounded confused. Then I realized that I already had a head start because of my 3 speaker array inherently creating some crosstalk reduction. I measured that to be around 7.5 to 15 decibles, so I initially reduced it with roughly appropriate EQ curve and then applied successive recursions with -2.5dB.

Eureka!

I think this is a big step up for this array, and it has an advantage over recursive crosstalk with a 2 speaker system for two reasons:

1. The center signal is completely untouched by the recursion alogrithm.
2. The alogrithm starts off much quieter so it has much less audible effect when listening off axis and less troublesome effects on tonality overall. To my ears it sounds cleaner and more natural than without it.


I'm getting excellent width now. A left panned sweep sounds like it's completely off to my side, 180 degrees! I can probably get it better with a little more measurements and experimentations.
View attachment 322614
One of the people who is reading your Threads with great interest. Thank you for sharing so many your processes and work.
If you have a chance later, could you record both channels in stereo in a program like Audacity program things while wearing In Ear-mic (binaural)?
If so, you will be able to clearly see the change in the response of the left ear of the L channel, right ear of the L channel, the left ear of the R channel, and the right ear of the R channel.
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
One of the people who is reading your Threads with great interest. Thank you for sharing so many your processes and work.
If you have a chance later, could you record both channels in stereo in a program like Audacity program things while wearing In Ear-mic (binaural)?
If so, you will be able to clearly see the change in the response of the left ear of the L channel, right ear of the L channel, the left ear of the R channel, and the right ear of the R channel.
I'll have to get some and give it a try. Do you have any recommendation for in-ear mics? Since posting I've been trying to re-measure in different ways and I'm struggling to get consistent measurements. They're generally similar but it seems small mic. measurements can have a pretty big effect. Playing with settings on the recursion I haven't gotten it perceptually any better than that first attempt. Turning off the recursion I'm reminded that it was already pretty darn good without the recursion.
 

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
I'll have to get some and give it a try. Do you have any recommendation for in-ear mics? Since posting I've been trying to re-measure in different ways and I'm struggling to get consistent measurements. They're generally similar but it seems small mic. measurements can have a pretty big effect. Playing with settings on the recursion I haven't gotten it perceptually any better than that first attempt.

On that page, there are several lists that people can use as in-ear microphones. (Audiointerface has to be 2input for stereo record)


I ordered Samson's mic and I think I will receive it within a few days. It's one for each ear, so you need two. There will also be cheaper ones.
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
On that page, there are several lists that people can use as in-ear microphones. (Audiointerface has to be 2input for stereo record)


I ordered Samson's mic and I think I will receive it within a few days. It's one for each ear, so you need two. There will also be cheaper ones.
That wasn't what I was expecting to go in your ear but if it fits I guess it fits. I'm tired of measuring so I'm just sitting and listening to music now and playing with settings. It seems more is less when it comes to recursive crosstalk elimination. Too little still has benefits. Too much starts going the wrong way. The first step needs to be about minus 7 dB at least.
 

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
That wasn't what I was expecting to go in your ear but if it fits I guess it fits. I'm tired of measuring so I'm just sitting and listening to music now and playing with settings. It seems more is less when it comes to recursive crosstalk elimination. Too little still has benefits. Too much starts going the wrong way. The first step needs to be about minus 7 dB at least.
It depends on the microphone, but the 3mm microphone works well.
I read about bacch's algorithm and saw that for Crosstalk cancellation to be optimized, a attenuation of about -20db must be applied to the crosstalk channel.
I think it's possible in your configuration. (Maybe your system it's already physically applied as much.)

 
Last edited:

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
That wasn't what I was expecting to go in your ear but if it fits I guess it fits.

I just received the Samson microphone and ear tip that I ordered.

1698749868.jpg


I flipped it like I was taking off my ear tip, cut it at the bottom (rubber side, but not enough to tear it) and inserted the microphone into it. And I fixed the cable neatly and firmly with TAFLON TAPE.

1698749870.jpg


Here's what it looks like.

1698753269675.png


And it depends on the type of microphone, but I couldn't get the at8358 from Audio Technica (don't have stock in our country), so I connected using Vxlr+ from Rode.
that's 48-12v to 4-5v phantom power convert


1698753363516.png


The final look is as follows. The audio interface I ordered will be delivered tomorrow, so I have to connect it tomorrow.
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
It depends on the microphone, but the 3mm microphone works well.
I read about bacch's algorithm and saw that for Crosstalk cancellation to be optimized, a attenuation of about -20db must be applied to the crosstalk channel.
I think it's possible in your configuration. (Maybe your system it's already physically applied as much.)

That video is very interesting! I'd like to hear one of those arrays. So I guess what I'm doing is simple beam forming. I used 5 speakers earlier but my array wasn't optimized for more speakers so with the simple matrixing I'm using, 3 speakers is better. I guess my matrix is getting more complex now.
I read that 20dB spec. too, so I was surprised to see that I was getting close to it. Optimizing the recursive settings might be able to get me there. Just improving the crosstalk as much as I did made a big perceptual improvement. It's not just the width of the soundstage but the overall quality of the sound that's better. It's very pure, clear, and more natural. I think BAACH's term "stereo purifier" is a good one. It doesn't force everything wide, but allows stuff with wide special effects to really work well.
 
Last edited:

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
Just improving the crosstalk as much as I did made a big perceptual improvement.
I agree. I expect your system to be good enough already. That's why I'm looking at your process with interest. =)
I used 5 speakers earlier but my array wasn't optimized for more speakers so with the simple matrixing I'm using, 3 speakers is better
It will be more efficient than two speakers. Three or five. But I think it's going to be difficult to operate. That's amazing Your work is.


I think your current channel matrix method is closer to "Race".
Bacch generates a cross signal between normal and reverse phase pulses with a length of about almost 300us (0.03ms, i guess that's mostly human's ear to ear delay. If i'm wrong that's fine. Just my thinking..) within the Dsp, so it seems to be the principle of cancelling overlapping crosstalk and I've tried to make it one fir filter, but so far I've failed.
But maybe it's more effective because there's not only a two-channel stereo, but there's another channel that's already available.
That's why I recommended a binaural ear microphone to you. Because the microphone measuring the regular room does not know exactly the change in response that is taking place in Left-L ear, Left-R ear, Right-L ear, Right R ear.
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
I agree. I expect your system to be good enough already. That's why I'm looking at your process with interest. =)

It will be more efficient than two speakers. Three or five. But I think it's going to be difficult to operate. That's amazing Your work is.


I think your current channel matrix method is closer to "Race".
Bacch generates a cross signal between normal and reverse phase pulses with a length of about almost 300us (0.03ms, i guess that's mostly human's ear to ear delay. If i'm wrong that's fine. Just my thinking..) within the Dsp, so it seems to be the principle of cancelling overlapping crosstalk and I've tried to make it one fir filter, but so far I've failed.
But maybe it's more effective because there's not only a two-channel stereo, but there's another channel that's already available.
That's why I recommended a binaural ear microphone to you. Because the microphone measuring the regular room does not know exactly the change in response that is taking place in Left-L ear, Left-R ear, Right-L ear, Right R ear.
Yes, I think actually measuring at the ear will tell the real story. It's interesting that since I successfully employed a little RACE type processing I can really hear the difference between the same song on Youtube and Apple Music much clearer than before. The stereo effect is much stronger and the clarity and naturalness too on the Apple Music. I am really wowed by this. It's blowing my mind at times, and I'm honestly confused that it works the way it does with the much stronger attenuation than I expected on that first step. Minus 7.5 to minus 15 dB? I guess that's where the 3 speaker array leaves off so that's where the further attenuation has to start. In my mind it should be just a matter of blocking the crosstalk from the opposite side speaker, but instead I have to counteract the combination of the center and two side taken as a whole, or something. I really don't understand it and consider myself lucky to have tried it the way I did. There may also be some luck that the tonal change caused by adding the recursion seems to be more for the better, since even when I'm in the other room it sounds really good, and I swear I pick up some spatial effects at times. I had some Halloween ambient on tonight and spooky sounds were floating around me in the kitchen.
 

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
than I expected on that first step. Minus 7.5 to minus 15 dB? I guess
It would be really difficult to predict the -20db attenuation of the crosstalk channel simply by adjusting the Center speaker gain.
I had some Halloween ambient on tonight and spooky sounds were floating around me in the kitchen.
Omg :eek:

And it's best that there should be almost no change in tone, but it seems that the main channel has to have spectrum coloring in order to effectively remove the crosstalk channel from about 200 to 8,000 Hz (or 500 to 6,000 Hz).
Looking at different pdf, we saw different methods of trying, and we saw that in the stage of generating some filters, we mixed the inversion pulse + conventional frequency normalization and relaxed it.
In addition, the bacch does not appear to work below 94hz with the filter.

Already you're working on this physically placing multiple speakers, and I'm trying to do this by creating a virtual filter.
That's why I think our concern process is a little bit different......
But the end result of XTC will be the same. So I want to pay more attention to your threads and your work.
:rolleyes:
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
So I think I'm understanding it better now. On a left panned signal, the right ear hears the left side and the left center speaker. The right speaker with -L almost entirely (in theory) cancels the center L signal at the right ear, but isn't time aligned right to cancel the left speaker signal. But it partially cancels it, so yeah, you have to consider the net effect, and measuring it was the right thing to do. It might be better if instead of EQing the response to match the measurement, I summed all three speaker's outputs with the calculated timing difference and then applied the inverse of that, reduced by 2.5 dB, and make that the initial cancelation signal. I guess I'll have to try that. It might not be any different since I'm using IIR filters and the timing is so short I think it keeps everything minimum phase anyways. But maybe it will work even better. I think to get the timing really accurate I'll need to have the matrix operate at 192kHz since my time increments are limited by the sample rate.
I made some adjustments this morning and got a free air (not next to ear) difference peaking at 25dB at 2000Hz, about -15 for maybe 1.5 octave centered around that, and minus 10 dB down to about 500 and up to about 4000. I'll have to look again. After measuring that I had a listen and it sounded about the same. It then occurred to me that I hadn't attenuated that first step with the equalization by 2.5 dB, so I did that. So now the first step is attenuated by 10 to 17.5 dB across the applied range. I didn't measure but the tone sounds more similar to without the recursion - and the stereo effect seemed to get even wider! I always love it when less is more. Strangely, I kind of enjoyed that "wet" tone I was getting with the slightly louder recursion.
Another thing I should consider is the fact that I'm not doing any of this recursion to the center so there may be some latency in the processing on the side channels that's not happening to the center, so I should experiment with putting a 1 sample delay on the center. Interestingly, I can make the whole soundstage flip backwards by putting enough delay on the center.

edit: Actually, not true about the latency. The signals get played and sent to the dac immediately, and then the delayed signals get sent again, so the latency would be corrected by choosing the appropriate delay time.
 
Last edited:

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
Interesting!
timing is so short
I think that's natural. The delay from both ears to ears is not as long as you think. In my case, As i known my ear to ear delay is 291us(0.0291ms).
I know it's about 300us(0.03ms) on person average.

I didn't measure but the tone sounds more similar to without the recursion - and the stereo effect seemed to get even wider!
sounds great!! Ideally, our goal would be to eliminate the crosstalk as much as possible without the maximum impact on the pitch. And the results look good.


Such as

aaa.jpg


Our goal would be to effectively remove or decrease that crossstalk channel(L channel R ear, R channel L ear)

bbb.png

A picture that could help you more visually.
 

STC

Active Member
Joined
Mar 7, 2017
Messages
278
Likes
114
Location
Klang Valley
think that's natural. The delay from both ears to ears is not as long as you think. In my case, As i known my ear to ear delay is 291us(0.0291ms).
I know it's about 300us(0.03ms) on person average.
I haven’t read the whole thread yet but on this point it depends on the speakers position. Average is about 220 μs for a typical 60 degrees speakers placement. For musical contents, I don’t think I can tell a difference of anything less than 10 μs difference.
 
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
Listening to some orchestral music I've now started to hear some problems with the recursive crosstalk elimination. On these big orchestral works with lots of complex density the sound is better with it turned off. I said earlier that it wasn't pulling the soundstage too wide, but sometimes it does, placing a solo violinist in Russian Easter Overture completely 90 degrees off to my left. The link below, track 2 demo has that exact section! That's too much, and I definitely hear an unnatural effect during complex passages with lots of instruments playing at once. So I can turn it on and off depending on what I'm listening to and my mood. I'm listening to Russian Easter Overture with it off right now and it sounds fabulous with a very solid soundstage that's about 100 degrees wide and a sense of ambient space that feels enveloping. In a way this is good news. If somebody wants to try this arrangement they don't have to worry about recrusive crosstalk elimination, which I'm sure is possible to get tonally correct but it's complicated. I think pulling the speaker array forward another foot is more important than the crosstalk elimination when I want to do some serious listening.

I'm listening to my burned copy of this CD: https://www.discogs.com/release/119...edler-Russian-Easter-Overture-In-The-Steppes-

Apple Music says this is the same recording on their streaming service. It obviously isn't exaclty the same because the tracks don't match:

If it's the same on the tracks that match I think it must have been remastered. My CD copy has a brighter edge. Not sure which I like better. After a few minutes I adapt to either.
 
Last edited:

STC

Active Member
Joined
Mar 7, 2017
Messages
278
Likes
114
Location
Klang Valley
Listening to some orchestral music I've now started to hear some problems with the recursive crosstalk elimination. On these big orchestral works with lots of complex density the sound is better with it turned off.

I have demoed both stereo and XTC with full orchestra music and I think what you meant by intensity is loudness. If you match the level that’s not an issue.
 

LIΟN

Active Member
Joined
Oct 17, 2023
Messages
159
Likes
172
Location
South Korea
I haven’t read the whole thread yet but on this point it depends on the speakers position. Average is about 220 μs for a typical 60 degrees speakers placement. For musical contents, I don’t think I can tell a difference of anything less than 10 μs difference.
Average is about 220 μs for a typical 60 degrees speakers placement. For musical contents
Thanks. I read a lot of your posts (including your blogs? or website?). Nice to meet you!
Let me correct what I said 300us is the average.

""
How it works is that it first sends the sound of the finger snap out of the left speaker, and then after a slight delay, sends a negative image of the same sound out of the right speaker, but attenuated by 4-5dB and timed to reach your right ear at the exact same instant as the original finger snap sound from the left speaker. And because it is a negative image, it causes them both to cancel out. But that cancellation snap, having done its job at your right ear, will go on to be heard after another slight delay by your left ear, and that will upset the 3D image. So to deal with it, a third cancellation pulse, attenuated by a further 4-5dB, has to be sent out from the left speaker. This continues, back and forth, until the correction signal is no longer audible, and the net result is that the original sound of the finger snap was heard only by the left ear and not by the right ear. If it is done properly the whole process lasts no more that 300μs, and is quite seamless, and the ear/brain is fooled into hearing the original 3D sound field. ""

What I understood was that the filter in the bacch was produced within 300us, so I thought of it as the average ear to ear delay.
Also, when I looked at other people's delays as well as my delay information, I judged that because most of them were around 270-300us. Thank you for the information.
 
  • Like
Reactions: STC
OP
T

Tim Link

Addicted to Fun and Learning
Forum Donor
Joined
Apr 10, 2020
Messages
778
Likes
661
Location
Eugene, OR
I have demoed both stereo and XTC with full orchestra music and I think what you meant by intensity is loudness. If you match the level that’s not an issue.
It's not the volume. I think it's my implenentation of the XTC. It needs more work to iron out the details. It's not intensity. It's an excess spread on some recordings and a sort of boxy tonality that I pick up on with music I'm more familiar with. Interestingly it passed other tests just fine, like ambient wind or surf sounds. Those are complex, broad spectrum and tend to reveal hollow or boxy tones pretty well.
 

STC

Active Member
Joined
Mar 7, 2017
Messages
278
Likes
114
Location
Klang Valley
What I understood was that the filter in the bacch was produced within 300us, so I thought of it as the average ear to ear delay.

Thanks for following my website. It was started as place of reference if I am really making a progress or is it all in my head .

Basically, he is talking about the recursive nature of cancellation. Ralph’s think the ideal cancellation is 60 db recursive attenuation. For an example, your left speakers sound will reach the right ears about 70 μs delayed for speakers placed at 20 degrees. This can be calculated. The right speakers should send the signal coincide with arrival of left speakers sound waves so that both will cancel out at the right ear. However, since the right speakers cancellation sound will also be heard by the left ear, another signal is send by the right speakers so that the right ear and this will be delayed by 140 μs. And it continues and hence the term recursive was used.

if you put the speakers at 60 degrees then the average delay will be 220 μs and the first cancellation signal of the left speaker will start at 440 μs.

Hope this paper helps.

 
Top Bottom