IPB

Welcome Guest ( Log In | Register )

ABX fast switching artifacts, All applications I tried suffer from them
Kees de Visser
post Mar 19 2010, 13:57
Post #1





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



I've tried several ABX applications on my MacBook: the Java version (0.52b) for Mac, Foobar and WinABX while running bootcamp/XP.
They all produce audible artifacts when switching between A & B. For this test I used 2 identical sinewave files.
I'm curious if this problem may be linked to my setup or if it's a known issue that doesn't seem to bother anyone ?
Thanks for your help.
Go to the top of the page
+Quote Post
2 Pages V   1 2 >  
Start new topic
Replies (1 - 24)
Arnold B. Kruege...
post Mar 31 2010, 14:11
Post #2





Group: Members
Posts: 3690
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (Kees de Visser @ Mar 19 2010, 08:57) *
I've tried several ABX applications on my MacBook: the Java version (0.52b) for Mac, Foobar and WinABX while running bootcamp/XP.
They all produce audible artifacts when switching between A & B. For this test I used 2 identical sinewave files.
I'm curious if this problem may be linked to my setup or if it's a known issue that doesn't seem to bother anyone ?
Thanks for your help.


What artifacts?

My usual rule is that artifacts can only be ignored if they are either identical for all kinds of switchovers or truely random, and don't disturb one's concentration.

For example, I can reliably ABX the QSC ABX box with nothing attached to it even if it is on the other side of the room.

The origional ABX box and the commerical sequel with RM-2 relay module would yield only random guessing.

PCABX vould occasionally be dependent on the PC you used.
Go to the top of the page
+Quote Post
Kees de Visser
post Mar 31 2010, 15:02
Post #3





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



QUOTE (Arnold B. Krueger @ Mar 31 2010, 14:11) *
What artifacts?
When I have some time I'll try to capture the signal with artifacts to illustrate. It's something like a crack, click or pop. It doesn't sound like zipper noise IME.
Since digital cross fading has been around for over 30 years, I'm rather surprised that the ABX applications can't switch without artifacts. Music editing is part of my job so perhaps I'm more sensitive to the artifacts than the average listener.
Can we agree however that artifact free switching between identical signals should be easy to implement (in the digital domain)?
QUOTE (Arnold B. Krueger @ Mar 31 2010, 14:11) *
For example, I can reliably ABX the QSC ABX box with nothing attached to it even if it is on the other side of the room.
Was that caused by switching artifacts, or were the A and B paths too different ? Did that change when the inputs were properly terminated ?
Go to the top of the page
+Quote Post
KikeG
post Apr 2 2010, 18:51
Post #4


WinABX developer


Group: Developer
Posts: 1578
Joined: 1-October 01
Member No.: 137



Yes, ABX programs click on switch because they stop playing one file and start playing another, and I agree that it is disturbing. I also agree this could be improved. It would be possible to perform a fadeout/fadein/mix of the signals when switching them so that playback was seamless. I have no time for doing this in my software. Maybe you could ask Peter, foobar2000 developer, to improve his ABX component.
Go to the top of the page
+Quote Post
Arnold B. Kruege...
post Apr 2 2010, 19:44
Post #5





Group: Members
Posts: 3690
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (Kees de Visser @ Mar 31 2010, 10:02) *
When I have some time I'll try to capture the signal with artifacts to illustrate. It's something like a crack, click or pop. It doesn't sound like zipper noise IME.
Since digital cross fading has been around for over 30 years, I'm rather surprised that the ABX applications can't switch without artifacts. Music editing is part of my job so perhaps I'm more sensitive to the artifacts than the average listener.
Can we agree however that artifact free switching between identical signals should be easy to implement (in the digital domain)?


The usual artifact is due to signal chopping. If you cut off a signal at an arbitrary point, a click or other transient will be heard there. If you look at the wavefom that is created, it is chopped off.

If you use a hardware ABX comparator, then the point of switch over may be also modulated by contact bounce. This particular effect is random, because it depends on the signal being chopped, which is always changing.

Possible work-arounds including fading the signal out, which presumes a variable gain control element. Doing this at line level in the analog domain without creating artifacts is an interesting challenge. Doing it for loudspeaker-level signals is even more challenging.

If your signal switch is really fast, then schedule the time of switching to be where the signal crosses the zero line.

QUOTE
QUOTE (Arnold B. Krueger @ Mar 31 2010, 14:11) *
For example, I can reliably ABX the QSC ABX box with nothing attached to it even if it is on the other side of the room.


Was that caused by switching artifacts, or were the A and B paths too different ? Did that change when the inputs were properly terminated ?


The QSC ABX box uses electromechanical relays. The mechanical noises they make when they operate allow me to tell which one is doing what.

