• 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!

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Amplitude has no effect, even at -10dB down in the signal generator I still get the same spectrum of distortions. This is definitely some processing going on.

No biggie though. Since I use the rather excellent ASIO driver of my RME for my VSTi anyway, I just set Foobar to ASIO for peace of mind. This way I get bit-perfect playback (verified) and can still mix in other sounds from other programs if need be. Best of both worlds, I guess.

The difference is close to impossible to hear for me. I put on a track ( a loud one, lots of high frequency content) at my usual 90dB Z-peak listening volume and turned it down by 55dB. I could hear faint high frequencies just at the edge of my perception. There is -0- chance I would ever hear that while actual music is blasting into my ears.
I checked the graph once again and compared it with my measurings. This looks most similar to yours:

imd05.jpg

Signals were generated at 48KHz while output was set to 44.1KHz. Signals were 18500Hz and 19000Hz at -6.3dB. If it will be louder, it will be all over the place because of CAudiolimiter. Converting 48KHz source to 44.1 seems to be worse case scenario.

Also when CAudiolimiter is triggerred it looks like this:
MPC-default.jpg


So I assume you triggered just the resampling/reclocking filter, but not limiter. I assure you in that case its much worse.
 

Propheticus

Senior Member
Joined
Nov 18, 2020
Messages
431
Likes
645
Location
Vleuten, Netherlands
A simple formula for good sound from windows...

1) Install Media Player Classic Black Edition ... Go through the settings and get it to play your music files normally.
2) In the Options/Audio tab ... Select MPC Audio Renderer as your renderer and hit "Properties". Set it like this...


Now when you play a music file, the normal Windows mixer and effects engine is bypassed and the music player owns the DAC or sound chip. Files will play at their native speeds and bit depths .... for much better sound. (If your modem displays sample rates you will see it change with each song)

For streaming services like Amazon (etc) install their appys and look in their settings for Exclusive mode, too.

Almost all of the "crappy sound" problems happen in the mixer and effects engines... Exclusive Mode bypasses them completely.
Or simply use Foobar2000 and set output to one of the options labelled "exclusive". This uses WASAPI exclusive mode and the other options use shared mode.

1651228170359.png


Downside is of course EQ APO's equalizer settings no longer work when in exclusive mode and you need to use something like the Mathaudio Headphone EQ DSP component from within FB2K itself.
 

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
So I assume you triggered just the resampling/reclocking filter, but not limiter. I assure you in that case its much worse.
Yah .... looks like I did. Everything was set to 48KHz/24 on the playback side but it was set to 44.1KHz/16 at the recording side of voicemeeter/virtual audio cable. DERP. :facepalm:

Results actually look pretty respectable now, w/o resampling (using the Java setting in REW, too lazy to redo ASIO):
19 +20K -3.1dB.png

1K -0.2dB.png


And a triggered Limiter:
1K 0dB.png
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Yah .... looks like I did. Everything was set to 48KHz/24 on the playback side but it was set to 44.1KHz/16 at the recording side of voicemeeter/virtual audio cable. DERP. :facepalm:
Its a very realistic scenario. There is a discussion about what is the standard audio output for windows systems. Some people argue its 48KHz 16bit, others stills stick to 44.1 16bit because its CD Quality.

48KHz is used mainly because of Xbox console DVD/Blurays.

Results of needed resampling are above. People switch to 44.1 and they get as bad distortion as you measured. 44.1>48KHz conversion isnt that bad, but still some artifacts at -60 or -70dB. I simply switched to 192KHz 24bit and artifacts moved above 20KHz and I never heard them afterwards :D.

Whether its or is not audible...

I would guess that THD+N at -60dB (threshold of CAudiolimiter) and IMD introduced in resampling are NOT audible for common PC audio.

You get studio gear, or anything above average, and you may notice it in certain scenarios.
 
Last edited:

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
Well, as nice as the whole "no resampling" approach is, in practical scenarios where you often don't even know the source sample rate (video games etc) it doesn't matter much.

Also, as soon as I want to involve Dirac live for room correction, the whole "switch ASIO sample rate manually per track" rears it's ugly head because the DAW and Foobar start to clash.

I will keep the ASIO settings for headphone listening only and stick to the Windows mode otherwise.
RE: audibility test: my speakers are dead silent to me at -60dB Foobar volume. I could sleep next to them. :'D
 

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
For kicks I measured the actual playback system with the UMIK-1.

