Bluetooth Audio Quality & aptX on Windows 10
Bluetooth is a flexible standard. It defines various profiles that operate on top of the Bluetooth networking protocol stack and implement specific services, such as hands-free communications. Bluetooth devices each support a small subset of profiles, typically only one or two, according to their designated function.
Bluetooth headphones and speakers implement the advanced audio distribution profile (A2DP). The A2DP profile transports encoded audio streams from one device to another. To guarantee compatibility between devices, any device implementing the A2DP profile needs to offer a common codec, SBC. However, A2DP supports additional codecs that may increase audio quality or reduce latency compared to SBC. One of those optional codecs is aptX. In this article, I am looking at aptX benefits and I am describing how to get aptX on Windows 10.
What is aptX?
aptX is an alternative codec for the Bluetooth A2DP protocol. It comes in multiple flavors:
- aptX
- aptX LL (low latency)
- aptX HD
Is aptX better than SBC?
Qualcomm, who acquired the aptX company CSR in 2015, claims that aptX offers “superior audio”. Figuring out whether that is actually true is harder than expected. Let’s break this quality question down into two different aspects: fidelity and latency.
Audio Fidelity
As this overview shows, the technical specifications of the base aptX code are similar to that of SBC. Specifically, the maximum bitrate of 352 kb/s is not much higher than SBC’s 320-345 kb/s (SBC depending on implementation).
The bitrate by itself does not tell us anything about a codec’s fidelity, however. Different codecs can be very different in encoding efficiency, as are H.264 and its successor H.265 for video (the latter only needs about half as many bits for the same visual quality). Fidelity can only be determined by double-blind listening tests. Unfortunately, nobody seems to have performed such listening tests in a scientific, reproducible manner (at least I could not find any information). Please let me know by commenting below if you know of any publications.
Another aspect influencing fidelity is that implementations do not always use a codec’s maximum bitrate. SBC, for example, comes with three quality modes, low (201 kb/s), middle (229 kb/s) and high (328 kb/s). Devices may select lower-quality modes to favor a stable connection over sound quality (example: these Sony headphones).
Audio Latency
When watching a video, you do not want the audio to lag behind. In other words: the audio latency should ideally be small enough to not be noticeable. Unfortunately, that is often not the case.
Bluetooth audio introduces significant latency, the exact amount of which depends on the codec as well as its implementations in the sending and receiving devices. Most Bluetooth headphone reviews do not include latency measurements, with the notable exception of rtings.com. They even have a list with latencies for all the headphones they ever tested. Plain aptX seems to be slightly better than SBC, but only aptX LL seems to be good enough to not be noticeable.
While, however, the number of devices supporting base aptX is steadily growing, support for aptX LL is still extremely rare (see rtings.com or bluetoothcheck.com).
Audio Quality Summary
There do not seem to be any objective comparisons between the aptX variants and SBC. From my experience it should be safe to say the following:
- SBC offers pretty good fidelity at maximum bitrate.
- aptX might be slightly better than SBC at maximum bitrate.
- Both SBC and aptX introduce significant latency in the range of 150-200 ms.
- aptX LL drastically reduces latency but is only supported by a handful of devices.
aptX on Windows 10
OS Support
If Microsoft wanted to hide this piece of information, they could not be doing a better job. A single page on microsoft.com mentions aptX. Apparently, Windows 10 has supported the aptX codec since the first release (1507). According to this Reddit thread, Windows 10 aptX support does not require any drivers in addition to what is part of the OS. I am mentioning that because numerous forum posts state you need to install special drivers. That does not seem to be true.
As for aptX HD or aptX LL (low latency): those codecs do not seem to be supported. If you would like to have them in Windows – especially aptX LL would be great when watching video – make sure to vote for this item in Feedback Hub: please add aptX Low Latency codec support to the Bluetooth A2DP driver.
For a list of supported Bluetooth versions and profiles see this page.
External USB Adapter
The Avantree Audicast is a flexible Bluetooth transmitter that can be connected to a PC (via USB) or a TV (via optical input or headphone jack). The Audicast has several neat features:
- Support for aptX LL (low latency) in addition to regular aptX and, of course, SBC
- LEDs indicate which codec is being used
- Two receiving headphones can be connected
- Small and light
- No additional power source except for USB required
- All cables are included
Please note that when connected to a PC, the Audicast does not work as a generic Bluetooth adapter (in which case the OS drivers would be used). Instead, it registers as a USB audio device. No drivers are required.
Which Codec and Bitrate are Being Used?
Amazingly, Windows does not provide any tool or API for monitoring the codec used by A2DP. Whether it is SBC, aptX or something different – users are left completely in the dark. To help change that and encourage Microsoft to provide more visibility, please vote for please let users see what Bluetooth A2DP codec is used.
For the sake of completeness, I spent several hours capturing and analyzing ETW logs as indicated at the following sources, but none of the generated logs seemed to indicate the A2DP codec being used.
- Matthew van Eerde: Collecting audio logs the old-fashioned way
- GitHub microsoft/busiotools
- Windows KB3029606: Update to improve Bluetooth driver diagnosis in Windows 8.1
Update 2020-09-09
Based on the info provided by commenter eluxe below I figured out how to determine which A2DP codec is used and documented it here: How to Check Which Bluetooth A2DP Audio Codec Is Used on Windows.
20 Comments
Thank you for the very good summary of aptx.
Thank you, really nice write up
Hello. Thanks for the really useful info. Could you please list some more bluetooth transmitters (with USB and/or SPDIF and/or 3,5mm Jack connection). The Avantree Audicast doen’t seem to be available on many countries and I can’t find it in Greece…
Use the Fiio BTR3. The color of the LED represents which codec your bluetooth jplayback device is in. If you’re like me and obsessed with music, I would recommend combining that receiver with the Fiiio A3 portable amplifier. It REALLY makes a difference. So much so that I use them together always now. You can use the provided rubber things that hold devices together to use them together without them scratching each other. Also get a custom aux cable because the one that comes with it doesn’t power it as much as a nice braided cable. I found a custom one on Amazon. Everything is sold on Amazon. Not cheap, but worth every cent to me.
Bluetooth Tweaker helps with the awful audio experience on Windows: https://www.bluetoothgoodies.com/tweaker/
In addition to what xpclient said, Bluetooth Tweaker also tells you exactly what codec is being used by A2DP, in addition to the list of codecs your device supports:
CODEC selected by Windows CODEC Type: aptX, Sampling Frequency: 44.1kHz, Channel Mode: Stereo
thank you very clear. Is it true that there are no USB dongles for windows that support aptX HD? I see some aptX HD devices on aliexpress for example but they all take audio inputs like optical, not a simple USB dongle.
I am not aware of any Bluetooth adapters that support aptX HD.
That one ? https://avantree.com/ca/dg60-bluetooth-usb-audio-transmitter?___store=ca&___from_store=default
aptx is superior to SBC not because of its marginally higher bitrate but thanks to different coding algorythm, which makes the bandwidth just enough for full audio range. With standard coding you get compressed, limited range audio signal.
I have an Intel Wireless-AC 7265 wifi card that has bluetooth in my HP laptop and by downloading a driver from the DELL computer support website it allows the use of APTX and APTX-LL. It also shows a little notification pop-up on the taskbar stating when a device connects using APTX or APTX-LL.
Apparently it is left up to the companies selling the PC’s to implement the proper use of APTX in their drivers for the 7265/3165/7260/3160 and I know will also work with the Intel 8260/8265 so probably also the newer cards as well.
Here is the link to the Reddit page I initially found this info on.
https://www.google.com/url?sa=t&source=web&rct=j&url=https://amp.reddit.com/r/Windows10/comments/8mlqh9/bluetooth_aptx_support_for_windows_10/&ved=2ahUKEwiCrr_qpvzhAhVF1qwKHW1HBAAQFjAIegQIBRAU&usg=AOvVaw0FRFvJx86KeWe0LWdaH8Lu&cf=1&cshid=1556781934610
People should know it can cause a serious problems. In my case i was completely unable to use a headset feature (including the playback and the microphone recording) of my Sony WH-1000XM3 headphones while having these drivers installed. It took me hours to figure it out. Finally in an act of desperation I uninstalled all Intel/Dell Bluetooth drivers and v’oila – all started to working just like that. It turned out that standard Microsoft’s drivers are being used instead and all features are working. And according to this article (thanks to Helge Klein) it seems that you don’t even need these drivers as you can use aptX anyway – you just do not know you are doing this as there is no notification from the system. But you can easily check if it is tru by using Bluetooth Tweaker application that someone mentioned about here (thanks xpclient). I hope people find this post useful.
I recently bought a new amplifier which included a USB Bluetooth Adaptor. After successfully pairing and connecting the PC and the USB adaptor, when I try to stream my music from my external hard drive using Windows 10 I get a message telling me that it was unable to complete the transfer.
I have searched high and low for a solution, but to no avail.
The Bluetooth USB Adaptor is described in this way…….
“The IOTAVX Bluetooth adapter is compatible with the IOTAVX pre-amplifiers and power amplifiers and allows you to stream music in stereo with the highest quality (including aptX codec) to the devices. The adapter is connected to the rear extension port, to which the adapter can simply be connected. Pairing with your source device (eg mobile phone, tablet or PC) is easy and intuitive. The Bluetooth adapter identifies itself as IOTAVX BT01 and can be easily selected in your source device. After the pairing process, you can stream and enjoy your music in the best quality on the IOTAVX preamplifier or the integrated amplifier.”
But I can’t stream and enjoy my music at all.
Any ideas on how I can get this working?
Thanks in advance.
Noel
That’s the stuff I was searching for a long time!
Thanks and keep this quality content up.
did this get updated? I took a performance log with the profile indicated in the busiotools github link and just repaired my Sony xm3’s and it’ll show the available codecs and the codec windows chooses. It’s in decimal format, but the vendor IDs and stuff are available online.
https://i.imgur.com/gqXQ6ca.png
Vendor 79 correlates to apt ltd and the codec is aptx. So it chose that over SBC I guess. I’m running this on a Snapdragon 850 which supposedly has Apt-x HD support, but I guess qualcomm didn’t care to implement it, or Windows won’t choose to use it. I haven’t dug through the drivers to see if there’s any way to see what codecs are supported by the machine itself.
If I say pretty pretty please …. would you detail the way to gather to log and find the relevant record in the wpa? I am quite new to this. I managed to gather “a” log, I managed to find the wpa , start it an open the log. But I fail to find records like those that your screenshot shows.
Here you are 😊: https://helgeklein.com/blog/2020/09/how-to-check-which-bluetooth-a2dp-audio-codec-is-used-on-windows/
I was able to figure it out with the info provided by eluxe and some digging.
The easy but not free way to see the codec info
https://www.bluetoothgoodies.com/tweaker/
Hey there! I couldn’t find a single post that requested aptX HD or aptX Adaptive, so I made one that requested HD, Adaptive, and LL! If you want to see this, please upvote at https://aka.ms/AAb0whd . Comments also welcome, Thanks.
Thank you for this info, that’s a really useful analysis (and also love the website design).