Skip to content

Instantly share code, notes, and snippets.

@jasonm23
Last active June 9, 2026 02:12
Show Gist options
  • Select an option

  • Save jasonm23/9c7b54c1a00e55ef3bfea187bf4ad7c0 to your computer and use it in GitHub Desktop.

Select an option

Save jasonm23/9c7b54c1a00e55ef3bfea187bf4ad7c0 to your computer and use it in GitHub Desktop.
OpenKey Harmonic Mixing System

How to Use OpenKey Harmonic Mixing Notation

Used by Native Instruments Traktor and other DJ/Music software (open alternative to Camelot, which is functionally equivalent to OpenKey)

  1. Key Labels: The notation uses a combination of a number and a letter. The number indicates the key's position in the circle (from 1 to 12), and the letter indicates the mode: m for minor and d for major. You can mix from Minor (openkey m, camelot B) to Major (openkey d, camelot A) and Major to Minor

  2. Adjacent Keys: Keys that are adjacent to each other on the wheel are harmonically compatible. For example, 8m (A minor) is compatible with 9m (E minor) and 7m (D minor).

  3. Mixing Up or Down: You can move one step clockwise or counterclockwise to find compatible keys. For instance, if you are in 8m, you can mix with 7m or 9m.

  4. Switching Between Major and Minor: You can switch between a major and its relative minor by staying within the same number. For example, 8m (A minor) can mix with 8d (C major).

  5. Energy Boosts: For a higher energy mix, you can jump two steps forward. For instance, mixing from 8m to 10m can provide a more energetic transition.

Example Usages

Smooth Transition

If your current track is in 4m (E minor), you can smoothly transition to 3m (B minor), 5m (A minor), or even 4d (G major).

Energy Boost

For an energetic jump, you might go from 4m (E minor) to 6m (B minor).

This system helps ensure that the tracks blend well together, avoiding clashing harmonics that can disrupt the flow of the mix.

@tillt

tillt commented Jun 5, 2026

Copy link
Copy Markdown
Screenshot 2026-06-05 at 9 54 34 PM We got `10m` twice on the wheel. The outer `10m` should be a `10d`.

@jasonm23

jasonm23 commented Jun 6, 2026

Copy link
Copy Markdown
Author

@tillt Nice catch, I'll update it and post as SVG too. Thanks

@jasonm23

jasonm23 commented Jun 7, 2026

Copy link
Copy Markdown
Author

@tillt I seem to have lost the original version of this wheel, I've put together a new version which I personally prefer, would appreciate your honest feedback. Thank you.

(note: I was planning to reserve the svg for a commercial purpose, may still do that for the moment.)

I hope a 4090x4090px should be good for most purposes

openkey-camelot-wheel

@tillt

tillt commented Jun 8, 2026

Copy link
Copy Markdown

Moin Jason, thanks so much for updating the wheel. Depending on the goals, I could see some variations;

  • assuming we want to help converting:
    -- have the openkey values in one color (black) and the Camelot values in another color (white) -- that way you can also do away with the slash

  • assuming we want to help reading this clearly:
    -- have the font for the values heavier -- the important part are not the colors, it is the values and thus they can take more space -- bold

  • assuming we want to help mixing things in harmony:
    -- I don't understand the coloring scheme as it suggests that 8B and 2B would mix well. The common way to color the wheel is to use a hue circle as that fits rather well to what mixes well.

The font is beautiful for title (bottom left). The traditional notation values can be smaller / less prominent -- the wheel is about openkey to Camelot.

@jasonm23

jasonm23 commented Jun 9, 2026

Copy link
Copy Markdown
Author

Thanks for the smart feedback @tillt. I was focused a little too much on surface aesthetics over function and I agree with your points / point of view.

It will take me a little more time for consideration and experiment, feedback loop etc.

  1. OpenKey vs Camelot is the goal, and how that's done is critical 100% agree. To be honest, when I realised I had lost the original source svg, I rushed to get this new one up and didn't consider the function at all, mea culpa.
  2. Balancing font weight / styling aesthetics vs functional. Along with the color wheel being rational will be the prime aim. I look forward to your input/feedback.

Initial thought, I hope the gradient in conic form will provide a more intuitive perception of mix compatibility.

Side note: I'm in the process of releasing the font OcodoMonoDotZero so once I'm paused/completed on that I'll focus on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment