This release adds out-of-the-box microphone noise suppression using RNNoise, switches audio controls to be fully PipeWire-native (dropping the pavucontrol GUI dependency), and documents microphone troubleshooting in the FAQ.
After a fresh install, the denoised microphone is set as the default input, so apps that follow the system default (Microsoft Teams, Discord, etc.) get clean audio automatically — no manual configuration.
Added
- RNNoise microphone denoising.
- New package
noise-suppression-for-voice(official repo) provides the RNNoise LADSPA plugin. - New PipeWire filter-chain config
~/.config/pipewire/pipewire.conf.d/99-input-denoising.confcreates a virtual "Noise Suppressed Source" mic. It is device-agnostic (no hardware pinning), so it is portable across machines, and usesflags = [ nofail ]so PipeWire still starts normally if the plugin is ever missing. install.shgainedsetup_microphone_denoising(), which — after PipeWire is up — waits for the virtual node to appear and sets it as the default microphone viawpctl. The choice is persisted by WirePlumber and survives reboots. The step degrades gracefully (skips with a hint) if the plugin or node is not present.
- New package
Changed
- Audio controls are now PipeWire-native. Removed the
pavucontrolGUI dependency frompackages.txt. The Waybar audio-icon click now useswpctl set-muteinstead of launchingpavucontrol. Volume scroll and mic controls already usedwpctl, so audio management no longer requires any extra GUI package.
Fixed
- Waybar duplicate key. The
pulseaudiomodule had twoon-clickentries; the second silently overrode the first. The audio-icon click now reliably toggles mute viawpctl. windows.luaformatting cleanup.
Documentation
- New FAQ section: "Microphone sounds noisy / hissy on calls (RNNoise noise suppression)." Covers:
- How to switch the active mic (
wpctl status/wpctl set-default). - Tuning aggressiveness via the
"VAD Threshold (%)"knob and reloading PipeWire. - The clipping vs. noise distinction: distorted/clipping audio is caused by an over-driven hardware capture gain (RNNoise cannot fix a clipped signal) — fix it in
alsamixer(lower Capture / Mic Boost) and persist withsudo alsactl store. - The Bluetooth caveat: BT headset mics only work in the low-quality HSP/HFP profile, so prefer a wired/built-in mic for input and keep the headset on A2DP for output.
- The portal restart tip: after restarting PipeWire, also restart the portals (
systemctl --user restart xdg-desktop-portal xdg-desktop-portal-hyprland) or screen sharing can break until they reconnect.
- How to switch the active mic (
Upgrade notes
- Hiss / steady background noise is removed automatically once the denoised source is the default.
- Clipping / distortion is not auto-fixed — it is a per-machine hardware capture-gain issue. See the new FAQ entry (
alsamixer+sudo alsactl store). - Existing installs picking up this change without a full reinstall:
sudo pacman -S noise-suppression-for-voice cp -r .config/pipewire ~/.config/ # from the hyprsimple repo systemctl --user restart pipewire pipewire-pulse wireplumber wpctl status # find "Noise Suppressed Source" ID wpctl set-default <ID> # make it the default mic
pavucontrolis no longer installed by hyprsimple; if you still want the GUI, install it manually withsudo pacman -S pavucontrol.
Full changelog: v0.1.1...v0.2.0