HifiBerry DAC8x
HifiBerry DAC8x
Just started testing the HifiBerry DAC8x as shown in the photo. it works for Channel 1 and 2 Stereo out of the box with the right config.txt. dtoverlay=hifiberry-dac8x. I also tried to duplicate the 1-2 channels to channel 3 to 8 using qpwgraph as shown in the photo but the setting is not sustained after reboot. still need to figure out how to approach this. the main reason I want to use a hifiberry DAC8x because of the hires audio support, can setup different sound stage (4.1, 5.1, 7.1 and etc) and most importantly, I want the phone call or phone navigation only output from certain channels (not all). Im looking for guidance on how to do this.
Last edited by wkl3968 on Wed Apr 08, 2026 2:30 am, edited 1 time in total.
Re: HifiBerry DAC8x
Here is the hardware setup. It is sleek and high quality. I need to spend time to setup correctly and have the ability to customize the audio piping. Any guidance will be appreciated.
Last edited by wkl3968 on Wed Apr 08, 2026 2:31 am, edited 1 time in total.
Re: HifiBerry DAC8x
After configuring the routing using qpwgraph, you can save it to a file and restore it (e.g., in hudiy_startup.sh) using the following command:
viewtopic.php?p=1184#p1184
Code: Select all
qpwgraph --minimized --activated --exclusive saved_routing.qpwgraphHudiy Team
Re: HifiBerry DAC8x
Is it possible to pipe the Bluetooth or phone call or navigation from phone to a certain channels and have independent volume control?
Re: HifiBerry DAC8x
so the hudiy_startup.sh should look like this? with so many customization I plan to do with hudiy, is there a way I can use github to allow me to reconfigure the a freshly installed hudiy seamlessly? I'm a mechanical side, learning software
.
#!/bin/bash
EC_SINK="echo_cancel_sink"
EC_SOURCE="echo_cancel_source"
EQ_SINK="hudiy_equalizer_sink"
sink_exists() { pactl list short sinks 2>/dev/null | awk '{print $2}' | grep -Fxq "$1"; }
until pactl info >/dev/null 2>&1; do sleep 0.1; done
# Gives PipeWire and WirePlumber additional time to detect all audio devices
sleep 1
sink_exists "$EQ_SINK" || pactl load-module module-ladspa-sink sink_name="$EQ_SINK" master="$EC_SINK" plugin=hudiy_equalizer label=hudiy_equalizer control=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
sink_exists "$EC_SINK" || pactl load-module module-echo-cancel aec_method=webrtc aec_args=\"voice_detection=false\" source_name="$EC_SOURCE" sink_name="$EC_SINK"
pactl set-default-sink "$EQ_SINK"
pactl set-default-source "$EC_SOURCE"
qpwgraph --minimized --activated --exclusive saved_routing.qpwgraph
$HOME/.hudiy/share/hudiy &
#!/bin/bash
EC_SINK="echo_cancel_sink"
EC_SOURCE="echo_cancel_source"
EQ_SINK="hudiy_equalizer_sink"
sink_exists() { pactl list short sinks 2>/dev/null | awk '{print $2}' | grep -Fxq "$1"; }
until pactl info >/dev/null 2>&1; do sleep 0.1; done
# Gives PipeWire and WirePlumber additional time to detect all audio devices
sleep 1
sink_exists "$EQ_SINK" || pactl load-module module-ladspa-sink sink_name="$EQ_SINK" master="$EC_SINK" plugin=hudiy_equalizer label=hudiy_equalizer control=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
sink_exists "$EC_SINK" || pactl load-module module-echo-cancel aec_method=webrtc aec_args=\"voice_detection=false\" source_name="$EC_SOURCE" sink_name="$EC_SINK"
pactl set-default-sink "$EQ_SINK"
pactl set-default-source "$EC_SOURCE"
qpwgraph --minimized --activated --exclusive saved_routing.qpwgraph
$HOME/.hudiy/share/hudiy &
Re: HifiBerry DAC8x
It depends on which version of the Raspberry Pi you are using. If it's a Pi 4 or Pi 5, such script will work on those versions as well as on x86_64. The Raspberry Pi Zero 2, Pi 3B, and Pi 3B+ additionally set different environment variables.
The easiest way is to copy the configuration ($HOME/.hudiy/share/config) and the scripts ($HOME/.hudiy/share/hudiy_startup.sh, $HOME/.hudiy/share/hudiy_run.sh), and then restore them after installing Hudiy.
Code: Select all
#!/bin/bash
EC_SINK="echo_cancel_sink"
EC_SOURCE="echo_cancel_source"
EQ_SINK="hudiy_equalizer_sink"
sink_exists() { pactl list short sinks 2>/dev/null | awk '{print $2}' | grep -Fxq "$1"; }
until pactl info >/dev/null 2>&1; do sleep 0.1; done
# Gives PipeWire and WirePlumber additional time to detect all audio devices
sleep 1
sink_exists "$EQ_SINK" || pactl load-module module-ladspa-sink sink_name="$EQ_SINK" master="$EC_SINK" plugin=hudiy_equalizer label=hudiy_equalizer control=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
sink_exists "$EC_SINK" || pactl load-module module-echo-cancel aec_method=webrtc aec_args=\"voice_detection=false\" source_name="$EC_SOURCE" sink_name="$EC_SINK"
pactl set-default-sink "$EQ_SINK"
pactl set-default-source "$EC_SOURCE"
qpwgraph --minimized --activated --exclusive saved_routing.qpwgraph
$HOME/.hudiy/share/hudiy &Hudiy Team
Re: HifiBerry DAC8x
somehow when I use the "qpwgraph --minimized --activated --exclusive /home/raspberrypi/AA_DAC8x.qpwgraph" as instructed above, hudiy fail to boot and it keeps looping the splash only.
Re: HifiBerry DAC8x
qpwgraph may be blocking the current terminal session. Try running qpwgraph --minimized --activated --exclusive /home/raspberrypi/AA_DAC8x.qpwgraph in the background by adding & at the end of the command.
Also, in background mode, some sleep might be a good idea to give qpwgraph some time to restore the routing.
If that does not help, please execute the $HOME/.hudiy/share/hudiy_run.sh command in the terminal and post the output.
Also, in background mode, some sleep might be a good idea to give qpwgraph some time to restore the routing.
Code: Select all
qpwgraph --minimized --activated --exclusive /home/raspberrypi/AA_DAC8x.qpwgraph &
sleep 2Hudiy Team
Re: HifiBerry DAC8x
now it can boot like normal with "&" at the back but somehow it cannot sustain the connection between Hudiy FL/FR to the 8 channels as shown in my first post. it always default to just two channels output.