Tagging tracks in your library with BPM and Key


When I find new tracks I’d like to throw into a set at some point, the prerequisites are:

  1. Tag with BPM
  2. Tag with Key

It’s possible to do this with Traktor DJ Pro, with the “Analyze” option, but it’s not the most accurate way to do this. You can see a nifty data-driven analysis of this from 2014. MixedInKey 6 was by far the best performer.

It is an old article (6+ years old). Assuming that all the platforms improved equally (which I don’t honestly think Native Instruments has been working that hard on Traktor Pro…) we might still assume that MixedInKey is best. MixedInKey is on version 8, so I took this as a sign their key labeling was best.

No such study has been done on accuracy of BPMs, but I have found less variance there anecdoctally.

I bought the paid version of MixedInKey, and now have the following sequence to load/analyze new tracks:

  1. Add .mp3 files from downloads to my “prep” folder inside my “library” folder
  2. Throw into MixedInKey, this will write the ID3 tags
  3. Open in Traktor, mark cue points manually

I have not been able to get MixedInKey -> Traktor cue points to work, nor am I sure I care that much.

Additionally, I find the Camelot / Open key stuff nice to think about harmonic mixing, but I really prefer the unified format of the real keys themselves.

OSS option

I have to point out that there’s a pretty awesome open-source option: KeyFinder. It was originally coded up as a Master’s thesis, but today is maintained by an OSS DJ software called Mixxx.

The source code forked repo for Mixx here for it is actually fairly understandable if you’re a decently competent C++ programmer.


The settings I have are as follows below.


In Preferences:

  1. Browser Details >
    1. Key Highlighting > Only color matching keys
    2. Key reference > Master deck
  2. Analyze options > Musical Key
    1. Displayed in traktor > Musical
    2. Written to file tags > Musical

Here by “file tags” Traktor of course means ID3 tags, which is how both MixedInKey and Traktor record the results of the analysis.


  1. Update tags >
    1. “update common tags”
    2. Update “Initial key” tag
    3. Update “Tempo” tag
      1. Keep existing Tempo values

This ensures that keys get overwritten, but that tempo won’t for existing tracks in your Traktor library. You can be a bit more cavalier and overwrite tempo too, but know that if you have custom cues already written to files in Traktor library that may mess with them.

Final note on Camelot / Open Key wheels

I find the concept that they try to teach valuable, ie: “see how keys adjacent to each other can be played together pretty well?”.

Here is a nifty image that shows all three labeling nomenclatures together:

Combined key wheel

The answer is of course grey-er. It’s a question not only of the number of different notes you can tolerate when mixing together, but obviously when you mix together. In house often you might be mixing into the outro, which is just a kick and maybe some hats, all of which are pretty inharmonic, and likely you won’t go wrong mixing anything into it if you’re at the same tempo.

It just happens that relative minors/majors have zero different scale notes, and adjacent keys on these wheels have only one different scale note.

I find it most instructional and best to just display everything in musical (Am / C) terms and learn or memorize which goes together, since this will likely serve you better in the long run. But it’s fine to start with the wheels.