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

Kernel Streaming, ASIO, WASAPI... and music players (Foobar, JRiver...)

BillG

Major Contributor
Joined
Sep 12, 2018
Messages
1,699
Likes
2,268
Location
Auckland, New Zealand
True. It would be easy to say: "if one spots a difference, THEN there is a measurable difference".
But I can tell the difference between the smell of a banana and the smell of coffee, while I can't show it via a measurement.

But you could with the proper equipment, since their chemical makeup is different... :p
 

Shadrach

Addicted to Fun and Learning
Joined
Feb 24, 2019
Messages
675
Likes
979
It's been a very long time since I messed about with this stuff on Microshite Doors.
I thought/think that Windows mixer resamples all audio to 16/48 in order to be compatible with Utube etc. This is when XP was current.
I used to get problems with XP audio quality due to drop outs. Don't need to ABX for that! Also, with my ancient laptop, USB was not well implemented and adequate power could be a problem if anything else was making requests. Only one of the USB sockets could provide 5 Volts, but often didn't.
A lot of the 'optimization' stuff I read seems a bit dated. Direct Sound didn't work if my memory serves me on XP and a wrap was needed to overcome this and gain access to the Windows base drivers.
I changed to Linux. I've had Ubuntu 11.04 (it's old) running on a 1.5 GHz CPU with 512 of RAM using USB to an asynchronous DAC for many years now. I did install an SSD and this did make an audible difference, not to the bits but to the amount of noise the hard drive spinning made and of course, often this starts the fan up.
For those who are struggling with Windows and are using old hardware have a look at Puppy Linux Xenial and DeadBeef as a music player.
If you know very little about operating systems, Puppy Linux is relatively easy to put on a dual boot PC, so you won't have to wipe your drive to install it and give it a try. ALSA, while fairly complex for the average Microshite user is imo a far better sorted audio stack and with a bit of research on the net you can ensure you get bit perfect audio at the PC if your Dac doesn't show the received sample rate and bit depth.
 

BillG

Major Contributor
Joined
Sep 12, 2018
Messages
1,699
Likes
2,268
Location
Auckland, New Zealand
"Looking at the Audiophile Style forum, we see that a discussion thread about the topic of optimizing an audio computer needs to have "guiding principles" to maintain "reasonably high S/N ratio". As plainly said, the guiding principles demand that the participants in the thread forgoes proof, requires no specific methodology, and measurements are unnecessary to this kind of "experimentation". In other words, reasonable, intellectual discussions that seek answers based on principles that we would apply to essentially any other endeavor where we seek knowledge and facts need not apply here! This is amazing considering that computers are the fruits of science and engineering."

http://archimago.blogspot.com/2019/02/musings-computer-audio-mythos-comment.html
 

pkane

Master Contributor
Forum Donor
Joined
Aug 18, 2017
Messages
5,667
Likes
10,298
Location
North-East
Great post, thanks for sharing your expertise. Archimago's taken a step towards characterizing Windows sample rate conversion and the outcome wasn't too promising unfortunately:
http://archimago.blogspot.com/2015/11/measurements-windows-10-audio-stack.html

I started by using Windows resampler in DeltaWave software. It wasn't very good, at least the Media Foundation DSP part of it. At the best quality setting, it was producing measurable errors. When upsampled and compared to a higher quality resampler, such as in Audacity, MSFT's resampler produced a fairly poor null value of around -60db-70dB. I then coded my own FFT resampler, and the null between upsampled files in Audacity and DeltaWave is now better than -100dB.
 

DDF

Addicted to Fun and Learning
Joined
Dec 31, 2018
Messages
617
Likes
1,360
Holly molly, what a crappy upsampler!
Is it better for downsampling? Are we safe with 44.1Hz set in the Windows mixer most of the time?

Set it to whatever your music streaming service is set to to avoid upsampling. I use Tidal and Spotify at 44.1kHz so I set Windows to that @ 24 bits. If you use MQA Tidal, set it to 96kHz etc

Set your player for local music files (I use foobar2k) to Wasapi exclusive and windows upsampler setting won't matter for those files.
 
