The most common method involves autocorrolation, which involves quite a bit of calculus, so I hope you've studied up. Finding the tempo of a song is not easy.However: I don't know how easy Android's API is regarding audio output, or even whether it allows the low-level access to audio playback that this project would require. I've never done this myself, so I dunno.Įverything else you mentioned is relatively easy to do. The effect is not great, although it doesn't sound too bad if the pitch and time changes are relatively small.Īutomatic determination of a song's tempo might be too time-consuming to do in real time, but this part of the process could be performed in advance of playback, or it could be done on the next song well before the current song is finished playing. Net CF on a Samsung i760 smartphone) without overly taxing the processor (the simple version is not much more expensive than ordinary MP3 playback). Pitch-shifting and time-stretching can be achieved on a relatively powerful mobile device in realtime (I've done it in. This is technologically feasible on a smartphone-type device, although it is extremely difficult to achieve good-sounding pitch-shifting and time-stretching effects even on a powerful PC and not in realtime. I had a tiny crappy mp3 player that could do double speed on the fly so I'm sure it can be done! On top of that, how to perform the manipulation, to change the beat, would be my next point of interest. If this is too many questions for one post I am most interested in the easiest way of analysing the wave of an MP3 to find the beat. Will it be feasible to do this on the fly? What approach would you use? A server that streams to the phone? Maybe offline analysis of the songs on a desktop that gets synched to your device via tether? What I really need to know is how to get started writing an application in C++ (Using the Android NDK) which will perform the analysis and adjust the stream. Now I know that this will fall down with many use cases (Slow songs sounding stupid, beat changes within song getting messed up) but I feel they can be overcome. Alarms and notifications automatically at points in the run (Geo located or timer).Beat can be established via accelerometer or manually.Maintain a constant beat for running to.I'd like to make a media play for Android aimed at joggers which will
I know it's possible to speed up and slow down a song and normalize the sound so that the voices and instruments still hit the same pitch.
So I want to make a new music player for Android, it's going to be open source and if you think this idea is any good feel free to let me know and maybe we can work on it.