Zareli Posted November 6, 2016 Share Posted November 6, 2016 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
Synfreak Posted November 6, 2016 Share Posted November 6, 2016 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
Zareli Posted November 6, 2016 Author Share Posted November 6, 2016 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
Synfreak Posted November 7, 2016 Share Posted November 7, 2016 ... 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
Zareli Posted November 7, 2016 Author Share Posted November 7, 2016 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
yamamoto2002 Posted November 7, 2016 Share Posted November 7, 2016 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
Zareli Posted November 7, 2016 Author Share Posted November 7, 2016 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 controlThere 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
yamamoto2002 Posted November 7, 2016 Share Posted November 7, 2016 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 Sunday programmer since 1985 Developer of PlayPcmWin Link to comment
Zareli Posted November 7, 2016 Author Share Posted November 7, 2016 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now