Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Upsampling again (ABX'd)... (Read 3890 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Upsampling again (ABX'd)...

I performed an ABX test on a Metallica (Attitude, Reload) FLAC of mine. I used foobar to convert the FLAC to two samples - one 44100 sample and one 176400 sample. Both samples were replaygained (track) before ABX'ing. For resampling I used Otochan's foobar plugin, that is I didn't use the standard resampler.

I only performed 9 tests (I get bored easily) but I did use the setting "Hide results" so I had no idea how I was doing when I quit the test. Here's the result:

Score: 9/9
Probability that you were guessing: 0.2%

I don't think this was just luck - I really heard a difference. The disturbing thing is that what I primarily nailed it on was a perceived difference in volume - the 44.1 kHz seemed slightly louder and (hence?) punchier as if the bass was stronger. Or alternatively you could say that the 176400 seemed "smoother". Though I actually did prefer the 44100 version...   

My setup is an M-Audio Revolution and Sennheiser HD-580s.

Any thoughts? Have I done something wrong?

Edit: I manually changed the replygain values so that they matched up. I no longer hear a difference. I still consider this a serious problem since proper replaygain levels are necessary for all ABX tests!

Upsampling again (ABX'd)...

Reply #1
Quote
Edit: I manually changed the replygain values so that they matched up. I no longer hear a difference. I still consider this a serious problem since proper replaygain levels are necessary for all ABX tests!

Volume must indeed be matched to conduct a proper ABX test, as must time offset.

ff123


Upsampling again (ABX'd)...

Reply #3
Any thoughts on why replygain didn't obtain the correct gain values? Is it maybe because the Revo doesn't have the same perceived volume in all modes?

Upsampling again (ABX'd)...

Reply #4
As I've said before, unless you believe that some intentional volume difference has been introduced (and hence must be corrected), you shouldn't ReplayGain when ABXing - certainly not when comparing small differences like resampling.

I wish someone would get rid of that "recommended" text next to "Use ReplayGain" in foobar's ABX comparator. How about something like:

Use ReplayGain
  • (default = off)

    "ReplayGain will correct any level or volume difference between the two audio clips.
    It is essential that the levels are matched to carry out a fair ABX comparison, but please remember that ReplayGain is not perfect. Use it if necesary, but note that a small level difference may remain (or be added) which may create a false positive result."


    It's quite difficult to work with different sample rates. One solution is to resample both down to a common sample rate before ReplayGaining.

    In any case, where the sample rates are the same, a band pass filter (e.g. 100Hz-5kHz) before ReplayGaining should remove the effect of any codec and/or dither additions and/or subtractions, giving a more robust match. It's essential that the two clips are time aligned, and of the same duration - ReplayGaining two short but non-simultaneous clips originating from the same source is meaningless. For example, if both clips are very short, and if clip A stops just before a loud drum beat, while clip B stops just after it, then that extra millisecond of sound could totally change the ReplayGain value.


    It's probably better to take an all-clip total RMS value and match that between the two clips, rather than taking 50ms values and picking the 95th percentile.

    So, rather than ReplayGain, this would work:

    Check both files are time aligned and the same duration.

    If they have different sample rates, resample to a common (lower) sample rate.
    Band pass filter the result 100Hz-5kHz
    Apply the Equal Loudness curve
    Calculate the total RMS value for each file
    Calculate the mean, and hence the scaling factor required to make each file reach this mean.

    Return to the original files, and check that neither file will clip when scaled as appropriate. If there will be clipping, reduce the scaling in parallel for each file such that neither file clips.

    Apply the appropriate scaling to both files using floating point arithmetic. Dither or truncate as appropriate.

    If the files are different sample rates, maybe try to equalise the dither power in the audio band on both files (this means adding more than ideal dither amplitude to the higher sampling rate version). Alternatively, resample both files to a common (higher) sampling rate before scaling and dithering.


    I can't think of a fairer way of doing it.

    Cheers,
    David.
    P.S. should this be in the foobar forum?