DSD on USB DAC

I bought a USB DAC based on the ESS9038 chip set. According to the specs it supports DSD which I thought I would experiment with.

When connected to my RaspberryPi I get this from aplay (version 1.2.4):

aplay -l 
card 3: Audio [Ustars Audio], device 0: USB Audio [USB Audio]

aplay --dump-hw-params -D hw:3,0 -f cd /dev/zero
Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:3,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL **DSD_U32_B**E
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 384000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (41 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1343: Sample format non available
Available formats:
- S32_LE
- SPECIAL
- **DSD_U32_BE**

when connected to a S905X2 box running Coreelec 19.4 aplay (version 1.2.4) I get this:

aplay -l 
card 1: Audio [Ustars Audio], device 0: USB Audio [USB Audio]

aplay --dump-hw-params -D hw:1,0 -f cd /dev/zero
Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:1,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 384000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (41 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1343: Sample format non available
Available formats:
- S32_LE
- SPECIAL

For some reason the DSD capability is lost. Any ideas anyone?

Same with android tv box (S905X3) and Coreelec connected via USB to E30 DAC (AK4493 chip). Passthrough activated, but dsf files are alwaiys resampled to PCM (at least you can choose the sample rate). Seems there’s no DSD passthrough in Coreelec.

I’ve tried HF Onkyo player pro apk, It allows DSD passthrough, DAC screen shows DSD 2.8/5.6… instead of PCM.

This is probably a deficiency in the Kernel. CE uses a old kernel which lacks some features present in more recent kernels and its not possible to backport the features since the kernel used by AMLogic is closed source.

Shoog

Run commands and post url you get. But before that reboot your device.

lsusb | paste
dmesg | paste

Same result with my DAC:

# aplay --dump-hw-params -D hw:1,0 -f cd /dev/zero
Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:1,0":
--------------------
ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT: S32_LE SPECIAL
SUBFORMAT: STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 768000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (20 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
- S32_LE
- SPECIAL

http://ix.io/3Umu

http://ix.io/3Umv

Try this 2 images for CE19 and let me know if any works. I think first one should.
Also which device exactly is used?

Nexus version

Bus 001 Device 003: ID 152a:880c Thesycon Systemsoftware & Consulting GmbH LOXJIE AUDIO
Loxjie D30 - this is the new model V2, I have the previous model, Loxjie D30 V1

1 Like

I run Coreelec from pendrive. Rufus says image1 and image2 downloaded from Mega are not valid… I’m not very good with linux… sorry

This is not image to be written but tar files to be updated with.

https://wiki.coreelec.org/coreelec:updates

Tested with VIM3 Toneboard1 connected with 40-pin connector, Nexus latest nightly:

CoreELEC:~ # aplay --dump-hw-params -D hw:1,0 -f cd /dev/zero
Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:1,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 768000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (20 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
- S32_LE
- SPECIAL

This is the result with Vpeter Nexus image:

CoreELEC:~ # aplay --dump-hw-params -D hw:1,0 -f cd /dev/zero
Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:1,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 768000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (20 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
- S32_LE
- SPECIAL

Unfortunately, no DSD

Post url you get by command

lsusb | paste

http://ix.io/3Uxo

Try this nexus image then.

That’s it !!!

Playing raw data '/dev/zero' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
HW Params of device "hw:1,0":
--------------------
ACCESS:  MMAP_INTERLEAVED RW_INTERLEAVED
FORMAT:  S32_LE SPECIAL DSD_U32_BE
SUBFORMAT:  STD
SAMPLE_BITS: 32
FRAME_BITS: 64
CHANNELS: 2
RATE: [44100 768000]
PERIOD_TIME: [125 1486078)
PERIOD_SIZE: [8 65536]
PERIOD_BYTES: [64 524288]
PERIODS: [2 1024]
BUFFER_TIME: (20 2972155)
BUFFER_SIZE: [16 131072]
BUFFER_BYTES: [128 1048576]
TICK_TIME: ALL
--------------------
aplay: set_params:1352: Sample format non available
Available formats:
- S32_LE
- SPECIAL
- DSD_U32_BE
1 Like

Does Kodi supports native DSD?

Seems so, I’m having over 100 SACD ISOs on NAS, as well as a few dff files, they all play at least.

Had no clue that there was a conversion to PCM before playing.

You are saying that Kodi doesn’t do conversion to PCM with this change?

I hope Kodi plays DSD natively now, before your image DSD must have been converted to PCM.

BTW can I proof this DSD native playing somehow?

Play one file from Kodi and while playing type this command and post url.

cat /proc/asound/card*/pcm*p/sub*/hw_params | paste