Anybody wanna try writting a little BPM based programme for me???
BAsically - I want to find tracks that DON’T have a stable BPM. I want to pointt he software at a folder, and find the tracks in that folder that have a change in tempo at some point in the track.
Bit of a stab in the dark, but you never know your luck…
Sounds very useful. I know how to write such a thing, but haven’t the time at the moment - if you get someone else to go for it, I’ll certainly use it, and if not, I will try to get around to it at some point when I have more free time.
You’re asking for a bit more than just “a programmer.” You need someone with signal analysis experience too. Unless there’s some OSS library for beat detection out there that I don’t know about. Mixx is OSS, do they have beat gridding?
I’m a programmer, but yeah…I’m not really feeling up to the task of writing something that detects BPM. Hell, most of the software out there gets it wrong at some point.
It’s still the same problem. You would need to obtain data about the BPM at various sample points throughout the track, and then make some decision based on a statistical algorithm whether the BPM was consistent throughout the track.
It’s an interesting problem, but not necessarily an easy one.
I’m not a programmer but, Im assuming (big assumption) tracks that dont have a steady bpm would show up in traktor as a bpm like 128.86/ have a weird decimal at the end, could a programmer write something that reads the traktor bpm data and gives you results that show all traks that dont have a bpm as an interger or close to an interger ? so for example a bpm of 127.99 would still be classed as a steady bpm but 127.84 wouldnt ?
I was thinking along these lines as well. If you analyzed the track in Traktor, I wonder if Traktor throws any flags that you could look for similar to the BPM being a weird decimal point. If you could identify that then you could do a simple ID3 tag search and be done. Finding that flag is the fun part though. ha
Think about it. Transition tracks usually go from one tempo to a much higher, or much lower tempo.
So the software would only need to take the tempo from 2 or 3 different parts of the track, and compare them. If they’re within 5%, you can assume that there is not a tempo change - but anything greater than a 5% change would indicate a significant tempo change.
5% of 130BPM is about 6.5bpm. Now, a BPM checker with only 5% accuracy is pretty useless. But, a piece of software that can detect changes greater than ~5% is useful to a lot of us…
You still have to solve the “what is a beat” problem first, which is the only hard part. After you do that, the BPM analyzer is almost trivial, and the “does the BPM change, significantly, at some point” is an extension.
You could have the software slice all the tracks in a folder into 30 second pieces and check the tempo of each slice against the others. Could also use Traktor or whatever to analyze the slices for BPM and write to the ID3 tag (I think traktor does this automatically). Compare slice’s ID3 tags and you’re done. I think thats pretty doable for someone with basic programming knowledge.