Agreed. I spent a large amount of time looking into the crack-n-pop problem and it’s a tricky one. When you run
pulseaudio directly, it will keep the audio device open permanently and proxy any audio- filling what would be gaps between that audio with silence. Because it only has to open the audio device once, there are none of the cracks/pops caused by opening/closing.
I believe the problem you’re running into is that when you run
pulseaudio as a service, however, it shuts off after a short period of inactivity. You can change this in the
/etc/pulse/daemon.conf config file IIRC and set
-1 to disable idle timeout.
The problem I had with Pulse is that it introduced quite a lot of extra load on the Pi Zero- I was experimenting with settings in both VLC and Pulse to try and find the combination of settings that would stress the Zero least.
There should be volume control via alsamixer, though, we have a asound.conf that uses software volume control to achieve this. How did you set up Speaker pHAT?