Two speakers playing, mic at the MLP, simple RTA in REW. Dirac Live standalone set to 44.1/24.
Testfiles at 44.1/24 and 96/24. 1KHz @0dBFS (in order to trigger Windows' limiter), 19+20KHz at -3.1dBFS, the highest REW allowed me w/o warning me of clipping. All files were played in Foobar2000 through the default windows stack into Dirac Live standalone.
Red curve is the brackground noise for reference.

Dirac set to "bypass"
1K 0dBFs D-off.png


Dirac activated (7.2dB preamp attenuation)
1K 0dBFs D-on.png


Dirac on, resampled from 96K file to 44.1K output
1K 0dBFs D-on 96 to 44.1.png


19+20K no resampling
19 + 20 -3.1dBFS no resample D-on.png


19+20K resampled 96K file to 44.1 output
19 + 20 -3.1dBFS 96 to 4.1 D-on.png


As I suspected: in practical scenarios, windows audio stack does not seem to limit me in any notable sense, resampling or not.
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
For kicks I measured the actual playback system with the UMIK-1.

Two speakers playing, mic at the MLP, simple RTA in REW. Dirac Live standalone set to 44.1/24.
Testfiles at 44.1/24 and 96/24. 1KHz @0dBFS (in order to trigger Windows' limiter), 19+20KHz at -3.1dBFS, the highest REW allowed me w/o warning me of clipping. All files were played in Foobar2000 through the default windows stack into Dirac Live standalone.
Red curve is the brackground noise for reference.



As I suspected: in practical scenarios, windows audio stack does not seem to limit me in any notable sense, resampling or not.
Did the same few months ago.

Any 44.1>48KHz or their multiples looked similar to this:
imd08.jpg

I am 38 years old so i cant hear anything above 17-18KHz anymore. Spikes at 200 and 700Hz were audible to me when amplifier was set to "normal" listening values. Conversion to 44.1 from 48KHz looked like the grass and the hissing noise was again audible.

But when i set Windows mixer to 192KHz 24bit, 44.1Khz signal looks like this
imd04.jpg

48KHz like this:
imd07.jpg

And this sounds perfectly transparent to me.
 

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
I am 38 years old so i cant hear anything above 17-18KHz anymore. Spikes at 200 and 700Hz were audible to me when amplifier was set to "normal" listening values. Conversion to 44.1 from 48KHz looked like the grass and the hissing noise was again audible.
You can hear down 85dB? Damn, that's impressive! My hearing caps out at ~55dB (when set to normal playback value). :'D

I did a few more tests with HDMI directly this time and no matter what I resample to or from, I can't recreate the ugly looking things I saw from the digital loopback of a 19KHz + 20KHz signal in particular but also the 1K signal both at 0dBFS and below from a page back. HDMI bog standard Windows or ASIO4All look the same as Dirac I posted earlier.

At this point I'm inclined to believe that we measure some software conflict and not the actual performance of the Windows audio stack when trying the purely digital loopback.
Granted, a mic in a real room won't pick up what happens at -85dB due to ambient noise but the artifacts were at -55dB (1K) and as low as -20dB (19K+20K) of the main signal, so SOME of that should be clearly visible if Windows resampling or CAudiolimiter were to fuck things up to an audible degree.

This puzzles (want to know why) and pleases (yay, no need to worry about anything in practical use) me at the same time.
 
Last edited:

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
You can hear down 85dB? Damn, that's impressive! My hearing caps out at ~55dB (when set to normal playback value). :'D

Granted, a mic in a real room won't pick up what happens at -85dB due to ambient noise but the artifacts were at -55dB (1K) and as low as -20dB (19K+20K) of the main signal, so SOME of that should be clearly visible if Windows resampling or CAudiolimiter were to fuck things up to an audible degree.

This puzzles (want to know why) and pleases (yay, no need to worry about anything in practical use) me at the same time.
The output was through amplifier so it could be more than -85dB, but i was checking if the noise is audible from the speakers - and it was.

I made loopback like "Soundcard>TOSLINK>amplifier>headphonejack>LineIn>Soundcard". That way I made sure that ALC1220 isnt adding any filtering to the output.

Things I learned here and with testing:
- ASIO or Wasapi Exclusive dont add anything to signal, its just sent to endpoint
- if Windows mixer cannot be avoided -0,14dB will remove issues with CAudiolimiter for single channel, -6.3dB for two channels.
- Resampling from 44.1 to 48 or vice versa adds artifacts

I wonder if HDMI isnt bitstreaming, which would explain that.
 

BeerBear

Active Member
Joined
Mar 9, 2020
Messages
264
Likes
252
I made a test of Windows' SRC performance, download here: https://ufile.io/qnotd4kp
Inside are two audio files: the original music clip and the two-times-resampled copy.

The original file (48kHz) was played in MPC-HC (shared mode, non-exclusive), while Windows was set to 44.1kHz and recorded with an internal loopback.
That recording (44.1kHz) was then played with Windows audio set to 48kHz and recorded the same way again. Then it was time aligned with the original to make it easier to compare.

Let me know if you can hear the difference between the two files in a blind test.
 

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
I wonder if HDMI isnt bitstreaming, which would explain that.
Doesn't look that way.
With HDMI ( via ASIO4all), the sample rate my AVR displays changes and matches that of the file I play.
With HDMI (via default WASAPI shared from Foobar), displayed sample rate is constant no matter what I play, so resampling definitely occurs prior.
 

Propheticus

Senior Member
Joined
Nov 18, 2020
Messages
431
Likes
645
Location
Vleuten, Netherlands
Doesn't look that way.
With HDMI ( via ASIO4all), the sample rate my AVR displays changes and matches that of the file I play.
With HDMI (via default WASAPI shared from Foobar), displayed sample rate is constant no matter what I play, so resampling definitely occurs prior.
Not really a fair comparison is it? This is an exclusive mode vs shared mode difference, not an ASIO vs WASAPI difference.
There are multi client ASIO drivers out there (e.g. XMOS used in several DACs, RME or MOTU), that also allow multiple sources to use the driver simultaneously. If their source sample rate differ, some resampling needs to happen though (in either client).

Choose WASAPI [exclusive] in Foobar and no resampling happens > device switches rates to match.
 

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
Not really a fair comparison is it? This is an exclusive mode vs shared mode difference
Which was the whole point of the comparison. I wanted to see, if I could measure any difference between Windows "standard" shared audio and ASIO exclusive bit-perfect transmission AFTER the loudspeaker.

Turns out, whatever happens to the signal if my system does resample/process in non bit-perfect streams, happens so far down that it is not relevant in my particular practical scenario and most certainly will not cause audible degradation.

YMMV applies, for obvious reasons.
 

BeerBear

Active Member
Joined
Mar 9, 2020
Messages
264
Likes
252
I made a test of Windows' SRC performance, download here: https://ufile.io/qnotd4kp
Inside are two audio files: the original music clip and the two-times-resampled copy.

The original file (48kHz) was played in MPC-HC (shared mode, non-exclusive), while Windows was set to 44.1kHz and recorded with an internal loopback.
That recording (44.1kHz) was then played with Windows audio set to 48kHz and recorded the same way again. Then it was time aligned with the original to make it easier to compare.

Let me know if you can hear the difference between the two files in a blind test.
No takers, eh?

Well, I did the same test with a RMAA signal, to get some numbers. But this time going from 44.1kHz to 48kHz and then back to 44.1kHz.
I also wanted to test a single SRC pass, but RMAA needs the same SR on the input and output for the analysis.
I used MPC-HC (which AFAIK uses Windows SRC) and foobar2000 with SoX for comparison.


The summary (original untouched RMAA signal and the two files after SRC):
summary.png


Frequency response:
fr.png

It's hard to see here, but the WinSRC FR starts to drop slightly before the 20kHz line and touches it at around -0.5dB.

THD + Noise (at -3 dB FS):
thd.png


Intermodulation distortion:
imd.png



To sum up: foobar2000+SoX performs better, but the Windows 10 resampling looks good enough to me, even after a double difficult (44.1k-48k) SRC. I don't expect it to result in audible differences when listening to music. But if someone can pass the ABX test with those two files I posted, I'll take another look.

And if you want better SRC performance you can just use a media player which lets you resample with higher quality, like foobar2000 for example. Setting Windows to an even multiple of the source (like 88.2k for playing 44.1k files) would also result in better SRC performance.
 

Grooved

Addicted to Fun and Learning
Joined
Feb 26, 2021
Messages
679
Likes
441
No takers, eh?

I just started the ABX and it looked impossible. Added the fact that the only ABX tests I succeed are usually with tracks where drums are involved... I stopped it quickly.
Checked with DeltaWave: the difference is at a level that nobody should be able to hear it
-85.7dB difference (in basic setting so without non-linear correction feature)
DW basic settings.PNG


RX shows almost the same thing for both files:
RX original 48.PNG
RX 48-44.1-48.PNG


Spek shows the cut in high frequencies done by the double conversion 48->44.1->48
original 48.PNG
48-44.1-48.PNG
 
Last edited:

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Digged some tests I did with 1KHz signal few months ago

This is Foobar2000 using default windows audio.
Foobar-Default.jpg


This is MPC-HC using Windows Default
MPC-default.jpg


And this is Foobar2000 using WASAPI exclusive:
Foobar-WASAPI.jpg

I have also screen of Foobar using ASIO but it looks absolutely identical.

- Measurements of THD for first and last screen were about -80dB, for the screen in the center about -60dB.
- Both players were at maximum volume
- no resampling, just test of limiter.

@Aerith Gainsborough
It appears that Foobar2000 has a workaround which reduces volume in Windows Default mode to avoid trouble.

This is complete loop - Soundcard, TOSLINK, DAC/AMP, Headphone jack, different soundcard, and i certainly agree that my measuring equipment is not good.
 

Aerith Gainsborough

Addicted to Fun and Learning
Joined
May 4, 2020
Messages
853
Likes
1,280
It appears that Foobar2000 has a workaround which reduces volume in Windows Default mode to avoid trouble.
Did you have the preamp gain set to a negative value?
 

Propheticus

Senior Member
Joined
Nov 18, 2020
Messages
431
Likes
645
Location
Vleuten, Netherlands
...or an advanced limiter in your DSP, or replaygain scanned the file and you have "avoid clipping according to peak" on in playback settings?

(Also the default output of Foobar is no longer direct sound but Wasapi shared, MPC HC uses direct sound. Not sure if that would explain the difference)
 
Top Bottom