Jump to content
IGNORED

W10 Volume Controls affects ASIO Native DSD playback and WASAPI DoP playback


Zareli

Recommended Posts

Hello

Like many folks I like to bypass DirectSound on W10 for music playback. I preferred to stick to ASIO but it's buggy on every DAC/Soundcard I've ever tried, producing noise when putting load on the CPU and having problems at certain sampling rates so later I decided to use WASAPI whenever it was possible because it's less glitchy in my experience.

On Windows 10 (W10) the global volume control is not bypassed by WASAPI, KS or ASIO. Currently Foobar also allows volume control on PCM on ASIO, WASAPI or KS. Only the independent w10 app-mixer is disabled and muted for the rest of the system.

It's no big deal since both are supposed to have fp-higher-than-bit-depth gain algorithms so they *shouldn't* compromise quality, still out of OCD I prefer to send the exact source bit by bit stuff to my USB DAC so I was just assuming bitperfect stream was achieved with foobar and windows at full gain (0db) through WASAPI or ASIO.

Now this is the real puzzler for me:

Windows 10 can still control volume (reduce gain) when either Jriver or Foobar are streaming DoP and it works properly. More bizarre is the fact that Windows 10 can control the global volume of the Native DSD 1bit stream sent through ASIO. Not even foobar2000 or Jriver can control the volume of DSD streams (Native DSD or DoP).

Why ? Because PCM algorithms (gain in this case) are inherently incompatible with DSD and dedicated direct DSD algorithms have not been implemented in this players. I don't know any software that has implemented this on-the-fly volume control DSP for DSD streams. I completely doubt that microsoft decided to implement this proprietary algorithms that probably would need to buy licenses for and/or develop themselves for a functionality that ultimately 99.9% of the users don't care about and the other 0.1% that actually know about DSD don't actually need or want.

I already checked, W10's global volume is totally independent from the DAC's gain settings.

Any ideas on what's going on ?

So far this are my guesses:

- W10 can handle native DSD streams at least for On-The-Fly Gain control, even though it doesn't support SACD or DSD formats in the built in player (this is not a VAIO).

- The DAC's drivers have an algorithm that allows the windows audio mixer to perform DSD processing that's applied before the stream is sent over USB. This is unlikely since the drivers are very barebones, only allow basic monitoring of the DAC sample rate and switching between the outputs.

Any ideas on what is going on here ?

TL DR Windows 10 can properly control the global volume of a system streaming bitperfect DSD through either Native DSD on ASIO or DoP on WASAPI. I explained why it doesn't make any sense to me.

Link to comment

If you "stream" DSD content over DoP, you simply can not control the volume of the embedded (!) DSD data, as it would get scrambled.

 

What DAC are you using?

Maybe Windows volume control is actually controlling your DACs volume?

Esoterc SA-60 / Foobar2000 -> Mytek Stereo 192 DSD / Audio-GD NFB 28.38 -> MEG RL922K / AKG K500 / AKG K1000  / Audioquest Nighthawk / OPPO PM-2 / Sennheiser HD800 / Sennheiser Surrounder / Sony MA900 / STAX SR-303+SRM-323II

Link to comment

Yeah, I know you can't control the volume of DoP or Native 1bit DSD streams with the built in PCM algorithms.

 

My DAC is as Musiland Monitor US 02 MK. As I mentioned the DAC's internal volume is controlled by a knob or the drivers and remains completely unaffected by the windows volume setting.

Link to comment
... As I mentioned the DAC's internal volume is controlled by a knob or the drivers and remains completely unaffected by the windows volume setting.

 

As I can't find any documentation about your DAC, I still asume that the driver is linked to the Windows (10) volume control and enables volume control this way.

Esoterc SA-60 / Foobar2000 -> Mytek Stereo 192 DSD / Audio-GD NFB 28.38 -> MEG RL922K / AKG K500 / AKG K1000  / Audioquest Nighthawk / OPPO PM-2 / Sennheiser HD800 / Sennheiser Surrounder / Sony MA900 / STAX SR-303+SRM-323II

Link to comment

I ran this utility to map audio device windows drivers suggested somewhere else:

https://blogs.msdn.microsoft.com/matthew_van_eerde/2014/11/20/walking-the-idevicetopology-tree-to-see-audio-driver-settings/

 