OP
daftcombo

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
Has anyone spot a difference in sound quality between music players (Foobar2000, JRiver, JPlay...)?

And another question: can there be a loss in sound quality when downsampling 48kHz to 44.1kHz (in Foobar with SoX for instance)?
 

March Audio

Master Contributor
Audio Company
Joined
Mar 1, 2016
Messages
6,378
Likes
9,319
Location
Albany Western Australia
It's been a very long time since I messed about with this stuff on Microshite Doors.
I thought/think that Windows mixer resamples all audio to 16/48 in order to be compatible with Utube etc. This is when XP was current.
I used to get problems with XP audio quality due to drop outs. Don't need to ABX for that! Also, with my ancient laptop, USB was not well implemented and adequate power could be a problem if anything else was making requests. Only one of the USB sockets could provide 5 Volts, but often didn't.
A lot of the 'optimization' stuff I read seems a bit dated. Direct Sound didn't work if my memory serves me on XP and a wrap was needed to overcome this and gain access to the Windows base drivers.
I changed to Linux. I've had Ubuntu 11.04 (it's old) running on a 1.5 GHz CPU with 512 of RAM using USB to an asynchronous DAC for many years now. I did install an SSD and this did make an audible difference, not to the bits but to the amount of noise the hard drive spinning made and of course, often this starts the fan up.
For those who are struggling with Windows and are using old hardware have a look at Puppy Linux Xenial and DeadBeef as a music player.
If you know very little about operating systems, Puppy Linux is relatively easy to put on a dual boot PC, so you won't have to wipe your drive to install it and give it a try. ALSA, while fairly complex for the average Microshite user is imo a far better sorted audio stack and with a bit of research on the net you can ensure you get bit perfect audio at the PC if your Dac doesn't show the received sample rate and bit depth.

That's the purpose of wasapi exclusive. It bypasses all of that.
 

March Audio

Master Contributor
Audio Company
Joined
Mar 1, 2016
Messages
6,378
Likes
9,319
Location
Albany Western Australia
Has anyone spot a difference in sound quality between music players (Foobar2000, JRiver, JPlay...)?

And another question: can there be a loss in sound quality when downsampling 48kHz to 44.1kHz (in Foobar with SoX for instance)?
Certainly not between jriver and Roon, the 2 I use. IIRC correctly @amirm has tested output from Roon and it provides identical results to output from the AP analyser.

Whilst it is possible that USB powered dacs could be affected by poor psu and ground loops, well designed dacs don't.

Most of this stuff (as is so often the case in this hobby) is the result of a combination of Audiophile nervosa and uncontrolled listening comparisons.
 
Last edited:

amirm

Founder/Admin
Staff Member
CFO (Chief Fun Officer)
Joined
Feb 13, 2016
Messages
44,590
Likes
239,535
Location
Seattle Area
I thought/think that Windows mixer resamples all audio to 16/48 in order to be compatible with Utube etc. This is when XP was current.
Under my watch :), we ditched the Windows XP audio pipeline completely for Vista and later. We had very strict performance criteria to not slow down any system with the new pipeline so the algorithms are not state of the art. They are a huge step up from XP though.
 

etc6849

Active Member
Joined
Apr 28, 2018
Messages
134
Likes
245
Location
Columbia, SC
I did some digital loopback tests using REW (Java versus ASIO options). I was really surprised to see a measurable difference. I'm using an RME HDSPe AES 32 card.

I'm not saying the difference is audible (aside from the reduced output, no idea why this is occurring as I had windows mixer set to 100%), but it adds enough garbage that it makes me want to never trust it.

RME through Windows 10 mixer:
RME loopback through windows mixer.png


RME using ASIO on same Windows 10 PC:
RME loopback ASIO bypassing windows mixer.png


I did similar measurements with a MiniDSP USB UDIO-8 (USB 8 channel AES in/out). This is what it looks like when I run the audio through my mac book's volume control:
MiniDSP UIO Working.png
 

edechamps

Addicted to Fun and Learning
Forum Donor
Joined
Nov 21, 2018
Messages
910
Likes
3,620
Location
London, United Kingdom
I did some digital loopback tests using REW (Java versus ASIO options). I was really surprised to see a measurable difference. I'm using an RME HDSPe AES 32 card.

