Rockbox

Tasklist

FS#5668 - variable play speed (tempo) control

Attached to Project: Rockbox
Opened by Mottel (flyingfoxtrot) - Sunday, 16 July 2006, 05:35 GMT
Last edited by Dominik Riebeling (bluebrother) - Sunday, 16 July 2006, 07:56 GMT
Task Type Feature Requests
Category Music playback
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 2
Private No

Details

I use an mp3 player for practicing ballroom dancing. Dancers learning a new routine find it very useful to be able to slow the music down by a variable factor of up to about -20% in fairly fine increments (of say 1% or 2%). Variable play-speed control is quite common on software music-players and on pro sound equipment used in dance studios, but not as common on portable music players. Still, there are some portable players that can do this (e.g. Creative's MuVo Vidz, and Astone's Samba and MicroAv).

Some do it better than others. On some, the pitch changes with the speed, producing a "Mickey Mouse" effect at higher speeds and a "Darth Vader" effect at lower speeds. Others use DSP to compensate for the change in pitch (usually with a process called Formant Correction), enabling the tempo to be varied without affecting the pitch.

Is there any chance of getting the ipod Nano to do this? Why particularly the Nano? Because for dancing, jogging and similar sports it is better to use a player with flash memory rather than a micro hard-drive, which is susceptible to shock.

Note: some ipods can already do this, but only for audiobooks, not for music. Shouldn't be too hard to get this feature to also work for mp3 music?
This task depends upon

Closed by  Bj√∂rn Stenberg (zagor)

Reason for closing:  Fixed
Additional comments about closing:  Closing all feature requests.
Comment by Alistair Marshall (amar) - Sunday, 16 July 2006, 06:57 GMT
we already have a pitch controle that sounds like what you are talking about (well it is in the irivers anyway) unfortunatly my computer doesnot want to download the manual so i cant find if/ how it works on the nano
Comment by Dominik Riebeling (bluebrother) - Sunday, 16 July 2006, 08:05 GMT
why should this feature request be "critical"? Can you explain that to me?

On the nano you can access the wps context menu by long holding the select button, and from that menu you can access the pitch screen. Is changing the tempo that important for you or do you only want changing the pitch? If changing the pitch is sufficient for you I consider this feature request obsolete. Changing the tempo without changing the pitch would require a lot of DSP processing, and that won't be done soon (if ever) -- I guess at least not before 3.1 comes out and actually we're in the freeze for 3.0
Comment by Mottel (flyingfoxtrot) - Monday, 17 July 2006, 02:40 GMT
Let me clarify: Firstly, when I posted this request, I didn't specify that it was critical. AFAIK it is priority Normal; if it has been upgraded to critical, that was not my doing. Secondly, the main thrust of the request was for a feature that allowed you to vary the play-SPEED of the music. This is useful to dancers to help them stay IN TIME with the music. There is no value at all (to dancers) in a facility that lets you change just the pitch. The only reason pitch got mentioned at all was in the context that some speed controls let you vary the speed WITHOUT affecting the pitch.
Comment by Dominik Riebeling (bluebrother) - Monday, 17 July 2006, 06:41 GMT
Strange. From what I can see from the task history, it was changed from critical to low by me, and not increased by anyone. Which implies it has been set to critical upon creation. If you're _really_ sure you haven't set it to critical upon creation maybe we have found a bug in the tracker software?

I don't see the point why it should be useless to dancers if the pitch changes a bit as when practising the speed of the "beats" itself are important, not the pitch of the notes. But I don't want to argue on that, I just don't see the point.

Otherwise when referring to changing the speed of the music without changing the pitch this is mainly a duplicate of  FS#2231 .
Comment by Mottel (flyingfoxtrot) - Monday, 17 July 2006, 10:39 GMT
For heavens sake Dominik, where did you learn to read?!
Compare these two sentences and see if I said what you have reported me as saying:

F: "There is no value at all (to dancers) in a facility that lets you change just the pitch."
D: "I don't see the point why it should be useless to dancers if the pitch changes a bit."

To repeat again: The main point of the request is a facility to change PLAY-SPEED. It is PREFERRABLE (but certainly NOT essential) if this can be done w/o affecting pitch, so as to avoid the Mickey-Mouse and Darth-Varder effects at high/low speeds. I certainly did not say ANYWHERE that if the pitch changed as well this would useless to dancers! I simply pointed out (in the initial post) that some players implement this feature (i.e. variable play-SPEED) better than others.

