No audio. Sometimes....

Post Reply
Ryder
Posts: 9
Joined: Sat Sep 06, 2025 11:15 am

No audio. Sometimes....

Post by Ryder »

Hi there,

I’m having issues with my IQaudio DAC on Raspberry Pi OS. It’s connected through the GPIO pins and only about 1 in 10 times will it output audio correctly through the Hudiy equalizer sync. The rest of the time it doesn’t output, and I have to close Hudiy and then manually reselect the IQaudio DAC in the Raspberry Pi OS volume bar.

ALSA detects the device as a DAC, but Pipewire doesn’t seem to — it just shows it under fallback sync. I can’t use fallback, since the audio needs to be routed through Hudiy’s equalizer sync first. If I use the volume bar to select it, then obviously it’s not going through the equalizer, meaning I also lose the ability to control volume within Hudiy.

Does anyone know why this happens, or how to fix it?
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: No audio. Sometimes....

Post by hudiy »

Could you please post the screenshots from qpwgraph when audio works and when the issue occured?

The routing should be as follows:

Apps (like Hudiy) -> Hudiy Equalizer Sink -> Echo Cancel Sink -> Audio Device (like your DAC).

Echo Cancel and Hudiy Equalizer sinks are created by PipeWire modules loaded from $HOME/.hudiy/share/hudiy_startup.sh. You can try to set sink_master parameter in module-echo-cancel to point out the output sink (your device). Name of the sink created for the device can be taken from output of pactl list sinks command.

Code: Select all

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" sink_master="name.of.the.sink.for.your.device"
https://docs.pipewire.org/page_pulse_mo ... ancel.html
Ryder
Posts: 9
Joined: Sat Sep 06, 2025 11:15 am

Re: No audio. Sometimes....

Post by Ryder »

Hi there,

Thank you for your reply.
qpwgraph wouldn't download, instead I fixed it by running this code in the terminal.

"
pactl unload-module module-echo-cancel
"

Every time I ran this it would fix, so I made a start-up code that runs this command in the background after 20s.

This so far is the easiest fix for my scenario maybe others too, though my usb microphone when it's plugged in stops this working, should be an easy fix though.

Thanks,
Ryder
ltlnmo
Posts: 22
Joined: Wed Oct 22, 2025 9:49 am

Re: No audio. Sometimes....

Post by ltlnmo »

I’m having a similar issue using Hifiberry DAC2 Pro. Is there any way to just disable the equalizer all together since my head unit can control eq. I just want straight audio without any frills
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: No audio. Sometimes....

Post by hudiy »

ltlnmo wrote: Thu Oct 23, 2025 3:47 am I’m having a similar issue using Hifiberry DAC2 Pro. Is there any way to just disable the equalizer all together since my head unit can control eq. I just want straight audio without any frills
Hudiy equalizer is implemented as PipeWire module. It is loaded from $HOME/.hudiy/share/hudiy_startup.sh file (Hudiy 1.2). You can remove loading the hudiy equalizer module and disable equalizer in main_configuration.json - https://github.com/wiboma/hudiy/blob/ma ... #equalizer

After removal of hudiy equalizer, echo cancel sink should be set as default sink for the best echo cancellation performance.
a8ksh4
Posts: 26
Joined: Thu Oct 23, 2025 6:08 pm

Re: No audio. Sometimes....

Post by a8ksh4 »

I seem to have had the same prob. No audio, but I ran the above pactl command and instant working. Hmmm... I'm just doing initial bench testing with an apple usb audio dongle and a pair of headphones. Any chance there's a usb2 vs usb3 conflict? It was working a few minutes ago when I had it in a usb2 port, but it stopped after moving it to usb3. Not many data points yet though. :)

Broken State:
broken_usb3.png
broken_usb3.png (139.72 KiB) Viewed 1083 times
Working after running the pactl command:
working_after_pactl_usb3.png
working_after_pactl_usb3.png (112.59 KiB) Viewed 1083 times
Edit - After a few reboots and testing, usb2 vs usb3 made no difference.
a8ksh4
Posts: 26
Joined: Thu Oct 23, 2025 6:08 pm

Re: No audio. Sometimes....

Post by a8ksh4 »

I'm seeing similar behavior in trixie. Had to do "pactl unload-module module-echo-cancel" and then I get audio output.
hudiy
Site Admin
Posts: 440
Joined: Mon Jul 14, 2025 7:42 pm

Re: No audio. Sometimes....

Post by hudiy »

a8ksh4 wrote: Thu Nov 27, 2025 8:30 pm I'm seeing similar behavior in trixie. Had to do "pactl unload-module module-echo-cancel" and then I get audio output.
Do you have any microphone device connected to your Raspberry Pi?

According to other threads related to Trixie, it looks like the echo-cancel module in the PipeWire version shipped with Trixie has an issue when there is no microphone present in the system and echo-cancel module is loaded. If the echo-cancel module is loaded without a real microphone, it may treat (but not always) the monitor of the default sink as the microphone input and interpret all played audio as echo - effectively cutting all sound.

If you don't have a microphone connected, the best solution is simply not to load the echo-cancel module. You can modify the $HOME/.hudiy/share/hudiy_startup.sh like:

Code: Select all

#!/bin/bash

EQ_SINK="hudiy_equalizer_sink"
DUMMY_SOURCE="dummy_source"

sink_exists() { pactl list short sinks 2>/dev/null | awk '{print $2}' | grep -Fxq "$1"; }
source_exists() { pactl list short sources 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" plugin=hudiy_equalizer label=hudiy_equalizer control=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
source_exists "$DUMMY_SOURCE" || pactl load-module module-virtual-source source_name="$DUMMY_SOURCE"

pactl set-default-sink "$EQ_SINK"
pactl set-default-source "output.${DUMMY_SOURCE}"

$HOME/.hudiy/share/hudiy &
The script will create a virtual microphone to satisfy CarPlay and Android Auto requirements (presence of a microphone). You can also specify master= in module-ladspa-sink to point to the desired output sink if PipeWire selects the wrong one (e.g., HDMI instead of Jack).

https://docs.pipewire.org/page_pulse_mo ... _sink.html
Post Reply