I gave Mixxx a shot. On the upside, it successfully tagged every song in my test set. And it's truly free free. It does not seem to provide any elements beyond Initial Key and BPM. In Initial Key, it looks like it's using special characters for flat and sharp, which looks nice, but isn't technically what's spec'd for that tag.
You opened my eyes that this is old news in DJ circles, so I went searching r/DJs.
This post makes a pretty convincing case that Mixed In Key returns 15% more accurate key detection than Mixxx or beaTunes. That compared the results against a trained human ear. I don't have that to work with in my tests, so I've only compared against each other.
beaTunes matches Mixed In Key = 69%
Mixxx matches Mixed In Key = 67%
beaTunes matches Mixxx = 64%
All told, I've convinced myself it's worth the $60 to get the key detection from Mixed in Key. Before I saw the Reddit post, I was ready to tell myself Mixxx was close enough given the cost. But putting that specific "15% more accurate" factoid in my brain changed my mind.
As much for my own future recall as anything, here's a summary of the tools I looked at:
Mixed In Key
- Most expensive by far, but seems legitimately more accurate in key detection
- Refuses to tag songs longer than 15 min
- Can write the key tag using standard text or proprietary Camelot notation
- Provides an "Energy" score in an extended tag
- Focused on tagging songs for use in other applications. No other particularly useful features of its own.
beaTunes
- Mid priced, and key detection accuracy is probably good enough
- Stumbled with some one-off albums that were encoded with the defunct Nero encoder
- Can write the key tag using standard text or Open Key notation
- Provides LOTS of extended tags with other sonic attributes (color, instrumentation, secondary bpm, etc). Also populates Mood tag with text strings, but these often seem nonsense.
- Includes interesting playlist builder tools leveraging the extended tags it creates during analysis
Mixxx
- Fully free, and key detection accuracy is probably good enough
- Had no issues with any files in my test set
- Uses special characters for flats and sharps in key tag rather than standard text
- Does not provide any sonic attributes beyond key and bpm
- Lots of other DJ-centric functionality
So now that I'll reliably have Initial Key and BPM, I might be motivated to work on an Auto-DJ script that leverages them. I've never tried scripting MM, but I've worked in js enough to get by. You seem to have plenty of documentation to get me started. I peeked at the "Playcount > X" sample, and I get the gist. I guess I'll bring it up over on the developer forum if I get rolling on it.
Seems there are interesting opportunities for playlist builder add ins around these tags too. An Auto-DJ script seems like an easier place to start playing with the idea though.
Thanks for your input on this. It'd still be great if MM someday had its own tools for detecting sonic attributes, but I appreciate the pointers on bringing that in from other sources.
I gave Mixxx a shot. On the upside, it successfully tagged every song in my test set. And it's truly free free. It does not seem to provide any elements beyond Initial Key and BPM. In Initial Key, it looks like it's using special characters for flat and sharp, which looks nice, but isn't technically what's spec'd for that tag.
You opened my eyes that this is old news in DJ circles, so I went searching r/DJs. [url=https://www.reddit.com/r/DJs/comments/rn2wu5/key_detection_comparison_2021/]This post[/url] makes a pretty convincing case that Mixed In Key returns 15% more accurate key detection than Mixxx or beaTunes. That compared the results against a trained human ear. I don't have that to work with in my tests, so I've only compared against each other.
beaTunes matches Mixed In Key = 69%
Mixxx matches Mixed In Key = 67%
beaTunes matches Mixxx = 64%
All told, I've convinced myself it's worth the $60 to get the key detection from Mixed in Key. Before I saw the Reddit post, I was ready to tell myself Mixxx was close enough given the cost. But putting that specific "15% more accurate" factoid in my brain changed my mind.
As much for my own future recall as anything, here's a summary of the tools I looked at:
Mixed In Key
- Most expensive by far, but seems legitimately more accurate in key detection
- Refuses to tag songs longer than 15 min
- Can write the key tag using standard text or proprietary Camelot notation
- Provides an "Energy" score in an extended tag
- Focused on tagging songs for use in other applications. No other particularly useful features of its own.
beaTunes
- Mid priced, and key detection accuracy is probably good enough
- Stumbled with some one-off albums that were encoded with the defunct Nero encoder
- Can write the key tag using standard text or Open Key notation
- Provides LOTS of extended tags with other sonic attributes (color, instrumentation, secondary bpm, etc). Also populates Mood tag with text strings, but these often seem nonsense.
- Includes interesting playlist builder tools leveraging the extended tags it creates during analysis
Mixxx
- Fully free, and key detection accuracy is probably good enough
- Had no issues with any files in my test set
- Uses special characters for flats and sharps in key tag rather than standard text
- Does not provide any sonic attributes beyond key and bpm
- Lots of other DJ-centric functionality
So now that I'll reliably have Initial Key and BPM, I might be motivated to work on an Auto-DJ script that leverages them. I've never tried scripting MM, but I've worked in js enough to get by. You seem to have plenty of documentation to get me started. I peeked at the "Playcount > X" sample, and I get the gist. I guess I'll bring it up over on the developer forum if I get rolling on it.
Seems there are interesting opportunities for playlist builder add ins around these tags too. An Auto-DJ script seems like an easier place to start playing with the idea though.
Thanks for your input on this. It'd still be great if MM someday had its own tools for detecting sonic attributes, but I appreciate the pointers on bringing that in from other sources.