Announcement

Collapse
No announcement yet.

Speakers disappeared from any GUI

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Speakers disappeared from any GUI

    Hello,

    This is kind of two issues described, and one bleeds in to the other. I'm more concerned about the speakers disappearing.

    I did a fresh install of Kubuntu on a Framework 13 laptop with the gen 11 Intel chipset. I have never used Kubuntu before and have no experience with KDE or Pipewire. I just moved from Ubuntu Mate where my audio was working fine with Alsa/Pulse without any issues. I keep my install on this laptop as vanilla as I can, and because of the migration I was working on, I hadn't done much messing around yet.


    Initially the issue started with this:
    I have bluetooth headphones and laptop speakers. I primarily use the bluetooth headphones and set that as the default device. The bt headphones connect and play almost all audio except for 1 program, which I wanted to fix, somehow.

    That one program, Parsec, does not appear in the 'applications' section of the 'Audio Volume' notification panel widget nor 'Audio - System Settings' page even when playing a youtube video, but it plays through my laptop speakers regardless. The ideal state is that Parsec respects my default output device and plays through my bt headphones with all other audio on my PC.

    The issue escalated when I was browsing and clicking GUI options of the 'Audio - System Settings' page and in the notification panel applet, seeing if there was a setting to route audio or otherwise fix a particular apps audio, and suddenly my laptop speaker's audio output disappeared from the GUI and are not re-appearing on consecutive reboots. Despite this disappearance, Parsec still plays audio out of my laptop speakers, so I know the speakers are working and I'm getting audio from the parsec app.





    I need to figure out these things (with some additional bullet point notes):

    1. Why are my laptop speakers are not being seen in the GUI (settings/widget)?
    - is there something saved in a dotfile somewhere that the panel might be loading? Is there any settings I should clear? I'm having difficulty finding anything that looks relevant.
    - if i connect my bluetooth headphones to the system, they still appear and I can play all audio through that (except parsec)

    2. Why is Parsec playing through my speakers and not being seen by the GUI (settings/widget) nor respecting default audio?
    - I feel like even if it's an issue with the particular app, because the audio is playing out of my speakers, it's being routed somehow and I should be able to find a workaround even if through CLI.
    - When I had the laptop speakers present, and had my bluetooth headphones on, I had the option that was something akin to 'send all audio to this device' -- using it did not send my parsec audio to my headphones.


    What do I need to look at for this? Any pointers? I'm not great with Pulse/Alsa, but I'm even less familiar with Pipewire.

    Thanks for your time.


    Posting so it can be seen what I'm dealing with.

    Code:
    username@rat:~$ lsof /dev/snd/*
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    pipewire 2028 username 59u CHR 116,1 0t0 618 /dev/snd/seq
    pipewire 2028 username 60u CHR 116,1 0t0 618 /dev/snd/seq
    wireplumb 2030 username 43u CHR 116,10 0t0 1101 /dev/snd/controlC0
    wireplumb 2030 username 49u CHR 116,12 0t0 1148 /dev/snd/controlC1
    parsecd 2597 username mem CHR 116,2 1087 /dev/snd/pcmC0D0p
    parsecd 2597 username 12r CHR 116,33 0t0 617 /dev/snd/timer
    parsecd 2597 username 14u CHR 116,2 0t0 1087 /dev/snd/pcmC0D0p
    parsecd 2597 username 15u CHR 116,10 0t0 1101 /dev/snd/controlC0
    
    username@rat:~$ ls /dev/snd  -lahR
    /dev/snd:
    total 0
    drwxr-xr-x   3 root root      280 Jun 16 18:51 .
    drwxr-xr-x  21 root root     5.1K Jun 16 18:51 ..
    drwxr-xr-x   2 root root       60 Jun 16 18:51 by-path
    crw-rw----+  1 root audio 116, 10 Jun 16 18:26 controlC0
    crw-rw----+  1 root audio 116,  8 Jun 16 18:26 hwC0D0
    crw-rw----+  1 root audio 116,  9 Jun 16 18:26 hwC0D2
    crw-rw----+  1 root audio 116,  3 Jun 16 18:26 pcmC0D0c
    crw-rw----+  1 root audio 116,  2 Jun 16 18:26 pcmC0D0p
    crw-rw----+  1 root audio 116,  4 Jun 16 18:26 pcmC0D3p
    crw-rw----+  1 root audio 116,  5 Jun 16 18:26 pcmC0D7p
    crw-rw----+  1 root audio 116,  6 Jun 16 18:26 pcmC0D8p
    crw-rw----+  1 root audio 116,  7 Jun 16 18:26 pcmC0D9p
    crw-rw----+  1 root audio 116,  1 Jun 16 18:26 seq
    crw-rw----+  1 root audio 116, 33 Jun 16 18:26 timer
    
    /dev/snd/by-path:
    total 0
    drwxr-xr-x 2 root root  60 Jun 16 18:51 .
    drwxr-xr-x 3 root root 280 Jun 16 18:51 ..
    lrwxrwxrwx 1 root root  12 Jun 16 18:26 pci-0000:00:1f.3 -> ../controlC0​
    
    username@rat:~$ uname -a
    Linux rat 6.8.0-35-generic #35-Ubuntu SMP PREEMPT_DYNAMIC Mon May 20 15:51:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
    username@rat:~$ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 24.04 LTS
    Release: 24.04
    Codename: noble
    
    username@rat:~$ neofetch --off
    username@rat
    ---------
    OS: Kubuntu 24.04 LTS x86_64
    Host: Laptop AA
    Kernel: 6.8.0-35-generic
    Uptime: 13 mins
    Packages: 2161 (dpkg), 13 (snap)
    Shell: bash 5.2.21
    Resolution: 2256x1504, 1920x1080, 2560x1440
    DE: Plasma 5.27.11
    WM: KWin
    Theme: [Plasma], Breeze [GTK2/3]
    Icons: [Plasma], breeze-dark [GTK2/3]
    Terminal: konsole
    CPU: 11th Gen Intel i5-1135G7 (8) @ 4.200GHz
    GPU: Intel TigerLake-LP GT2 [Iris Xe Graphics]
    Memory: 4432MiB / 15777MiB
    
    username@rat:~$ lspci -nnk | grep Audio -A2
    00:1f.3 Audio device [0403]: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller [8086:a0c8] (rev 20)
    Subsystem: Framework Computer Inc. Tiger Lake-LP Smart Sound Technology Audio Controller [f111:0001]
    Kernel driver in use: snd_hda_intel
    Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl
    
    username@rat:~$ cat ~/.parsec/log.txt
    [F 2024-06-16 18:26:26] ===== Parsec: Started =====
    [D 2024-06-16 18:26:26] log: Parsec release-ui[release7] (150-94a, Service: -1, Loader: 12)
    [I 2024-06-16 18:26:27] unprivileged_user=1 enable_webview=0
    [D 2024-06-16 18:30:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:34:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:38:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:42:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:46:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:50:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:54:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 18:58:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [D 2024-06-16 19:02:27] downtime_thread: Downtime poll failed: Not all fields present: {}
    [F 2024-06-16 19:03:27] ===== Parsec: Shutdown with 1 =====
    
    [F 2024-06-16 19:03:27] ===== Parsec: Started =====
    [D 2024-06-16 19:03:27] log: Parsec release-ui[release-alpha] (150-94a, Service: -1, Loader: 12)
    [F 2024-06-16 19:03:27] ===== Parsec: Shutdown with 1 =====
    
    [F 2024-06-16 19:03:27] ===== Parsec: Started =====
    [D 2024-06-16 19:03:27] log: Parsec release-ui[release-alpha] (150-95-beta10, Service: -1, Loader: 12)
    [D 2024-06-16 19:03:27] log: Parsec getting initial user data.
    [D 2024-06-16 19:03:27] log: Parsec got initial user data.
    [I 2024-06-16 19:03:27] unprivileged_user=1 enable_webview=0
    [D 2024-06-16 19:03:27] Client status changed to: -3
    [D 2024-06-16 19:03:32] Client status changed to: 20
    [D 2024-06-16 19:03:32] net           = BUD|::ffff:10.66.6.40|21551
    [D 2024-06-16 19:03:32] BUD AES_GCM   = 128
    [I 2024-06-16 19:03:33] Host's virtual microphone is disabled
    [D 2024-06-16 19:03:33] FFMPEG 6 Hardware
    [D 2024-06-16 19:03:48] Client status changed to: -3
    [D 2024-06-16 19:04:20] Client status changed to: 20
    [I 2024-06-16 19:04:20] STUN reply from ::ffff:35.169.37.243:3478
    [D 2024-06-16 19:04:20] net           = BUD|::ffff:10.66.6.40|21551
    [D 2024-06-16 19:04:20] BUD AES_GCM   = 128
    [I 2024-06-16 19:04:21] Host's virtual microphone is disabled
    [D 2024-06-16 19:04:21] FFMPEG 6 Hardware
    ​​
    Last edited by bibliesbilibitorbot; Jun 16, 2024, 05:14 PM. Reason: additional log file that seems generally useless

    #2
    Playing around a bit.

    After killing these programs:
    Code:
    $ systemctl --user stop pipewire wireplumber pipewire-pulse
    $ ps aux | grep -i -e pipe -e wire
    myusername 23068 0.0 0.0 9148 2432 pts/1 S+ 00:32 0:00 grep --color=auto -i -e pipe -e wire
    ...​all audio on my laptop stops functioning except Parsec, which continues to play through my internal laptop speakers, which I'd guess means is working in a way that bypasses the need for any of those programs. I can't find another program that seems to handle it but it's possible I'm not finding it because its called something generic that doesn't stand out as an audio program.

    Looking at pw-cli and pactl, which I'm not the greatest at:
    - I'm not seeing anything about parsec
    - I believe I see my built-in speakers? I see built-in something. I broke it and am seeing less since stopping those processes so I'll edit after a reboot.
    Edit: I was seeing the built-in audio input so that would be the microphone.
    Code:
    $ pactl list sources | grep -i -e 'name:'
    Name: alsa_input.pci-0000_00_1f.3.analog-stereo
    Name: alsa_input.usb-BLUE_MICROPHONE_Blue_Snowball_201305-00.pro-input-0
    Name: bluez_output.00_0A_45_19_F0_E4.1.monitor
    $ pactl list source-outputs | grep -i -e 'name:'
    $ pactl list sinks | grep -i -e 'name:'
    Name: bluez_output.00_0A_45_19_F0_E4.1
    $ pactl list sink-inputs | grep -i -e 'name:'
    module-stream-restore.id = "sink-input-by-application-name:Firefox"​

    I installed qpwgrap to get a visual representation of my pipes to aid with the CLI commands, and I notice a few things. Photo here: https://imgur.com/a/GE4rk8U
    - Parsec program never shows up even when audio is playing through the speakers
    - Firefox shows it has outputs
    --- if i play a video or something, i can see it connect to my headphones input
    - My working bluetooth headphones have inputs and outputs
    --- the headphones have a microphone, I presume that's what im seeing as output
    --- The built-in audio shows up, but only has outputs and no inputs
    - if i use qpwgraph to connect the built-in audio output to my headphones input, I can hear myself, so that with the hint from my headphones I assume is the microphone​
    Last edited by bibliesbilibitorbot; Jun 12, 2024, 11:16 PM. Reason: add a photo and some console output

    Comment


      #3
      Try moving/deleting ~/.local/state/wireplumber​
      and restarting wireplumber:
      systemctl --user restart wireplumber*.service

      (or log out and back in)
      This *should* reset audio back to defaults. It is possible you *might* also want to unpair and re-pair Bt audio devices, just to make sure everything is "clean".

      Originally posted by bibliesbilibitorbot View Post
      . Why is Parsec playing through my speakers and not being seen by the GUI (settings/widget) nor respecting default audio?
      That would be a question for the Parsec folks, methkinks.

      Comment


        #4
        Hey claydoh, thanks for the help. That did give me my internal audio speaker device back. Thanks a lot.

        Originally posted by claydoh View Post
        That would be a question for the Parsec folks, methkinks.
        I totally agree.

        Tonight my goal for myself is to figure out how it's working at all - how audio works in the absence of pulse/alsa/pipewire/etc.. I think that will help me determine the remainder of the issue.

        Comment


          #5
          My speakers disappeared when I go to applet, select the burger menu, and change from 'Analog Stereo Duplex' to 'Analog Stereo Output'. I don't know what that setting does but it requires I delete that file in the folder to see it in any GUI again.




          On the parsec/alsa/pipewire front:

          Looks like if i install libasound2-plugins, I get an /etc/alsa folder and audio changes after restarting parsec - it goes completely muted.

          sudo apt install libasound2-plugins

          ​I read somewhere that someone on Fedora 34 had an issue with parsec until they deleted /etc/alsa/conf.d/99-pulseaudio-default.conf, but I don't have that file. I tried deleting /etc/alsa/conf.d/50-pulseaudio.conf and the audio went back to playing through my speakers. Whatever I have to do, it must be in relation to that file.
          Code:
          username@rat:~$ cat /etc/alsa/conf.d/50-pulseaudio.conf
          # Add a specific named PulseAudio pcm and ctl (typically useful for testing)
          
          pcm.pulse {
                  @args [ DEVICE ]
                  @args.DEVICE {
                          type string
                          default ""
                  }
                  type pulse
                  device $DEVICE
                  hint {
                          show {
                                  @func refer
                                  name defaults.namehint.basic
                          }
                          description "PulseAudio Sound Server"
                  }
          }
          
          ctl.pulse {
                  @args [ DEVICE ]
                  @args.DEVICE {
                          type string
                          default ""
                  }
                  type pulse
                  device $DEVICE
          }

          Comment


            #6
            After some playing around I narrowed things down to installing this package:
            sudo apt install pipewire-alsa

            Contents:
            Code:
            username@rat:~$ dpkg -L pipewire-alsa
            /.
            /etc
            /etc/alsa
            /etc/alsa/conf.d
            /usr
            /usr/lib
            /usr/lib/x86_64-linux-gnu
            /usr/lib/x86_64-linux-gnu/alsa-lib
            /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_ctl_pipewire.so
            /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_pcm_pipewire.so
            /usr/share
            /usr/share/alsa
            /usr/share/alsa/alsa.conf.d
            /usr/share/alsa/alsa.conf.d/50-pipewire.conf
            /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf
            /usr/share/doc
            /usr/share/doc/pipewire-alsa
            /usr/share/doc/pipewire-alsa/copyright
            /etc/alsa/conf.d/50-pipewire.conf
            /etc/alsa/conf.d/99-pipewire-default.conf
            /usr/share/doc/pipewire-alsa/changelog.Debian.gz
            Then messing with this file seems to break it completely.
            /etc/alsa/conf.d/99-pipewire-default.conf

            ​My parsec now outputs with the rest of my audio.

            Comment

            Working...
            X