4

I have a pair of WH-1000XM3 headphones which present themselves as two output audio endpoints in the Sound settings on Windows 10:

  • Headphones (high-quality, high-latency)
  • Headset (low quality, low sample rate, but very low latency)

They also have a headset mic input endpoint.

In order to use the headset output profile when on voice calls and when gaming, I have my Default Output Device and Default Communication Device both set to the headset. This gives me the low latency I want, at the expense of audio quality which I accept. This works perfectly on Windows 10 - I can hear both audio calls and multimedia through the low-latency, lower-quality endpoint. If I'm in a voice call, I can be heard through the headset microphone.

I have paired these headphones to a new laptop running Windows 11 Pro, and I only see one output endpoint in the sound control panel (as well as in the advanced options in mmsys.cpl) - the headphones, which provide stereo, high-quality audio at high latency. The headset is not visible and cannot be selected.

Weirdly enough, if I check the actual audio endpoints known to the PnP subsystem through Powershell, I do see both the headphones, and the hands-free/headset profiles, and they're marked OK.

Get-PnpDevice -Class 'AudioEndpoint'

Status Class FriendlyName InstanceId


Unknown AudioEndpoint Speakers (High Definition Audio Device) SWD\MMDE... Unknown AudioEndpoint Microphone (High Definition Audio Device) SWD\MMDE... Unknown AudioEndpoint Microphone Array (Realtek(R) Audio) SWD\MMDE... OK AudioEndpoint Headset (WH-1000XM3) SWD\MMDE... Unknown AudioEndpoint Speakers (High Definition Audio Device) SWD\MMDE... OK AudioEndpoint Headset (WH-1000XM3 Hands-Free) SWD\MMDE... OK AudioEndpoint Speakers (Realtek(R) Audio) SWD\MMDE... Unknown AudioEndpoint Microphone (High Definition Audio Device) SWD\MMDE... OK AudioEndpoint Headphones (WH-1000XM3) SWD\MMDE... OK AudioEndpoint Microphone Array (Realtek(R) Audio) SWD\MMDE... Unknown AudioEndpoint Speakers (Realtek(R) Audio) SWD\MMDE... Unknown AudioEndpoint Microphone Array (Realtek(R) Audio) SWD\MMDE...

How do I actually use these profiles? If I start a voice call, Windows will switch to the HSP audio output automatically when the microphone is enabled, but being in a voice call indefinitely is not a sensible workaround.

Avoiding bluetooth latency with a 3.5 mm cord is also not a viable workaround for me - I still want to use the bluetooth headset's microphone, and I cannot do so if it's powered down in order to be used with analog audio via 3.5 mm jack.

Can I configure the same setting to use the HSP/HFP endpoint at all times on Windows 11, or do I need some kind of silly workaround like a custom program that holds the microphone open just for the sake of getting the right output config? Is there some hidden registry setting that will allow me to set this manually?

nanofarad
  • 719
  • 1
  • 9
  • 23

2 Answers2

1

I was not able to find a user-accessible setting to work around the issue, but the workaround I hypothesized does solve this issue fully.

A program simply needs to open the microphone - WSAPI event-driven, shared mode works perfectly. It's fairly straightforward to strip down this sample to simply open the device, and then endlessly discard incoming buffers. The microphone handle/session is dropped if the machine goes to hibernate and back up (likely also the case for sleep) but it should also be straightforward to detect and handle if one does not want to restart the workaround program manually.

nanofarad
  • 719
  • 1
  • 9
  • 23
1

I have a similar problem related to the same issue. I only want the mic for voice calls, and until a couple months ago, Windows 11 would activate the headset profile whenever it was needed. Now it doesn't, so no microphone is available for calls. The bluetooth device shows "connected mic, audio", so bluetooth did its job and made the headset profile available to the OS.

A workaround that worked for me for a few weeks was just opening the Windows 7-era "Sounds" control panel settings, i.e. mmsys.cpl. Switching to the "Recording" tab would activate the headset profile. Maybe this will be helpful to someone out there. But for me, this workaround has stopped working.

Hope Microsoft fixes this or at least that somebody finds a good solution. Microsoft tried to simplify their Win 11 interface, but their automation is unreliable. This basic function works fine in Windows 10: you just manually select the profile you want.