Key detection at specified BPM

Xogene Member Posts: 2 Newcomer

Hello everyone and especially Devs,

Key detection is a great feature for harmonic mixing. However, to make it the most effective, both tracks must have the same key AND the same BPM. As soon as they have a different BPM (I mean, at tempo 0%), it's less relevent unless we turn on Key lock, which degrades sound quality.

A super-nice feature would be to analyse the track and detect the key at a given BPM. That way, I would be certain that, ie 2 tracks running at 130 bpm would have the very same key.

Currently I do it manually, running everything at 134 and tuning tracks with a synth. As I play around that speed, I don't have to turn on key lock and still get perfect harmonic mixing.

Thanks and keep up the great work !


  • wayfinder
    wayfinder Member Posts: 221 Pro
    edited April 2022

    Should be fairly easy to calculate yourself in the meantime:

    The formula to find the right BPM for a desired key change without keylock should be

    newBPM = originalTrackBPM * 2^(semitoneOffset/12).

    Example: Original track is in F at its original BPM of 128. You want to play it at G? That's +2 semitones, so the new BPM should be 143.675142 (I think 6 decimals is Traktor's internal precision limit). It comes out to almost exactly +6% per semitone, btw.

    The formula to find the resulting key change for a desired BPM change should be

    semitoneOffset = 12 * log(newBPM/originalTrackBPM)/log(2)

    Example: Original track is in F at its original BPM of 128. You want to play it at 132 BPM. That means you will end up with an offset of + 0.532729, which is ~ F# -47 cents.

    I've tested these calculations in Traktor and they work. Should be easy to set up a little calculator for it yourself, in a spreadsheet app or wherever.

  • Kubrak
    Kubrak Member Posts: 2,590 Expert

    Generally NI could account for current BPM and add another column/filter with key adjusted to current BPM.

  • Xogene
    Xogene Member Posts: 2 Newcomer
    edited April 2022

    @wayfinder Thanks for the math ! It would be nice to implement it in Traktor, say kind of a dynamic column in the browser that would display the actual tone regarding speed offset. Or some label close to the Key button...

Back To Top