Link cables ABX listening test

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
but DiffMaker has discarded them, somehow decided that they didn't matter

Um. Seriously? DiffMaker is capable of doing nothing of the sort. It doesn't decide anything, it just tweaks time delays, speed variations, and amplitudes (and response delays if EQ is used) by trial and error and least square error evaluation to get the lowest residual it can come up with. If it shows no difference (residual energy = effectively zero), then there wasn't one, just CAN'T be. If it shows a difference, then there MIGHT be one. "Might" for various reasons. Diffmaker may find an energy residual to be lower with delay or amplitude shifted a bit because it causes existing noise to cancel better (random stuff like noise tends to be random), and that can leave a human-perceptible program sound behind if boosted enough. But it can't "ignore" a difference. It just might maybe see one when it (other than noise) isn't really there. It's a damn algorithm, not a plot by sentient computers.
 
Diffmaker works pretty good on monophonic and not very long files. I have been very surprised how exactly it is able to find time difference between such files, like 50ns even if sampling is 22.67us. I made a set of 3 + 3 + 3 files (short cable, 1nF capacitor added, 10m of cable added) and compared each to each. Diffmaker results are consistent, for 40s long, one channel (monophonic) files.
 
Um. Seriously? DiffMaker is capable of doing nothing of the sort.
Yep, seriously ... :D.

I've had two bouts fighting with the program, trying to get it to do something sensible with what I was feeding it, and gave up in disgust each time ... sorry 'bout that, :eek:.

Hence my allocating of some dark intent to the internals of the beast, just human nature at work, ;). Obviously it attempts to make sense of what it sees, but I have seen consistently "nonsense" outcomes in my playing with the program.

Edit: It may help to be aware of myself having a reputation for causing programs to crash in my computing days - people would deliberately ask me to test their programming efforts, because I would unearth all the bugs ... :p.
 
Last edited:
Luckily, most software isn't like DiffMaker - it's okay that software can't handle a task because it's too much to swallow, but it should fail gracefully if that's the case. DiffMaker would just continually crash, or stop with completely meaningless error messages - so one had no idea what was upsetting the program; it would require days of experimenting to determine where it could be useful, and whether its output could be trusted.
 
It is impossible to make direct subtraction of samples that are not absolutely time simultaneous (sampled at exactly same time). Even 100ns shift (or smaller) makes the result of subtraction useless. This should be understood and if it is not, then I am sorry. Not mentioning amplitude response errors. Diffmaker is excellent in avoiding time shift psedo-differences, in case the files are perfect in all other respects.
 
Yes, I've already investigated the original link cables files, and have noted exactly what you're talking about - the so many nsec shift in timing is the main component of the subtraction file. So, at the moment I'm investigating a means of, firstly, manually adjusting for this and seeing what it gives me - effectively doing DiffMaker's work "by hand". Depending on how that goes I'll see if some sort of semi-automated processing can be set up to do that sort of adjustment, and perhaps take it further.
 
I’ve downloaded Diffmaker, and the original cable files. Subtraction in Cool Edit and viewing Diffmaker results look like good match to PMA’s results.

Now see Diffmaker throw the baby out with the bathwater:

A narrow band burst passing about 4400Hz-4600Hz is generated approximately –9.4dBFS at sampling rate 48kHz centered in 48000 samples wave:

BP4k5 test.png

The file is saved as 32bit integer wave. Loopback recording is made with continuous looping of test track generating easily isolated blocks of the burst. The recording is first normalized to 0dBFS. 48000 samples long bursts are isolated and saved as BP4k5 1.wav and BP4k5 2.wav (also 32bit integer). BP4k5 1.wav is subtracted from BP4k5 2.wav and saved as BP4k5 2-BP4k5 1 subtraction.wav. Difference file BP4k5-2BP4k5 1.wav is generated by Diffmaker and opened in Cool Edit.

Overlay of spectrums Diffmaker result and direct subtraction result:

Diffmaker v Subtraction.png

Left channel is upper waveform; this is direct subtraction result of –91.57dB in 4501Hz bin of spectrum. Diffmaker result in right channel is at –38.34dB.

Spectrum outside of signal bandwidth is virtually identical for the two results.

Why does Diffmaker fail here?

Attached are copies of test signal, recorded bursts, and difference results as presented here. Files have been renamed from .wav to .asc for upload purposes.
 

Attachments

  • BP4k5 test.asc
    187.6 KB · Views: 27
  • BP4k5 1.asc
    187.9 KB · Views: 27
  • BP4k5 2.asc
    187.6 KB · Views: 26
  • BP4k5 2-BP4k5 1 subtraction.asc
    187.6 KB · Views: 25
  • BP4k5 2-BP4k5 1 Diffmaker.asc
    140.8 KB · Views: 27
Why does Diffmaker fail here?

Hi,

thanks for your post. IME diffmaker works well only with one channel files and short ones. And, it is unable to process 32bit float type 3 files, they have to be packed Int 24 bit type 1.

In case you are interested, there is a link to nine monophonic files

https://www.dropbox.com/s/pjl3ou9h2qm1mcb/kabel_cap1nF_new.zip?dl=0

with same content as the previous test. Shorted to 40s and monophonic.

orig 1,2,3 are recorded with short cable
cap 1,2,3 are recorded with added 1nF capacitor to simulate long cable
kabel 1,2,3 are recorded with 10m additional cable

Everything is in balanced mode to exclude additional hum.
Diffmaker seems to work well with these files.

As you know, you have to throw away about 8,000 first samples from the diffmaker difference file result, as they cover the time when to computation process is settled down.
 
Last edited:
I doubt diffmaker action above two channels. It seems to calculate something in one channel, correctly, takes the same time settings to the second channel and makes wrong job.

I am not sure if I follow you well, this is what I get from diffmaker with 24-bit test files ("rg" and "cardas"). Attached is also the result with monophonic files.

1 smpl at Y axis equals to 1 level of 16-bit LSB. When X axis is zoomed, truncation disappears.
 

Attachments

  • rozdily.pdf
    114.8 KB · Views: 43
  • diffmaker_24b.PNG
    diffmaker_24b.PNG
    55.1 KB · Views: 45
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.