Non-real-time beat detection of audio

to_the_sun's icon

I was wondering if anything exists in the form of an external or some other method to detect the BPM of an entire audio file quickly, e.g. not in real time. Currently I will import files into Ableton Live individually to take advantage of the BPM detection it will do on them. Ideally however I would like to automate this process as much as possible, so say, have any files that appear in a certain folder automatically analyzed and their BPMs stored in a text file somewhere. I'm aware of objects such as beat~, bonk~ and op.beatitude~, but it's my understanding that these all work in real time. Is that the only way they ever work? I can't seem to get any of them to work right now anyway; I suspect it's because they're not 64-bit. Can anyone confirm this?

Thanks for any suggestions.

truthc's icon
Music_SDP's icon

This is something I'm interested in as well. Maybe someone now has a solution?

Roman Thilenius's icon

anything what is possible in realtime is also working when you switch to the NRT driver in the DSP settings. the implementation of nonrealtime processes in a max patch is sometimes not so straightforward as one would wish, but the system works.

Music_SDP's icon

That's an interesting idea, but it requires switching drivers and doing some calculations, which isn't ideal in a performance setting. An external that just does an analysis of a buffer and spits out a result is what I'm looking for.

Thomas_Lucas's icon

The object vb.aubio~ from Volker Böhm allow to extract onset time location from a buffer. http://vboehm.net/downloads/ the onset timestamps are stored in a list.
Maybe you can use these locations to estimate an approximation of the tempo. let me know.