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)
That fixed the issue for me as well.
Glad to see the culprit has been found. Can we expect a proper fix that doesn't impact system wide settings in the future?
We are working with the graphics driver vendors to address the issue.
Note that the Index earphones are what require the 48KHz sample rate, which is currently being set to 44.1KHz. The invalid sample rate is causing audio artifacts on the Index Hummingbird headset and causing the microphone controller to constantly reset.
Yesterday I noticed that microphone input now works. Using latest release Nvidia drivers and 48KHz sample rate. I did not test anything yet.
We are working with the graphics driver vendors to address the issue.
Note that the Index earphones are what require the 48KHz sample rate, which is currently being set to 44.1KHz. The invalid sample rate is causing audio artifacts on the Index Hummingbird headset and causing the microphone controller to constantly reset.
The microphone no longer works for me with the latest headset firmware update through SteamVR Beta.
Also, I am curious, do the audio artifacts that you mention still exist as of now? On my new Index, the speakers sometimes give off high pitched noises, which sometimes can be almost constant. This is most prevalent when I bring up the SteamVR menu. I was wondering if this was just a hardware issue and I might have to return my equipment / get replacements but I would like to avoid that if necessary.
UPDATE: I just saw that SteamVR Beta 1.9.8 just dropped a few hours ago, so I will be testing both of these issues in a few hours after work.
I still hear the audio artifacts on 1.9.8, on which application are you testing your microphone?
I have noticed that adding another file ~/.config/pulse/daemon.conf (create if not existing) with default-sample-rate = 48000 fixes the microphone not working on discord in particular. It works without that file for any other application I've tested.
@ebbit1q Oh, are the audio artifacts similar to what I describe? The high pitched noises and stuff? If so, that makes me feel a bit better...still sucks that they are there though.
I'm just trying to use it in steam voice chat. I have tried testing the microphone through the settings menu but it just doesn't work.
Yes, random high pitched noises when no sound is playing, I thought it was related to nvidia graphics. It is not noticed in game when sounds are playing etc.
I just tested the steam voice chat and it works just fine. Have you tried the fix I suggested earlier? After adding the line make sure to restart pulse with pulseaudio -k
@ebbit1q Interesting! That's basically my experience with the sound. Honestly glad to hear that...now I don't have to send things back.
I will certainly try that fix when I get home. In my previous comment I should've said I was trying it last night - I haven't tried anything today as I have been at work.
Edit: I can confirm that making that file with that line fixed things for me - my mic is now working! Also, on 1.9.9 I am noticing less audio artifacts I think. Maybe it was just a lucky day.
I've noticed random weird high-pitched noises as well. Almost like a whine that sometimes pulses or something.
I've noticed them in VRChat and opening the quick menu and moving the cursor over it seemed to help, so I thought it was just the game (since most of my time is spent in VRChat, or other games that aren't usually quiet for any extended period of time).
Can confirm the broken microphone is still a thing and the fix is still the same.
For me I needed to:
/etc/pulse/daemon.conf and set default-sample-rate = 48000~/.config/pulse/daemon.conf and add default-sample-rate = 48000pulseaudio -k , but right now some of the VR-processes like VRwebhelper and VRmonitor have a nasty habit of not shutting down properly when exiting Steam, hanging around and muddling the results).Also of note for those seeking a quick fix: The Microphone will not initialize before SteamVR is started, so don't be disheartened if you don't see activity in the monitor when you yell at the headset before starting SteamVR.
Played VRChat for 15 minutes afterwards, people heard me, and noone complained about bad sound :)
Sys-specs:
OS: POP!_OS
Ryzen 3900x
Nvidia 2080ti
Steam beta
SteamVR (linux_temp)
I have noticed that adding another file
~/.config/pulse/daemon.conf(create if not existing) withdefault-sample-rate = 48000fixes the microphone not working
@ebbit1q Confirmed, a user-defined ~/.config/pulse/daemon.conf appears to resolve the microphone issue, hopefully @lostgoat can implement this change/workaround soon.
System Information:
Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.
I've made the changes in /etc/pulse/daemon.conf and added the ~/.config/pulse/daemon.conf. Microphone still doesn't work. Any time-frame when this might be fixed?
Do note that steamvr has to be running and that the headset's audio device has to be active in order for the microphone to work.
I'm aware of that, thank you.
You're welcome.
Manjaro Linux here, this issue is still present. Not sure why this hasn't been fixed yet in almost over a year but I can confirm the only needed change is to perform the following command:
nano ~/.config/pulse/daemon.conf
Then paste in the following line: default-sample-rate = 48000
ctrl+x and save. Then reboot (just to be safe). Set the default input device to Analog HMD and start steamvr. Check sound settings and it should report sound.
Specs:
OS: Manjaro Linux
KERNEL: 5.4.33-3-MANJARO
CPU: Intel Core i7-8700K @ 3.70GHz
GPU: NVIDIA GeForce RTX 2080
GPU DRIVER: NVIDIA 440.82
RAM: 32 GB
STEAMVR: 1.11.11
HMD: VALVE INDEX
I think it is better to not "sudo" edit your own files. Might cause strange issues later on.
I think it is better to not "sudo" edit your own files. Might cause strange issues later on.
This config file doesn't exist in the system under user by default; therefore, we are creating a file, not editing one. Figured it would be better to leave it as read only per personal preference but removed sudo in commands above for other users per your recommendation.
It seems as if it still does not work consistently. I had it working once but never again. The proposed workarounds above did not work for me.
I have a Vega 56 and audio output is working. But no matter what I try to do the mic won't work.
Just adding what worked for me in case it helps anyone.
Changed sample rate to 48000 as mentioned above.
In pavucontrol->Configuration changed "TU102 High Definition Audio Controller" to the corresponding HDMI output.
In pavucontrol->Output Devices changed "TU102..." to the same HDMI.
Only remaining issue is new games don't automatically switch to Index and have to be routed there manually, but I know there's a setting for that.
It seems as if PulseAudio is reporting errors about the device:
Sep 13 16:47:46 andromeda pulseaudio[1282]: E: [alsa-sink-USB Audio] alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write.
Sep 13 16:47:46 andromeda pulseaudio[1282]: E: [alsa-sink-USB Audio] alsa-sink.c: Most likely this is a bug in the ALSA driver 'snd_usb_audio'. Please report this issue to the ALSA developers.
Sep 13 16:47:46 andromeda pulseaudio[1282]: E: [alsa-sink-USB Audio] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent snd_pcm_avail() returned 0 or another value < min_avail.
index: 3
name: <alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_CA0E46C33D-LYM-01.mono-fallback>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: RUNNING
suspend cause: (none)
priority: 9040
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.00 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: 2 <alsa_card.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_CA0E46C33D-LYM-01>
module: 8
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:00:14.0-4.3.3, full spee"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:4.3.3:1.1"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.3/1-4.3.3/1-4.3.3:1.1/sound/card3"
udev.id = "usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_CA0E46C33D-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_CA0E46C33D-LYM"
device.string = "hw:3"
device.buffering.buffer_size = "192000"
device.buffering.fragment_size = "96000"
device.access_mode = "mmap+timer"
device.profile.name = "mono-fallback"
device.profile.description = "Mono"
device.description = "Valve VR Radio & HMD Mic 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>
notably `alsa.name = "USB Audio"
Manjaro Linux here, this issue is still present. Not sure why this hasn't been fixed yet in almost over a year but I can confirm the only needed change is to perform the following command:
nano ~/.config/pulse/daemon.conf
I'm experiencing the same issue on my Manjaro machine. Edited both daemon.conf files to no avail. In addition to that (I'm not sure if this only affects the GUI), launching pavucontrol gives the following warning:
(pavucontrol:33418): Gtk-WARNING **: 21:07:53.400: Failed to set text 'Valve VR Radio & HMD Mic' from markup due to error parsing markup: Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity — escape ampersand as &
Specs:
KERNEL: 5.8.6-1-MANJARO
CPU: Ryzen R7 1700
GPU: AMD Radeon RX 5700
GPU DRIVER: Mesa 20.1.7-1
STEAMVR: 1.14.16
HMD: VALVE INDEX
(pavucontrol:33418): Gtk-WARNING **: 21:07:53.400: Failed to set text 'Valve VR Radio & HMD Mic' from markup due to error parsing markup: Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity — escape ampersand as &
I have this warning too.
Computer Information:
Manufacturer: Unknown
Model: Unknown
Form Factor: Desktop
No Touch Input Detected
Processor Information:
CPU Vendor: AuthenticAMD
CPU Brand: AMD Ryzen 7 2700X Eight-Core Processor
CPU Family: 0x17
CPU Model: 0x8
CPU Stepping: 0x2
CPU Type: 0x0
Speed: 4000 Mhz
16 logical processors
8 physical processors
HyperThreading: Supported
FCMOV: Supported
SSE2: Supported
SSE3: Supported
SSSE3: Supported
SSE4a: Supported
SSE41: Supported
SSE42: Supported
AES: Supported
AVX: Supported
AVX2: Unsupported
AVX512F: Unsupported
AVX512PF: Unsupported
AVX512ER: Unsupported
AVX512CD: Unsupported
AVX512VNNI: Unsupported
SHA: Unsupported
CMPXCHG16B: Supported
LAHF/SAHF: Supported
PrefetchW: Unsupported
Operating System Version:
Linux Mint 19.3 Tricia (64 bit)
Kernel Name: Linux
Kernel Version: 5.7.8-steamvr-generic
X Server Vendor: The X.Org Foundation
X Server Release: 12008000
X Window Manager: Mutter (Muffin)
Steam Runtime Version: steam-runtime_0.20201005.0
Video Card:
Driver: X.Org AMD Radeon RX 5700 XT (NAVI10, DRM 3.37.0, 5.7.8-steamvr-generic, LLVM 10.0.1)
Driver Version: 4.6 (Compatibility Profile) Mesa 20.1.8 - SteamVR PPA
OpenGL Version: 4.6
Desktop Color Depth: 24 bits per pixel
Monitor Refresh Rate: 30 Hz
VendorID: 0x1002
DeviceID: 0x731f
Revision Not Detected
Number of Monitors: 1
Number of Logical Video Cards: 1
Primary Display Resolution: 3840 x 2160
Desktop Resolution: 3840 x 2160
Primary Display Size: 23.90" x 13.58" (27.48" diag)
60.7cm x 34.5cm (69.8cm diag)
Primary VRAM: 8192 MB
Sound card:
Audio device: ATI R6xx HDMI
Memory:
RAM: 32081 Mb
VR Hardware:
Headset: Valve Index (lighthouse)
Controller: Valve Knuckles Right (lighthouse)
Controller: Valve Knuckles Left (lighthouse)
Base station or sensor: Valve Corporation Valve SR Imp (lighthouse)
Base station or sensor: Valve Corporation Valve SR Imp (lighthouse)
Miscellaneous:
UI Language: English
LANG: en_CA.UTF-8
Total Hard Disk Space Available: 4730678 Mb
Largest Free Hard Disk Block: 2351482 Mb
(pavucontrol:33418): Gtk-WARNING **: 21:07:53.400: Failed to set text 'Valve VR Radio & HMD Mic' from markup due to error parsing markup: Error on line 1: Entity did not end with a semicolon; most likely you used an ampersand character without intending to start an entity — escape ampersand as &
This is just a warning in the UI of pavucontrol that should have no effect on functionality. I fixed the warning here https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/24
So how do we go about finding out what is causing the mic not to function for some people? I can get get a gaming headset mic to work in alsamixer, but there is no mic control for the Valve Index.
Edit: Looks like my problem was a faulty Index hmd. Plugging another one in and worked no problem.
In addition to changing the setting in /etc/pulse/daemon.conf as was mentioned, you need to create
~/.config/pulse/daemon.conf
and add
default-sample-rate = 48000 to it
Then restart pulseaudio with
'pulseaudio -k.'
I had the mic working (with the restart caveat) some months ago, but trying it today I can't get it working at all.
Tried using SteamVR on Linux 1.15.12 and 1.15.13 beta with up-to-date firmware.
Setting default-sample-rate = 48000 actually distorts my audio output and does not fix the mic.
Using an Nvidia card with 455.45.01 and Linux 5.9.11.
Mic works in Windows SteamVR 1.15.13.
Also of note for those seeking a quick fix: The Microphone will not initialize before SteamVR is started, so don't be disheartened if you don't see activity in the monitor when you yell at the headset before starting SteamVR.
Adding to that, I just saw that the microphone will not record any sound unless the HDMI audio output profile is set to the output with the Valve Index speakers.
I did the following steps in that order:
And I am still getting no sound at all. Pulse tells me that the mic is at 48 kHz
I did the following steps in that order:
1. Switch audio to HDMI (AMD) 2. Start SteamVR 3. Start Audacity and try to recordAnd I am still getting no sound at all. Pulse tells me that the mic is at 48 kHz
Are you sure that you are outputting to the correct HDMI device?
Start SteamVR, then play some audio source, and then switch it to the AMD HDMI/DP output device. Go to the "Configuration" tab in Pulseaudio Volume Control [pavucontrol] and toggle through the different options for HDMI audio until you have audio playing from the Index.

Once audio is playing from the Index, and SteamVR is running, you should be able to get audio from the Valve VR Radio & HMD Mic device.
I'm still unable to get microphone input despite attempting all fixes reported in this issue.
I have:
Here's what Pulseaudio knows about the device:
State: RUNNING
Name: alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8F0278E1CF-LYM-01.mono-fallback
Description: Valve VR Radio & HMD Mic Mono
Driver: module-alsa-card.c
Sample Specification: s16le 1ch 48000Hz
Channel Map: mono
Owner Module: 7
Mute: no
Volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: n/a
Latency: 3359 usec, configured 40000 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
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 = "0"
alsa.card_name = "Valve VR Radio & HMD Mic"
alsa.long_card_name = "Valve Corporation Valve VR Radio & HMD Mic at usb-0000:00:14.0-2.3.3, full spee"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:2.3.3:1.1"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-2/3-2.3/3-2.3.3/3-2.3.3:1.1/sound/card0"
udev.id = "usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8F0278E1CF-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_8F0278E1CF-LYM"
device.string = "hw:0"
device.buffering.buffer_size = "192000"
device.buffering.fragment_size = "96000"
device.access_mode = "mmap+timer"
device.profile.name = "mono-fallback"
device.profile.description = "Mono"
device.description = "Valve VR Radio & HMD Mic Mono"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
Ports:
analog-input: Analog Input (type: Analog, priority: 10000, availability unknown)
Active Port: analog-input
Formats:
pcm
- added ~/.config/pulse/daemon.conf with "default-sample-rate = 48000"
Have you added the same to /etc/pulse/daemon.conf?
Was the final obscure step for me when I got the index.
I added it to /etc/pulse/daemon.conf too. Still doesn't work.
Something I just noticed with the Valve Index microphone. For me it only works if SteamVR is on and it is on my head (the proximity sensor covered), then it still takes a couple of seconds to enable the microphone.
What if you don't use pulseaudio?
@dromer It works perfectly out of the box with pipewire
@optlink ok, I was trying to get pipewire to run yesterday. I don't see it appearing in the "stable" Linux world (Debian) for another 2-3 years, but I'll give it some more effort :)
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 = 48000Then restart pulseaudio by rebooting or running
pulseaudio -k
This..Worked for me...
Thank you, so, so, much.
In my case, forcing the sample rate and restarting didn't fix anything. I am also unable to use pipewire at this time.
Scratch that, playing around with the inputs in the PulseAudio UI (pavucontrol-qt) manages to unlock it - if and only if the active output sink is also the Index. Still, super weird.
Update on my update: after some testing it appears that even though PulseAudio sees my device and activates it "properly", and SteamVR Home "detects" my talking even when the input is set properly (after literally more than one starting SteamVR Home), the person I was chatting with did not hear my voice. Another input (Blue Yeti, Jabrak 510) gets the audio through just fine; I'm guessing the sample rate messes the audio transfer up.
Second update on my update: after going down the rabbit hole of experimentation with things I shouldn't, I installed a few pipewire-0.3.24 packages from Debian Sid into my Pop_OS install (word to the wise: do NOT do this), and tried to use the Index microphones again. At the very least just using them in a Meet web browser (after launching SteamVR to initialize them), no other shenanigans were necessary.
Update 1: VRChat through Proton now gets audio input properly.
This thread is getting fairly long, so it took me some time to go through all the suggested fixes.
default-sample-rate = 48000pulseaudio -k'd and rebooted many times5.11.16-arch1-1 kernel, with a GTX 1080 which outputs audio to my monitor speakers through DPI will continue to test on different SteamVR versions, but I am getting absolutely nothing on the latest Stable or Beta (1.17.6) versions.
Please reply if you have any suggestions!
I am pretty sure that the microphone only turns on when the Index' head sensor thingee it tripped, and then it still takes a couple of seconds to turn on.
@AlexBMJ the one last thing to try would be to replace PulseAudio with PipeWire, if you feel adventurous.
Okay, I might have found the issue. As mentioned above, the problem seems to be the speakers running at a lower sample rate, causing the microphone to constantly reset. Checking pactl it does seem that they are running at 44100Hz instead of 48000Hz.
Here is a partial dump:
Sink #6
State: RUNNING
Name: alsa_output.pci-0000_26_00.1.hdmi-stereo-extra2
Description: GP104 High Definition Audio Controller Digital Stereo (HDMI 3)
Driver: module-alsa-card.c
Sample Specification: s16le 2ch 44100Hz
Channel Map: front-left,front-right
Owner Module: 8
Mute: no
Volume: front-left: 65524 / 100% / -0.00 dB, front-right: 65524 / 100% / -0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_26_00.1.hdmi-stereo-extra2.monitor
Latency: 5560 usec, configured 5805 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
Properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "HDMI 2"
alsa.id = "HDMI 2"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "8"
alsa.card = "0"
alsa.card_name = "HDA NVidia"
alsa.long_card_name = "HDA NVidia at 0xf7080000 irq 103"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:26:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:26:00.1/sound/card0"
device.bus = "pci"
device.vendor.id = "10de"
device.vendor.name = "NVIDIA Corporation"
device.product.id = "10f0"
device.product.name = "GP104 High Definition Audio Controller"
device.string = "hdmi:0,2"
device.buffering.buffer_size = "352768"
device.buffering.fragment_size = "176384"
device.access_mode = "mmap+timer"
device.profile.name = "hdmi-stereo-extra2"
device.profile.description = "Digital Stereo (HDMI 3)"
device.description = "GP104 High Definition Audio Controller Digital Stereo (HDMI 3)"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Ports:
hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, available)
Active Port: hdmi-output-2
Formats:
pcm
I'm not experienced enough in the linux audio stack to fix this. Since setting the default sample rate in pulse didn't work, I tried configuring ALSA directly, but setting .asoundrc to
pcm.hdmi {
rate 48000
}
simply gives me : ALSA lib conf.c:1446:(parse_def) hdmi is not a compound
After a full week of struggling with JACK + Pulse, I finally caved and installed PipeWire and it just works out of the box! (thanks @cybik)
Running Arch (5.12.15-arch1-1) on Plasma with fairly default pulseaudio settings.
Setting the following in my pulseaudio daemon.conf and rebooting worked for me:
default-sample-rate = 48000
alternate-sample-rate = 44100
Have to of course make sure the devices are selected in whatever pulseaudio mixer is being used. For me the playback works fine when using HDMI/DisplayPort (GA102 High Definition Audio Controller Digital Stereo (HDMI); Recording device is set to Analog Input (Valve VR Radio & HMD Mic Mono).
I decided to check out PipeWire recently, and it seems to behave... Strangely.
The microphone does work, but only when actually sending an audio stream to the Index.
To reproduce:
Strangely, even using a module-combine-sink that outputs to the Index (Requires a recent pipewire) that's muted (and has no audio streams playing into it) gets the mic working.
I'm not sure if that's a pipewire issue, or an Index issue; since the mic is quirky and picky on Pulseaudio too.
Had the same issue on arch + pulseaudio where the mic wouldn't wanna work, no matter what I tried and the workarounds mentioned by others didn't work for me.
I ended up switching to pipewire(v. 0.3.33), it works out of the box since then and I didn't notice any audio artifacts or glitches of any kind.
Also I wasn't able to reproduce the behavior mentioned by @Goofybud16 in the latest pipewire version.
Just wanted to chime in. Did a fresh install of Arch yesterday using the archinstaller, and mic works out of the box with pipewire 0.3.33. Tested succesfully on VRChat without any tinkering beyond setting the correct audiosinks after SteamVR starts.
Anybody still experiencing this? I'm on Ubuntu 21.10 with Pipewire 0.3.39 and I don't get any sound out of my mic.
I tried with and without EasyEffects but it just won't work, even with SteamVR running. I also checked the sample rate and it's at 48000 for both the speaker and the mic.
@DomiStyle I just tried it, it works - but I did have SteamVR running in the background.
Note that I'm on Ubu-via-Pop 21.10 with Pipewire 0.3.32 using only repo packages (no PPAs) - but I did have to add pipewire-pulse manually. As well, I did have to "flip on" pipewire and disable pulseaudio via systemd shenaniganeries.
I've had issues with Pipewire 0.3.39.
Make sure SteamVR is running, and try playing some audio to the headset and make sure it actually audibly plays and the mic should work then.
@cybik Thanks, good to know that everything should work on Ubuntu 21.10 also then.
I'm going to mess around a little bit and downgrade Pipewire if it still doesn't work.
@Goofybud16 Issues with 0.3.39 as in not working at all?
SteamVR is running, the headset is active and the Steam Home environment is running. I think that should be enough to enable the mic?
@Goofybud16 raises a fair point: I initially didn't check the mic feed in before switching my HDMI audio out to the headset.
After verification, if I'm not mistaken:
Meaning somehow the mic state of the Index is dependent the audio-out being active. Looks like a firmware oops to me, if anything.
(Powerdown tests are made easy by putting the Index on an IoT "smart" wall socket :D)
For some reason, the mic will only work properly under certain conditions (eg the Index has actually played audio at 48Khz, this issue was first created because Pulse was defaulting to 44.1KHz and, while that would play to the speakers, it would break the mic.)
I've found the best way to ensure it works is to ensure that you actually have sound audibly coming out of the Index speakers. Pipewire, helpfully, defaults to 48KHz, vs Pulse's 44.1 on most distros.
Hmm, no luck yet. I downgraded to Pipewire 0.3.32 just to be sure there are no differences there and I also disabled EasyEffects so things are easier.
I connected a second microphone just to make sure the microphone wasn't used before SteamVR started. I also played back a Youtube video so something is coming from the Index speakers.
I also noticed that starting SteamVR adds the HDMI output and selects it by default but the microphone is always there and never automatically selected, not sure if that is normal.
This is what pactl info says:
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 109
Tile Size: 65472
User Name: domi
Host Name: domi-workstation
Server Name: PulseAudio (on PipeWire 0.3.32)
Server Version: 14.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_0d_00.1.hdmi-stereo-extra2
Default Source: alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8026D1CBCE-LYM-01.mono-fallback
Cookie: 2458:23c8
This is the output file of pw-dot (can be displayed with xdot)
pw.dot.txt
@DomiStyle try flipping on SteamVR (I'm assuming it's active but still), then switching the HDMI output to your headunit specifically.
@cybik No dice. Flipping the output device back and forth while SteamVR is running doesn't do anything.
I also dusted off my Windows partition to make sure the mic itself is still working and yes, everything is working there once SteamVR is started.
Unfortunately I still wasn't able to get the mic working.
Could anyone with working mic post their Valve Index entries for pactl list sources and pactl list sinks?
This is mine with SteamVR running, Beat Saber running and OBS trying to record.
Source [#47](/issue/ValveSoftware/SteamVR-for-Linux/47)
State: RUNNING
Name: alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8026D1CBCE-LYM-01.mono-fallback
Description: Valve VR Radio & HMD Mic Mono
Driver: PipeWire
Sample Specification: s16le 1ch 48000Hz
Channel Map: mono
Owner Module: 4294967295
Mute: no
Volume: mono: 65536 / 100% / 0,00 dB
balance 0,00
Base Volume: 65536 / 100% / 0,00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
object.path = "alsa:pcm:2:hw:2:capture"
api.alsa.path = "hw:2"
api.alsa.pcm.card = "2"
api.alsa.pcm.stream = "capture"
audio.channels = "1"
audio.position = "MONO"
device.routes = "1"
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 = "2"
alsa.card_name = "Valve VR Radio & HMD Mic"
alsa.long_card_name = "Valve Corporation Valve VR Radio & HMD Mic at usb-0000:08:00.1-1.3.3, full spee"
alsa.driver_name = "snd_usb_audio"
device.profile.name = "mono-fallback"
device.profile.description = "Mono"
card.profile.device = "1"
device.id = "40"
factory.name = "api.alsa.pcm.source"
priority.driver = "1872"
priority.session = "1872"
media.class = "Audio/Source"
node.nick = "Valve VR Radio & HMD Mic"
node.name = "alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8026D1CBCE-LYM-01.mono-fallback"
device.description = "Valve VR Radio & HMD Mic Mono"
device.icon_name = "audio-input-microphone"
node.pause-on-idle = "false"
factory.id = "18"
client.id = "32"
node.driver = "true"
factory.mode = "split"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "47"
node.max-latency = "131072/48000"
Ports:
analog-input: Analog Input (type: Analog, priority: 10000, availability unknown)
Active Port: analog-input
Formats:
pcm
Sink [#48](/issue/ValveSoftware/SteamVR-for-Linux/48)
State: RUNNING
Name: alsa_output.pci-0000_0d_00.1.hdmi-stereo-extra2
Description: HDA ATI HDMI Digital Stereo (HDMI 3)
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB
balance 0,00
Base Volume: 65536 / 100% / 0,00 dB
Monitor Source: alsa_output.pci-0000_0d_00.1.hdmi-stereo-extra2.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
object.path = "alsa:pcm:0:hdmi:0,2:playback"
api.alsa.path = "hdmi:0,2"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
device.routes = "1"
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "HDMI 2"
alsa.id = "HDMI 2"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "8"
alsa.card = "0"
alsa.card_name = "HDA ATI HDMI"
alsa.long_card_name = "HDA ATI HDMI at 0xfca24000 irq 153"
alsa.driver_name = "snd_hda_intel"
device.profile.name = "hdmi-stereo-extra2"
device.profile.description = "Digital Stereo (HDMI 3)"
card.profile.device = "12"
device.id = "44"
factory.name = "api.alsa.pcm.sink"
priority.driver = "616"
priority.session = "616"
media.class = "Audio/Sink"
node.nick = "HDA ATI HDMI"
node.name = "alsa_output.pci-0000_0d_00.1.hdmi-stereo-extra2"
device.description = "HDA ATI HDMI Digital Stereo (HDMI 3)"
device.icon_name = "audio-card-hdmi"
node.pause-on-idle = "false"
factory.id = "18"
client.id = "32"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "48"
node.max-latency = "8192/48000"
Ports:
hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, availability group: Legacy 3, available)
Active Port: hdmi-output-2
Formats:
pcm
@DomiStyle To be absolutely 100% sure, you have audio coming out of your Index ear speakers? So the audio is actively being sent over DisplayPort and audibly playing on the Index, correct?
I've found that unless you actually have sound audibly playing on the Index ear speakers first, the mic probably won't work. Sometimes it seems to get angry, and while the audio stack claims to be sending audio, it won't actually audibly play, and the mic won't work until something eventually gets in sync and it starts playing.
@Goofybud16 Yep, Beat Saber is playing a song in the background.
I can hear it over the Index speakers just fine but mic stays silent in both OBS and the Gnome sound settings.
Unfortunately I still wasn't able to get the mic working.
Could anyone with working mic post their Valve Index entries for
pactl list sourcesandpactl list sinks?This is mine with SteamVR running, Beat Saber running and OBS trying to record.
pactl info as well pls
Source [#54](/issue/ValveSoftware/SteamVR-for-Linux/54)
State: RUNNING
Name: alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8766F0F61E-LYM-01.mono-fallback
Description: Valve VR Radio & HMD Mic Mono
Driver: PipeWire
Sample Specification: s16le 1ch 48000Hz
Channel Map: mono
Owner Module: 4294967295
Mute: no
Volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "3"
alsa.card_name = "Valve VR Radio & HMD Mic"
alsa.class = "generic"
alsa.device = "0"
alsa.driver_name = "snd_usb_audio"
alsa.id = "USB Audio"
alsa.long_card_name = "Valve Corporation Valve VR Radio & HMD Mic at usb-0000:0d:00.3-3.3.3, full spee"
alsa.name = "USB Audio"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "Valve Corporation Valve VR Radio & HMD Mic at usb-0000:0d:00.3-3.3.3, full spee"
api.alsa.card.name = "Valve VR Radio & HMD Mic"
api.alsa.headroom = "1024"
api.alsa.path = "hw:3"
api.alsa.pcm.card = "3"
api.alsa.pcm.stream = "capture"
audio.channels = "1"
audio.position = "MONO"
card.profile.device = "1"
device.api = "alsa"
device.class = "sound"
device.id = "48"
device.profile.description = "Mono"
device.profile.name = "mono-fallback"
device.routes = "1"
factory.name = "api.alsa.pcm.source"
media.class = "Audio/Source"
device.description = "Valve VR Radio & HMD Mic Mono"
node.name = "alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8766F0F61E-LYM-01.mono-fallback"
node.nick = "Valve VR Radio & HMD Mic"
node.pause-on-idle = "false"
object.path = "alsa:pcm:3:hw:3:capture"
priority.driver = "2000"
priority.session = "2000"
factory.id = "18"
client.id = "33"
node.driver = "true"
factory.mode = "split"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "54"
node.max-latency = "131072/48000"
Ports:
analog-input: Analog Input (type: Analog, priority: 10000, availability unknown)
Active Port: analog-input
Formats:
pcm
Sink [#40](/issue/ValveSoftware/SteamVR-for-Linux/40)
State: RUNNING
Name: alsa_output.pci-0000_0b_00.1.hdmi-stereo-extra2
Description: Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT] Digital Stereo (HDMI 3)
Driver: PipeWire
Sample Specification: s16le 2ch 48000Hz
Channel Map: front-left,front-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 42524 / 65% / -11.27 dB, front-right: 42524 / 65% / -11.27 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor Source: alsa_output.pci-0000_0b_00.1.hdmi-stereo-extra2.monitor
Latency: 0 usec, configured 0 usec
Flags: HARDWARE DECIBEL_VOLUME LATENCY SET_FORMATS
Properties:
alsa.card = "0"
alsa.card_name = "HDA ATI HDMI"
alsa.class = "generic"
alsa.device = "8"
alsa.driver_name = "snd_hda_intel"
alsa.id = "HDMI 2"
alsa.long_card_name = "HDA ATI HDMI at 0xfcd20000 irq 139"
alsa.name = "HDMI 2"
alsa.resolution_bits = "16"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
api.alsa.card.longname = "HDA ATI HDMI at 0xfcd20000 irq 139"
api.alsa.card.name = "HDA ATI HDMI"
api.alsa.headroom = "1024"
api.alsa.path = "hdmi:0,2"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "playback"
audio.channels = "2"
audio.position = "FL,FR"
card.profile.device = "12"
device.api = "alsa"
device.class = "sound"
device.id = "46"
device.profile.description = "Digital Stereo (HDMI 3)"
device.profile.name = "hdmi-stereo-extra2"
device.routes = "1"
factory.name = "api.alsa.pcm.sink"
media.class = "Audio/Sink"
device.description = "Navi 21 HDMI Audio [Radeon RX 6800/6800 XT / 6900 XT] Digital Stereo (HDMI 3)"
node.name = "alsa_output.pci-0000_0b_00.1.hdmi-stereo-extra2"
node.nick = "HDA ATI HDMI"
node.pause-on-idle = "false"
object.path = "alsa:pcm:0:hdmi:0,2:playback"
priority.driver = "616"
priority.session = "616"
factory.id = "18"
client.id = "33"
node.driver = "true"
factory.mode = "merge"
audio.adapt.follower = ""
library.name = "audioconvert/libspa-audioconvert"
object.id = "40"
node.max-latency = "8192/48000"
Ports:
hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, availability group: Legacy 3, available)
Active Port: hdmi-output-2
Formats:
pcm
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 218
Tile Size: 65472
User Name: -snip-
Host Name: -snip-
Server Name: PulseAudio (on PipeWire 0.3.39)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-Yamaha_Corporation_MG-XU-00.analog-stereo
Default Source: alsa_input.usb-Yamaha_Corporation_MG-XU-00.analog-stereo
Cookie: -snip-
These were taken while SteamVR was running, and there was audio visibly coming from the mic in Pavucontrol.
The only configuration change I've made on my system of note is adjusting the Alsa headroom (which resolved some issues with audio playback, but didn't seem to effect the mic) as well as forcing the default clock rate to 48000 in Pipewire, which seemed to improve the reliability of mod-combine-sink, which seems to have issues in 0.3.39.
# Daemon config file for PipeWire version "0.3.39" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = true
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
# I uncommented these two lines, which were already in the file once I copied it from the original location to /etc/pipewire/pipewire.conf
default.clock.rate = 48000
default.clock.allowed-rates = [ 48000 ]
#
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
-snip-
-snip, this is near the bottom of the file-
matches = {
{
-- Matches all sources.
{ "node.name", "matches", "alsa_input.*" },
},
{
-- Matches all sinks.
{ "node.name", "matches", "alsa_output.*" },
},
},
apply_properties = {
--["node.nick"] = "My Node",
--["priority.driver"] = 100,
--["priority.session"] = 100,
--["node.pause-on-idle"] = false,
--["resample.quality"] = 4,
--["channelmix.normalize"] = false,
--["channelmix.mix-lfe"] = false,
--["audio.channels"] = 2,
--["audio.format"] = "S16LE",
--["audio.rate"] = 44100,
--["audio.position"] = "FL,FR",
--["api.alsa.period-size"] = 1024,
--
-- I uncommented this line and set it to 1024
["api.alsa.headroom"] = 1024,
--
--["api.alsa.disable-mmap"] = false,
--["api.alsa.disable-batch"] = false,
},
},
}
@cybik Here's the pactl info output:
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 64
Tile Size: 65472
User Name: domi
Host Name: domi-workstation
Server Name: PulseAudio (on PipeWire 0.3.32)
Server Version: 14.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_0d_00.1.hdmi-stereo-extra2
Default Source: alsa_input.usb-Valve_Corporation_Valve_VR_Radio___HMD_Mic_8026D1CBCE-LYM-01.mono-fallback
Cookie: a3b7:c736
@Goofybud16
I don't really have any default config for Pipewire but I guess I could copy the default config to /etc/pipewire and set the default rate to 48000 as well just to be sure. No /usr/share/wireplumber on my system but I assume it's not necessary for this to work?
I have Fedora 35 running on a different SSD so I might just try with that soon.
Prior to setting it in Wireplumber, Debian had used media-session, which the file was
-snip, the end of the file-
actions = {
update-props = {
#node.nick = "My Node"
#node.nick = null
#priority.driver = 100
#priority.session = 100
node.pause-on-idle = false
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = false
#audio.channels = 2
#audio.format = "S16LE"
#audio.rate = 44100
#audio.position = "FL,FR"
#session.suspend-timeout-seconds = 5 # 0 disables suspend
#monitor.channel-volumes = false
#latency.internal.rate = 0 # internal latency in samples
#latency.internal.ns = 0 # internal latency in nanoseconds
#api.alsa.period-size = 1024
# This line here
api.alsa.headroom = 1024
#
#api.alsa.start-delay = 0
#api.alsa.disable-mmap = false
#api.alsa.disable-batch = false
#api.alsa.use-chmap = false
#iec958.codecs = [ PCM DTS AC3 MPEG MPEG2-AAC EAC3 TrueHD DTS-HD ]
}
}
}
]
That was to resolve issues with audio cutting out and such on the Index ear speakers, which may be something specific to my GPU (6700XT) or system. Didn't seem to effect the mic, but maybe it did effect something. The mic was working prior to this; just had XRUN issues.
That was to resolve issues with audio cutting out and such on the Index ear speakers, which may be something specific to my GPU (6700XT) or system.
Didn't really notice any audio cut outs on my 6900 XT but there is some crackling here and there.
/etc/pipewire/media-session.d/ exists but is empty.
~/.config/pipewire/media-session.d/ is not empty but seems to only contain application default settings.
So I tried with a fresh Fedora 35 installation now and I still have no sound from my mic.
Not sure what's going on but the steam overlay as well as the settings are also not working on Fedora 35, so I can't even check the mic settings there.
I removed pipewire-pulse to switch back to Pulseaudio and the microphone is also not working with Pulseudio, even with default-sample-rate = 48000 set.
If the mic didn't work under Windows I would have been sure that this is a hardware issue by now.
In my case it never worked with baseline pulse, however hard I patched it.
Normal Pulse here with 48000 works (Ubuntu 18.04)
Just to say that it does work for some peeps.
I remember it being finicky but in the end it only needed the 48000 as instructed and I haven't had a problem with it on the machine since.
Keep in mind that it needs a while to turn on. To test it you ideally put something in front of the sensor inside the HMD so it stays on.
I could also imagine that it only works if you actually pipe audio to its speakers. There was at least some sort of requirement for the mic to turn on which had confused me.
I believe it works for most people since the issue is fairly quiet by now.
I always make sure that the headset is awake, SteamVR is running and some sound is coming from the headset when testing. Still no mic though.
It's a very odd problem you have:
Perhaps you have some kind of exotic hardware plugged in/strange onboard sound-device that interferes? Have you tried all the DisplayPorts on your 6900XT? Sometimes SteamVR can be finicky about that, though that's mostly in regards to the displays.
Perhaps you have some kind of exotic hardware plugged in/strange onboard sound-device that interferes?
That's also what I'm thinking but I don't really have anything exotic plugged in. I will give it another go with nothing plugged in though just to make sure.
I already tried the second port on the 6900 XT but it doesn't work either.
The only interesting part about the SteamVR logs seems to be the Watchman log:
20:02:14.325 [audio] video found, enabling audio
20:02:14.334 [video] Video state: wait_for_stable_vsync -> panel_init (103 ms)
20:02:14.334 [panel] set mode 8
20:02:14.462 [panel 0] MTP=21 factory=36 blend=1.148461 offset=0 result=38
20:02:14.475 [panel 0] loaded column cal=38
20:02:14.475 [panel 0] loading gamma cal
20:02:14.691 [panel 2] MTP=36 factory=43 blend=1.148461 offset=0 result=44
20:02:14.700 [panel 2] loaded column cal=44
20:02:14.700 [panel 2] loading gamma cal
20:02:15.186 [video] Video state: panel_init -> backlight_init (852 ms)
20:02:15.188 [video] Video state: backlight_init -> stable (2 ms)
20:02:17.124 [npca110p] commands in patch: 1185
20:02:18.221 [audio] Setting codec to 0
20:02:18.228 [tfa9892] Init (2, ch: 0; bypass: 1)
20:02:18.252 [tfa9892] Init (3, ch: 1; bypass: 1)
20:02:18.280 [audio] speaker init success
20:02:18.285 [cs47l35] jack: detected: 0; (connected: 0; mic_detect_3: 0x0)
20:02:18.291 [audio] audio state: 0 -> 1 (19021 ms)
20:02:18.285 [cs47l35] jack: detected: 0; (connected: 0; mic_detect_3: 0x0)
That line sounds interesting, maybe it can't detect the mic? I will have to connect a headphone to the audio jack under the face mask to check if that value changes.
Does anybody know if that audio jack only supports headphones or a microphone as well?
Does anybody know if that audio jack only supports headphones or a microphone as well?
The audio jack of the Valve Index actually only supports headphones with a microphone. If you plug in headphones the integrated microphone will deactivate.
Uninstall pulseaudio, install pipewire-pulse. Worked like a charm for me!
Do not skip the pulseaudio uninstall or it won't work!
sudo touch /etc/apt/break-my-system # needed on some distros like Pop!_OS to purge pulseaudio
sudo apt purge pulseaudio # you might need to confirm this with typing "Yes, do as I say!"
sudo reboot now
sudo apt install pipewire-pulse
sudo reboot now
Et Voilà!
:warning: # you might need to confirm this with typing "Yes, do as I say!" :warning:
NO, do not do this unless you clearly know what you are doing. Removing pulseaudio also removes the virtual packages "ubuntu-desktop" and "ubuntu-desktop-minimal".
warning
# you might need to confirm this with typing "Yes, do as I say!"warning NO, do not do this unless you clearly know what you are doing. Removing pulseaudio also removes the virtual packages "ubuntu-desktop" and "ubuntu-desktop-minimal".
even if you do know what you're doing, ALWAYS second guess yourself when you get this prompt.
Happening to me. Shows in PulseAudio but doesn't produce any sound. SteamVR version 1.23.7. info here
I got it to work by switching to pipewire instead of pulseaudio (since I am using manjaro i switched to the manjaro-pipewire package) and rebooted. now it works out of the box
I updated Pipewire on PopOS 22.04 from 0.3.59-0pop1~1664857105~22.04~83dda19ubuntu1 to 1.0.2~1707732619~22.04~b8b871b yesterday after holding those updates back for a few months (I assume I had some issues, can't remember exactly why).
Since the update the microphone stopped working. By running the following command manually before starting SteamVR I get it running, but I did notice occasional crackling in my index headphones from that:
pw-metadata -n settings 0 clock.force-rate 48000
Alright, I used the pipewire-upstream PPA to upgrade to 1.0.7 which resolved the problem, in case someone else runs into that issue.
Microphone isn´t working on my Index since the latest Win 11 Insider build ( 10.0.26244.5000 ) as well..
Seems to use a generic USB-Mic driver there, will be interesting to see once that driver versions rolls out to more players and suddently all their mics stop working..
Edit: Was the 44.1kHz vs 48kHz issue.. On windows my defautl changed to 44.1kHz i guess.. At least on linux my mic works again now.
For pipewire the command to temporarily change to 48kHz is:
pw-metadata -n settings 0 clock.force-rate 48000
Otherwise set default.clock.rate = 48000 in /etc/pipewire/pipewire.conf.d/10-default.conf
The microphone on my Index stopped working in the middle of a play session. At the same time, the headset started displaying a blank gray screen. I restarted my PC, and while the display started working again, the microphone did not.
I can hear the microphone "loopback" through my earbuds when I'm ingame, for example if I swipe my finger over the microphone on the headset.
I have:
https://gist.github.com/Unmoon/2a254cff889ead5d2307b67a9f961a08
I can't tell if this is a hardware issue or something with software, but it's really strange it just broke in the middle of a session.
Edit: I tested the microphone on my Steam Deck and MacBook, and got no sound either. Maybe this is a hardware issue then...
Alright, I figured out my issue.
You must set both the Index HDMI audio output and input as default. After that, launching SteamVR will enable the microphone and it will work until you quit SteamVR.
Restarting SteamVR will not enable it again, so you need to restart the computer or log out and log in again.
I did try to kill all the Steam related tasks from System Monitor, but that did not allow SteamVR to re-enable the mic.
Nothing extracted yet.
Your system information
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: