Page MenuHomeSolus

Pulseaudio 14 Unstable Testing
Closed, ResolvedPublic

"Party Time" token, awarded by YakoYakoYokuYoku."Party Time" token, awarded by livingsilver94."Party Time" token, awarded by Jacalz."Party Time" token, awarded by kyrios123.
Assigned To
Authored By
JoshStrobl, Nov 23 2020


Pulseaudio 14 has just landed in the unstable repository via R2493:5df0af8c0035: Update to 14.0. Release notes available [here](https://www.freedesktop.. There's a significant amount of changes in its latest release notes, some of the biggest ones is:

  • The issue which prevented us from upgrading to 13.x, related to HDMI being the default audio device, has now been resolved! Hopefully we can avoid instances like R2493:73148b1f32dd: Revert again to 12.x. I've personally tested it with my NVIDIA GPUs and haven't seen it defaulting to it, but I welcome more testing in regards to this, hence the task.

From Pulseaudio's release notes:

PulseAudio 13.0 started to switch output to HDMI automatically when module-switch-on-connect was loaded (upstream PulseAudio doesn't load it by default, but some distributions do). This change was not intentional, and caused very annoying behaviour in cases where waking up the monitor from sleep appears as a plug-in event in ALSA. Now module-switch-on-connect has a configurable blacklist, which by default prevents switching to HDMI devices. The blacklist is configured with a module argument, named "blacklist", which takes a regular expression that is matched against sink and source names. The default blacklist regular expression is "hdmi". To disable all blacklisting, you can pass "" (empty string) as the module argument value.

  • flat-volumes is now disabled by default!

From Pulseaudio's release notes:

Flat volumes have always been a controversial feature in PulseAudio. With flat volumes the stream volumes control also the sink volume. In the simple case of only one stream, the stream and the sink volume are always the same. In case of multiple streams, the sink volume is set to the maximum of the stream volumes. The purpose of this is to simplify the volume control of an application: the full volume range is always available via the application volume slider, so there's no need to think about the sink volume. In practice, however, this has caused more harm than good (the worst problem is that some applications automatically set their stream volume to 100%, causing the audio to be played at the maximum volume that the hardware can produce), and most large distributions have patched PulseAudio to disable flat volumes by default. Now that patching won't be needed any more.

  • Better support for USB gaming headsets. Should help folks like @TClark77.

From Pulseaudio's release notes:

Custom configuration was enabled for a few headset models:

HyperX Cloud Orbit S
LucidSound LS31
Razer Kraken Tournament Edition
SteelSeries Arctis 5 (2019 edition)
SteelSeries Arctis Pro (2019 edition)

PulseAudio now creates separate stereo and mono (voice) sinks for these headsets.

I've love if folks on the unstable repository could test Pulseaudio 14.0, confirming that aspects such as their default audio devices, audio switching, output and input don't have any notable regressions that would warrant reverting again to 12.x


Event Timeline

JoshStrobl triaged this task as Unbreak Now! priority.
JoshStrobl created this task.
JoshStrobl moved this task from Backlog to Improvement on the Software board.
JoshStrobl updated the task description. (Show Details)Nov 23 2020, 11:59 PM

Local tests results using a pair of old Samsung earphones and PulseAudio a loop device:

  • Play a music video in Firefox.
  • Play a test from the command line with mpv.
  • Compile a program with libpulse-simple and listen the test track.
  • Use a virtual sound device and test it in the WebRTC test page.

Conclusion: Success for me.

Quick test, don't have a very exciting audio setup:

  • Playback through my headset works
  • Switching between my headset microphone and USB microphone works without problems

That's the extent of my audio needs :)

Acceptance criteria: PulseAudio now creates separate stereo and mono (voice) sinks for the headset

Testing - Pass ✅

Testing environment

  • laptop on -unstable (Updated)
  • SteelSeries Arctis Pro (2019 edition) 1038:1290 is the stereo “gaming” audio, 1038:1294 is the chat audio
❯ lsusb |grep -i steel                                                                             
Bus 005 Device 009: ID 1038:1294 SteelSeries ApS Arctis Pro Wireless
Bus 005 Device 007: ID 1038:1290 SteelSeries ApS Arctis Pro Wireless
  • KDE Plasma DE
  • No custom configuration of pulseaudio, no custom udev rules files

Test steps

  • Viewed audio devices - right click audio systray icon - settings - Audio - Devices. Expect:

Device for Arcits Pro Wireless Game - ok ✅
Audio plays in stereo through this device - ok ✅
Device for Arctis Pro Wireless Chat - ok ✅
Audio plays through this device - ok ✅

  • Viewed the Advanced tab

Expect: Arctic Pro Wireless has profiles for combinations of chat output / game output / chat input - ok ✅

  • Tested headset mic with Discord - ok ✅
stalebrim added a subscriber: stalebrim.EditedNov 25 2020, 11:28 AM

People using PulseEffects
Do you encounter situations where your Pulseeffects sink just vanishes and you have to restart Pulseeffects? I'm not sure whether Pulseaudio is crashing or why it happens, but it's pretty annoying.

I thought it's a patch I added for PulseEffects, but it seems to do it even without the patch. And 4.8.2 shouldn't be the culprit as according to changelog it just fixes loading EQ presets.

Good candidates for reproducing are watching a youtube video or opening discord when nothing is playing. Even a discord notification sound can trigger it.

EDIT: Yes, it's indeed Pulseaudio crashing

D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes
D: [pulseaudio] protocol-native.c: Enabling srbchannel...
D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for vivaldi-bin
D: [pulseaudio] protocol-native.c: Client enabled srbchannel.
I: [pulseaudio] module-stream-restore.c: Restoring device for stream sink-input-by-application-name:Chromium.
D: [pulseaudio] module-intended-roles.c: Not setting device for stream Playback, because already set.
D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"float32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
I: [pulseaudio] sink-input.c: Trying to change sample spec
D: [pulseaudio] sink.c: Suspending sink PulseEffects_apps due to changing format, desired format = float32le rate = 44100
D: [pulseaudio] sink.c: PulseEffects_apps: suspend_cause: (none) -> INTERNAL
D: [pulseaudio] sink.c: PulseEffects_apps: state: IDLE -> SUSPENDED
D: [pulseaudio] source.c: PulseEffects_apps.monitor: suspend_cause: (none) -> INTERNAL
D: [pulseaudio] source.c: PulseEffects_apps.monitor: state: IDLE -> SUSPENDED
D: [pulseaudio] source.c: Suspending source PulseEffects_apps.monitor due to changing format, desired format = float32le rate = 44100
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=8, prebuf=0, minreq=1 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=8, prebuf=0, minreq=8 maxrewind=0
D: [pulseaudio] source-output.c: Updated resampler for source output 0
I: [pulseaudio] source.c: Reconfigured successfully
I: [pulseaudio] sink.c: Reconfigured successfully
D: [pulseaudio] sink.c: PulseEffects_apps: suspend_cause: INTERNAL -> (none)
D: [pulseaudio] sink.c: PulseEffects_apps: state: SUSPENDED -> IDLE
E: [null-sink] sink.c: Assertion 'pa_frame_aligned(length, &s->sample_spec)' failed at pulsecore/sink.c:1233, function pa_sink_render(). Aborting.
D: [pulseaudio] module-suspend-on-idle.c: Sink PulseEffects_apps becomes idle, timeout in 5 seconds.
D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.
Keskeytetty (luotiin core-tiedosto)

EDIT2: It seems avoid-resampling=yes is the culprit. I haven't encountered a crash after setting it to no. avoid-resampling=no is the Solus default.

Jacek added a subscriber: Jacek.EditedNov 25 2020, 2:45 PM

There might be some problems with Snap after updating Pulseaudio, but I'm really not sure.
I just installed snap teams-insiders and no sound devices are visible in it. I also got an error during installation INFO snap "teams-insiders" has bad plugs or slots: audio-playback (unknown interface "audio-playback"); audio-record (unknown interface "audio-record"). Snap on my system completely lacks "audio-playback" and "audio-record" interfaces.
But I have not used it before, so it is quite likely my snap config is wrong, and it was that way before the update. Could somebody else check if audio still works in your snaps?

My sound works fine in the Spotify snap. Kinda the first way I tested audio when I upgraded pulseaudio locally :D

JoshStrobl closed this task as Resolved.Nov 27 2020, 3:39 PM

Closing as Pulseaudio 14 has now been pushed to shannon. Thanks for all the thorough testing!