• Status Closed
  • Percent Complete
  • Task Type Feature Requests
  • Category Music playback
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Pindurs - 2007-09-19

FS#7801 - Beat detection and speed control for jogging


The idea is to make an automatic speed control.
Whatever sport you are doing, it’s helping very much to listen to a music that has the same bpm as your activity.

With that function, you would only adjust during the first track, then the player would detect the bpm of the next tracks and adjust them to the speed you choosed. It would either play faster or slower, dependind which is the closer to a multiple of the bpm.

For sure, if the pitch would remain the same it would be great, but it usually gives the sound a strange effect. Changing only the speed would probably be acceptable.

The control of the speed would be done with two buttons (+ and -) to keep it intuitive.

At any moment, you could accelerate or slow down according to your activity (and breathe ;-).

I understand very well that it’s a quite big project demanding lots of skills and putting some problems.
For example, how to analyze the next track for detecting the bpm while playing the present one?
Should the player analyze a playlist before to play it?
Should it even be done at home for all the tracks and the bpm of each track kept somewhere on the player?

I’m quite sure that it would be the sort of function that you wonder how you could live so long without…

Closed by  zagor

Reason for closing:  Fixed
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Closing all feature requests.

I think the only chance this would ever work (and perhaps get included) is if the files had a BPM tag set. I just don't think it's feasible to do beat-detection on a poor little DAP, nor do I think anyone would want to see it in the Rockbox core. Now if that was done (I believe there are programs to do something like this already), I don't think it would be *that* difficult.

I like this idea (pitch/speed setting based on BPM tag). AIUC, the pitch/speed control works on the PCM output, so it wouldn't work too well with crossfade!

With the bpm tag, it looks quite feasible, doesnn't it?

There is a freeware called BPM ProScan that can autodetect and write the bpm into the id3 tag:

Steve, I don't understand why it would prevent the crossfade, are you sure of that?

Neverthless, having all the tracks on the same bpm and beeing able to change it simply with + and - would be great, huh?

I might be wrong, but I believe the only way we have of changing audio speed is by modifying the PCM output sample rate - this affecting all audio output. While the crossfade was taking place, it would have to match either one of the tracks, but couldn't match both at once.

Also, synchronising the speed change with track transitions might be tricky - the audio is decoded into buffers which can take a few seconds to play out.

I understand now.

Maybe the dirty solution would be to change the sample rate in the meedle of the crossfade?

Maybe we can ask Olympus. Olympus change their speed without the pitch. If we could either get info or analyse their firmware, maybe we can do it the same way.


Available keyboard shortcuts


Task Details

Task Editing