Plexamp with digi hat truncates to 16 bit - ropieee workaround

it seems plexamp headless doesn’t like the s24_le format used by some (all?) spdif digi hats … when playing 24 bit tracks, it truncates and uses the s16_le format

two hats that i know are affected are the allo digione and the hifiberry digi2 pro (and there are probably others using similar chipset)

ideally this would be fixed in the app, but i think it might be an issue with the underlying audio library, and anyway for most diy plexamp installs there’s an easy workaround … posting here to ask if this workaround or something similar could be handled by ropieee (for plexamp users with digi hats)?

specifically, i define a “default” output in an .asoundrc file as shown below (this is for the allo digione), and then i select this default output in the plexamp headless web interface …

pcm.!default {
 type plug
 slave {
 pcm "hw:CARD=sndallodigione,DEV=0"
 }
}

as i understand it, the alsa plugin handles the format conversion as needed, avoiding the truncation to 16 bit … i’m not aware of any significant downsides (other apps still access the audio device directly, plexamp still handles sample rate conversion, etc.)

in any case, i’ll keep trying to get this fixed in the app itself (i’ve asked, it’s probably low on the to-do list) … it would be nice to have this workaround available in ropieee, thanks @spockfish for your consideration

2 Likes

Would you be able to give a little guidance to how I could make this change ?

I presume if I connect my RoPieee microSD card to my PC, I’m presented with a folder structure.

Do I need to create the .asoundrc file in a certain folder or does one exist that I need to edit and add your additional lines ?

Thanks !

not aware of a way to do this on ropieee without switching to the beta channel, login via ssh, and then messing with things that @spockfish doesn’t want us to mess with (don’t want to get myself in trouble :grimacing:)

I understand :+1:t2: No problem.

Hi @tgp-2

There is already an global asound.conf, and I think it’s relatively easy to provide this conversion (that’s what the ‘type plug’ says), based on the type of card. In other words: RoPieee should be able to do this automagically during configuration (knowing which HAT is present).

If I provide this in a beta build, are you willing to test it?

Thanks

1 Like

yes, ready to test whenever, thanks!

:white_check_mark: fix implemented in 2024.12 release, thanks!

plexamp users with digi (spdif) HATs:

select the “default” audio output setting in the plexamp web interface to avoid truncation to 16 bit … no need to change anything for other audio services … now go play some 24 bit tracks and pretend you can hear the difference :wink:

2 Likes