Page MenuHomeSolus

Meta: PipeWire 0.3.26 Testing and Feedback
Open, NormalPublic

Description

PipeWire 0.3.26 Upgrade Support Notes

WARNING: Please read this task in its entirety before commenting or upgrading. Seriously.

As PipeWire got updated in D10936, I've added aptX and LDAC codecs support for it, but because I lack the required/proper equipment for the actual testing, I need your valuable feedback for the task (and maybe untap some other issues with). And as this also inquires switching the sound system I'll also need those comments too.

NOTE: This task content can only be modified by the task author (that means me), members of the Core Team or Global Maintainers. The task will be updated as comments / feedback are received.

This testing is being performed on the unstable repository (or on stable in case the update gets synced) and may also involve or require real-time communication via the Solus development IRC channel (#Solus-Dev).

If you are not on the unstable repository and wish to help test, assuming you understand that the intent of unstable is to be the place where stuff might get broken and operate under the assumption you check IRC to know when not to update, you can run the below mentioned command to switch to the unstable repository:

sudo eopkg ar Solus https://mirrors.rit.edu/solus/packages/unstable/eopkg-index.xml.xz

Upgrading Properly

Do not run any commands until you fully read this section. Thank you.

First of all we need to make sure that you have a fully upgraded system, either by checking the Software Center or by running sudo eopkg up, then reboot your system and lastly you switch over to unstable (see the Upgrading Properly section in T9683).

If you are on the unstable repository, likewise perform a full upgrade via either the Software Center or the Terminal, then reboot. If you use Budgie and GNOME and encounter the grey "Something happened" fullscreen window after a reboot and attempt to login, switch to a TTY (typically Ctrl+Alt+F2-9, pick one), login and run sudo usysconf run -f then reboot (sudo reboot).

WARNING: Like it was mentioned earlier, reboot your system after upgrading. Check T9683 if you encounter similar issues described in the task.

Setup

Setting up is explained at the PipeWire wiki, but as a quick recap is done as following:

  1. Enable (without having to run under sudo) the user PipeWire service and socket with: systemctl --user enable pipewire.
  2. Then continue with the user PipeWire PulseAudio: systemctl --user enable pipewire-pulse.
  3. And the PipeWire Multimedia Service Session Manager: systemctl --user enable pipewire-media-session.
  4. Disable the PulseAudio socket and service with: systemctl --user disable pulseaudio pulseaudio.socket.
  5. Install the pipewire-jack package if you want to test JACK support.
  6. Reboot.
  7. Check pactl info for the server name to see if it's running under PipeWire.

You can revert your PulseAudio changes by issuing systemctl --user disable pipewire-pulse pipewire-media-sessionand then systemctl --user enable pulseaudio and then rebooting. JACK can also be done like that by uninstalling pipewire-jack (and rebooting in case of failure).

Known Issues

There's a Troubleshooting wiki article provided in the Freedesktop GitLab repo.

  • DSP load is a bit higher than before. Probably an issue with renicing (as we don't ship RTKit and I cannot provide a functional package for it).
  • RTKit errors. Explained above.
  • Underrun/Underflow and Broken Pipe Errors. Quoting from the wiki:

Applications not providing data fast enough and not enough headroom in the device to recover. Increase headroom.

  • PulseEffects crashes. Our PulseEffects version is incompatible with PipeWire, meaning that if you use it you can revert your changes with systemctl xor PulseEffects should be updated.

Testing

Basically testing consists in using your system as usual, but now you are using PipeWire instead of PulseAudio. I recommend doing both mono and stereo if you can.

Testing Notes:

  1. This list may not be comprehensive. Feel free to report other things!
  2. Phabricator may indicate something is complete even if it isn't explicitly checked off. Ignore that and only look for the checkbox.
  3. Even if it's checked you can also redo the test and post your results.
  4. Check your audio device's product page on its official website or online store (like Amazon) for aptX, LDAC, SBC or any Bluetooth codec in general.
  • Bluetooth
  • Virtual devices
    • Tested with pw-cli create-node adapter '{ factory.name=support.null-audio-sink node.name=my-mic media.class=Audio/Duplex object.linger=true audio.position=[ FL FR ] }' and then used that "microphone" in a conference.
  • JACK
    • Both with Carla and LMMS.
  • PulseAudio
  • GStreamer
    • Audio
      • Looped audio with gst-launch-1.0 audiotestsrc ! pulsesink device=my-mic and gst-launch-1.0 pipewiresrc ! audioconvert ! autoaudiosink.
      • TODO: Do the same as above but with pipewiresink.
    • Video
      • TODO: Create a video sink node (using V4L2) and loop it with gst-launch-1.0 videotestsrc ! pipewiresink and gst-launch-1.0 pipewiresrc ! videoconvert ! autovideosink.

Event Timeline

JoshStrobl updated the task description. (Show Details)Wed, Apr 28, 4:12 PM
JoshStrobl triaged this task as Normal priority.Wed, Apr 28, 4:56 PM
JoshStrobl moved this task from Backlog to Improvement on the Software board.
hansk added a subscriber: hansk.Wed, Apr 28, 6:27 PM

Testing performed using Intel AX200 bluetooth in a modified thinkpad X230 and Soundcore Liberty Air 2 true wireless earbuds.

I'm getting a very, very weird problem on SBC but not any other codecs. Seems like when the volume output drops below a certain level, it cuts out and doesn't come back when the volume comes back up. Sometimes another stream starting brings it back (such as the volume indicator sound effect), but not always. Switching to another codec and back fixes it, until the volume output drops again and it loses it. This doesn't happen immediately- I can jump the volume down in settings, and it slowly fades out with a little bit of white noise before losing all output until I mess with the codecs again.

AAC has some occasional glitchy white noise sounds, but doesn't exhibit the above issue at low volumes.

aptX seems to work perfectly, although I've only been testing for about 10 minutes.

YakoYakoYokuYoku updated the task description. (Show Details)
Skyeun added a subscriber: Skyeun.Wed, Apr 28, 8:09 PM

Testing performed using a Senheiser 350BT, no noticeable issue when using SBC, AAC or aptX codec ๐Ÿ‘

TClark77 added a subscriber: TClark77.EditedThu, Apr 29, 1:35 AM

Bluetooth Test Notes

Test devices

AYL QY7 Bluetooth earbuds
Bluetooth Specification:4.1+EDR
Bluetooth Profiles Supported: HFP1.6, HSP1.2, AVRCP1.4, A2DP1.2
Bluetooth Profiles in Audio Settings: A2DP & SBC, A2DP, A2DP & AAC, A2DP & aptx HSP/HFP, HSP/HFP & CVSD

Sharkk Mako Bluetooth speaker
Model: sp-skbt812
Bluetooth Specification:4.0
Bluetooth Profiles Supported: Undocumented (I looked high & low)
Bluetooth Profiles in Audio Settings: A2DP & SBC, A2DP, HSP/HFP,

Preconditions

KDE Plasma DE
Upgraded system fully & rebooted
Configured pipewire per the task & rebooted
Paired the Sharkk Mako to bluetooth (AYL had already been paired)

Audio filetypes tested

ogg, opus, flac and mp3

Testing procedure

  • Powered on the test device
  • Started VLC, queued up some tracks & had them playing
  • During playback, switched sound profiles

Audio settings - Configure - Profile

  • Also tested switching codecs while playing music with Strawberry

Note: I experienced sound dropouts that I think are specific to VLC, I didn't experience these with Strawberry
There were a couple of dropouts during music playback every time I switched to a known working codec. It like VLC was doing some sort of negotiation, or audio calculations, but then things settled & playback was OK.

I also experienced a couple of drop outs every time a new track started playing after the player switched tracks automatically, regardless of codec.

Codec results

Sharkk Mako

  • A2DP - auto switches to A2DP & SBC - ok โœ…
  • A2DP & SBC - ok โœ…
  • HSP/HFP - auto switched to HSP/HFP & CVSD - ok โœ…
  • HSP/HFP & CVSD - ? - no sound - not sure if this is expected? I can't find any specs online or in the user manual about what codecs this speaker supports.

AYL

  • A2DP & aptX - ok โœ…
  • HSP/HFP - auto switched to HSP/HFP & CVSD but got no sound - not ok โŒ
  • HSP/HFP & CVSD - I did hear sound on this codec, but it sounded like it was being played in a closet next door. According to other feedback I've gotten, this is, unfortunately normal for the codec. I ran into other issues with it, see below.
  • A2DP & SBC - ok โœ…
  • A2DP & AAC - ok โœ…

Other results

When powering up an bluetooth device, audio automatically switched to it - ok โœ…
When powering down a bt device, audio switched to the other default audio device (internal speakers) - ok โœ…

Failures:

  1. Sound failure when switching codecs back and forth - experienced on both devices

Sometimes, when switching to HSP/HFP (not "HSP/HFP, codec CVSD" directly where the driver doesn't have to auto switch to that), and then back to another codec, I would get no sound out of the bt device. There would then be no sound with any codec until I switched back & forth to one of the non-HSP codecs repeatedly. Eventually sound kicked back in and then would work so long as I didn't select "HSP/HFP".

  1. I also experienced sound dropping out when a track had low volume, as reported by hansk. I only saw this with Strawberry, not VLC, not sure if that makes a difference.

Our PulseEffects version is incompatible with PipeWire

Right. Our PulseEffects is the "legacy branch" for PulseAudio which is still maintained, but will not receive any new features. 5.0.2 and later are for PipeWire. I'd gladly try packaging the version 5 if there's a demand for it (I at least would want to use it when I move on to PipeWire).

YakoYakoYokuYoku updated the task description. (Show Details)
silke added a subscriber: silke.Thu, Apr 29, 12:08 PM

I noticed LDAC wasn't checked yet, so here are some more test notes:

Tested devices

Sony WH-H900N

Bluetooth Specification: 4.1
Bluetooth Profiles Supported: A2DP, AVRCP, HFP, HSP
Bluetooth Codecs Supported: SBC, AAC, aptX, aptX HD, LDAC
Bluetooth Profiles in Audio Settings: A2DP, HSP/HFP, A2DP+SBC, A2DP+AAC, A2DP+aptX, A2DP+aptX HD, A2DP+LDAC, HSP/HFP+CVSD

All profiles work. The HSP/HFP profile switches to HSP/HFP+CVSD (which sounded exactly like can be expected from 8 kHz sample rate). The A2DP profile switches to the LDAC profile.

Edifier R1280DB

Bluetooth Specification: 4.0
Bluetooth Profiles Supported: A2DP, AVRCP
Bluetooth Codecs Supported: Undocumented
Bluetooth Profiles in Audio Settings: A2DP, A2DP+SBC

The A2DP profile switches to the SBC profile, which works.

Issues

Mostly minor issues:

  • Sometimes there is silence on A2DP profiles when switching between them. Switching to HSP/HFP and back seems to resolve this.
  • Switching between profiles sometimes switches back to internal speakers.
  • aptX HD sometimes has severe stuttering. Switching to something else and back resolves this.
  • Sometimes the volume is (invisibly) reset to 100% when switching between profiles.