[LAU] Bluetooth A2DP pitch shifting

Kai Vehmanen kvehmanen at eca.cx
Wed May 4 09:15:57 UTC 2011


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).


More information about the Linux-audio-user mailing list