I got this output, not completely sure about this but should it mean the Driver/DAC has another internal digital volume control entirely for windows (or other OS) to control ? I'd assume this processing is happening inside the DAC, alongside the main volume control.

The knob Gain control in the dac goes from -49db to 0db in 1db steps (this one is also monitored and controlled through the drivers).

The windows Gain control output says -63 to 0 in steps of 0.5db (this one is only controlled and reported by windows).

eRender endpoint

Name: Speakers (MUSILAND Monitor 02 US mark2 Audio Device)

Endpoint ID: {0.0.0.00000000}.{55afa541-560c-4e47-8e2a-2b102fd723b1}

0x10000:

{2}.\\?\muaudio#vid_1fc9&pid_6235#8&8e7630e&0#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\topology

0x10001: Speakers

0x20001: Master Mute

Mute node: NOT MUTED

0x20000: Speakers

Channel 0 volume, -63 dB to 0 dB in steps of 0.5 dB: 0 dB

Channel 1 volume, -63 dB to 0 dB in steps of 0.5 dB: 0 dB

0x10000:

{2}.\\?\muaudio#vid_1fc9&pid_6235#8&8e7630e&0#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\wave

0x10001:

0x20000: DAC

0x10000:

Link to comment

There are four types of volume control in Windows but two types of volume control are important for audiophiles: session volume and endpoint volume.

 

Session volume controls volume of each audio session which application creates and it is always software implemented volume.

 

Endpoint volume controls volume of audio endpoint of audio device and it is implemented by software volume or hardware volume, how it is implemented is depend on the audio hardware, there may be digitally controlled analog volume like a PGA2311 or may be motorized volume fader.

 

theoretically application can control session volume and endpoint volume. But typically application shows and controls session volume.

 

You can check endpoint volume is hardware implemented or not by calling

IAudioEndpointVolume::QueryHardwareSupport() function.

 

Your result of endpoint device topology dump from devicetopology program does not show the information about the endpoint volume of MUSILAND Monitor 02 US Mark2 is hardware controlled volume or not.

 

It seems , among the Mattew's sample codes, volume-linearity sample program queries the hardware support of the endpoint device and shows "There is a hardware volume control" if it has hardware controlled volume.

Sunday programmer since 1985

Developer of PlayPcmWin

Link to comment
There are four types of volume control in Windows but two types of volume control are important for audiophiles: session volume and endpoint volume.

 

Session volume controls volume of each audio session which application creates and it is always software implemented volume.

 

Endpoint volume controls volume of audio endpoint of audio device and it is implemented by software volume or hardware volume, how it is implemented is depend on the audio hardware, there may be digitally controlled analog volume like a PGA2311 or may be motorized volume fader.

 

theoretically application can control session volume and endpoint volume. But typically application shows and controls session volume.

 

You can check endpoint volume is hardware implemented or not by calling

IAudioEndpointVolume::QueryHardwareSupport() function.

 

Your result of endpoint device topology dump from devicetopology program does not show the information about the endpoint volume of MUSILAND Monitor 02 US Mark2 is hardware controlled volume or not.

 

It seems , among the Mattew's sample codes, volume-linearity sample program queries the hardware support of the endpoint device and shows "There is a hardware volume control" if it has hardware controlled volume.

I ran the tool:

There is a hardware volume control

There is a hardware mute

ERROR: IMMDeviceEnumerator::GetDefaultAudioEndpoint failed: hr = 0x80070490

 

So this confirms my DAC has a second *hidden* hardware volume control alongside the main one I guess.

Thanks for your answer.

Link to comment
BTW I have MUSILAND Monitor US 02 Dragon and this device shows the best performance when endpoint volume is set to -1dB or smaller. Settings volume to 0dB causes saturation of full-scale signal and it distorts

 

Thanks for the suggestion. I haven't noticed any distortion on the MK2 version when endpoint volume is locked at 0db. Maybe it's because I flashed the latest firmware from the forums and I'm using the latest drivers. Anyway both DACs look similar but they're quite different internally.

 

I usually try to use both endpoint and knob volumes at 0db when on speakers. On headphones I go around -15db knob volume because I don't own any heavy inefficient headphones.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...