Bluetooth sound and microphone at the same time

I have a bluetooth headset, with microphone and sound. Is it possible to use both at the same time?

In Blueman I can use two different modes: in A2DP mode I get very clean and high quality sound but the microphone does not work. In HSP/HFP mode the microphone starts working but the sound quality becomes abysmal. (essentially non-functional)

Is it possible to keep best of both worlds? By that I mean having sound play as well as it does in A2DP, but without losing the microphone.

$ inxi -Aaz
Audio:
  Device-1: Intel Smart Sound Audio vendor: Lenovo 
  driver: sof-audio-pci-intel-icl 
  alternate: snd_hda_intel,snd_sof_pci_intel_icl bus-ID: 00:1f.3 
  Device-2: Logitech Headset H390 type: USB 
  driver: hid-generic,snd-usb-audio,usbhid
  Sound Server-1: ALSA v: k5.12.0-1-MANJARO running: yes 
  Sound Server-2: JACK v: 1.9.17 running: no 
  Sound Server-3: PulseAudio v: 14.2 running: yes 
  Sound Server-4: PipeWire v: 0.3.23 running: no

It’s called Bluetooth profiles and, hsp and hfp, as far I know, only deliver audio in mono.

Ok, I did some reasearch and it looks like the issue is well-documented: Headset delivers bad audio quality and low microphone volume in HSP/HFP mode (bluetooth) (#776) · Issues · PulseAudio / pulseaudio

Summary: this is the expected behaviour because Pulseaudio implements some ancient standard for HSP/HFP, which sounds like phones from the 90s. There are more recent standards that Android/Windows/MacOS uses, which makes quality better. Unfortunately the Pulseaudio mods appear to be uninterested in fixing this issue, as they recently banned the only developer that was doing something.

It’s sad really. It looks like Pulseaudio is going nowhere and Pipewire is the future. I’ll give it a try and update here.

The contributor who was allegedly doing something closed another merge request for A2DP audio support with personal attacks on other developers and has taken his toys away

This question was asked on the other discussion:

Bluetooth A2DP codecs (!227) · Merge Requests · PulseAudio / pulseaudio
Do you by closing this MR explicitly forbid us to use that code so that we can probably never achieve those higher qualities? If yes, please clearly state so. Otherwise we might want to merge it anyway and/or do some work on top of yours.

The response is in the discussion you linked to

I forbid. I do not want my code to be part of project like this

This person has also been barred from pipewire project and now recommends use of either proprietary OS instead of Linux
This may work in your favour in the future as Pipewire project can stiil develop support for other Bluetooth codecs without any obligation to problems on another project

IMO the infantile tantrums are not just a code of conduct breach but also a complete failure of Wheaton's Law

I think you picked a poor example to show PulseAudio in a bad light for promoting Pipewire.
Both projects are developed by Red Hat so there is no logic for allegations of sabotage
Red Hat could close either project if it does not deliver what they want

1 Like

Interesting, I thought it was mainly a problem of the profiles, because I had a headset and in combination with an android smartphone the same problems occurred.
Maybe you could give feedback if it works better with pipewire.

While I don’t really appreciate the way that particular dev has expressed his frustration, I understand where the frustration is coming from. Linux is missing something very fundamental that Windows/Mac/Android has had for a very long time. It looks like the PulseAudio devs are more interested in maintaining etiquette than tackling the problem. My impression is that PulseAudio is quasi-abandoned with little real progress in the last years.

Pali has a number of forks in AUR I’ll give a try. Folks have recommended them and they seem to work better than mainline.

1 Like

quick update here, I was able to solve this issue: I installed pipewire and removed pulseaudio. With pipewire version 0.3.27 mSBC codec is supported in the HSP/HFP mode, which has pretty decent audio quality that can be used simultanously with the microphone.

A more general comment: I really encourage everyone to give pipewire a try. it’s really easy to install, you just have to install manjaro-pipewire package, which takes care of everything, including removing pulseaudio. pulseaudio development appears to have slowed down to a crawl. it looks like pipewire is the future.

2 Likes

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.