Pioneers Rekordbox software is a music management tool for DJs. One of its features is BPM detection for music files. Unfortunately it doesn't write this information to the BPM frame of the files ID3 tags, and instead keeps the detected BPM in it's own database files.
I'm writing a CLI tool to help me better manage my music, and one of the things I would like it to do, is extract the BPM data from the rekordbox database for each song.
As Guntram Blohm pointed at, the BPM is almost certainly not stored in the two ANLZ files. Instead it appears to be stored in the Rekordbox 'database.edb' file. I've uploaded an example edb file here which contains one track with the BPM '170'.
According to this forum thread the edb format is not an open format.
After a little more research it looks like it's a proprietary high-performance SQL database intended for use in embedded applications. (After EVEN MORE research, the database is called 'DeviceSQL'. Read the original authors Quora post about it). Doesn't seem like it is something that would be easy to reverse :(
For anyone else looking to extract the BPM information from their rekordbox library: It turns out there is a XML export that you can use. While not quite as automated as just reading the database file, it is a nice standard format!
Old question: Each track seems to have two files kept in the database (the database is just a directory tree of these files) for it. Here is the pair of files for an example track. The BPM was detected as 170 for the track, though I suspect it's storing it as a floating point or double as some other tracks can be detected at numbers like "169.96". Though looking for the double and floating point hex representations didn't yield any matches for me.
I see the files have what look like headers, for example "PPTH" followed by the file path. and "PQTZ", for the Rekordbox quantization feature. But I'm not too familiar with file formats, so I can't tell if it's using a standard file type. Or something more proprietary.
If anyone is interested in taking a look at the files and pointing me in the right direction it would be greatly appreciated! Right now I'm just trying to figure out how the BPM is stored.