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)?
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?
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?
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.
i’ll prepare an entry, may take a litlle, holidays
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.
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.
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.