Eliminating PulseAudio Pops
After a brief pause in sound playback, my speakers make a popping sound. My operating system is Manjaro Linux 22.0 "Sikaris".
I believe the underlying cause is that the PulseAudio service puts my audio hardware to sleep.
In principle, I would like to increase the timeout so that my sound card stays powered for longer periods after playing a sound.
Unfortunately, I only found instructions for disabling the suspend-on-idle module. I searched for information on timeouts, but I only found information relating to PipeWire. I don't believe the PipeWire instructions apply to me.
Below, I follow the instructions to disable PulseAudio's suspend-on-idle module. Note that Manjaro is based on Arch Linux. So, I can follow these instructions which come from the Arch wiki.
Create a User Configuration
I created the following empty file in my home folder.
If you have trouble finding the .config directory, remember that it is hidden by default.
~/.config/pulse/default.pa
Then, I edited the file so that it contains the lines below.
.include /etc/pulse/default.pa .nofail unload-module module-suspend-on-idle .fail
Restart PulseAudio
To apply the configuration change, I restarted the two PulseAudio systemd user units.
Remember to use the "--user" flag with the systemctl command.
And press 'q' to leave the systemctl pager after checking the status.
# Restart PulseAudio
systemctl --user restart pulseaudio.socket pulseaudio.service
# No output.
# Check the PulseAudio status.
# Use 'q' to exit.
systemctl --user status pulseaudio.socket pulseaudio.service
● pulseaudio.socket - Sound System
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.socket; enabled; preset: >
Active: active (running) since Sat 2022-12-24 19:41:27 CST; 11s ago
Until: Sat 2022-12-24 19:41:27 CST; 11s ago
Triggers: ● pulseaudio.service
Listen: /run/user/1000/pulse/native (Stream)
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/pulseaudio>
Dec 24 19:41:27 Edward systemd[1341]: Listening on Sound System.
● pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; disabled; preset>
Active: active (running) since Sat 2022-12-24 19:41:28 CST; 10s ago
TriggeredBy: ● pulseaudio.socket
Main PID: 56725 (pulseaudio)
Tasks: 6 (limit: 28809)
Memory: 14.3M
CPU: 213ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pulsea>
├─56725 /usr/bin/pulseaudio --daemonize=no --log-target=journal
└─56731 /usr/lib/pulse/gsettings-helper
Dec 24 19:41:27 Edward systemd[1341]: Starting Sound Service...
Dec 24 19:41:28 Edward pulseaudio[56725]: stat('/etc/pulse/default.pa.d'): No s>
You might notice an error during startup:
Dec 24 19:41:28 Edward pulseaudio[56725]: stat('/etc/pulse/default.pa.d'): No such file or directory
I believe this is inherited from the last line in the default user configuration:
/etc/pulse/default.pa
### Allow including a default.pa.d directory, which if present, can be used ### for additional configuration snippets. .nofail .include /etc/pulse/default.pa.d
This error probably existed the whole time, and I never had a reason to look at this log. So, the new configuration is not to blame. And I don't see any other problems.
After creating the user configuration and restarting PulseAudio, the pops should be eliminated.
References
PulseAudio Instructions | ArchWiki
PulseAudio Service Names | ArchWiki
Basic systemd Commands | ArchWiki
Advice About PipeWire Timeouts | System76 Support
Another Example of Changing the PipeWire Timeout | Ask Fedora
Created: Saturday, December 24, 2022
Updated: Wednesday, January 4, 2023
/gemlog/