It was reported that Creative X-Fi cards have the center speaker muted by default, because PulseAudio doesn’t understand the “Center/LFE” mixer element. PulseAudio already supports the “CLFE” mixer element, which is semantically the same, so this was easy to fix simply by copying the CLFE sections in the mixer configuration files.
PulseAudio has always been able to start automatically when some client tries to connect to it, and there’s a configuration option called “autospawn” that can be used to enable or disable this. Nowadays PulseAudio is usually managed by systemd, which has its own mechanism for doing the same thing, and the autospawn option doesn’t affect systemd. This has been causing some confusion, so I added a note about this to the pulse-client.conf man page.
It was reported that when jackd is started and PulseAudio creates the JACK sink and source, those virtual devices aren’t automatically made the default, so the user has to manually do that. The JACK sink and source have very low priorities, and I tried to fix the problem by making the priorities very high instead, but that doesn’t help if the user has earlier manually set the default devices to the sound card that is taken over by jackd. A better fix would be more complicated. Oh well, at least the situation is a bit better, since with my patch things work as expected when the default devices haven’t been manually set.
I submitted a patch to set the LC_NUMERIC locale variable to “C” in PulseAudio, meaning that number formatting is not localized. This was done so that floating point numbers are parsed consistently regardless of the user’s locale settings. Parsing the beamforming parameters in module-echo-cancel didn’t work for some users, because if the locale used a comma for the decimal point, that made the parameter string ambiguous, since commas are also used for separating parameters from each other.
A pthread_mutex_unlock() failure was observed on FreeBSD, which is unnecessarily difficult to debug, because PulseAudio doesn’t log the reason for the failure. I made a patch that improves the logging.
I continued working on the messaging API documentation. While doing that I noticed that there are still a couple of things in the API that I want to change, which I will have to sort out with Georg.
Last month’s reviews:
- Kevin Degelin updated the freedesktop runtime in the pavucontrol flatpak and contributed some other improvements as well.
- Alper Nebi Yasak tried fixing duplication in UCM sink descriptions, but I rejected that, because the duplication in the description seemed to happen due to some deeper problem that needs to be fixed.
- I finished the review of Nazar Mokrynskyi’s old patch to improve mono recording on Behringer UMC22. It had mostly been reviewed already, but the latest changes hadn’t been checked yet.
- Libin Yang made a fix for nonsensical port switches (unplugging HDMI would change output from speakers to headphones). Usually PulseAudio creates only one sink per sound card, but new machines that use UCM sometimes create multiple sinks and module-switch-on-port-available doesn’t yet handle that well. Libin’s original patch had some issues and discussion is ongoing about how to fix the bug without introducing new ones.
- Christopher Snowhill submitted improvements for module-virtual-surround-sink. Alexander Patrakov reviewed the difficult signal processing parts, I reviewed the higher-level changes in the module.
- Assigning the new “availability groups” to ports is currently badly broken for non-UCM cards, which Jaroslav Kysela tried to fix. I rejected the fix, because Jaroslav’s fix would have introduced new configuration that seemed unnecessary. (At the time of writing I have submitted a different fix, but apparently it doesn’t work well either.) Jaroslav’s merge request contained also two smaller fixes for parsing port types and setting a correct type for the headset mic port, which were merged.
This post was originally written on 2020-10-10, and first made available to my Patreon supporters. Speaking of Patreon – I’m using crowdfunding in an attempt to make it financially sustainable to continue my volunteer work as a PulseAudio maintainer. If you’d like to help, check out my Patreon page (or Liberapay).