A2DP aka Stereo Bluetooth on Mac OS X: finally an easy and quality solution

Macbook Pro
Sony SRS-BTM30 Bluetooth speakersI’ve bough myself a Sony SRS-BTM30 (nice little speakers with built-in bluetooth stereo receiver) thinking Apple, as it boasts bluetooth on all their peripherals, would obviously support this (MS already does for a long time). I was of course very very wrong.

There are several forums and threads with half-baked solutions mostly around the a2dpcast and jackd and all require multiple geniuses to make it all work, with a high probability of frustration to find the CPU usage at 100% or, worse, long latency in sound (terrible for films), or many other problems.

I decided to just wait for the Jaguar update, which already has built-in support for a2dp, and simply use a wired connection to my speakers.

But today I found exactly what I was looking for: a very very easy to use solution that actually has almost no latency (still not perfect for films, but you can easily fix that with the audio synchronization compensation option in the VLC media player).

Credit goes to ‘asae’ who posted this originally on David Connolly’s blog:

First, 2 files needed,

a. a2dpcastAudioDevice.tgz: http://www.coolatoola.com/a2dpcastAudioDevice.tgz

b. the updated a2dpcast: http://www.coolatoola.com/a2dpcast-0.3.zip

Then run terminal from Application/Utilities/terminal and install the kernel extension for the audio device (replace DOWNLOAD_DIR with the path to where your browser downloads stuff to) – you need your admin password to do sudo:

1. cd /
2. sudo tar -zxpf DOWNLOAD_DIR/a2dpcastAudioDevice.tgz –same-owner
3. sudo kextload /System/Library/Extensions/AudioReflectorDriver.kext

Copy a2dpcast to /usr/local/bin or /usr/bin (replace A2DPEXTRACTDIR with the path to where your extracted the downloaded a2dpcast-0.3.zip) – you need your admin password to do sudo:

1. sudo cp A2DPEXTRACTDIR/a2dpcast-0.3/a2dpcast /usr/local/bin

Run a2dpcast with your Bluetooth address. To find your address go to bluetooth preferences (system preferences) and click on the speakers in question , it should have a line saying ‘address’:

1. a2dpcast aa-bb-cc-dd-ee-ff 27

Keep a2dpcast running, leave the terminal open, then run whatever program that you want, the sound will be streamed automatically to your headset. Again, do not close the terminal until you have enough enjoying your bluetooth headset ;)

If the sound breaks all of the sudden, or if you have any interference, try reducing the encoding rate from 32 to 16 by running this instead:

1. a2dpcast aa-bb-cc-dd-ee-ff 27 16