HOW TO: Fix Bluetooth A2DP audio quality on Mac OS X
If you’ve paired a Bluetooth audio device with your Mac, even if it supports A2DP, you might have noticed how awful and rough the sound quality is. I’ve always put this down to Bluetooth being a rubbish standard when it comes to sound, but I noticed how good a set of Motorokr Bluetooth headphones sounded when I connected them to my Blackberry tonight, even though they sound awful on the Mac.
Turns out that OS X uses a horribly low bit rate for Bluetooth audio by default — who knows why. Perhaps it’s to allow for maximum compatibility with all devices.
The easy way to fix it is to copy and paste this line into your terminal:
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" 40
The “40” is the quality — depending on your Bluetooth headset, you can adjust it up for higher quality, or down if you have connection problems.
You can play with this on my cheap old bluetooth headphone adapter 20 works. It can probably go higher. But watch out there maybe drop outs or pitch bending if it gets to be a bit much for your device. To be honest it was driving me crazy especially since i had to cut and resolder the battery negative wire on the adapter due to a lock up. Most times if there is a lockup a reset or pulling power will sort it but this device had no on off or reset*.
*It might have eventually drained enough battery via the blue led but that might take 100’s of hours it is supposed to be good for 8 hours active use… If it really is driving you nuts it could be in need of a recharge. Good luck trying to find a bluetooth audio device which will tell you how good the quality it can handle is.
Wireless fidelity: making sense of Bluetooth headphone technology
Bluetooth is a short-range, low-power wireless standard for transmission of digital data that has been around since 1998. It has many uses, but of course the one we are most interested in here at The Headphone List is audio streaming.
Bluetooth has evolved a number of specifications and profiles over the years, which can be somewhat confusing and are rarely explained all in one place. The purpose of this article is to provide a brief introduction to Bluetooth technology pertinent to audio streaming.
Bluetooth basics
Bluetooth devices come in all manners of shape, size, and function, but as far as audio is concerned there are two basic types – transmitters and receivers. A Bluetooth audio transmitter is any audio source with Bluetooth functionality, for example an iPhone, computer, or dongle that receives audio input from another device. A Bluetooth audio receiver can be a wireless headphone or speaker, or a dedicated audio receiver.
The transmitter sends out a digital signal encoded in a way the receiver can recognize. The receiver then decodes this signal and converts it to analog for audio playback. To establish a link between transmitter and receiver and determine which Bluetooth profiles can be used (see Bluetooth profiles section below), an initial setup step called “pairing” is necessary.
Bluetooth versions
Bluetooth is commonly listed with a specification version, usually ranging from v2.0 to v4.1. Newer Bluetooth versions are backwards-compatible and any optional components that may follow the Bluetooth version number, such as +EDR (enhanced data rate) and +HS (high speed), do not affect Bluetooth audio streaming.
Bluetooth v2.1 simplified and streamlined the pairing procedure back in 2007, which headphones do take advantage of. Later Bluetooth versions improved power handling and power saving functionality, which may affect attributes such as range and connectivity, but anything specified v2.1 or newer will be equivalent as far as audio quality is concerned.
With Apple products such as iPhones and iPads, compatible headsets with Bluetooth v3.0 and newer will show an on-screen battery meter.
Bluetooth profiles
Creative Aurvana Live! 2 Bluetooth
Creative Aurvana Platinum Bluetooth headphones
Bluetooth profiles are sets of specifications for how certain functionality must be implemented by Bluetooth devices. There are dozens of profiles for everything from file transfer to wireless printing, but the ones we are interested in are those applicable to headphones and headsets.
HSP (Headset Profile) – allows basic headset functionality with microphone input, 64kbps mono audio, and limited remote control
HFP (Handsfree Profile) – a more advanced version of HSP also designed for mono headsets; among other things adds support for additional remote functions such as redialing and voice dialing. The latest version (1.6) adds optional support for better-quality audio via a mono configuration of the SBC codec used by A2DP
A2DP (Advanced Audio Distribution Profile) – designed for multimedia and used for stereo audio transmission over Bluetooth. This is the profile we are interested in as headphone users
AVRCP (Audio/Video Remote Control Profile) – provides remote control of media playback (e.g. play/pause and skip/previous track functions); used in conjunction with A2DP. The latest AVRCP versions (1.4 and 1.5) allow direct control of device volume as well. With previous versions, volume controls affected headset volume independently of the connected device.
All stereo headphones support A2DP and AVRCP, and – if a microphone is present – at least HSP for headset functionality. Most stereo Bluetooth headsets implement all four of the above profiles.
Bluetooth audio codecs
So far so good, but what determines how audio is sent to a wireless headphone? That would be the codec. After the transmitter selects the appropriate profile, it chooses a codec to digitally compress the audio for sending to the headphone. The headphone then decodes the file for playback. Although it is theoretically possible to send mp3s or any other digital format straight to the headphones over Bluetooth, this is not what happens. Instead, the A2DP profile specifies its own set of audio codecs.
SBC (Subband Coding) – this is the mandatory default codec for A2DP and is supported by all Bluetooth stereo audio devices. It was designed to provide reasonably good audio quality over the limited bandwidth of Bluetooth without heavy processing power requirements for encoding/decoding. SBC is capable of bitrates up to about 328 kbps at a 44.1kHz sampling rate (source). This is not far off from the maximum for mp3 encoding, though mp3 is superior to SBC in terms of audio quality given similar bitrates (source).
The biggest problem from an audio quality standpoint is that SBC is also capable of mid- and low-quality streams, which sound quite compressed and to my ears are unacceptable for music streaming. Sound quality varies widely between different SBC implementations. A generic USB Bluetooth transmitter I picked up for $3 from eBay sounded absolutely atrocious because it defaulted to the lowest SBC quality, but installing a brand-name one with a CSR chipset in its place had excellent results.
With some versions of Apple OS X, SBC quality is set to low or medium by default but can be changed manually to increase audio quality and fix other issues.
aptX
aptX is a proprietary audio codec developed for demanding audio applications. Its use in Bluetooth devices is entirely optional. In fact, aptX is currently supported by only one manufacturer of Bluetooth chipsets – CSR – who acquired parent company APT back in 2010 (source).
aptX is designed to encode a CD-quality (16-bit / 44.1kHz) audio stream without loss of sound quality through a combination of slightly higher data transfer rate compared to SBC as well as more efficient audio encoding. The caveat is that both the headphone and the source must support aptX – if either one lacks aptX support, the default SBC codec will be used instead. Currently, aptX support is limited to mostly high-end Android smartphones and Hi-Fi wireless devices. My Nexus 5, for example, does not support apt-X (source). It is also not implemented in Apple devices such as iPhones and iPods.
AAC (Advanced Audio Coding) – unlike SBC and aptX, AAC is a codec popular outside of wireless applications, including Apple’s iTunes platform and YouTube. It was designed to achieve better sound quality than mp3 at similar bit rates. Unlike aptX, it is supported by iOS devices. Apple implements AAC over Bluetooth at about 250 kbps (source – pdf), which should compete in fidelity with the best-quality mp3s or any other lossy codec. However, at this time AAC support in wireless headphones is not very common.
At least in theory, Bluetooth transmitters automatically default to the “best” quality codec available. The default Bluetooth stereo audio codec, SBC, can sound quite good with the right implementation, especially for on-the-go use. However, it can also produce some horribly compressed-sounding audio at its worst. aptX takes out the guesswork, maintaining consistently high bitrates, but both the transmitter and receiver have to support it and it is not implemented in Apple devices. AAC is supported by Apple devices, but not many other transmitters, and has been picked up by few headphones. For those concerned with audio quality, at least for the time being, aptX seems to be the solution to beat.
Additional features
There are a few more Bluetooth functions that are supported by some current headphones. These are independent of the profiles and protocols listed above and don’t affect audio quality, but are worth mentioning for the sake of completeness.
NFC (Near field communication) – NFC is a wireless standard for close-proximity data exchange. While it can technically be considered a Bluetooth competitor, NFC has a very different set of strengths and weaknesses. It has slower transfer speeds than Bluetooth and a much shorter range (a few inches at most), but also uses far less power and does not require “pairing”.
There are many different uses for NFC ranging from mobile payments to data transfer. When it comes to headphones, however, NFC is used as a “handshaking” shortcut to establish connection. Bluetooth devices that support NFC can be paired and connected by simply bringing their NFC chips together. In the case of my Nexus 5, this has allowed me to pair, connect, and disconnect NFC-enabled headsets without ever opening the phone’s Bluetooth menu. Doesn’t seem like a big deal at first, but it is surprisingly convenient in everyday use. The caveat, of course, is that that both devices have to support NFC.
For a list of devices with NFC support, see here.
Multipoint – Multipoint (as opposed to Singlepoint) refers to the ability of a Bluetooth accessory – most likely a headset – to maintain two Bluetooth connections simultaneously. For instance, a Multipoint headset can have a tablet and phone connected to it at the same time. If a call comes in on the phone while music is streaming from the tablet, music playback on the tablet will be paused and the user will be able to take the phone call on the headset. When the call is terminated, the headset will switch back to the tablet and resume music playback automatically.
Like NFC, multipoint is not at all vital and has no bearing on audio fidelity, but it’s a pretty nice feature to have that I can see become more widely desired as the popularity of wireless headsets grows.
Bluetooth compatibility and limitations
Compatibility – There are some limitations on which Bluetooth devices can work with headsets. For instance gaming consoles such as the PlayStation 4 and Xbox One are not compatible with standard Bluetooth headsets – see the Profile Limitation section below for an explanation of why. In addition, some older basic phones may lack A2DP support if they were not designed for music playback and Bluetooth support on the Windows operating system is a bit of a mess (one of the USB dongles I purchased worked perfectly with one Windows 7 x64 machine but the drivers absolutely refused to install on another machine with the same operating system). Other than that, compatibility shouldn’t be much of a concern these days as newer Bluetooth specifications tend to be backwards-compatible. Any stereo Bluetooth headset will work with an iPhone or Android smartphone, for example.
Receiver vs Transmitter – Keep in mind that Bluetooth chipsets don’t always contain both a Bluetooth transmitter and receiver, so if you’re looking to use your Bluetooth headset with your TV, don’t rely on your Bluetooth-enabled sound bar or home theater receiver. Most of the time these devices can receive audio via Bluetooth but are not designed to send an audio stream to a set of headphones. Likewise, 3.5mm Bluetooth dongles are often one-way devices, having either a receiver or a transmitter, but not both.
Lag/latency – Because of the encoding-decoding steps done by Bluetooth audio devices, there can be some latency between source and headset, ranging from imperceptible to quite bothersome. It’s not a big deal for music, but causes lip-synching issues with video and oftentimes makes Bluetooth headsets unusable for gaming. As with all things Bluetooth, the severity of lag varies widely depending on hardware and software. In my experience it also seems to vary with distance, with video and audio going out of sync as the headset is moved away from the audio source.
One of the versions of the aptX codec mentioned previously is designed to reduce Bluetooth latency and should be suited best for use with a TV (source).
Profile limitation – Bluetooth headsets are currently limited to using one profile at a time. Those who read the Bluetooth Profiles section above carefully will note that this presents a problem as the A2DP profile supports stereo audio, but not microphone functionality, and the HSP and HFP profiles support mics but are limited to low-quality mono transmission. This renders modern Bluetooth headsets unusable for gaming that also requires voice chat, for example, as the audio will come through in low-quality mono rather than stereo. Likewise, while using Skype or any other software that requires continuous headset functionality, any music that is playing simultaneously will stream through headset profile in low-quality mono and sound terrible as a result.
Mobile devices such as iPhones and Android phones and tablets do a great job of switching between profiles automatically. Windows PCs and OSX computers – not so much, and may sometimes need to be switched manually depending on software configuration.
The rest of the headphone – Coming full circle to the realm of wired audio — a Bluetooth headphone will only sound as good as its audio components. A headphone can support all of the latest in Bluetooth technology, but if the drivers deliver muddy bass and distorted mids, that’s what you will hear. Also, while this overview focuses specifically on Bluetooth technology, in the case of wireless headphones the DAC (digital-to-analog converter) and amplifier – components that audiophiles tend to put so much importance on in wired audio – are both built right into headphone. This can give the headphone designer even more control over the sound, but can also be the weakest link with subpar implementation. Wireless headsets that also support a pass-through wired connection make it quite easy to figure out whether or not their sound quality is limited by the Bluetooth components and built-in amplification.
The wrap-up: selecting the right Bluetooth headphone
As with conventional wired headphones, there are plethora of Bluetooth devices on the market of all different shapes, sizes, and costs. In addition to the usual considerations when buying a set of headphones, these add complexity by providing Bluetooth specifications for the buyer to mull over. I normally do not recommend looking at headphone specifications as they yield little useful info, but with Bluetooth sound quality in mind there are some things that can be gleaned from the specs.
As it turns out, Bluetooth version is mostly inconsequential from an audio quality point of view – any headphone specified as v2.1 or higher should be fine. Likewise, supported Bluetooth profiles are not something to worry about as all stereo Bluetooth headphones support A2DP. All A2DP devices support the standard SBC audio codec, though implementation quality varies. If your device supports aptX, an aptX headphone will take the guesswork out of audio codecs, providing consistently good audio quality over Bluetooth. AAC will do the same for the few devices that support it.
NFC and multipoint technologies provide additional functionality and may be a deal breaker for some, but don’t have a bearing on audio quality. The audio components of the headphone itself do, however. At this point, a good headphone can sound quite good over Bluetooth, but a bad headphone will always remain just that.
So the aptx standard is useful to look for as is AAC for iphones and ipads,
My little device was designed as a hands free kit so it doesn’t sound that great. Even with the best quality bluetooth the quality still isn’t cd quality so wires still rule. At least now it is clear why bluetooth audio can be so bad. If it has a microphone do not enable it! the audio is likely to become tinny and mono. Venders tend to rely on ignorance so will lie through their teeth or at least not tell you it will only support the lowest quality audio codecs… even the bluetooth standards tell you nothing about the sound quality.
Bluetooth Special Interest Group (SIG) recommends using of those settings in A2DP specifications (A2DP_SPEC, Revision V12):
SBC encoder settings* | Middle Quality | High Quality | ||||||
---|---|---|---|---|---|---|---|---|
Mono | Joint Stereo | Mono | Joint Stereo | |||||
Sampling frequency (kHz)
|
44.1 | 48 | 44.1 | 48 | 44.1 | 48 | 44.1 | 48 |
Bitpool value
|
19 | 18 | 35 | 33 | 31 | 29 | 53 | 51 |
Resulting frame length (bytes)
|
46 | 44 | 83 | 79 | 70 | 66 | 119 | 115 |
Resulting bit rate (kb/s)
|
127 | 132 | 229 | 237 | 193 | 198 | 328 | 345 |
*Other settings: Block length = 16, Allocation method = Loudness, Subbands = 8 |
It’s worth to add that A2DP limits the available maximum bit rate to 320 kbps for mono and to 512 kbps for stereo modes allowing the use of many other codecs besides SBC. So audio manufacturers (of headphones especially) have wide choice of compression technologies capable of delivering high definition sound through the wireless digital channel at reasonable cost.