SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

Microphone not working on Valve Index

Open beniwtv opened this issue 6 years ago • 116 comments

Your system information

  • Steam client version (build number or date): 1.6.7 (1563561782)
  • Distribution (e.g. Ubuntu): Manjaro
  • Graphics driver version (run nvidia-settings): Mesa 19.1.2
  • Gist for SteamVR System Information: https://gist.github.com/beniwtv/16a833350111161f2bfc7c2aeb86e2b1
  • Opted into Steam client beta?: Yes
  • Opted into SteamVR beta?: Yes
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

The Index microphone is detected on the system via ALSA and Pulseaudio, but no input is generated.

Steps for reproducing this issue:

  1. Plug in Valve Index
  2. Start SteamVR
  3. Try to use Index microphone - no sound

beniwtv avatar Jul 20 '19 12:07 beniwtv

When I have my C920 attached, though I have selected the Index HMD mic in PulseAudio, it's picking up the input of the C920 mic.

Corben78 avatar Jul 20 '19 12:07 Corben78

I am also getting no sound input from the Index mic. It shows up in the ALSA and PulseAudio mixer controls, and is the only enabled sound input device, but no sound is recorded in Star Trek Bridge Crew, or in native programs like kwave. I noticed it is listed as a mono device, which seems odd since my understanding is it's a stereo mic.

Running updated Arch Linux with the linux-amd-git kernel.

SteamVR System Information gist: https://gist.github.com/dlpierce/913c95e841498c849f72763b9c628b48

dlpierce avatar Jul 22 '19 14:07 dlpierce

I can confirm this issue on my system as well.

SteamVR 1.6.9 Debian Testing w/ Kernel 5.2.3 (for audio support)

System Report: https://gist.github.com/Goofybud16/e41842b0fa4181707d477d039a770aa3

The microphone shows up in Pulseaudio Volume Control, but it doesn't actually produce sound.

image

image

Goofybud16 avatar Jul 27 '19 03:07 Goofybud16

I just plugged into a Windows machine temporarily and performed the latest firmware update. The microphone still does not work.

New system report with firmware updates:

https://gist.github.com/Goofybud16/a5962f131b298023e4bb0c616537f149

Goofybud16 avatar Jul 27 '19 18:07 Goofybud16

I am having the same problem on Linux Mint 19.1 (Ubuntu 18.04), but only since yesterday. It worked the day before yesterday. Used it the whole day in VRChat.

JulianGro avatar Jul 28 '19 18:07 JulianGro

I know when I reconnect the headset, it results in Pulseaudio Volume Control seemingly having to reconnect to Pulse (same behavior as running pulseaudio -k, which kills and restarts Pulse). This doesn't happen with my USB mixer, so I wonder if the Index's audio device is somehow causing Pulse to crash and/or misconfigure it? Restarting Pulse doesn't seem to help.

Goofybud16 avatar Jul 28 '19 18:07 Goofybud16

PulseAudio actually sometimes hangs when I open pacucontrol or a similar application, while the Index is connected. It stops hanging some time after closing the tool again. Only a full computer restart helps for me. No ALSA or PulseAudio restart.

Also some additional information of the microphone not working: I tried: restarting ALSA restarting PulseAudio restarting the computer reconnecting the Index multiple times reconnecting the Index to different USB controllers

I am running: Linux Mint 19.1 (Ubuntu 18.04 based) ALSA k4.18.0-20-generic pulseaudio 11.1 Nvidia 418.52.07 (audio output works)

JulianGro avatar Jul 28 '19 19:07 JulianGro

Also just wanted to report that the microphone not working issue doesn't seem to be consistent. It just randomly started working for me again. No computer restart, no ALSA of PulseAudio restart, nothing.

JulianGro avatar Jul 28 '19 19:07 JulianGro

I'm also having microphone issues (among others). Haven't tested enough to see if it's intermittent but it works in Windows, in Linux it shows up in pavucontrol but does no report any input (bar graph doesn't move).