As for being a duplicate of  FS#2231 , I don't see how you figure that. They are actually two diametrically OPPOSITE requests. (Again, please read more carefully!) Bruce (a musician) wants to vary PITCH, PREFERRABLY without affecting tempo. I (a dancer) want to vary TEMPO, PREFERRABLY (but this is NOT critical) without affecting pitch. How on earth you can equate the two is a complete mystery to me.

Comment by Dominik Riebeling (bluebrother) - Monday, 17 July 2006, 13:54 GMT
Mottel (or whatever your real name is), I learned reading at school. Which is, I need to admit, already some time ago.
Why are you getting that angry? Are you the perfect guy who always gets everything right on the first try? I think the tone of your comment is pretty much inadequate.

Maybe you should take into account that (a) I'm not a musician nor a dancer, so I'm not that kind of used to that terms as you seem to be and (b) english isn't my mother tongue which may also cause misunderstandings.

I mixed up the terms a bit. But we already have a function called "pitch" which changes tempo (as in speed) and the tone pitch (as in the "mickey mouse" effect). Quoting you:
> I (a dancer) want to vary TEMPO, PREFERRABLY (but this is NOT critical) without affecting pitch.
This is already possible. I already looked you up the keys on how to access that function. Haven't you read the manual and simply tried it? Do you really think only musicians are writing rockbox? Do you really think there aren't mistakes or wrongly used words in rockbox or its manual? When referring to the term "pitch" I (and presumably most developers will do) refer to the way the pitch function works that is already implemented.

Also, quoting from the manual:
> The Pitch Screen allows you to quickly change the pitch of your player. The pitch value can be adjusted between 50% and 200%.
According to your description this is technically incorrect. I'm trying to help with the project, which also implies I can understand things wrongly, which is a reason why I'm writing comments here to make things clear. Requesting features and getting rude when somebody misunderstands you doesn't help at all. But as we now know the manual is incorrect I assume you'll write a patch which corrects this issue.

Please write your requests more carefully, so people don't need to ask you what you really want! You were talking about pitch and tempo in the same sentence in a way that didn't make it completely clear (at least to non-native speakers) what _exactly_ you want to request. As a dancer you should be aware of the fact that the people "outside" of dancing world may not be used to your terms at all. I suggest you reading my last response again. What you quoted from me is only a part, and I wrote a bit more to make that sentence clear. Seems it didn't work or hasn't been read though.

Where on earth did you learn how to argue and talk to people you barely know?
Comment by Steve Blincoe (bilko) - Wednesday, 19 July 2006, 12:45 GMT
Just to pour fuel onto this discussion, I would like to put my hand up for Tempo (or Speed) variation without pitch change so that musicians could slow down a song they are trying to learn without having to retune their instrument. I guess the processing power required will preclude this, so I will continue to do what I do now, I.E. process the track I want to learn using Adobe Adition or Winamp with a plugin then save it in a separate directory so I can access it when I want to practise.
Comment by Alexander Levin (fml2) - Wednesday, 29 November 2006, 12:32 GMT
Changing only one thing of (pitch, tempo) without changing the other is not a trivial task and involves advanced sound processing. The is a free library that does that (http://www.surina.net/soundtouch/README.html), but as the site states,

Processing CD-quality sound (16bit stereo sound with 44100Hz sample rate) in real-time or faster is possible starting from processors equivalent to Intel Pentium 133Mhz or better, if using the "quick" processing algorithm. If not using the "quick" mode or if floating point sample data are being used, several times more CPU power is typically required.

So it's not very suitable for a DAP. It surely would be a nice feature!
Comment by Patrick Gavin (wezelboy) - Wednesday, 29 November 2006, 15:37 GMT
Doing pitch/tempo shifting on CD sound is very processor intensive. However, I believe that most of that processing is needed to transform the sound data from the time domain to the frequency domain. With most audio compression formats, this work is already done during the encoding process, so it may still be possible to provide some kind of pitch/tempo shifting with compressed files without overwhelming the processor.
Comment by Dan (gongozolo) - Friday, 02 March 2007, 08:05 GMT
Listening to audio books, I would love a feature that changed playback speed, but compensated for the pitch (ie increased tempo, same pitch). I believe there are a few players that can do this, so they must have figured something out. At least a couple claim they do this (ie the ipod). I don't know how well they do it. They might only do a partial job, or drop quality to compensate...

Anyway, it would be an awesome feature.
Comment by Dan (gongozolo) - Monday, 11 June 2007, 22:35 GMT
I've said this before elsewhere, but I also vote for pitch correction to match the playback speed. It'd be great for audio books.

It's also a feature that would draw people in to rockbox. I know a few people who switch or plan to switch because of the universal bookmarking and adjustable playback speed; adding pitch correction would be the icing to really sell them on rockbox. (okay mixed metaphors, but you get the point).
Comment by Urs (sondi) - Friday, 24 August 2007, 14:49 GMT
I'd support the vote of dan. For musicians it's a huge goal to be able to slowdown the speed without pitch shifting! My guitar coach and a lot of guitar students would burn your name in their instruments! :o)) I swear i label my first CD 'powered by ROCKbox!" - yess!
Comment by Brian Hall (brihall) - Wednesday, 31 October 2007, 17:17 GMT
So does the existing pitch control in Rockbox allow tempo adjustment currently, or just pitch?