Unless @JohnPM changed that part since I last checked, REW is limited to 16-bit when using the "Java" output. In contrast, ASIO can use a higher bit depth. I suspect that explains the elevated noise floor that you've observed. It's a limitation of the basic "Java" output in REW, not a limitation of the Windows mixer.

Also, keep in mind that depending on which ASIO driver you use, the audio path can be very different between the normal Windows WDM driver and the ASIO driver. The differences might be down to a problem with the WDM path that for some reason would not affect the ASIO path. Such differences would not be related to the Windows mixer per se. That is, WASAPI Exclusive would be affected too. (This would not be a typical situation, and might point to a faulty driver.)

If you want to experiment with various Windows output methods in REW, you can do that by using FlexASIO in REW and switching between the various backends and sample types. That gives you more control than the REW "Java" output.
 
Last edited:

amirm

Founder/Admin
Staff Member
CFO (Chief Fun Officer)
Joined
Feb 13, 2016
Messages
44,590
Likes
239,535
Location
Seattle Area
If you want to experiment with various Windows output methods in REW, you can do that by using FlexASIO in REW and switching between the various backends and sample types.
Side question: FlexASIO just hangs on my system. Is there a reliable working version??? I have never been able to use it.
 

etc6849

Active Member
Joined
Apr 28, 2018
Messages
134
Likes
245
Location
Columbia, SC
Thanks for looking. The ASIO path goes through RME's Totalmix mixer and Hammerfall DSP software as discussed here:
http://www.rme-audio.de/en/support/techinfo/hdsp_totalmix_hardware.php

The level difference (-7 dBFS versus -20.5 dBFS) could very well be due to RME's driver and not Windows; certainly seems possible. I will have to test the MiniDSP UDIO-8 on the Windows 10 PC too.

Also, keep in mind that depending on which ASIO driver you use, the audio path can be very different between the normal Windows WDM driver and the ASIO driver. The differences might be down to a problem with the WDM path that for some reason would not affect the ASIO path. Such differences would not be related to the Windows mixer per se, in the sense that, say, WASAPI Exclusive would be affected too. (This would not be a typical situation, and might point to a faulty driver.)

If you want to experiment with various Windows output methods in REW, you can do that by using FlexASIO in REW and switching between the various backends and sample types. That gives you more control than the REW "Java" output.
 

DDF

Addicted to Fun and Learning
Joined
Dec 31, 2018
Messages
617
Likes
1,360
Can you explain how you performed a blind controlled listening test on this?

Just for info here is a link to some measurements I performed with my DAC1 and various different SBCs, laptop and NUC. No difference in the dac output between all of these items.

https://www.audiosciencereview.com/...end-points-are-they-any-good.5707/post-127194

I don't think the situation is so cut and dried as often reported.

To add an alternative experience, my Dell laptop to a Nuprime DAC-10H (measurements to be posted soon, no issues found with the DAC in standard testing) had audible problems with the stock power supply on the PC, fixed with a change to 2 prong insulated supply. Symptom wasn't a standard drop out but just bad grit. You could hear modulating noise at the teeter, sometimes higher, sometimes lower. Audible blind in 10/10 tests tried.

Bit errors remained even after this fix when streaming but only streaming over Spotify or especially Tidal. My high speed access is rock solid and very fast. Rectifying this took many hours of trial and error but ultimately was found by pushing out every single auto update in the Windows scheduler to 3 am. Reasonable i5 machine completely stripped down and highly optimized for W7 audio, though with small RAM (4G).

This publication was a life saver in making the system drop out free. Walking through these steps incrementally improved the situation.
https://www.cantabilesoftware.com/glitchfree/

Audio problems over windows are quite common for music creators.

I'd like to see more information on how dacs resolve bit errors. I understand asynch can request resends but information regarding packet sizes, and any interpolation or correction schemes would be very valuable to truly understand the situation and not rely on anecdotal conjecture.

BTW I was one of the early audio designers on VoIP and understand how bit errors can occur, how to avoid them and concepts used in correction very well but lack information on how standard dac chips deal with this.
 

