No sound from RPI 4 & USB DAC Creative Soundblaster

Hi all

I just installed Volumio on an RPI 4 (B) connected to a USB DAC (Creative Soundblaster HD X-Fi). Volumio recognises the DAC which is selected as the output device. Tidal plays the songs but I don’t get any sound through my loudspeakers connected to the DAC. The sound output through the Pi’s headpone jack works.

I tried several of the suggested solutions posted here for similar problems, but none of them worked (chose some random I2S DAC as output, changed some settings in the “general playback options”, new SD card, rebooted, re-installed etc).

Does anyone have an idea how to fix this? Do I need to change any settings through SSH access (I am a noob)?

Thanks a lot!

the sound works from the USB DAC’s headphone jack so it seems I need to manually (via SSH access) set the audio output to the DAC SPDIF rather than the DAC headphone jack - which I cannot seem to do via Volumio web interface. I edited mpd.conf to change the output to the corresponding hw, but it keeps changing audio output back to “volumio”. Does anyone know which other file I need to change?

1 Like

You need to use ssh and start “alsamixer” and experiment.
“mm” in alsamixer means that output is muted, you need to toggle with the “m”-key and move output level up or down.

the output wasn’t muted. I got this to work by editing asound.conf so that the correct subdevice hw (of the SPDIF rather than headphone jack of the DAC) is listed as “slave.pcm”. However, whenever I restart the pi or change settings on Volumio web interface, Volumio overwrites this. Does anyone know how to edit asound.conf permanently?

Please supply the output from
aplay -l

It appears you have a usb card with multiple subdevices, which is rare for a PI, even for x86 devices.
There would be a more flexible way to accomplish what you want without editing asound.conf
The usb dac could have a dropdown list with headphone jack and spdif, I have done this before for another user for the x86 platform, should be possible for the PI as well. This would need a new entry in /volumio/app/plugins/audio_interface/alsa_controlller/cards.json

With the help of aplay -l I could suggest a temporary entry of cards.json, after which, when tested, a request for a cards.json can be made.

super, thanks! This is what I get from aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 0: b1 [bcm2835 HDMI 1], device 1: bcm2835 HDMI 1 [bcm2835 HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
Subdevices: 4/4
Subdevice #0: subdevice #0
Subdevice #1: subdevice #1
Subdevice #2: subdevice #2
Subdevice #3: subdevice #3
card 5: HD [USB Sound Blaster HD], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 5: HD [USB Sound Blaster HD], device 1: USB Audio [USB Audio #1]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 5: HD [USB Sound Blaster HD], device 2: USB Audio [USB Audio #2]
Subdevices: 1/1
Subdevice #0: subdevice #0

what would I need to add in cards.json?

Thanks a lot!

i’ll prepare an entry, may take a litlle, holidays :slight_smile:

Have a look at the last entry in the current cards.json, gives you and idea what is it going to be. Don’t experiment yet, a syntax error may fail volumio to start.

awesome, thank you so much!

one last question: subdevice 0 was headphone, subdevice 1 spdif, correct?
Any idea what subdevice 2 would be? Not vital though, as we can enable 0 and 1 to start with.

Add this to

/volumio/ap/plugins/audio_interface/alsa_controller/cards.json

at the bottom of the file, just before the Xonar entry:

{"name": "USB Sound Blaster HD", "multidevice": true, "devices":[{"number":0, "prettyname": "Headphone/ Analog out", "defaultmixer": ""},{"number":1, "prettyname": "S/PDIF (optical) out", "defaultmixer": ""}],"type":"integrated"},

Don’t forget the last comma!!!

Note: in case S/PDIF was subdevice 2 (you were not clear, no problem), then replace
"number":1
by
"number":2
in the entry above.
Test this and let me know.

Brilliant, that works! Thank you so much, you’re a star!

Thank you for testing this.
Now we need to get this merged into the next release.
@darmur: can you help with this?