Vash63 avatar Jul 29 '19 13:07 Vash63

When I demoed my Index on a Windows machine, the microphone appeared to work perfectly. It's definitely not a hardware issue on my headset.

Could someone with more regular access to a Windows machine check what the sample rate is for the Index microphone?

In my case, pacmd list-sources lists

* index: 14
        name: <alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8B37344787-LYM-01.analog-mono>
        driver: <module-alsa-card.c>
        flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: RUNNING
        suspend cause: (none)
        priority: 9049
        volume: mono: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 0.33 ms
        max rewind: 0 KiB
        sample spec: s16le 1ch 48000Hz
        channel map: mono
                     Mono
        used by: 1
        linked by: 1
        configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms
        card: 5 <alsa_card.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8B37344787-LYM-01>
        module: 32
        properties:
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "USB Audio"
                alsa.id = "USB Audio"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "3"
                alsa.card_name = "Valve VR Radio & HMD Mic"
                alsa.long_card_name = "Valve Corporation Valve VR Radio & HMD Mic at usb-0000:03:00.0-12.3.3, full spe"
                alsa.driver_name = "snd_usb_audio"
                device.bus_path = "pci-0000:03:00.0-usb-0:12.3.3:1.1"
                sysfs.path = "/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-12/1-12.3/1-12.3.3/1-12.3.3:1.1/sound/card3"
                udev.id = "usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8B37344787-LYM-01"
                device.bus = "usb"
                device.vendor.id = "28de"
                device.vendor.name = "Valve Software"
                device.product.id = "2102"
                device.product.name = "Valve VR Radio & HMD Mic"
                device.serial = "Valve_Corporation_Valve_VR_Radio___HMD_Mic_8B37344787-LYM"
                device.string = "hw:3"
                device.buffering.buffer_size = "192000"
                device.buffering.fragment_size = "96000"
                device.access_mode = "mmap+timer"
                device.profile.name = "analog-mono"
                device.profile.description = "Analog Mono"
                device.description = "Valve VR Radio & HMD Mic Analog Mono"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB28de:2102"
                module-udev-detect.discovered = "1"
                device.icon_name = "audio-card-usb"
        ports:
                analog-input: Analog Input (priority 10000, latency offset 0 usec, available: unknown)
                        properties:

        active port: <analog-input>

EDIT: Also, if someone has the microphone working on Linux, please try and grab this output then too to see if anything is different.

Goofybud16 avatar Aug 03 '19 16:08 Goofybud16

With SteamVR 1.7.2 it's now working for me.

Corben78 avatar Aug 09 '19 20:08 Corben78

Same with 1.7.2 - I will keep testing in the coming days to see if keeps working, just to make sure it's not temporary (as some people seem to see intermittent working/non-working)

beniwtv avatar Aug 09 '19 20:08 beniwtv

Does not work for me on 1.7.2.

Zamundaaa avatar Aug 09 '19 21:08 Zamundaaa

Does not work for me on Beta 1.7.3 either.

If anyone has the mic working, do you mind posting the output of pacmd list-sources? Either the relevant section for the Index mic, or the whole thing (probably in a gist)

Goofybud16 avatar Aug 10 '19 01:08 Goofybud16

@Goofybud16 Here you go:

