Here's a fix that maybe 4 other people on earth will need.
If you are using a Raspberry Pi 5 to stream and want to use HDMI audio output there's an issue with the original device enumeration which will cause playback to fail. You'll notice Roon will skip through several tracks before saying "Too many errors."
The issue has to do with the device description strings RAATServer uses. Since a Pi 5 has 2 HDMI ports, you'll find 2 JSON files in /var/roon/RAATServer/Settings. If you have a USB device connected you may find more. Not sure. In any event, it's a simple edit once you know what the issue is.
Here's the first version of my JSON:
{"unique_id": "617c2b7a-8bf6-18d6-0243-1e918a7e673c", "external_config": {}, "output": {"name": "vc4-hdmi-1", "type": "alsa", "device": "hw:CARD=vc4hdmi1,DEV=0", "dsd_mode": "none"}, "volume": {"type": "alsa", "device": "hw:CARD=vc4hdmi1,DEV=0"}}
The problem is the device name should be hdmi:CARD....
So, first, make sure this is an HDMI descriptor file. You'll see vc4hdmi, which is how you can tell you aren't editing the wrong kind of file. Just replace the string highlighted above with hdmi and you'll be playing 32 bit music through your HDMI port. Here's a finished version:
{"unique_id": "617c2b7a-8bf6-18d6-0243-1e918a7e673c", "external_config": {}, "output": {"name": "vc4-hdmi-1", "type": "alsa", "device": "hdmi:CARD=vc4hdmi1,DEV=0", "dsd_mode": "none"}, "volume": {"type": "alsa", "device": "hdmi:CARD=vc4hdmi1,DEV=0"}}
In case you care, the issue is that hw:CARD is the raw device name but hdmi:CARD is the ALSA virtual device. The compatibility issue is that RAATServer talks PCM but the raw device does not, but the virtual device does.
Since you have 2 HDMI devices you might as well fix both files now. Once you make these changes you'll notice the DSP features like upsampling become available.
All this is probably caused by an error during RoonBridge installation storing the raw device name instead of the ALSA name.
You are welcome.
No comments:
Post a Comment