Bass fft returns the magnitudes of the frequency spectrum. Thats a definite plus for beat detection.
From my earlier research - you may need to:
1. Find the "dominant" beat freq in a song (usually the low freq) "Boom boom boom" in House music

2. Apply a band pass filter to isolate it
3. Analyze this freq to get the *average* beat interval over a period of time (say ten secs)
4. Hope that this is maintained throughout the entire song... :-/
====
Its harder to get BPM of hip-hop songs because SNARES are mostly the "beat timers" - but not always. Trance can also be tricky. Try techno and house (kicks) to get the algo working, then tweak with trance and hip hop.
====
Hope that helps.

Cheers!
