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/