I started investigating pairing problems with my Bose QC35 headphone/headset and Windows. At first I was wondering why I actually see two separate QC35 devices with different icons in the pairing list. Soon I figured out the other one was “headphones” and the other one “hands-free” device. If I wanted to just listen to audio, the headphones was enough. In order to use QC35 in Skype, I had to enable the other one as well. For headphone use the audio quality was acceptable. In Skype is was quite horrible – which was not something I expected. Something had to be wrong, so I started digging..
Bluetooth specifications define bunch of various profiles for different services. For this post the relevant profiles are A2DP (Advanced Audio Distribution Profile), HPF (Hands-free profile) and HSP (Headset profile). When you are listening to high quality sound through your bluetooth headphones, you are using A2DP. A2DP supports stereo sound and quality is reasonably good. For headset use A2DP is no good, it can only transport audio to one direction (and in addition it has a bit higher latency, something like 120ms. In order to also use the microphone in the headset (to transfer audio to computer) you need to switch to HPF/HSP.
The audio quality of standard HPF is not exactly stunning. To make things better, version 1.6 of the profile introduces support for wideband audio. This is implemented using the same SBC codec that is mandatory for the A2DP profile. To make things complicated, the wideband audio is not a mandatory feature of the 1.6 specification.
Apparently some manufacturers are not so much touting the different bluetooth profiles and versions they support. Despite some serious Googling I was unable to find an official specification document from Bose. Luckily the manufacturers are required to submit very detailed information about their Bluetooth compatibility things to the Bluetooth SIG and the information is published on Bluetooth.org.
Looking for things is pretty easy. Head to their search for listings page and type in the name of the product. In this case “QuietComfort 35”. From the results pick the right product, and from the details page choose “Display ICS details”. The information we are interested in can be found from “Profile ICS” tab. The codec for wide band audio is called mSBC (I assume the “m” stands for “mono”). In the table for QC35 you can see that this is not supported. So no wide band audio for QC35. I found this somewhat suprising, I would have assumed the flagship device from Bose would come with all the goodies.
Another top-of-the line product is Sennheiser PXC 550. I checked the Bluetooth.org listing and same thing – no wide band audio support. However the listing shows PXC 550 does support aptX. I have yet to figure out if this is something just for playback or if it applies to recording side as well.
I then continued the investigations with my old and forgotten Nokia Purity Pro headset. This is already quite old device, maybe from around 2012. For my surprise, the pages show mSBC as supported for Nokia Purity Pro.
Ok, so my head phones don’t support wide band audio, but how about my computer? I’m running trusty old Lenovo T440p, with Intel Bluetooth chip. Intel claims support for wide-band speech, but they also say Windows 8 and Windows 8.1 support audio profiles natively. Which I believe means that I need to check what Windows supports. This information can be found from MSDN. Bluetooth Version and Profile Support in Windows 10 document Microsoft specifies the HFP version supported is 1.5, which indicates that wide band audio is not supported (this is different for Windows Phone 10, which does support 1.6).