ADD/CHANGE the following values from the registry at HKLM\Software\Microsoft\Bluetooth\A2DP\Settings :
Value (DWORD): 1
What this does is enable Joint-Stereo for the SBC codec, which is important and makes the biggest significant change to improve sound quality. (Note: In earlier versions of WM5 and WM6, Joint-Stereo was broken and resulted in a mono-output. This is not the case anymore with the newer WM6 ROMS.)
Further note: Sleuth255 found that some of his A2DP headsets could not work with JS turned on. In that case, you have to set the value to 0 to disable JS (resulting in poorer quality sound with more "hissing").
REMOVE the following values from the registry at HKLM\Software\Microsoft\Bluetooth\A2DP\Settings if they are present:
These values are used to manually set limits for the BT stack for the A2DP SBC codec. Previously, it was thought that these values should be set between 38 to 86. But if the values are removed, I think that the BT stack automatically chooses the best BitPool values for maximum quality. I've tried removing these values and the sound quality either improved or at least stayed the same.
[ SUMMARY ]
At this point, you should have only one value in the registry at HKLM\Software\Microsoft\Bluetooth\A2DP\Settings:
UseJointStereo = 1
Your A2DP audio should be very good at this point - almost indistinguishable from a wired headset. However, if you are still unsatisfied with the sound (you may notice some very slight "hissing" or "swishing" sounds on high frequencies of certain songs), you may want to try the optional setting below.
[ OPTIONAL ]
This is optional, and a matter of preference.
ADD the following value to the registry at HKLM\Software\Microsoft\Bluetooth\A2DP\Settings:
Value (DWORD): 48000 (decimal)
This forces the A2DP stack to send the audio to the headset at 48000Hz instead of the default 44100Hz. For some reason, I find that the 48Khz value makes the "hissing" sounds less obvious. Your findings may vary, as some people may prefer the slightly more forward sound of the original setting. But if you are game, give this a try - one thing for sure is that it definitely changes the sound quality.
To reverse the change, just remove the SampleRate value.
If you make this 3rd optional change, you should have the following values in the registry at HKLM\Software\Microsoft\Bluetooth\A2DP\Settings:
UseJointStereo = 1
SampleRate = 48000
[ Note - Quick tip on registry editing ]
Of course, every registry change needs a soft-reset to take effect. And please take the usual proper care when editing the registry or risk damaging your device.
Find that your settings dont "stick" after a reset?
Make sure you reset the phone like this: After making changes to the registry, exit your registry editor. Then press and hold the power button of your phone for about 5 seconds, a window should pop up asking you if you want to shutdown your phone (click Yes). Once the phone has shut down, press and hold the power button for a few seconds until the phone starts up again.
Happy listening! BTW, I find that Mortplayer is an excellent MP3 player to use with A2DP. It works well with the control buttons on my headset.