Raspberry pi 4b hdmi audio passthrough Tidal Connect

Does Volumio support HDMI audio passthrough? I was hoping to be able to play both my local library as well as Tidal connect lossless/Atmos from my raspberry pi 4b connected to my Onkyo TX-NR5100 which can handle any audio/dolby format through HDMI in.

For now, I only get downsampled PCM :frowning:

Hey @heggink,

1. Current Volumio Support Status

Volumio does not currently support HDMI bitstream passthrough (e.g., for Dolby Atmos, DTS-HD MA, or TrueHD) on Raspberry Pi 4B. Audio is generally output as PCM stereo or multichannel, depending on ALSA and kernel-level support.

  • TIDAL Connect on Volumio supports lossless streaming via FLAC up to 16/44.1 or 24/96, but:
  • Atmos or MQA passthrough is not implemented, especially not over HDMI in a bitstream form.
  • HDMI output from the Pi is converted to PCM, and often downsampled depending on the capabilities negotiated with the receiver.

2. Technical Limitations Behind This

  • The Raspberry Pi HDMI driver (via VC4 / KMS) does not support raw bitstream audio like Dolby Digital or Atmos in Linux.
  • There is no official passthrough API for HDMI on Raspberry Pi’s ALSA layer, and this affects MPD, bluez-alsa, and other Volumio components.
  • While the Onkyo TX-NR5100 can decode Atmos, it requires bitstream (RAW) audio input – not supported by Raspberry Pi HDMI audio on Linux.

3. Possible Workarounds (but Limited)

  • Use TIDAL Connect on a different device (like Apple TV 4K, Fire Stick, or NVIDIA Shield) which does support Atmos passthrough over HDMI.
  • If using the Pi, you’re limited to high-resolution PCM only (e.g., 24/192 stereo).
  • You can try HDMI audio tweaks in /boot/userconfig.txt:
    hdmi_drive=2
    hdmi_force_edid_audio=1
    
    But this won’t enable passthrough, it only ensures PCM audio is properly handed to the AV receiver.

4. Future Possibilities

  • A future version of Volumio could support more advanced HDMI output if kernel-level changes or custom audio pipelines (like PipeWire or PulseAudio) are introduced. However, Volumio currently avoids those to maintain a minimal, audiophile-grade signal path via ALSA.
  • Experimental work with Kodi on Raspberry Pi does support passthrough with limitations, but that’s outside Volumio’s architecture.

Summary

It is not currently possible to achieve HDMI bitstream passthrough (e.g., Atmos) from Raspberry Pi 4B running Volumio, including for TIDAL Connect. All output is via PCM, and lossless is limited to what ALSA and the Pi’s HDMI interface allow. For Atmos and surround passthrough, you’ll need a dedicated streamer or HTPC with full HDMI passthrough support.

Kind Regards,

Goal: HDMI Bitstream Passthrough (e.g., Dolby/Atmos) from Raspberry Pi 4B

1. What’s Missing Right Now?

The Raspberry Pi’s Linux HDMI stack currently lacks raw audio (IEC61937) bitstream support, which is necessary for:

  • Dolby Digital / TrueHD
  • DTS / DTS-HD MA
  • Dolby Atmos (typically encapsulated in TrueHD)

Although your AV receiver may support these formats, the Raspberry Pi converts all output to PCM because:

  • The VC4/KMS HDMI driver does not expose passthrough interfaces in ALSA.
  • No existing audio backend in ALSA or MPD on Volumio supports HDMI raw bitstream output on Raspberry Pi.

2. Potential Areas to Explore or Contribute To

a. VC4/KMS Driver Enhancements (Kernel Side)

This driver is located under /drivers/gpu/drm/vc4/ in the Linux kernel tree. Development work would involve:

  • Implementing HDMI CEA audio block parsing to detect support for compressed formats.
  • Adding support for IEC61937 encapsulation of Dolby/DTS bitstreams.
  • Coordinating with the ALSA IEC958 sub-framework to properly hand off raw data.

b. ALSA and SoC Audio Integration

This would require contributing to or modifying modules such as snd_hdmi_lpe_audio or snd_soc_hdmi_codec, or creating a new module to wrap the VC4 HDMI output with proper passthrough handling.

  • Develop kernel modules that report the correct HDMI capabilities (beyond PCM).
  • Extend ALSA to properly route and signal encoded streams via HDMI.

c. MPD / Volumio Plugin Layer

Assuming lower-level support is in place, Volumio could be extended to:

  • Detect HDMI capabilities at runtime.
  • Provide an output format selection interface in the UI.
  • Route specific audio streams to HDMI using raw passthrough where supported.

3. Alternative Audio Stacks (Experimental)

Outside of ALSA, developers have had partial success with:

  • PipeWire, which supports modular configuration and experimental passthrough.
  • PulseAudio, which has some passthrough support on x86 systems.

Note that Volumio deliberately avoids these stacks to preserve a minimal, low-latency ALSA pipeline, so integration would require significant adaptation or forking.

4. Why This Contribution Matters

Most affordable media streamers capable of Dolby or Atmos passthrough are locked into proprietary systems. Raspberry Pi remains the most flexible open hardware platform for audio streaming.

Adding HDMI bitstream support would benefit not only Volumio but also other projects like Kodi, Moode, RuneAudio, and headless ALSA-based players. You would be enabling true multichannel and lossless audio formats on $50 hardware, which currently isn’t possible.

