zareliman
100+ Head-Fier
- Joined
- Mar 29, 2012
- Posts
- 111
- Likes
- 24
Hello
I recently discovered that WASAPI supposedly can playback bitperfect streams of PCM and DSD. 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 I decided to use WASAPI whenever it was possible.
I already was aware that on WASAPI exclusive (event or push) PCM streams:
1.- Foobar still has full volume control and RG even on WASAPI that's supposed to be Bitperfect (it is not bitperfect unless you set everything at 0db AFAIK).
2.- Windows 10 has partial volume control, the mixer-per-app stops working but the main stream still has volume control (just like foobar it's -X db to 0db).
That doesn't surprise me or concern me much since both programs are performing fp-higher-than-bit-depth gain algorithms so they *shouldn't* compromise quality, still out of OCD I prefer to send bitperfect stuff to my dac so I was just assuming bitperfect stream was achieved with foobar and windows at full gain (0db).
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.
DSD support doesn't exist in vanilla foobar or windows 10. Foobar can decode dsd through a foo_input_sacd and produce bitperfect DoP (DSD Native/Raw was dropped in 0.9.7). DoP is DSD over PCM which is NOT a wave conversion, it's just a different way to pack DSD so that drivers/controllers that usually handle PCM packets can send/receive DSD through the same channels. This is why DoP produces noise in DAC's that only support PCM, because they try to read it as a PCM wave when it's still DSD.
When DSD playback over DoP is enabled on foobar, the volume control is obviously bypassed (and RG) because the internal foobar's algorithm for PCM, it's incompatible with DSD (DSD is inherently incompatible with any PCM processing and vice versa). It makes absolutely no sense that windows can take that DoP stream and apply it's regular PCM algorithm.
Please help me understand what's going on here.
TLR DSD over PCM WASAPI playback volume control should not work in Windows (explained), it is working properly (no noise or artifacts).
EDIT: Confirmed, Native DSD (1bit raw stream) through ASIO is still being affected by the global windows volume control. This is absolutely bizarre. The DAC's internal digital volume control is being unaffected by the windows setting, both are totally independent.
I recently discovered that WASAPI supposedly can playback bitperfect streams of PCM and DSD. 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 I decided to use WASAPI whenever it was possible.
I already was aware that on WASAPI exclusive (event or push) PCM streams:
1.- Foobar still has full volume control and RG even on WASAPI that's supposed to be Bitperfect (it is not bitperfect unless you set everything at 0db AFAIK).
2.- Windows 10 has partial volume control, the mixer-per-app stops working but the main stream still has volume control (just like foobar it's -X db to 0db).
That doesn't surprise me or concern me much since both programs are performing fp-higher-than-bit-depth gain algorithms so they *shouldn't* compromise quality, still out of OCD I prefer to send bitperfect stuff to my dac so I was just assuming bitperfect stream was achieved with foobar and windows at full gain (0db).
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.
DSD support doesn't exist in vanilla foobar or windows 10. Foobar can decode dsd through a foo_input_sacd and produce bitperfect DoP (DSD Native/Raw was dropped in 0.9.7). DoP is DSD over PCM which is NOT a wave conversion, it's just a different way to pack DSD so that drivers/controllers that usually handle PCM packets can send/receive DSD through the same channels. This is why DoP produces noise in DAC's that only support PCM, because they try to read it as a PCM wave when it's still DSD.
When DSD playback over DoP is enabled on foobar, the volume control is obviously bypassed (and RG) because the internal foobar's algorithm for PCM, it's incompatible with DSD (DSD is inherently incompatible with any PCM processing and vice versa). It makes absolutely no sense that windows can take that DoP stream and apply it's regular PCM algorithm.
Please help me understand what's going on here.
TLR DSD over PCM WASAPI playback volume control should not work in Windows (explained), it is working properly (no noise or artifacts).
EDIT: Confirmed, Native DSD (1bit raw stream) through ASIO is still being affected by the global windows volume control. This is absolutely bizarre. The DAC's internal digital volume control is being unaffected by the windows setting, both are totally independent.