Score:9

Microphone not showing up as input device in settings, only in pavucontrol

in flag

I have an audio interface, a UMC404HD, that I use both for my speakers and for my microphone. It's plugged in via USB cable. This used to work under Ubuntu 20.10. However something seems to have gone wrong as I updated to 21.04.

The main problem is that I can't select the interface as microphone input any more. The only available input is from my webcam, where previously it allowed me to select the UMC404HD as microphone as well:

Photo here, since you can't take screenshots of a drop-down

404 not found, as they say.

However the device is plugged-in and somehow working. Pavucontrol does show me the device and its volume levels:

Pavucontrol shows the device

These levels peak as I tap on the microphone. It's actually getting input from it. But it's somehow not allowing it to be chosen as a microphone. Note also that the "Port:" drop-down is missing from the UMC404HD device.

In the Configuration tab of Pavucontrol, the device is configured as output+input: Analog Surround 4.0 Output + Multichannel Input

Do you know why the device is not available as microphone input?

EDIT: As requested, here is the output of some commands related to audio hardware and software:

trin@Trinity:~$ uname -a
Linux Trinity 5.11.0-18-generic #19-Ubuntu SMP Fri May 7 14:22:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

trin@Trinity:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 12: HDMI 6 [HDMI 6]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 1: ALC1220 Digital [ALC1220 Digital]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 2: U192k [UMC404HD 192k], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