5. How to Get Started

Testbed Support

If you are interested in building a test environment, I can help you create a minimal development image including:

  • Real-time or low-latency kernel
  • ALSA logging tools and HDMI debugging utilities
  • Basic MPD or FFmpeg-based audio output testing harness

Let me know your level of interest and technical scope. From kernel patching to Volumio integration, your effort could be a key contribution to bringing full HDMI audio passthrough to the open-source Raspberry Pi ecosystem.

Kind Regards,

Hey @nerd,

Many thanks for your unbelievably detailed description. I had seen bits and pieces as google searches (kodi, openelec, …) on the passthrough topic indicating there’s possibilities but an integrated conclusion like you have presented is a great summary. Many thanks for that.

You mentioned other devices that do support this (Apple TV, nvidia). The reason I tried volumio is because I just can’t seem to find a device with HDMI out that also supports bitstream and has some connect function (Tidal connext). Unfortunately, Apple does not do tidal connect. There are a few devices like zidoo UHD8000 but these are pretty expensive. One UHD8000 pays for 20 years of volumio :frowning: . None of the other audio players have HDMI out and I would hate to turn on a massive flat screen just to listen to some music…

Hey @heggink,

Really appreciate the thoughtful follow-up - you’re absolutely not alone in wanting a clean, headless, HDMI-capable TIDAL Connect setup. And your summary hits the nail on the head: Volumio comes closest to offering that ideal balance between high-quality output, low complexity, and modern streaming features. That’s exactly why it’s worth investing in and refining, rather than diverting to bulky workarounds.

Volumio’s strength lies in its modular, minimal signal path - by design it avoids layered audio stacks like PulseAudio or PipeWire to maintain full control via ALSA. That’s why it shines with USB DACs, I2S hats, and bit-perfect network streaming. HDMI passthrough, especially for compressed formats like Atmos or DTS-HD, would be a valuable addition but would require foundational support at the kernel and driver level first - particularly in the Raspberry Pi VC4/KMS stack.

As of now, there is no Raspberry Pi HAT that supports HDMI bitstream audio passthrough, such as Dolby Digital, DTS, TrueHD, or Atmos. This limitation stems from both hardware and software constraints:

1. Why No HAT Supports HDMI Bitstream?

a. HDMI Licensing and IP

  • HDMI transmitters capable of licensed audio formats like Dolby and DTS require IP licensing.
  • Most Pi HATs avoid HDMI entirely due to cost, compliance, and integration complexity.

b. No Hardware Audio Encoding

  • HDMI audio passthrough requires either compressed stream passthrough (IEC61937) or real-time encoding (e.g., Dolby Digital Live).
  • Raspberry Pi SoCs (including the Pi 4) and common HAT controllers lack any DSP block or hardware encoder for this.

c. No ALSA Layer Support for HDMI Passthrough on Pi

  • Even if a HAT could interface over CSI, GPIO, or USB to push HDMI audio, the kernel stack on Raspberry Pi (VC4/KMS) doesn’t support the passthrough path.

2. Available HATs Focus on Other Audio Paths

a. I2S DAC HATs (e.g., Allo BOSS2, HiFiBerry DAC2 Pro)

  • Optimized for stereo PCM output with low jitter and high SNR.
  • Preferred for direct DAC output to analog systems, not HDMI/AVRs.

b. S/PDIF and TOSLINK HATs (e.g., JustBoom Digi HAT, HiFiBerry Digi+ Pro)

  • Limited to PCM or compressed Dolby Digital/DTS (up to 1.5 Mbps).
  • Some AVRs will decode passthrough if the stream is pre-encoded.
  • Volumio does not encode to DD/DTS, so no bitstream unless content is already encoded.

c. USB Audio Interfaces with HDMI Extractors

  • An HDMI audio extractor could, in theory, be used to redirect HDMI audio from the Pi, but these operate at the display side, not as HATs.

3. Potential Future Direction

There is room for innovation here:

  • A custom HAT using an HDMI encoder chip (like Silicon Image or Lontium) with onboard firmware could theoretically act as a passthrough-capable device.
  • Such a HAT would need to expose a standard ALSA interface or integrate with a Volumio plugin to hand off compressed audio.

However, to date, no one has built such a HAT, likely due to the tight coupling of HDMI with GPU stacks and the high complexity of licensing audio bitstream formats legally.

Conclusion

No HAT exists today that provides HDMI audio passthrough from a Raspberry Pi. All current solutions either stick to analog/I2S, or digital PCM (via USB or S/PDIF), without support for compressed surround formats. This is not just a hardware issue but a systemic one: Linux on the Pi does not expose HDMI passthrough, and no third-party accessory bypasses this.

It’s a technically complex goal, not because Volumio lacks features, but because the Pi’s current audio infrastructure doesn’t expose HDMI in a way that supports passthrough. The platform simply wasn’t built with AVR-grade HDMI audio pipelines in mind.

That said, this is absolutely worth exploring as a roadmap item. Right now, the project has more immediate priorities - including architecture migration (like Debian Bookworm), multi-room synchronization refinements, and Bluetooth transport stability - but your use case is clear.

Thanks again for raising this. Getting bitstream audio via HDMI while keeping the system headless and fully integrated with services like TIDAL Connect would be a powerful next step in making Volumio a complete high-fidelity home streaming core.

Kind Regards,