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

Playing PCM to DSD Native with foobar2000

Ok now,let me understand cause the raw ASIO+DSD plug-in doesn't have the option for DOP.

I configured it like this to see:


DOP.PNG


DAC's display (Ian's Canada to be correct) reports DSD256.
Do I play DOP?

(how I normally play for comparison: DSD.PNG )
 
Last edited:
DSD output is usually not or less filtered: in most cases there's only an IIR filter but not the FIR filter like with PCM.
The ringing, pre and post echo, is different and aliasing too.

At the end there's a subtle difference, depends on the DAC and on your personal preference.
You can try but if you are satisfied with the PCM output, hardly worth the effort and risks.
I'm an old geezer and am essentially stone deaf above about 9-10 kHz so the chances of me hearing differences between PCM vs. DSD or, for that matter, between 16/44.1 and hi-rez, are pretty unlikely.
 
I configured it like this to see:

Doesn't seem that is playing DSD... I guess the sample rate should be like the screenshot below, not 705 kHz.
Looks like when it's not working for me.

How does it fit Ian's Canada? Transport for Coax? The Khadas is connected also to USB?

The device you have selected is Wasapi Exclusive, you could try with plain ASIO.
But ASIO+DVD should support DoP AFAIK, if the DAC does support it.

You probably did it but just in case; you also need to configure the SACD plugin with the option DoP for transport and DSD or PCM+DSD output.
The output is per device so default is only PCM.
 
Doesn't seem that is playing DSD... I guess the sample rate should be like the screenshot below, not 705 kHz.
Looks like when it's not working for me.

How does it fit Ian's Canada? Transport for Coax? The Khadas is connected also to USB?

The device you have selected is Wasapi Exclusive, you could try with plain ASIO.
But ASIO+DVD should support DoP AFAIK, if the DAC does support it.

You probably did it but just in case; you also need to configure the SACD plugin with the option DoP for transport and DSD or PCM+DSD output.
The output is per device so default is only PCM.
It's Ian's Canada display (controller),it's the only way to configure Khadas's tone1 parameters (volume,filters,DPLL bandwidth,etc).
First pic is Khadas WASAPI excl.second is Khadas ASIO+DSD and in SACD config the options are PCM-DSD-PCM+DSD (I choose DSD in both outputs).

The only mention to DoP is for converter,same with the DSD processor,only gives the choice for DSD64-1024.
I don't use the transcoder,too buggy.ASIO+DSD plays trouble free as long as I use it.

It's strange that Ian's controller reports DSD256 though with the right clocking,it's suppose to be a diagnostic tool.
 
It's strange that Ian's controller reports DSD256 though with the right clocking,it's suppose to be a diagnostic tool.

I'm not really sure what should be displayed in the buffer settings tab.
It never worked for me so...
But in theory if you see 705600 Hz that's the rate to support PCM containers for DoP256.
If you actually can hear something, should be DSD content. But I'm not 100% sure...

It's Ian's Canada display (controller),it's the only way to configure Khadas's tone1 parameters (volume,filters,DPLL bandwidth,etc).
First pic is Khadas WASAPI excl.second is Khadas ASIO+DSD and in SACD config the options are PCM-DSD-PCM+DSD (I choose DSD in both outputs).

I didn't know it existed, it's fantastic :)
You can select OSF bypass and disable the IIR filter too?
Must be something with HQPlayer...

The only mention to DoP is for converter,same with the DSD processor,only gives the choice for DSD64-1024.
I don't use the transcoder,too buggy.ASIO+DSD plays trouble free as long as I use it.

Completely the opposite for me, so weird.
 
I configured it like this to see:

Yes that's how it's supposed to work.
Don't ask me why, it just started working today...
Did exactly the same as yesterday but now I get the DSD rate on the D50s and it plays audio, works fine up to DoP256.
I think Wasapi Exclusive just gets stuck sometimes.
 
The foo_input_sacd + foo dsd processor version only outputs in DoP mode. No interest. Only foo_input_sacd + foo_dsd_asio outputs to dsd native.
 
The foo_input_sacd + foo dsd processor version only outputs in DoP mode.

You can use the foo_out_asio + foo_dsd_converter to output Native DSD using the "ASIO: DSD Transcoder (DoP/Native)" (and PCM too).
Same as foo_dsd_asio; it's not an ASIO with integrated wrapper (all ASIO outputs duplicated as "ASIO+DSD" but a wrapper on top of the normal ASIO output.
The convenience of the DSD Transcoder is that can be used also externally while ASIO+DSD only from foobar2000.

The foo_dsd_processor can now be used in the DSP Chain with any output that supports DSD, either DoP or Native, for conversion of formats (PCM -> DSD or DSD -> DSD).
Eg. now that works, for Wasapi Exclusive I configured it to convert DSD512 and DSD1024 to DSD256 so they can play with DoP.
 
These options uselessly load the processor. And they don't give dsd natif. It is enough to check this in the ASIO settings.
ps: It is a pity that there are not enough adjustments in foo dsd asio. Only SDM 5 are used. Add 7 and 8 which would give the best result.
 
Last edited:
Unfortunately link to native DSD page is not available anymore.
wayback machine
 
These options uselessly load the processor. And they don't give dsd natif. It is enough to check this in the ASIO settings.
ps: It is a pity that there are not enough adjustments in foo dsd asio. Only SDM 5 are used. Add 7 and 8 which would give the best result.