trin@Trinity:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: Generic [HD-Audio Generic], device 0: ALC1220 Analog [ALC1220 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 2: ALC1220 Alt Analog [ALC1220 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: U192k [UMC404HD 192k], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 3: C920 [HD Pro Webcam C920], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

trin@Trinity:~$ inxi -SA
System:    Host: Trinity Kernel: 5.11.0-18-generic x86_64 bits: 64 Desktop: GNOME 3.38.4 Distro: Ubuntu 21.04 (Hirsute Hippo) 
Audio:     Device-1: NVIDIA TU106 High Definition Audio driver: snd_hda_intel 
           Device-2: Advanced Micro Devices [AMD] Starship/Matisse HD Audio driver: snd_hda_intel 
           Device-3: Logitech OrbiCam type: USB driver: snd-usb-audio,uvcvideo 
           Device-4: BEHRINGER UMC404HD 192k type: USB driver: snd-usb-audio 
           Sound Server: ALSA v: k5.11.0-18-generic 

trin@Trinity:~$ lspci -nnk | grep -A 1 Audio
2d:00.1 Audio device [0403]: NVIDIA Corporation TU106 High Definition Audio Controller [10de:10f9] (rev a1)
    Subsystem: Gigabyte Technology Co., Ltd TU106 High Definition Audio Controller [1458:37c2]
    Kernel driver in use: snd_hda_intel
--
2f:00.4 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller [1022:1487]
    Subsystem: Micro-Star International Co., Ltd. [MSI] X570-A PRO motherboard [1462:9c37]

trin@Trinity:~$ cat /proc/asound/cards
 0 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf7080000 irq 72
 1 [Generic        ]: HDA-Intel - HD-Audio Generic
                      HD-Audio Generic at 0xf7900000 irq 74
 2 [U192k          ]: USB-Audio - UMC404HD 192k
                      BEHRINGER UMC404HD 192k at usb-0000:2a:00.1-2, high speed
 3 [C920           ]: USB-Audio - HD Pro Webcam C920
                      HD Pro Webcam C920 at usb-0000:2a:00.1-6.1.4, high speed

trin@Trinity:~$ sudo lshw -C multimedia
  *-usb:1                   
       description: Audio device
       product: UMC404HD 192k
       vendor: BEHRINGER
       physical id: 2
       bus info: usb@1:2
       version: 1.12
       capabilities: usb-2.00 audio-control
       configuration: driver=snd-usb-audio maxpower=500mA speed=480Mbit/s
  *-usb:3
       description: Video
       product: HD Pro Webcam C920
       vendor: Logitech, Inc.
       physical id: 4
       bus info: usb@1:6.1.4
       version: 0.19
       serial: 47963BFF
       capabilities: usb-2.00
       configuration: driver=snd-usb-audio maxpower=500mA speed=480Mbit/s
  *-multimedia
       description: Audio device
       product: TU106 High Definition Audio Controller
       vendor: NVIDIA Corporation
       physical id: 0.1
       bus info: pci@0000:2d:00.1
       version: a1
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: driver=snd_hda_intel latency=0
       resources: irq:72 memory:f7080000-f7083fff
  *-multimedia
       description: Audio device
       product: Starship/Matisse HD Audio Controller
       vendor: Advanced Micro Devices, Inc. [AMD]
       physical id: 0.4
       bus info: pci@0000:2f:00.4
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: driver=snd_hda_intel latency=0
       resources: irq:74 memory:f7900000-f7907fff

trin@Trinity:~$ dpkg -l | grep alsa
ii  alsa-base                                                   1.0.25+dfsg-0ubuntu7                                                 all          ALSA driver configuration files
ii  alsa-firmware-loaders                                       1.2.2-1                                                              amd64        ALSA software loaders for specific hardware
ii  alsa-source                                                 1.0.25+dfsg-0ubuntu7                                                 all          ALSA driver sources
ii  alsa-topology-conf                                          1.2.4-1                                                              all          ALSA topology configuration files
ii  alsa-ucm-conf                                               1.2.4-2ubuntu1.1                                                     all          ALSA Use Case Manager configuration files
ii  alsa-utils                                                  1.2.4-1ubuntu3                                                       amd64        Utilities for configuring and using ALSA
ii  alsamixergui                                                0.9.0rc2-1-10ubuntu1                                                 amd64        graphical soundcard mixer for ALSA soundcard driver
ii  gstreamer1.0-alsa:amd64                                     1.18.4-1                                                             amd64        GStreamer plugin for ALSA
ii  libalsaplayer-dev                                           0.99.81-2build2                                                      amd64        alsaplayer plugin library (development files)
ii  libalsaplayer0:amd64                                        0.99.81-2build2                                                      amd64        alsaplayer plugin library
ii  libclalsadrv-dev                                            2.0.0-3.1                                                            all          ALSA driver C++ access library (development files)
ii  libclalsadrv2                                               2.0.0-3.1                                                            amd64        ALSA

trin@Trinity:~$ cat /etc/pulse/default.pa
#!/usr/bin/pulseaudio -nF
#
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.

# This startup script is used only if PulseAudio is started per-user
# (i.e. not in system mode)

.fail

### Automatically restore the volume of streams and devices
load-module module-device-restore
load-module module-stream-restore
load-module module-card-restore

### Automatically augment property information from .desktop files
### stored in /usr/share/application
load-module module-augment-properties

### Should be after module-*-restore but before module-*-detect
load-module module-switch-on-port-available

### Use hot-plugged devices like Bluetooth or USB automatically (LP: #1702794)
.ifexists module-switch-on-connect.so
load-module module-switch-on-connect
.endif

### Load audio drivers statically
### (it's probably better to not load these drivers manually, but instead
### use module-udev-detect -- see below -- for doing this automatically)
#load-module module-alsa-sink
#load-module module-alsa-source device=hw:1,0
#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
#load-module module-null-sink
#load-module module-pipe-sink

### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif

### Automatically connect sink and source if JACK server is present
.ifexists module-jackdbus-detect.so
.nofail
load-module module-jackdbus-detect channels=2
.fail
.endif

### Automatically load driver modules for Bluetooth hardware
.ifexists module-bluetooth-policy.so
load-module module-bluetooth-policy
.endif

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

### Load several protocols
.ifexists module-esound-protocol-unix.so
load-module module-esound-protocol-unix
.endif
load-module module-native-protocol-unix

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

### Load the RTP receiver module (also configured via paprefs, see above)
#load-module module-rtp-recv

### Load the RTP sender module (also configured via paprefs, see above)
#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
#load-module module-rtp-send source=rtp.monitor

### Load additional modules from GSettings. This can be configured with the paprefs tool.
### Please keep in mind that the modules configured by paprefs might conflict with manually
### loaded modules.
.ifexists module-gsettings.so
.nofail
load-module module-gsettings
.fail
.endif


### Automatically restore the default sink/source when changed by the user
### during runtime
### NOTE: This should be loaded as early as possible so that subsequent modules
### that look up the default sink/source get the right value
load-module module-default-device-restore

### Make sure we always have a sink around, even if it is a null sink.
load-module module-always-sink

### Honour intended role device property
load-module module-intended-roles

### Automatically suspend sinks/sources that become idle for too long
# Uitgecommentarieerd om te voorkomen dat mijn speakers klikken
#load-module module-suspend-on-idle

### If autoexit on idle is enabled we want to make sure we only quit
### when no local session needs us anymore.
.ifexists module-console-kit.so
load-module module-console-kit
.endif
.ifexists module-systemd-login.so
load-module module-systemd-login
.endif

### Enable positioned event sounds
load-module module-position-event-sounds

### Cork music/video streams when a phone stream is active
load-module module-role-cork

### Block audio recording for snap confined packages unless they have
### the "pulseaudio" or "audio-record" interfaces plugged.
.ifexists module-snap-policy.so
load-module module-snap-policy
.endif

### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply

### Make some devices default
#set-default-sink output
#set-default-source input
Raffa avatar
jp flag
This sounds like a pulseaudio user configuration issue… I suggest trying this answer first: https://askubuntu.com/a/1301214
Nate T avatar
it flag
Your interface is USB Audio Class 2.0 compliant, so it is supposed to work out of the box with ubuntu, but it seems like it may be triggering the wrong ALSA driver? Have you tried removing the other input device. Having multiple inputs simultaneously configured can cause issues like this.
Nate T avatar
it flag
also do `arecord -l` this should show you which capture devices alsa sees. aplay only shows playback devices. If you configure as recording device only (assuming you have the option) does it show on the dropdown?
Ghostkeeper avatar
in flag
I tried renaming the config folder. It reset my volume level to 100% but otherwise no difference. I already tried unplugging the webcam, but it just removed that microphone. I'll add `arecord -l` to the main post, but Alsa does detect it according to that yes. Setting it as input device only doesn't make a difference.
Nate T avatar
it flag
So alsa sees it as both a recording and playback device. atop of alsa sits pulseaudio. can you run 1 more cmd and give output? `cat /etc/pulse/default.pa` should output the contents of this file. Add the following lines in whatever editor you useload-module ```module-alsa-source device=hw:2,0``` # the first line should be somewhere before the second line ```.ifexists module-udev-detect.so```
Nate T avatar
it flag
see [here](https://wiki.archlinux.org/title/PulseAudio/Troubleshooting#Getting_debug_output_from_pulseaudio) Its about a quarter of the way down. Use cat to see if it already exists. or anything similar.
Raffa avatar
jp flag
Try manually adding the device as a source to pulseaudio: https://askubuntu.com/a/1336123
Nate T avatar
it flag
That is the same command I just gave- the param specifies your behringer (card 2, device 0) btw I have a uca202 that is the exact opposite - the inputs show up, but it uses the default mic
Ghostkeeper avatar
in flag
@NateT Your solution (or workaround) has worked. I had to add the device both as source and as sink to be able to make it keep working as output as well. I'll look into putting the solution in `~/.config` instead of in /etc, to separate it more nicely, but this works as a solution for me. Would you like to formulate it as an answer to get the glory and the bounty? Raffa's answer is similar but Nate was first.
Ghostkeeper avatar
in flag
In my research I've seen people reporting bugs with this in several recent Linux kernel versions. Seeing the links posted here, it looks like the autodetection by the kernel has broken. Updating to Ubuntu 21.04 also updated the kernel version, so that would explain why this was necessary.
Raffa avatar
jp flag
I totally agree with you… @NateT comments demonstrated precise knowledge and understanding of this issue troubleshooting and solving … My linked answer is meant to complement and explain why and how it works… I am happy it is solved :) …Waiting for his answer to upvote it.
Nate T avatar
it flag
posting answer. Glad that it worked
Nate T avatar
it flag
@Raffa yea that comment was meant to be light-hearted. My personality translates poorly to comments. btw, i looked at your profile this morning and immediately had to go get a coffee. That expresso looked. so. gooood.
Score:4
it flag

For whatever reason, the interface isn't being seen as a source by PulseAudio. It needs to be manually configured via forced loading and detection. The steps are as follows:

  1. Use the command:

    arecord -l
    

    and note the card and device numbers.

  2. Open /etc/pulse/default.pa as root in a text editor.

  3. Add the line:

    load-module module-alsa-source device=hw:c,d
    

    where c is the card number and d is the device number.

  4. Below that line add:

    .ifexists module-udev-detect.so
    
  5. Save the file and reload PulseAudio. This can be done from command line with:

    pulseaudio -k ; pulseaudio -D
    

This should force detection as an input source. To see the process used to verify solution, see the comments under OP. To find out more info about troubleshooting issues in PulseAudio, see the Arch Linux Wiki for PulseAudio/Troubleshooting.

Nate T avatar
it flag
Also, as a side note, now that you have pulseaudio up and running, you should consider using JACK. It is designed more for pro audio applications, whereas pulseaudio is more for youtube and every day sound apps.
Nate T avatar
it flag
Did I leave anything out? Let me know and I'll add.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.