March Audio

Master Contributor
Audio Company
Joined
Mar 1, 2016
Messages
6,378
Likes
9,319
Location
Albany Western Australia
I don't think the situation is so cut and dried as often reported.

To add an alternative experience, my Dell laptop to a Nuprime DAC-10H (measurements to be posted soon, no issues found with the DAC in standard testing) had audible problems with the stock power supply on the PC, fixed with a change to 2 prong insulated supply. Symptom wasn't a standard drop out but just bad grit. You could hear modulating noise at the teeter, sometimes higher, sometimes lower. Audible blind in 10/10 tests tried.

Bit errors remained even after this fix when streaming but only streaming over Spotify or especially Tidal. My high speed access is rock solid and very fast. Rectifying this took many hours of trial and error but ultimately was found by pushing out every single auto update in the Windows scheduler to 3 am. Reasonable i5 machine completely stripped down and highly optimized for W7 audio, though with small RAM (4G).

This publication was a life saver in making the system drop out free. Walking through these steps incrementally improved the situation.
https://www.cantabilesoftware.com/glitchfree/

Audio problems over windows are quite common for music creators.

I'd like to see more information on how dacs resolve bit errors. I understand asynch can request resends but information regarding packet sizes, and any interpolation or correction schemes would be very valuable to truly understand the situation and not rely on anecdotal conjecture.

BTW I was one of the early audio designers on VoIP and understand how bit errors can occur, how to avoid them and concepts used in correction very well but lack information on how standard dac chips deal with this.

If you look at the link I posted I did mention that problems may be evident with certain dacs but it is very much down to the dac design and few and far between. Ground loops can be evident which I also mentioned.

I have never experienced drop outs on usb connections. Streaming is a seperate issue
 
OP
daftcombo

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
I too have a different sound with REW on Java than on ASIO. Audible clicks actually.
 

Shadrach

Addicted to Fun and Learning
Joined
Feb 24, 2019
Messages
675
Likes
979
That's the purpose of wasapi exclusive. It bypasses all of that.
I did write this was a long time ago. I got into file based audio comparatively early. I still have a partition with XP on just so I can play Unreal Tournament 3 from time to time.;)
 

Shadrach

Addicted to Fun and Learning
Joined
Feb 24, 2019
Messages
675
Likes
979
Under my watch :), we ditched the Windows XP audio pipeline completely for Vista and later. We had very strict performance criteria to not slow down any system with the new pipeline so the algorithms are not state of the art. They are a huge step up from XP though.
Oooops, I better be a bit more circumspect in my criticism of Windows then.:p:D
I changed to Linux shortly after XP came out, so I can't comment on any later distributions.
I started with an early Ubuntu; 8 something I think. I've had Ubuntu 11.04 on an old laptop for many years and while a bit clunky, it has never acted up despite me hacking it about quite a bit.
I've 3 other Linux distributions on the music server I built and a few more on my main PC.
I've watched with some interest and a lot of incredulity as the various players such as JPlay and HQPlayer got hyped up on various forums. Strange how they all need paying for.:p
I don't even use the music server I built any more. I have a small self built quiet PC, running Linux of course :pand it sounds fine to me. Modern Dacs seem to be able to cope with any noise and jitter made by the computer
 

edechamps

Addicted to Fun and Learning
Forum Donor
Joined
Nov 21, 2018
Messages
910
Likes
3,620
Location
London, United Kingdom
Side question: FlexASIO just hangs on my system. Is there a reliable working version??? I have never been able to use it.

That's surprising. Can you enable logging, make FlexASIO hang, and then file an issue with the log attached ? Then I can look at it.

I too have a different sound with REW on Java than on ASIO. Audible clicks actually.

Audible clicks (also known as "glitches", "discontinuities") are most likely buffer underruns, which are caused by issues with the software stack. For example, an audio stack is likely to glitch if the buffer size is too small - that's normal and just means the buffer size should be increased. (How that can be done is a different story.) Glitches are evidence of a fault (bug, bad driver, bad configuration, etc.) and are not representative of normal operation.
 
Top Bottom