[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