Microphone not working on Valve Index
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:
- Plug in Valve Index
- Start SteamVR
- Try to use Index microphone - no sound
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.
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
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.


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
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.
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.
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)
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.
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).
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.
With SteamVR 1.7.2 it's now working for me.
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)
Does not work for me on 1.7.2.
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 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.
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.
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.
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.
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.
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.
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.
I can confirm. Running pulseaudio -k when SteamVR is running makes the microphone work.
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.
The microphone on my valve index is working just fine now on the non beta version (1.6.10), while it wasn't before!
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.
Have you tried doing an update of your index's firmware? For me updating it fixed the problem.
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)
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
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 = 48000Then 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.
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)