Maybe I don't understand which options are you talking about...
It's easy to check if it's native or not cause DoP does not support DSD512.
CPU load is a bit higher with DoP or if you transcode but all outputs that can do native should have more or less the same load.

SDM type is used only when transcoding; what should be the mapping between 5/7/8 and the letters?
I think they are based on the Philips implementation:

102.jpg
 
These are the orders of the SDM filters. foo dsd asio only uses SDM 5. But higher ones exist.
 

Attachments

  • dsd.jpg
    dsd.jpg
    20.6 KB · Views: 99
These are the orders of the SDM filters. foo dsd asio only uses SDM 5. But higher ones exist.

Oh nice thanks, now I connected the dots.

Not sure if I understood correctly but I think the higher ones are not necessarily better.
I think sdm-5/sdm-7 are 5th & 7th order and should correspond to HQPlayer DSD5/ASDM5 and DSD7/ASDM7.
According to Jussi the best for the ESS DACs is ASDM5, not ASDM7.
So it looks that it really depends on what you use to output and which format.
Also sox-dsd I understood is using a different setup according to the DSD bitrate.

Anyway using HQPlayer with my DAC can't really say the difference between 5 and 7 :)
 
These are the orders of the SDM filters. foo dsd asio only uses SDM 5. But higher ones exist.

I've done some more testing on the SDM settings today.
Only the 1k Sine with MTA but maybe I'll test something with the MT32 test as well later.

I used foobar2000, HQPlayer and Audirvana for playback.

First, it's important to note that the SDM filter type or order doesn't matter if you are playing native DSD.
The DSD data is sent as it is to the DAC, hence there's no reason to care about it.

This is the native DSD256 output of the Aune X8:

1686830984777.png


It's always exactly the same at a given rate for foobar2000, HQPlayer with DirectSDM or Audirvana without resampling.

Where it matters is for PCM or DSD conversion to DSD.

I'm not really sure if adding more coefficients is so much of an advantage or not.
If the ADSM5/ADSM7 on HQPlayer really means 5th/7th order, doesn't look like there's much if any difference at least on the ESS DAC.

What matters is the filter type and if it's Clans or not.
But even there seems to me Clans is a little worse and Type B is slightly better than D.

This is foobar2000 DSD256 SDM Type B:

1686831567252.png


And this is foobar2000 SDM Type D:

1686831603979.png


This is foobar2000 SDM Clans 4:

1686831634524.png


This is foobar2000 SDM Clans 7:

1686831667307.png


HQPlayer is always a tad better at the expense of 3dB SNR:

1686831864615.png


Audirvana also as a very similar, almost 100% copycat, output converting PCM to DSD:

1686832014851.png


I was really curious to test Audirvana as it offers both a custom SoX resampler and r8rain for resampling to DSD.
Lots of customizable options for the filters.

It was a bit of a disappointment.

First, Audirvana is not capable of doing any DSD to DSD conversion.
Which means that the "better" output similar to HQPlayer is limited to PCM content.
Would have been nice to have the option.

Second, all the conversion settings for SoX or r8rain are producing a very similar output.

This is a PCM conversion to DSD128 with r8rain Filter Type A 5th order:

1686834287108.png


And this is a PCM conversion to DSD128 with r8rain Filter Type B 5th order:

1686834250144.png


You can see a very slight change on the HF noise shape but that's all.

This is a PCM conversion to DSD64 with r8rain Filter Type A 5th order:

1686835373379.png


And this is a PCM conversion to DSD64 with r8rain Filter Type B 5th order:

1686835356009.png


Here the difference is a bit more visible.
Going to 256x rate and up it's impossible to spot any change.

I mean, the output is very good in any case but event at DSD64 rate there isn't probably any audible improvement whatsoever.

foobar2000 DSD Processor impact of filter type is much less subtle, this is conversion of PCM to DSD128 Type B:

1686833972564.png


And this is the foobar2000 DSD Processor conversion of PCM to DSD128 Type A:

1686833959078.png


The DSD Processor output seems to have much less noise filtering but it's also not attenuated by 3 dB.
And anyway almost all this delta is at -120 dB or below.

Another question I was asking myself was if it was worth upsampling DSD64 to DSD128 or higher.

You can't do it with Audirvana and it's definitely a good idea with HQPlayer.
With foobar2000's DSD Processor is a resounding no.

The DSD Processor is quite decent with PCM but it's awful with DSD to DSD conversion, this is DSD64 to DSD256:

1686836191443.png


It's better to avoid any kind of conversion, unless really needed for rates which are not supported natively.
 
ESS chip won't let you bypass the SDM.
Better use a AKM , Rohm or TI chip for HQPlayer.
 
ESS chip won't let you bypass the SDM.
Better use a AKM , Rohm or TI chip for HQPlayer.

I don't really find the HQPlayer user interface very compelling :)
Couldn't use it as a daily driver.
Admire the effort but it's not for me.
Maybe one day but not today.

I will also probably keep for quite some time the cheap Topping D50s which ticks all the boxes of usability for me.
ESS chips may not be the best for DSD but certainly doesn't sound bad.
For my setup, low listening volume, it does the job pretty well.

The only other option that could intrigue me is something with a Rohm DAC, maybe in a dual setup.
Right now the SMSL D300 is the only affordable choice but it's not a great device, already forgotten and a bit overpriced.
 
Define 'decent'. And tell me how many DACs are even routinely *audibly different* converting PCM to analog, much less indecent at it..

This is just silly number-chasing. Have fun!
 
Back
Top Bottom