When we were building relay boxes, we chose relays for switching line levels that operated far more quietly (e.g. reed relays), and we selected the relays we used for switching signals at loudspeaker levels because for one thing they made randomized mechanical sounds when they switched.
Go to the top of the page
+Quote Post
Kees de Visser
post Apr 3 2010, 08:34
Post #6





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



QUOTE (KikeG @ Apr 2 2010, 18:51) *
Yes, ABX programs click on switch because they stop playing one file and start playing another, and I agree that it is disturbing. I also agree this could be improved
Thank you KikeG, I'm glad you can confirm the issue.
IMO an ABX application that produces artifacts is not transparent, similar to a non sterile medical lab. If one cares about ABX testing (like many here on HA), I think it is not unreasonable to aim for an application that is as transparent as possible (not too difficult in the digital domain).
What is the effect of the switching artifacts on test results? Hard to say since there apparently are no artifact free ABX applications for comparitive testing.
KikeG doesn't have time to work on this. Mac developers don't seem motivated to invest time in an ABX application either (been asking for years).
Let's hope that Peter has time and motivation to fix this problem. I'd gladly help beta testing.
Go to the top of the page
+Quote Post
kjoonlee
post Apr 3 2010, 09:08
Post #7





Group: Members
Posts: 2526
Joined: 25-July 02
From: South Korea
Member No.: 2782



@Kees de Visser: Can you reproduce the artifact with real-life audio, not sine waves?


--------------------
http://blacksun.ivyro.net/vorbis/vorbisfaq.htm
Go to the top of the page
+Quote Post
Peter
post Apr 3 2010, 09:16
Post #8


foobar2000 developer


Group: Admin
Posts: 3275
Joined: 30-September 01
Member No.: 84



This is an interesting subject.
To get 100% artifact free track switching, the application would need to employ some kind of low-latency playback scheme and switch streams being sent (with a short crossfade) by itself without interrupting the output.

This isn't very compatible with the way foobar2000 works and fixing it would make the ABX component much more sophisticated than it is now and probably also require a new foobar2000 core version.
However, for now, the default output mode (DirectSound) does short fades by itself, so with default foobar2000 settings, the ABX track switch artifacts aren't very obvious.
Go to the top of the page
+Quote Post
googlebot
post Apr 3 2010, 09:33
Post #9





Group: Members
Posts: 698
Joined: 6-March 10
Member No.: 78779



QUOTE (Peter @ Apr 3 2010, 10:16) *
This is an interesting subject.
To get 100% artifact free track switching, the application would need to employ some kind of low-latency playback scheme and switch streams being sent (with a short crossfade) by itself without interrupting the output.


That's not needed at all. All you need is a small small deque buffer. A switch causes the last few samples filled (from the left) by stream 1 to be invalidated, replaced with a crossfade between stream 1 & 2, and then stream 2 takes over. Output is pulled continuously from the right side of the buffer.

This post has been edited by googlebot: Apr 3 2010, 09:45
Go to the top of the page
+Quote Post
Peter
post Apr 3 2010, 09:59
Post #10


foobar2000 developer


Group: Admin
Posts: 3275
Joined: 30-September 01
Member No.: 84



QUOTE (googlebot @ Apr 3 2010, 09:33) *
That's not needed at all. All you need is a small small deque buffer. A switch causes the last few samples filled (from the left) by stream 1 to be invalidated, replaced with a crossfade between stream 1 & 2, and then stream 2 takes over. Output is pulled continuously from the right side of the buffer.
Then you need a low-latency solution to send the data from the right side of the buffer to the audio device, or use an output API where the system pulls the data by itself (DirectSound only on Windows I think).
Go to the top of the page
+Quote Post
googlebot
post Apr 3 2010, 10:06
Post #11





Group: Members
Posts: 698
Joined: 6-March 10
Member No.: 78779



Why could the current method (whatever it is) not be used with the right side of the buffer as its source? As long as the switch is artifact free I don't see any problems, even with a latency of 200ms, for example.

This post has been edited by googlebot: Apr 3 2010, 10:12
Go to the top of the page
+Quote Post
Kees de Visser
post Apr 3 2010, 19:43
Post #12





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