index: 6
	name: <alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8136E0D0E4-LYM-01.analog-mono>
	driver: <module-alsa-card.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
	state: RUNNING
	suspend cause: (none)
	priority: 9049
	volume: mono: 65536 / 100% / 0,00 dB
	        balance 0,00
	base volume: 65536 / 100% / 0,00 dB
	volume steps: 65537
	muted: no
	current latency: 0,35 ms
	max rewind: 0 KiB
	sample spec: s16le 1ch 48000Hz
	channel map: mono
	             Mono
	used by: 1
	linked by: 1
	configured latency: 40,00 ms; range is 0,50 .. 2000,00 ms
	card: 3 <alsa_card.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8136E0D0E4-LYM-01>
	module: 33
	properties:
		alsa.resolution_bits = "16"
		device.api = "alsa"
		device.class = "sound"
		alsa.class = "generic"
		alsa.subclass = "generic-mix"
		alsa.name = "USB Audio"
		alsa.id = "USB Audio"
		alsa.subdevice = "0"
		alsa.subdevice_name = "subdevice #0"
		alsa.device = "0"
		alsa.card = "3"
		alsa.card_name = "Valve VR Radio & HMD Mic"
		alsa.long_card_name = "Valve Corporation Valve VR Radio & HMD Mic at usb-0000:03:00.0-1.4.2.3.3, full"
		alsa.driver_name = "snd_usb_audio"
		device.bus_path = "pci-0000:03:00.0-usb-0:1.4.2.3.3:1.1"
		sysfs.path = "/devices/pci0000:00/0000:00:01.3/0000:03:00.0/usb1/1-1/1-1.4/1-1.4.2/1-1.4.2.3/1-1.4.2.3.3/1-1.4.2.3.3:1.1/sound/card3"
		udev.id = "usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8136E0D0E4-LYM-01"
		device.bus = "usb"
		device.vendor.id = "28de"
		device.vendor.name = "Valve Software"
		device.product.id = "2102"
		device.product.name = "Valve VR Radio & HMD Mic"
		device.serial = "Valve_Corporation_Valve_VR_Radio___HMD_Mic_8136E0D0E4-LYM"
		device.string = "hw:3"
		device.buffering.buffer_size = "192000"
		device.buffering.fragment_size = "96000"
		device.access_mode = "mmap+timer"
		device.profile.name = "analog-mono"
		device.profile.description = "Analog Mono"
		device.description = "Valve VR Radio & HMD Mic Analog Mono"
		alsa.mixer_name = "USB Mixer"
		alsa.components = "USB28de:2102"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-usb"
	ports:
		analog-input: Analog Input (priority 10000, latency offset 0 usec, available: unknown)
			properties:
				
	active port: <analog-input>

Did you get the message that SteamVR needs sudo access to finish setting it up when updating to 1.7.2.? I think it did something there.

One thing I have noticed though, I can make it not work when another process is using the ALSA device, PA will not work. In my case that was Jack.

beniwtv avatar Aug 10 '19 11:08 beniwtv

I did get that message and it's not working for me, so it should not be that. The only difference I can see between your and my output is that mine says "card: 1" instead of "card: 3" with another ID in the string (that's to be expected) and also "module: 7" instead of "module: 33". I think that's nothing hinting at it not working. Edit: ok I found a difference that's (more or less) the same for me and @Goofybud16. With the long card name I have a " spee" attached on the end. @Goofybud16 has " spe" there. I have no idea if that means anything though.

Zamundaaa avatar Aug 10 '19 12:08 Zamundaaa

That just seems to be truncated from "full speed" as in full speed USB device.

So I have noticed something (I run Jack alongside PA): If I tell Jack to output sound through the Index (even if nothing is playing, mainly just the DisplayPort audio device is open), the microphone works. Otherwise, it won't.

I am curious if telling PA to use the Index as output, and playing say a YT video at the same time gets the mic working during that time for you guys.

beniwtv avatar Aug 10 '19 15:08 beniwtv

