Audio output issues after switching desktops/window managers

Hello, I am a total noob here so I apologize if there’s a similar topic that I didn’t find already or if this is very basic knowledge. I recently installed openSUSE tumbleweed on my Lenovo Ideapad with Gnome. I then tried SwayWM for a few days, and then I switched to Hyprland and uninstalled Sway and Gnome along with dependencies. It seems like I messed up my install doing all this, because since then I am having some strange audio issues.

  • I can’t play audio from my builtin laptop speakers. Audio sources and videos on Chromium just freeze when I try to play audio. There are also 5 different “Output devices” showing on pavucontrol for my laptop, I’m not sure if this is normal.
  • I can play audio from bluetooth speakers. But the audio is noticeably lower in pitch.

I am using pipewire with pulseaudio. I am using pavucontrol to configure and view audio output devices. I have the pipewire, pipewire-pulseaudio, pipewire-alsa, and pipewire-jack packages installed. Here is the output from wpctl status with bluetooth turned off:

PipeWire 'pipewire-0' [1.4.7, louis@localhost.localdomain, cookie:1957655266]
 └─ Clients:
        32. WirePlumber                         [1.4.7, louis@localhost.localdomain, pid:1731]
        33. pipewire                            [1.4.7, louis@localhost.localdomain, pid:1732]
        46. WirePlumber [export]                [1.4.7, louis@localhost.localdomain, pid:1731]
       126. xdg-desktop-portal-hyprland         [1.4.7, louis@localhost.localdomain, pid:1953]
       127. waybar                              [1.4.7, louis@localhost.localdomain, pid:1904]
       128. PulseAudio Volume Control           [1.4.7, louis@localhost.localdomain, pid:2472]
       178. Chromium input                      [1.4.7, louis@localhost.localdomain, pid:2547]
       180. Chromium                            [1.4.7, louis@localhost.localdomain, pid:2547]
       192. Chromium                            [1.4.7, louis@localhost.localdomain, pid:2547]
       205. wpctl                               [1.4.7, louis@localhost.localdomain, pid:3225]

Audio
 ├─ Devices:
 │      50. Meteor Lake-P HD Audio Controller   [alsa]
 │  
 ├─ Sinks:
 │  *   58. Meteor Lake-P HD Audio Controller Pro [vol: 0.75]
 │      59. Meteor Lake-P HD Audio Controller Pro 3 [vol: 1.00]
 │      60. Meteor Lake-P HD Audio Controller Pro 4 [vol: 1.00]
 │      61. Meteor Lake-P HD Audio Controller Pro 5 [vol: 1.00]
 │      62. Meteor Lake-P HD Audio Controller Pro 31 [vol: 1.00]
 │  
 ├─ Sources:
 │  *   63. Meteor Lake-P HD Audio Controller Pro [vol: 1.00]
 │      64. Meteor Lake-P HD Audio Controller Pro 6 [vol: 1.00]
 │  
 ├─ Filters:
 │  
 └─ Streams:
       129. PulseAudio Volume Control                                   
            136. input_FL        < Pro:monitor_AUX0	[active]
            137. monitor_FL     
            138. input_FR        < Pro:monitor_AUX1	[active]
            139. monitor_FR     
       130. PulseAudio Volume Control                                   
            142. input_FL        < Pro 3:monitor_AUX0	[active]
            143. monitor_FL     
            144. input_FR        < Pro 3:monitor_AUX1	[active]
            145. monitor_FR     
       131. PulseAudio Volume Control                                   
            148. input_FL        < Pro 4:monitor_AUX0	[active]
            149. monitor_FL     
            150. input_FR        < Pro 4:monitor_AUX1	[active]
            151. monitor_FR     
       132. PulseAudio Volume Control                                   
            154. input_FL        < Pro 5:monitor_AUX0	[active]
            155. monitor_FL     
            156. input_FR        < Pro 5:monitor_AUX1	[active]
            157. monitor_FR     
       133. PulseAudio Volume Control                                   
            160. input_FL        < Pro 31:monitor_AUX0	[active]
            161. monitor_FL     
            162. input_FR        < Pro 31:monitor_AUX1	[active]
            163. monitor_FR     
       134. PulseAudio Volume Control                                   
            166. input_FL        < Pro:capture_AUX0	[active]
            167. monitor_FL     
            168. input_FR        < Pro:capture_AUX1	[active]
            169. monitor_FR     
       135. PulseAudio Volume Control                                   
            172. input_FL        < Pro 6:capture_AUX0	[active]
            173. monitor_FL     
            174. input_FR        < Pro 6:capture_AUX1	[active]
            175. monitor_FR     
       181. Chromium                                                    
            184. output_FR       > Pro 31:playback_AUX1	[active]
            191. output_FL       > Pro 31:playback_AUX0	[active]
       189. PulseAudio Volume Control                                   
            179. input_FR        < Chromium:output_FR	[active]
            183. monitor_FL     
            187. monitor_FR     
            188. input_FL        < Chromium:output_FL	[active]
       193. Chromium                                                    
            194. output_FL       > Pro 31:playback_AUX0	[active]
            195. output_FR       > Pro 31:playback_AUX1	[active]
       198. PulseAudio Volume Control                                   
            199. input_FL        < Chromium:output_FL	[active]
            200. monitor_FL     
            201. input_FR        < Chromium:output_FR	[active]
            202. monitor_FR     

