Thanks for posing this. It really helped in figuring out a solution to a long standing problem that I've had. I wasn't able to use your exact solution due to my pulseaudio being version 1.1, and not 4.0 when the use_ucm option was introduced. However, I was able to do a little digging further and found a different solution for crackling.
I noticed this crackling after I was listening to music for a short while in a stand alone application, and then was browsing around on the net at the same time and ended up at a youtube flash video. I noticed that when both sources were playing (and even after playback of one had stopped), there was a noticable click/pop/crackle in the audio. It was highly irritating and continued until pulseaudio was restarted.
I found this thread which was quite helpful:
https://bbs.archlinux.org/viewtopic.php ... 0#p1333820
The solution was to try a different resample-method other than the one that was assigned by default.
The resample methods available are visible using the pulseaudio command:
pulseaudio --dump-resample-methods
Code: Select all
src-sinc-best-quality
src-sinc-medium-quality
src-sinc-fastest
src-zero-order-hold
src-linear
trivial
speex-float-0
speex-float-1
speex-float-2
speex-float-3
speex-float-4
speex-float-5
speex-float-6
speex-float-7
speex-float-8
speex-float-9
speex-float-10
speex-fixed-0
speex-fixed-1
speex-fixed-2
speex-fixed-3
speex-fixed-4
speex-fixed-5
speex-fixed-6
speex-fixed-7
speex-fixed-8
speex-fixed-9
speex-fixed-10
ffmpeg
auto
copy
peaks
And can be changed in the daemon config. So far, I've settled on ffmpeg as my resample-method.
/etc/pulse/daemon.conf
I tried several others and as described by some other users, they end up using a huge amount of CPU, but made the symptoms significanly more pronounced, so I knew I was on the right track. The default in my config/version is speex-float-1. The ffmpeg does well, however, and I've changed the setting an no longer hear the crackling. If I use ffmpeg for a while and noticed any crackling, I'm going to give the copy resample-method a try and see how that works out. It seems like it might be what I'm looking for since I probably don't need to resample anything anyway.