The comment about some of the work for tempo shifts already being done by the encoding is interesting, does anyone know if it is useful for tempo adjust during playback? My hunch is that the freq domain info is discarded when the final mp3 or ogg is written out to disk.

One other thought: this would still be a useful feature even if it couldn't be done in real time. Obvious case is for slowing down the tempo, but for the case where the onboard DAP isn't fast enough for greater than real time, perhaps it could process the file, and then save it to disk in a format where the tempo adjust was already done or could be done in a more CPU-efficient manner. For speeded-up playback of podcasts, a background job that does this sort of thing when the DAP is idle (charging, etc) would be useful to me on my H300.

Is there an existing free codec format that allows more efficient tempo-adjusting during playback? Perhaps FLAC could be extended.
Comment by jpcasainho (casainho) - Sunday, 11 November 2007, 12:01 GMT
Good request!! I also have this need for teach traditional folk dances and for accordion and others traditional instruments lessons!!!
Comment by harry tu (bookshare) - Sunday, 09 December 2007, 10:30 GMT
I'm am taking piano lessons, and sometimes my teacher wants me to play some song in some key or another. I currently must adjust the speed with the pitch which is annoying if you are trying to fake a song.
Comment by Jim Henderson (hendersj) - Saturday, 14 June 2008, 22:26 GMT
I also would like to see this. I could see beneift for musicians, dancers, DJs (though to be really useful, you'd also want to recalculate the playback duration, since the goal there often is to fit a song into a certain amount of time rather than adjusting the speed by x%). Speed and pitch ideally should be adjustable independent of each other. Playback of audiobooks is another oft-cited example that I would see benefit in.

I realise this is not likely trivial to implement. But it would be very useful.
Comment by Pedro Palhoto (PedroPalhoto) - Friday, 05 December 2008, 01:34 GMT
My main usage for the iPod Nano G1 is to listen to 45 hours worth of audio shows (aka podcasts) every week using only 30 hours of real time (while commuting, house chores, etc.). I achieve this by weekly converting all downloaded shows/classes/conferences to M4B format and then listening to them in the audiobook "faster" option (1.5x) available on the Apple iPod firmware.

http://www.tunequest.org/speeding-up-podcasts-part-3-make-yourself-an-audiobook/20070423/

This results in a 15 hour-week bonus, i.e. 720 hours a year, of free spoken word content I am able to consume using the aforementioned process. I have tested soundtouch, and in my opinion it was effective up to 1.7x, only Windows Media Player MP3/WAV tempo adjustment was good enough for 2.0x spoken word content. When at least 1.5x speed-up is available on Rockbox, I'll definitely switch, everything else I have so far, great job, keep it up.

Have you thought about integrating the Soundtouch library? http://www.surina.net/soundtouch/
Comment by Linus Nielsen Feltzing (linusnielsen) - Monday, 08 December 2008, 10:19 GMT
There is a patch for this in the tracker: http://www.rockbox.org/tracker/task/8894

Thare are some quirks that need fixing, but it will be committed when it is finished.

Loading...