System Information:
- hardware: Asus F16 with core 5 210 and 4050
- OS: Manjaro Linux (GNOME)
- Audio Server: PipeWire (
pipewire-pulse,wireplumber) - Hardware: Havit Fuxi-H3 Headset (via 3.5mm TRRS Combo Jack)
- Audio Codec: Realtek ALC256
The Problem:
I am experiencing a persistent audio leakage (crosstalk) issue where system audio is being captured as microphone input. This happens across various applications (e.g., Discord, WhatsApp Web).
Key Observations (The “Selective” Behavior):
The issue exhibits a specific behavior: audio originating from inside the application itself (e.g., a YouTube video played inside a browser tab while in a Discord call) is not leaked, likely due to internal WebRTC echo cancellation. However, whenever I play audio from an external application (like a standalone music player), that audio immediately leaks into my mic input.
Troubleshooting already performed:
pavucontrol: Confirmed no “Monitor” sources are selected for input. The recording apps are pointed directly to theHeadset Microphone.alsamixer: Verified all channels. There are no “Loopback” or “Stereo Mix” options enabled, and Mic Boost is set to minimum.- Setup: Verified that the headset is correctly recognized as an Analog Stereo Duplex device in GNOME.
What I am looking for:
I suspect this is an impedance/crosstalk issue at the hardware/driver level common to the ALC256 codec. I am reaching out to see if anyone has faced this exact “selective” leakage scenario before:
- Has anyone successfully mitigated this specific ALC256 crosstalk issue on Manjaro/Arch using
modprobeparameters or specific pin-mapping overrides? - Since this seems to be a hardware-level bleed that bypasses standard software settings, has anyone implemented a global “set-and-forget” echo cancellation in PipeWire that successfully subtracts system output from all input streams?
I have ruled out basic GUI misconfigurations (alsamixer/pavucontrol), so I am specifically looking for kernel-level or advanced PipeWire/WirePlumber configurations to resolve this.
Any insights or recommended model= overrides for the ALC256 would be greatly appreciated.
wpctl status
> wpctl status
PipeWire 'pipewire-0' [1.6.5, gabrigas@cicada2106, cookie:2520646804]
└─ Clients:
32. WirePlumber [1.6.5, gabrigas@cicada2106, pid:4175]
37. pipewire [1.6.5, gabrigas@cicada2106, pid:4177]
38. GNOME Volume Control Media Keys [1.6.5, gabrigas@cicada2106, pid:3993]
47. WirePlumber [export] [1.6.5, gabrigas@cicada2106, pid:4175]
69. gnome-shell [1.6.5, gabrigas@cicada2106, pid:3852]
70. GNOME Shell Volume Control [1.6.5, gabrigas@cicada2106, pid:3852]
73. xdg-desktop-portal [1.6.5, gabrigas@cicada2106, pid:4190]
74. Brave input [1.6.5, gabrigas@cicada2106, pid:7342]
75. Mutter [1.6.5, gabrigas@cicada2106, pid:3852]
76. WEBRTC VoiceEngine [1.6.5, gabrigas@cicada2106, pid:9049]
77. WEBRTC VoiceEngine [1.6.5, gabrigas@cicada2106, pid:9049]
78. Chromium input [1.6.5, gabrigas@cicada2106, pid:9119]
90. Chromium input [1.6.5, gabrigas@cicada2106, pid:12556]
93. GNOME Settings [1.6.5, gabrigas@cicada2106, pid:12606]
117. GNOME Settings [1.6.5, gabrigas@cicada2106, pid:12606]
154. wpctl [1.6.5, gabrigas@cicada2106, pid:14955]
162. Brave [1.6.5, gabrigas@cicada2106, pid:7342]
Audio
├─ Devices:
│ 48. AD107 High Definition Audio Controller [alsa]
│ 50. Built-in Audio [alsa]
│
├─ Sinks:
│ * 45. Built-in Audio Analog Stereo [vol: 0.68]
│
├─ Sources:
│ * 44. Built-in Audio Analog Stereo [vol: 0.42]
│
├─ Filters:
│
└─ Streams:
163. Brave
164. output_FL > ALC256 Analog:playback_FL [active]
165. output_FR > ALC256 Analog:playback_FR [active]
Settings
└─ Default Configured Devices:
0. Audio/Sink bluez_output.00_09_24_56_09_A5.1
1. Audio/Source alsa_input.pci-0000_00_1f.3.analog-stereo