QUOTE (kjoonlee @ Apr 3 2010, 09:08) *
@Kees de Visser: Can you reproduce the artifact with real-life audio, not sine waves?
The advantage of sine waves is that they are rather constant, so switching effects are rather predictable. With music there will be more masking, so the artifacts will probably be less audible, but should still be there.
Let me try again to illustrate why seamless switching is of fundamental importance for ABX applications.
Switching (e.g. cross-fades) artifacts are likely to be more audible when the (physical) difference between the two signals increases. In theory, correctly switching between identical signals should not produce any artifact. However, switching between nearly-identical signals (as is often the case in ABX testing) will result in artifacts (not necessarily audible).
I haven't closely analyzed how current ABX applications switch, but if we assume it's a 0 ms transition (which it clearly isn't), then the AX or BX switch that produces the largest artifacts can indicate the different file and potentially give a false positive. I don't think there is much risk of false negatives, unless concentration is affected.
The only reliable solution to this problem is probably to insert a short mute (with fade-out/fade-in) during the switch, although that could have an influence as well (any ABX expert that wants to chime in ?).
Go to the top of the page
+Quote Post
C.R.Helmrich
post Apr 3 2010, 20:20
Post #13





Group: Developer
Posts: 686
Joined: 6-December 08
From: Erlangen Germany
Member No.: 64012



QUOTE (Kees de Visser @ Apr 3 2010, 20:43) *
The only reliable solution to this problem is probably to insert a short mute (with fade-out/fade-in) during the switch, although that could have an influence as well (any ABX expert that wants to chime in ?).

I agree. Something like a 100-ms linear fade-out, followed immediately by a 100-ms linear fade-in of the new playback.

Btw, sorry for off-topicness, but I see Peter is reading this:

I find the foobar ABX component very helpful, but two small improvements would make it much more useful for me:

  • A selection indicator on the progress bar, like in the upper bar on this screenshot
  • a "loop selection" check box! Looping selections makes ABXing high bit rates much easier IMO.
  • Edit: Oh, and another thing: Maybe the "hide results" check box should be checked by default? Seeing one's ABX performance "live" can influence some listeners' choice of how many ABX rounds to do, a la "I'll ABX until my probability of lying is below 1%". I was informed once that this is a bad thing to do.

If it's not too much work, could you please add this functionality?

Chris

This post has been edited by C.R.Helmrich: Apr 3 2010, 20:27


--------------------
If I don't reply to your reply, it means I agree with you.
Go to the top of the page
+Quote Post
Kees de Visser
post Apr 5 2010, 13:00
Post #14





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



Here are a wav sample and its waveform of the java ABX application's output (on a MacBook).
I couldn't find an easy way to capture the output of foobar while running XP/Bootcamp. If it can be helpful I'll try again.
For this test I used a 600Hz sine and a 600Hz+5Hz sine mix, just because they sound identical and look very different.
WAV with ABX artifacts

The artifacts are identical for L and R channel and are pretty random, which is probably a good thing, although artifact-free switching would be better.
Go to the top of the page
+Quote Post
Arnold B. Kruege...
post Apr 5 2010, 13:15
Post #15





Group: Members
Posts: 3690
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (Kees de Visser @ Apr 5 2010, 08:00) *
Here are a wav sample and its waveform of the java ABX application's output (on a MacBook).
I couldn't find an easy way to capture the output of foobar while running XP/Bootcamp. If it can be helpful I'll try again.
For this test I used a 600Hz sine and a 600Hz+5Hz sine mix, just because they sound identical and look very different.
WAV with ABX artifacts

The artifacts are identical for L and R channel and are pretty random, which is probably a good thing, although artifact-free switching would be better.


What is with the artifacts in the middle of the segments with signals?

Do they continue to appear if you switch less frequently?
Go to the top of the page
+Quote Post
Kees de Visser
post Apr 5 2010, 13:21
Post #16





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



QUOTE (Arnold B. Krueger @ Apr 5 2010, 13:15) *
What is with the artifacts in the middle of the segments with signals?
Those are switches between identical signals, like from A to A, or A to X and X to A when X=A.
Go to the top of the page
+Quote Post
Arnold B. Kruege...
post Apr 5 2010, 13:28
Post #17





Group: Members
Posts: 3690
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (Kees de Visser @ Apr 5 2010, 08:21) *
QUOTE (Arnold B. Krueger @ Apr 5 2010, 13:15) *
What is with the artifacts in the middle of the segments with signals?
Those are switches between identical signals, like from A to A, or A to X and X to A when X=A.


Thanks for the clarifications.

The transients I see are not IMO acceptable on the grounds that they are *not* simply due to slicing the signal.

Does KikeG's code do the same thing?

This post has been edited by Arnold B. Krueger: Apr 5 2010, 13:55
Go to the top of the page
+Quote Post
Woodinville
post Apr 5 2010, 20:26
Post #18





Group: Members
Posts: 1402
Joined: 9-January 05
From: JJ's office.
Member No.: 18957



For maximum sensitivity, there should be no clicks or pops in the ABX playback. The two signals should be Hann windowed (or some other simple window) together for a total gain=1, moving between the two signals.

This window should be at least 10 milliseconds long, if not 40.

Otherwise you corrupt partial loudness memory, and desensitize the test.


--------------------
-----
J. D. (jj) Johnston
Go to the top of the page
+Quote Post
Axon
post Apr 5 2010, 20:41
Post #19





Group: Members (Donating)
Posts: 1984
Joined: 4-January 04
From: Austin, TX
Member No.: 10933



QUOTE (Woodinville @ Apr 5 2010, 14:26) *
For maximum sensitivity, there should be no clicks or pops in the ABX playback. The two signals should be Hann windowed (or some other simple window) together for a total gain=1, moving between the two signals.


Nitpick question: should the window generally be power complementary, amplitude complementary.. or both?

(EDIT: Obviously the assumption here is power complementary)

This post has been edited by Axon: Apr 5 2010, 21:01
Go to the top of the page
+Quote Post
lvqcl
post Apr 5 2010, 21:04
Post #20





Group: Developer
Posts: 3358
Joined: 2-December 07
Member No.: 49183



QUOTE (Axon @ Apr 5 2010, 23:41) *
Nitpick question: should the window generally be power complementary, amplitude complementary.. or both?


At least for lossy vs lossless tests A and B signals are in-phase. So "amplitude complementary" windowing doesn't change resulting signal's power.
Go to the top of the page
+Quote Post
Kees de Visser
post Apr 5 2010, 21:06
Post #21





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



QUOTE (Woodinville @ Apr 5 2010, 20:26) *
The two signals should be Hann windowed (or some other simple window) together for a total gain=1, moving between the two signals.
Isn't that the dilemma ? Switching from A to A requires a different window (cross-fade) than switching from A to B because the signal correlations are different at the switch position (A to A is always 100%, A to B will be less).
Will a short mute corrupt partial loudness memory ? At least a mute will avoid interaction between the A and B signal.
Think of the extreme case when comparing a signal with its polarity-inverted version (e.g. to test audibility of absolute phase).
Go to the top of the page
+Quote Post
Axon
post Apr 5 2010, 21:21
Post #22





Group: Members (Donating)
Posts: 1984
Joined: 4-January 04
From: Austin, TX
Member No.: 10933



QUOTE (Kees de Visser @ Apr 5 2010, 15:06) *
Think of the extreme case when comparing a signal with its polarity-inverted version (e.g. to test audibility of absolute phase).

That's not a good example, though - there, the short mute is, of course, unavoidable. (And the mixing ought to be symmetric around the mute.)

On a more general point, won't crossfading (regardless of the window used) always result in a transition where the correlation to A monotonically decreases, while the correlation to B monotonically increases? So why is correlation an issue? Of course there will be interaction between A and B, but I'm not clear how, on a per-critical-band basis, it would ever be damaging.
Go to the top of the page
+Quote Post
Arnold B. Kruege...
post Apr 5 2010, 21:33
Post #23





Group: Members
Posts: 3690
Joined: 29-October 08
From: USA, 48236
Member No.: 61311



QUOTE (Axon @ Apr 5 2010, 15:41) *
QUOTE (Woodinville @ Apr 5 2010, 14:26) *
For maximum sensitivity, there should be no clicks or pops in the ABX playback. The two signals should be Hann windowed (or some other simple window) together for a total gain=1, moving between the two signals.


Nitpick question: should the window generally be power complementary, amplitude complementary.. or both?

(EDIT: Obviously the assumption here is power complementary)


You mean, like a crossfade?

Usually, a very short silent period is added. Helps the listener to have an audible bookmark for the switchover.
Go to the top of the page
+Quote Post
Woodinville
post Apr 5 2010, 21:36
Post #24





Group: Members
Posts: 1402
Joined: 9-January 05
From: JJ's office.
Member No.: 18957



AMPLITUDE complimentary. If the two signals are not very close to alike, what are you ABX'ing? AMPLITUDE. NOT POWER. AMPLITUDE.

A silent period can disrupt loudness memory. The lack of it can give some subjects difficulty.

Ergo, that might want to be an option in the software.


--------------------
-----
J. D. (jj) Johnston
Go to the top of the page
+Quote Post
Kees de Visser
post Apr 5 2010, 21:46
Post #25





Group: Members
Posts: 660
Joined: 22-May 05
From: France
Member No.: 22220



QUOTE (Axon @ Apr 5 2010, 21:21) *
So why is correlation an issue?
Suppose we use a linear fade with a -6dB gain at the cross point. Suppose X=A. The switch from X to A will be inaudible since the fade won't change the bitstream. The switch from X to B will not be perfect. How audible this switch is depends on many things like how different the samples are, where the switch is made etc.
Because artifacts can only appear when switching between different files, there is a potential risk for a false positive ("if" the artifacts are audible, that is, but that requires another test).
Go to the top of the page
+Quote Post

2 Pages V   1 2 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 23rd August 2014 - 16:54