While building a mobile app that plays music for fitness classes, I was asked to add a feature that allows the user to speed up the tempo of the music 0-4% to compensate for some gym stereo systems that play music slower. I'm puzzled because I imagine that for this to occur, the stereo system would need to buffer more and more data over time in order to consistently deliver it at a slower speed. I'm wondering if this is actually a human perception problem, or if there's something else going on that I don't understand. Any ideas?

  • It's somewhat common for CD players used for gym classes to provide a speed control. I'd be very surprised to find a system that takes an analogue input and plays this back slower than the original signal. – Hobbes Oct 31 '19 at 14:37
  • They don't exist. – Mark Nov 30 '19 at 5:15

Your assumption around buffering is incorrect. Any application that plays music out faster or slower will simply change the read-rate of the data to suit the play-out speed. The buffer size will not change. The only thing that will change is the rate at which the buffer is filled up again after being emptied.

Note that this is only possible when reading data off a disk or memory stick or via a remote streaming service where you 'pull' data as required. It will not work with radio/DAB+ etc because the data is being pushed and - like you say - the system would need to continuously buffer more data and would eventually run out of space. Needless to say, this does not and cannot happen. HTH.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.