Video
 ├─ Devices:
 │      51. Integrated Camera                   [v4l2]
 │      52. Integrated Camera                   [v4l2]
 │      53. Integrated Camera                   [v4l2]
 │      54. Integrated Camera                   [v4l2]
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  *  122. Integrated Camera (V4L2)           
 │     124. Integrated Camera (V4L2)           
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:

The first thing I recommend is to check your mixer. Perhaps you have your speakers muted.

Check Mixer:

ie send the command:
alsamixer
and tune your mixer.

If you wish to share your mixer settings, send the command (and post output here):
amixer -c 0
[where I have assumed card 0 is your laptop’s Intel Meteor Lake HD Audio Controller.

TEST SOUND at LOWER LEVEL

If you type:
aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) 
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The above is an example, and in my above example, my speakers are card-0, and device-0 (HDA Analog for the speakers). That corresponds to hw:0,0

Alternatively …
If it was card-1, device-0 it would be hw:1,0.
If it was card-0, device-2 it would be hw:0,2.

So assuming it is card-0, device-0, then to test you could send the command:

speaker-test -t wav -c 2 -D hw:0,0

If that is too complicated, then just send:
speaker-test -t wav -c 2
where that should work given you are using pipewire.

Many sinks and steams … puzzling to me …

There are many sinks and steams in that wpctl output.

The fact that Chromium audio/video freezes when trying to play audio suggests to me there might be a routing issue where audio streams are getting stuck or the wrong sink is being targeted. The multiple “Pro 31” connections in the Chromium streams suggest Chromium might be trying to use sink 62 (Pro 31), which may not be the correct speakers output.

You could try to use wpctl to play a test tone:
pw-play --target=58 /usr/share/sounds/alsa/Front_Left.wav

The above uses sink ‘58’. You could try that , changing 58 to try each different sink. ie 59, then 60, then 61, then 62. Are any of those valid?

If one of those is valid (as an example say 61 works) then you could make that default:
wpctl set-default 61

You can test the current volume level of the ‘source’ (note I typed ‘source’ not ‘sink’ where you obtain that number from the wpctl status command output sent).

wpctl get-volume 61  # Check current volume
wpctl set-mute 61 0  # Unmute if needed

and you can even set volume:
wpctl set-volume 61 0.8

If that is too complicated you could just try:
pw-play /usr/share/sounds/alsa/Front_Left.wav
but given the MANY sinks your setup has, I suspect that more simple command will not give speaker audio and not give us the troubleshooting information desired.

Why so many streams ??

But I am skirting the issue. Why so many streams?

On your laptop, I do not understand why PulseAudio Volume Control (pavucontrol) ?? created so many monitoring streams. Your output suggests 7 different monitoring streams (129, 130, 131, 132, 133, 134, 135) - one for each sink. Puzzling to me.

This excessive stream creation could definitely cause audio routing problems and explain why Chromium freezes when trying to play audio.

Hypothetically, it appears like pavucontrol was opened multiple times or is stuck in a loop creating monitoring connections. Each time pavucontrol opens, it creates monitoring streams to display volume meters for all available sinks.

How to eliminate the many streams??

I assume this behaviour continues even after a reboot?

If not (and if you do not want to reboot), then properly close pavucontrol completely and restart it.

I hope this helps. While I am not a newb to GNU/Linux, to a certain extent I am to pulse-audio and pipewire, as I let the advances in those areas leave me far behind technically, and I am now making an effort to try to catch up.

1 Like

Thanks so much for your response! It seems like while I was messing around with my laptop I deleted some required alsa packages which was the issue… I didn’t even have alsamixer installed.

After I installed alsa-utils and restarted wireplumber, audio output is working fine! I don’t know how I created so many sinks and streams, initially I just saw a “Dummy” output and tried to fix it by clicking around in pavucontrol.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.