@Ian:
I just implemented the idea to check how much "space" between the beats is to calculate BPM then using the Formula 6/Space_Time , so basically the Time Between End of Current Beat an Begin of Next Beat, again it turned out to be a fail.
Pls check my Updated Version, using your Idea:
http://dl.dropbox.com/u/16576364/mtest_v2.rar@thisischris_ii:
I have tried this method too once, the difference is I was using an average amplitude multiplied with about 1.65 of the whole song as Minimum_Level, if any detected amplitude peak goes over this it was counted as a beat and as expected this method failed too, it was just too simple to take the whole average.
Can you confirm if the following procedure implements the idea of thisischris_ii?
* Take 1024FFT Samples
* Find Peak Index (Highest Value)
* Calculate Amplitude of Peak
* Keep (Moving) Average of about 100MS worth of returned FFT Data.
Some Sidenotes:I spent weeks and made lots of failed tries and tried out a lot of not accurate methods to detect BPM, I would really appreciate if any person would come up with a snippet like a proof of concept.
I will include any helpers into the credits of my application which will if it is finished/implemented good attract a lot of attention and lots of users, I already had a blog once which had hundred thousands of visitors in just hours, being linked to from Big Newspaper Websites to lots of Private Blogs and even in a Wikipedia article (they remove "private ad" links usually), having #1 Ranks in Google for the topic and about 10 involved persons.