Microphone volume very low

It will effect it more if you adjust output and playback volumes, making sure the device you want to use is chosen.

When i plug in my headset, usb-c, it creates two devices. One is the software device and the other is the hardware. I've had to max out the software device then choose the hardware to assist volumes, otherwise they are easy to low. I'm thinking you're running into something similar, or your playback or output is still turned down.

A quick update. I tried to see a detailed info about my soundcards and what it looks like to ALSA. So I entered this command to save a text file alsactl store -f /home/rudolf/abc.txt and I've got an error:

alsactl: get_control:256: Cannot read control '2,0,0,Mic Capture Switch,0': Broken pipe.

I believe that there is a problem with microphone's configuration, which prevents Alsamixer from accessing my mic. I don't know how or where to edit the configs though.

Ok... was looking around, because this is above my head now, and found the following solution:

Since the volume levels can not be stored, I needed an /etc/asound.conf and a way to restore/set the
volume at boot...

/etc/asound.conf

pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}

pcm.mic {
type softvol

slave {
pcm "array"
}

control {
name "MicArray Master"
card 0
}

max_dB 50.0

}

pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}

pcm.array {
type plug
slave {
pcm "hw:1,0" <-------will change depending on your config (when in alsamixer press F6 to get the card index #)
}
}

To restore/set the alsa volume at boot, I added this to /etc/rc.local

arecord -d 1 --device=default -r 48000 -c 1 -f S16_LE test.wav
sleep 1
amixer sset 'MicArray Master' 70%

For pulseaudio....
Since the mic volume isn't stored between boots, setting the array volume,
starting pulseaudio and then setting the volume for pulseaudio worked for my
app that needed pulseaudio.

So my /etc/rc.local looks like this...

arecord -d 1 --device=default -r 48000 -c 1 -f S16_LE test.wav
sleep 1
amixer sset 'MicArray Master' 70%

su pi -c '/usr/bin/pulseaudio --start'
sleep 1
pactl set-source-volume 0 250%

None of this will be necessary when the drivers are finished but for now, this is what
worked for me.

From:

https://www.google.com/url?sa=t&source=web&rct=j&url=https://github.com/matrix-io/matrixio-kernel-modules/issues/24&ved=2ahUKEwjW6pzBpubyAhVxLH0KHY2eAyUQFnoECAYQAQ&usg=AOvVaw0lg1Masieu4-gBBJBkQZ3p

You will have to edit the script from MicArray Master to whatever your mic/soundcard/hardware is.

1 Like

Thanks for this info! I will try to modify it, although I am not sure where to start. Can you explain to me what does type asym mean?

Asym is an ALSA PCM plugin that combines half-duplex PCM plugins like dsnoop and dmix into one full-duplex device.

1 Like

Just a small update on my issue. Unfortunately the problem is not solved and I tried different solutions. What I did so far:

  • Switched to Pipewire. Then switched back to Pulseaudio since everything remained the same.
  • Tried different distros in Live boot.
  • Tried 3337harvey's solution and added a configuration of my soundcard.
  • Turned on ignore_ctl_error in order to select my soundcard in alsamixer. Source: https://forums.linuxmint.com/viewtopic.php?t=143708

I am now able to select my soundcard in Alsamixer without it crashing, but I can't change anything. See picture below:

It just stays like that. Can't move the volume up nor down. I've read that some DACs do not expose their controls to Alsamixer and are only to be controlled with software like Pulseaudio. But it doesn't explain why the mic sound so quiet.

"USB Mixer" looks a strange description of a sound card.
What choice of soundcard/s do you see when you hit [F6] in Alsamixer?
Can you post a screenshot of that result.

1 Like

I'm not sure what to call this device. It is amp/DAC combo. It is connected to the PC via USB cable and I use it to connect my headphones. So I guess it is a soundcard as I don't use the one on my motherboard. Anyway, here's the screenshot.

HDA Nvidia is the HDMI output of my videocard. HD-Audio Generic is my motherboard's back panel.

If you select that sound card in Alsamixer, can you then see sliders for microphone channels?
Set them all to max (100%) and see if that helps at all.

EDIT: Hold fire. I have just re-read your last post re USB sound card used instead of internal card. So my advice above is probably irrelevant.

Yes, I see a lot of different sliders. I have set them to maximum and tried to record my voice after each change, but it did not have any effect on my DAC and headphones.

1 Like

I wonder if @FrenchPress can offer any help. She has suggested USB sound cards in other threads (e.g. Issues with Sound on Pro 16 - #23 by FrenchPress).
Do you have a photo of your "Schiit Hel" USB sound card you can attach here?

1 Like

Sure thing. I took a picture of it. Here it is

I'm going to take a look at the thread you linked. Just in case here's a link to the soundcard: Schiit Audio: Audio Products Designed and Built in California

1 Like

Whilst doing websearch for "Schiit Hel Ubuntu 20.04 sound".

I have just stumbled on this: Bug #1887210 “USB DAC/AMP unselectable from Sound Settings and ...” : Bugs : alsa-driver package : Ubuntu

3 Likes

Yup, saw that one too. There was another post somewhere but I forgot where I saw it. They were all unresolved so that's why I didn't bother to link them.

2 Likes

Sorry I'm bumping this thread, but I really need some help. Thank you in advance!

1 Like

I had time and was reading through the bug report regarding this and below the I'm fulla schiit line, which had me rolling (love us manufacturers) something caught my eye:

apparmor="DENIED"

This should read:

apparmor="AUDIO"

This would give access to the usb for audio. I don't know if it's a kernel issue, but supposedly you can find out and even edit apparmor profiles, according to:

https://wiki.debian.org/AppArmor/HowToUse

If you feel adventurous, as i said this is way above my head, you might try messing around and see if you can get this working :thinking:

For some lite reading... here's the bug report:

3 Likes

First of all, thank you for your help! I'm really glad you came up with a possible solution. I must apologize for not responding for a long time. I lost all hope and kinda abandoned this thread.

BUT now I'm back and I will take a closer look at the AppArmor thing once I have more free time. It looks quite complicated to be honest. I've always avoided AppArmor, because it is something that my brain just refuses to process.

Alrighty here comes a quick update, I decided to do some basic troubleshooting and it seems like I don't have any problems with AppArmor (yaaay!). I used dmesg -w after unplugging and plugging my soundcard. Here's what the good ol' terminal said:

[13500.978134] usb 1-7: USB disconnect, device number 4
[13504.423921] usb 1-7: new high-speed USB device number 7 using xhci_hcd
[13504.678636] usb 1-7: New USB device found, idVendor=30be, idProduct=0101, bcdDevice= 1.02
[13504.678644] usb 1-7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[13504.678647] usb 1-7: Product: Schiit Hel
[13504.678649] usb 1-7: Manufacturer: Schiit Audio
[13504.830510] input: Schiit Audio Schiit Hel as /devices/pci0000:00/0000:00:01.3/0000:01:00.0/usb1/1-7/1-7:1.3/0003:30BE:0101.000B/input/input33
[13504.884560] hid-generic 0003:30BE:0101.000B: input,hidraw3: USB HID v1.00 Device [Schiit Audio Schiit Hel] on usb-0000:01:00.0-7/input3
[13505.541362] usb 1-7: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1
[13505.562359] usb 1-7: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1
[13505.590363] usb 1-7: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1
[13505.660385] usb 1-7: cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1

Nothing about AppArmor, but it still complains about ctl values. Whatever that means. Can't seem to find anything about this mysterious thing. I will continue with troubleshooting tomorrow.

There is a patched kernel for this. I'm not saying it will work for you, but it would require you to build this custom kernel and install it yourself. Maybe @Aravisian wouldn't mind taking a look at it... he has more experience with building custom kernels than i do. The requirements can be found here.

2 Likes

From websearch of:
"cannot get ctl value: req = 0x81, wValue = 0x100, wIndex = 0x1100, type = 1",
I found this, but I do not pretend to understand it: LKML: Greg Kroah-Hartman: [PATCH] ALSA: usb-audio: add Schiit Hel device to quirk table

2 Likes