I’m using Plexamp on a headless RPi (RPiOS Bookwork) with Allo Digione SPDIF hat connected to a vintage DAC that only accepts 44.1khz 16 bit audio.
When I play a 44.1 16 bit file on Plexamp it works perfectly, if I immediately change to a 24/48 file it seems to play fine too but if I start the playback first with a 24/48 file I get loud white noise.
How can I limit the system to play 44.1/16 bit only or force Plexamp to convert to 44.1/16?
Not sure if this will do the trick or not. But in the Plexamp settings on the RPI under Settings >>> Playback >>>Audio Output>>>Sample Rate Matching you have three choices.
I have mine on strict. All it shows is Disabled. So I don’t know what sample rate it is fixed to. But might be worth a try. Or if any more informed forum members could chime in here if they know.
interesting problem … Plexamp only sees the SPDIF HAT (which supports a wide range of bit depth and sample rate) as your output device, and it’s not aware of the DAC limitations further downstream
you should be able to create a ~/.asoundrc file to force the SPDIF HAT to use format = S16_LE and rate = 44100
(updated: try the contents below for your ~/.asoundrc file … then reboot the Pi, select “Default” for the Plexamp audio output, and you should be good … i also have an Allo Digione here, this seems to work … i’m sure there are other ways to do this)
pcm.!default {
type plug
slave {
pcm "hw:CARD=sndallodigione,DEV=0"
rate 44100
format S16_LE
}
}
If your DAC is only able to use a fixed SR, “strict” is the last you want to use.
Set it to Disabled.
Plexamp will use whatever SR the sound interface has been set to. (as per the above tip with the .asoundrc file)
~/.asoundrc seems to get deleted on booting in RPOS Bookworm so I’ve added tgp-2’s config to /etc/asound.conf. First quick test and it seems to work as expected.