As soon as SteamVR has started, all audio devices switch to the index automatically (I enabled that KDE should switch to new sources as soon as they're available). Switching from or to it manually also does nothing for the microphone.

Zamundaaa avatar Aug 10 '19 17:08 Zamundaaa

Yes, but Pulseaudio suspends devices if there is no audible audio going through, closing the ALSA device underneath. Hence my suggestion to play something in YT over the switched audio and check the mic then. This way, Pulse will keep the device open.

beniwtv avatar Aug 10 '19 17:08 beniwtv

I let Spotify play and the microphone did not work whilst the speakers played the music. It did work for me once now, whilst letting someone else play Pavlov I still had pavucontrol open and it showed the microphone working. Couldn't reproduce that though.

Zamundaaa avatar Aug 10 '19 18:08 Zamundaaa

Yesterday, with 1.7.3, the mic wasn't working for me anymore. As @beniwtv was reporting it is still working with 1.7.3 on his machine, I tried to change the settings of the nvidia hdmi output. I switched from Dispay Stereo to 7.1 and the device selection jumped to my integrated analog output, but the mic was working then. I couldn't select the HDMI DisplayPort output properly anymore then, though I selected it, the audio was still coming through the integrated analog output and the dropdown showed only analog stero and not Digital Stereo nor 5.1 nor 7.1. Also in pavucontrol the HDMI output was gone. Reconnecting the Index didn't help, but killing PA with pulseaudio -kworked then. Afterwards I could select the nvidia HDMI output again, though the dropdown was now only showing Digital Stereo and not 5.1 nor 7.1 anymore. But the microphone worked then. So there might be an initialization issue.

I had to had Steam VR running, otherwise the HDMI output is not available. But even after quitting and restarting SteamVR the mic kept working after having it working once.

Corben78 avatar Aug 12 '19 06:08 Corben78

I can confirm. Running pulseaudio -k when SteamVR is running makes the microphone work.

Zamundaaa avatar Aug 15 '19 14:08 Zamundaaa

I started SteamVR, ran puleaudio -k, and the mic did not appear to start working.

I'll try again after a fresh boot when I get the chance.

Goofybud16 avatar Aug 15 '19 15:08 Goofybud16

The microphone on my valve index is working just fine now on the non beta version (1.6.10), while it wasn't before!

ebbit1q avatar Aug 20 '19 12:08 ebbit1q

Just wanted to update: With kernel 5.2.9 and SteamVR 1.7.12, my mic still doesn't work.

Pavucontrol also still seems to loose connection once or twice when I plug in the headset, however Pulse doesn't actually seem to crash (as loopback devices stick around, which disappear when I pulseaudio -k)

I still don't think I've managed to coerce the mic into working even once. I do know it works (at the hardware level) as it worked great when I demo-ed it on a Windows machine.

Goofybud16 avatar Aug 30 '19 01:08 Goofybud16

Have you tried doing an update of your index's firmware? For me updating it fixed the problem.

ebbit1q avatar Aug 30 '19 07:08 ebbit1q

Mic doesn't work for me as well. I was only able to make it work once (randomly reconnecting headset, killing pulseaudio and restarting SteamVR), but never again. So I guess it is not a defective mic. SteamVR reports all devices as "up to date".

kernel 5.2.8 (Manjaro) pulseaudio 12.2 SteamVR 1.6.10 (can't use beta branch - it always crashes after start)

mnn avatar Aug 30 '19 18:08 mnn

The problem is that the sample rate requested by the EDID is not respected by the rest of the linux audio stack due to complicated reasons.

To work around the issue, set the following in /etc/pulse/daemon.conf:

default-sample-rate = 48000

Then restart pulseaudio by rebooting or running pulseaudio -k

lostgoat avatar Aug 31 '19 02:08 lostgoat

The problem is that the sample rate requested by the EDID is not respected by the rest of the linux audio stack due to complicated reasons.

To work around the issue, set the following in /etc/pulse/deamon.conf:

default-sample-rate = 48000

Then restart pulseaudio by rebooting or running pulseaudio -k

This worked! Once I applied the config change, restarted Pulseaudio, and started SteamVR, my mic started working.

Goofybud16 avatar Aug 31 '19 02:08 Goofybud16

Important to note the file is called /etc/pulse/daemon.conf not deamon.conf! Adding the default sample rate to the correct file now solved this permanently! (the post has now been corrected)

ebbit1q avatar Sep 01 '19 13:09 ebbit1q