The tables below show the tonal and Camelot key (alphanumeric) counterparts to pitch classes for major and minor keys in integer notation (i.e., as a whole number).
Major key
| Pitch class | Tonal counterparts | Camelot Key |
|---|---|---|
| 0 | C, B♯ | 8B |
| 1 | C♯, D♭ | 3B |
| 2 | D | 10B |
| 3 | D♯, E♭ | 5B |
| 4 | E | 12B |
| 5 | F | 7B |
| 6 | F♯, G♭ | 2B |
| 7 | G | 9B |
| 8 | G♯, A♭ | 4B |
| 9 | A | 11B |
| 10 | A♯, B♭ | 6B |
| 11 | B | 1B |
Minor key
| Pitch class | Tonal counterparts | Camelot Key |
|---|---|---|
| 0 | Cm | 5A |
| 1 | D♭m | 12A |
| 2 | Dm | 7A |
| 3 | E♭m | 2A |
| 4 | Em | 9A |
| 5 | Fm | 4A |
| 6 | G♭m | 11A |
| 7 | Gm | 6A |
| 8 | A♭m | 1A |
| 9 | Am | 8A |
| 10 | B♭m | 3A |
| 11 | Bm | 10A |
Spotify API
In the Spotify API, ‘key’ maps to pitch class and ‘mode’ distinguishes between major (1) and minor (0) key, which can be represented as a Python dictionary as follows:
(0,1):'8B', # C major
(1,1):'3B',
(2,1):'10B',
(3,1):'5B',
(4,1):'12B',
(5,1):'7B',
(6,1):'2B',
(7,1):'9B',
(8,1):'4B',
(9,1):'11B',
(10,1):'6B',
(11,1):'1B',
(0,0):'5A',
(1,0):'12A',
(2,0):'7A',
(3,0):'2A',
(4,0):'9A',
(5,0):'4A',
(6,0):'11A',
(7,0):'6A',
(8,0):'1A',
(9,0):'8A',
(10,0):'3A',
(11,0):'10A'
Python Dictionary
Here’s a Python dictionary that can be used in a function to convert Camelot key values (“8B”) to their tonal counterparts (“C, B♯”).
camelot_to_tone = {'8B':'C, B♯','3B':'C♯, D♭','10B':'D','5B':'D♯, E♭','12B':'E','7B':'F','2B':'F♯, G♭','9B':'G','4B':'G♯, A♭','11B':'A','6B':'A♯, B♭','1B':'B','5A':'Cm','12A':'D♭m','7A':'Dm','2A':'E♭m','9A':'Em','4A':'Fm','11A':'G♭m','6A':'Gm','1A':'A♭m','8A':'Am','3':'B♭m','10A':'Bm'}
Special thanks to:
- camelot-wheel/src/data.js
- Pitch Class (Wikipedia)
- What is the difference between the Circle of Fifths and the Camelot Wheel? (StackExchange)
- Photo by Ylanite Koppens from Pexels

CommentsOnToast