The visuals in R4 are great, but its biggest problem has to be that it doesn't do a great job of responding to the music. Obviously it works for stuff with a very strong obvious beat, but for rock etc it doesn't work too well at all.
Over the summer I have been fiddling with developing an R4-a-like in java. The summer is nearly over and I intend to stop anything to do with said project (I intend to stick it on web open source in a few weeks). I spent quite a long time looking at how the beat can be picked up and to be honest I think I ended up with something much better than R4. . .unfortunately my knowledge of openGL is pretty cack so scenes weren't that great.

I have no idea how much you looked into the sound detection part of your project. . .maybe you tried all this stuff already, but I thought I would share my ideas incase they are of any use to you. . .
I found the following method works very well at detecting 'beats'. Certainly works better than just adding the value of each bar

1) FFT a sample of audio into bands, obtaining a spectrum.
2) A number of previous spectrum are stored in memory (I kept 5).
3) The average amplitude of each bar of the spectrum is calculated. .
4) The 'beat' energy of each bar is found by subtracting the average amplitude from the current. (so the beat energy is large if the amplitude is larger than the average energy immediately before it - indicating a beat at that amplitude). .
5) The total energy is the sum of all the beat energies that are over a certain positive limiting value (stops adding on -ve energies and very small energies, so only 'real' beats are picked up).
Dont know if that was any use but I would urge you to stop working on improving the graphical side of R4 which is great already, and spend some time making the beat detection great

Lagz