[LAU] Bluetooth A2DP pitch shifting

Ken Restivo ken at restivo.org
Wed May 4 19:27:36 UTC 2011


On Wed, May 04, 2011 at 12:15:57PM +0300, Kai Vehmanen wrote:
> Hi,
>
> On Wed, 6 Apr 2011, Ken Restivo wrote:
>
>> I have been lately using a Bluetooth A2DP headset to listen to music.
>>
>> Every now and then, it drops pitch! It slows the music down, by as much 
>> as a semitone, for several seconds, then comes back slowly. I rather  
>> like the effect; it's like an old cheap analog vynil turntable with a  
>> bad motor or worn belt.
>
> what headset are you using? I recommend getting a different headset if 
> you want to get rid of this (or cherish the headset you have, if you like 
> the effect ;)).
>
> Some parts of BT A2DP are a bit underspecified and there are some  
> interesting implementations of it out there. There is no flow control or  
> clock sync used, so the receiver (your headset) should be a proper  
> RTP-receiver type of implementation that can adjust to the sender's clock 
> and packet transmission rate and adjust for drift, etc.
>
> But there are some headsets that are lazy and make false assumptions on  
> the timing characterics of A2DP and the sender. E.g. I've stumbled on  
> commercially sold headsets that just play at whatever rate the sender is  
> sending. So you get incorrect and _varying_ pitch for all played audio.  
> The exact outcome is unique to each sender+receiver combo.
>
> In your case, the headset seems to have some funky underrun/overflow 
> logic that tries to periodically catch up, or slow down, in case of clock 
> drift (which to some degree always happens).


Yep. It cost all of US$12, shipped directly from Hong Kong (took 3 weeks to get here). Not surprised that it has bugs.

I'm fine with it for now. Thanks for explaining!

-ken


More information about the Linux-audio-user mailing list