I'm looking into bpm detection and cue points are on each player (they just might be hidden on a small screen). Will look into key and dragging the waveform.
There was a nice article on the beatport tech blog. I didn't manage to find it when I searched yesterday. Basically what they suggested was applying a low pass filter to isolate the base drums, then count the most common intervals between peaks (basically some kind of transformation) and then reconstruct the BPM from there by applying a range from 80-160 or similar. Hope this gives you a rough idea.
I implemented and tested it and it worked quite well with electronic music.
Works pretty well but requires to upload a file, then process it to get the BPM. So you would need smaller audio samples as the soundcloud stream is too big and takes ages.
I don't know how often the data is present, let alone correct, but iirc the SoundCloud API lists bpm as a field in the track data. Might be worth a look if you haven't already.
Oh bugger, what version of Firefox and OS are you using? I admit I only built it with Chrome but I did test it last night on Firefox osx and it was working ok.
Very cool! I hacked the exact same thing a while ago. Also with soundcloud integration (and some filters and stuff). I'll take a peek at the code when i get to my computer in the next days. Maybe there is something where i could contribute.
amazing work, I loved playing with it. I'm a DJ nub tho :( would be really cool to have a very quick tooltip getting started mixing the first song kind of thing
this is pretty great man! i've been playing with it for a couple hours now. my only complaint is that it's pretty hard to time the drop since there seems to be some lag between when i click and when the track starts playing (could just be my computer though).