Skip to content

Tonality

Meantonal has a very straightforward approach to “keys”, “modes” and chromaticism.

The basic principle is that a note like A\sf{A}\flat is the same pitch class regardless of tonal context, but in the key of A\sf{A}\flat major it represents scale degree 1^\hat{1}, whereas in a different key like C\sf{C} major it represents 6^\flat\hat{6}. In some keys, like C\sf{C}\sharp major, it may not be clear that a note like A\sf{A}\flat has any business appearing at all, even as a chromatically altered scale degree.

Let’s construct a simple context where notes represent scale degrees in the key of “D major”. Here’s a D major scale on the Meantonal grid (octaves are omitted):

D\sf{D}
G\sf{G}A\sf{A}B\sf{B}C\sf{C}\sharp
D\sf{D}E\sf{E}F\sf{F}\sharp

These notes represent the following scale degrees in the key of D major:

1^\hat{1}
4^\hat{4}5^\hat{5}6^\hat{6}7^\hat{7}
1^\hat{1}2^\hat{2}3^\hat{3}

Each of the 7 natural scale degrees in a key or mode can also be approached by diatonic semitone from either side, so we can extend the above set to a chromatic gamut of 17 notes:

A\sf{A}\flatB\sf{B}\flatC\sf{C}D\sf{D}
E\sf{E}\flatF\sf{F}G\sf{G}A\sf{A}B\sf{B}C\sf{C}\sharp
D\sf{D}E\sf{E}F\sf{F}\sharpG\sf{G}\sharpA\sf{A}\sharpB\sf{B}\sharp
C\sf{C}\sharpD\sf{D}\sharpE\sf{E}\sharp

These notes represent the following diatonic and chromatically raised/lowered scale degrees in the key of D major:

5^\flat\hat{5}6^\flat\hat{6}7^\flat\hat{7}1^\hat{1}
2^\flat\hat{2}3^\flat\hat{3}4^\hat{4}5^\hat{5}6^\hat{6}7^\hat{7}
1^\hat{1}2^\hat{2}3^\hat{3}4^\sharp\hat{4}5^\sharp\hat{5}6^\sharp\hat{6}
7^\hat{7}1^\sharp\hat{1}2^\sharp\hat{2}

Conveniently, this collection of notes forms a single chain of 17 fifths that partitions neatly into lowered, diatonic and raised degrees:

AEBFCGDAEBFCGDAEB5^2^6^3^7^4^1^5^2^6^3^7^4^1^5^2^6^\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ \flat\hat{5} & \flat\hat{2} & \flat\hat{6} & \flat\hat{3} & \flat\hat{7} & \hat{4} & \hat{1} & \hat{5} & \hat{2} & \hat{6} & \hat{3} & \hat{7} & \sharp\hat{4} & \sharp\hat{1} & \sharp\hat{5} & \sharp\hat{2} & \sharp\hat{6} \end{array}

For any relative diatonic modes like D major and E dorian, the same chain of 17 fifths will result, but the scale degrees represented by these notes will be shifted up or down by a constant offset. Here are the relative modes of D major organised in descending fifths from G lydian to C# locrian:

AEBFCGDAEBFCGDAEB2^6^3^7^4^1^5^2^6^3^7^4^1^5^2^6^3^5^2^6^3^7^4^1^5^2^6^3^7^4^1^5^2^6^1^5^2^6^3^7^4^1^5^2^6^3^7^4^1^5^2^4^1^5^2^6^3^7^4^1^5^2^6^3^7^4^1^5^74^1^5^2^6^3^7^4^1^5^2^6^3^7^4^1^374^1^5^2^6^3^7^4^1^5^2^6^3^7^4^6374^1^5^2^6^3^7^4^1^5^2^6^3^7^\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ \flat\hat{2} & \flat\hat{6} & \flat\hat{3} & \flat\hat{7} & \flat\hat{4} & \hat{1} & \hat{5} & \hat{2} & \hat{6} & \hat{3} & \hat{7} & \hat{4} & \sharp\hat{1} & \sharp\hat{5} & \sharp\hat{2} & \sharp\hat{6} & \sharp\hat{3} \\ \flat\hat{5} & \flat\hat{2} & \flat\hat{6} & \flat\hat{3} & \flat\hat{7} & \hat{4} & \hat{1} & \hat{5} & \hat{2} & \hat{6} & \hat{3} & \hat{7} & \sharp\hat{4} & \sharp\hat{1} & \sharp\hat{5} & \sharp\hat{2} & \sharp\hat{6} \\ \flat\hat{1} & \flat\hat{5} & \flat\hat{2} & \flat\hat{6} & \flat\hat{3} & \hat{7} & \hat{4} & \hat{1} & \hat{5} & \hat{2} & \hat{6} & \hat{3} & \sharp\hat{7} & \sharp\hat{4} & \sharp\hat{1} & \sharp\hat{5} & \sharp\hat{2} \\ \flat\hat{4} & \flat\hat{1} & \flat\hat{5} & \flat\hat{2} & \flat\hat{6} & \hat{3} & \hat{7} & \hat{4} & \hat{1} & \hat{5} & \hat{2} & \hat{6} & \sharp\hat{3} & \sharp\hat{7} & \sharp\hat{4} & \sharp\hat{1} & \sharp\hat{5} \\ \flat{7} & \flat\hat{4} & \flat\hat{1} & \flat\hat{5} & \flat\hat{2} & \hat{6} & \hat{3} & \hat{7} & \hat{4} & \hat{1} & \hat{5} & \hat{2} & \sharp\hat{6} & \sharp\hat{3} & \sharp\hat{7} & \sharp\hat{4} & \sharp\hat{1} \\ \flat{3} & \flat{7} & \flat\hat{4} & \flat\hat{1} & \flat\hat{5} & \hat{2} & \hat{6} & \hat{3} & \hat{7} & \hat{4} & \hat{1} & \hat{5} & \sharp\hat{2} & \sharp\hat{6} & \sharp\hat{3} & \sharp\hat{7} & \sharp\hat{4} \\ \flat{6} & \flat{3} & \flat{7} & \flat\hat{4} & \flat\hat{1} & \hat{5} & \hat{2} & \hat{6} & \hat{3} & \hat{7} & \hat{4} & \hat{1} & \sharp\hat{5} & \sharp\hat{2} & \sharp\hat{6} & \sharp\hat{3} & \sharp\hat{7} \\ \end{array}

A tonal context is entirely determined by a tonic and modal offset by which to construct the appropriate chain of fifths, against which we can reconcile pitches into their corresponding scale degrees.

So let’s say we have a note like E4\sf{E}_4, represented by the Pitch vector (27,10)(27, 10). How do we reconcile it against a tonal context of “D major”? First, let’s introduce a convenient function: the chroma function.

We define the ChromaChroma function as a linear map:

Chroma(p)=[2,5]pChroma(p) = [2, -5]p

Simply put, Chroma(p)Chroma(p) sends a Pitch vector pp to a number, which represents the number of fifths (signed) separating it from C\sf{C}. It abstracts away octave information, which you can see by the fact (5,2)(5, 2) is in the null space of the above matrix, so E4\sf{E}_4, E5\sf{E}_5, E6\sf{E}_6 etc. are all sent to the same pitch chroma, namely 4.

If we take the chroma of all the pitches found in the previous table, we get the following:

AEBFCGDAEBFCGDAEB43210123456789101112\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ -4 & -3 & -2 & -1 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \end{array}

The chroma of our tonic D is 2, so we can normalise the above to reflect this by subtracting 2 from each value, by defining a new function KeyChromaKeyChroma as follows:

KeyChroma(p)=Chroma(p)Chroma(t)KeyChroma(p) = Chroma(p) - Chroma(t)

Where tt is the tonic.

AEBFCGDAEBFCGDAEB654321012345678910\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ -6 & -5 & -4 & -3 & -2 & -1 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \end{array}

This doesn’t yet account for the chosen mode (“major”): We will now add the mode as an offset from Lydian as follows:

Lydian0
Ionian/Major1
Mixolydian2
Dorian3
Aeolian/Minor4
Phrygian5
Locrian6

Let’s update our definition of KeyChromaKeyChroma to reflect this:

KeyChroma(p)=Chroma(p)Chroma(t)+MKeyChroma(p) = Chroma(p) - Chroma(t) + M

Where M is the modal offset. Our table now looks like this:

AEBFCGDAEBFCGDAEB5432101234567891011\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ -5 & -4 & -3 & -2 & -1 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 \end{array}

Notes whose KeyChromaKeyChroma in the given tonal context is below 5-5 or above 1111 cannot resolve by diatonic semitone to diatonic degrees, and are seen to be incompatible with that context (as in, they require modulation to gain a sensible reading).

If we now carry out floored division by 7, the above table tells us whether a given note is natural, raised or lowered in the key:

AEBFCGDAEBFCGDAEB11111000000011111\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ -1 & -1 & -1 & -1 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & \end{array}

So we know whether a degree is diatonic, raised, lowered, or foreign to a given key. But we still don’t have a way to know what degree it actually represents.

This could be ascertained by taking our original definition of KeyChromaKeyChroma without worrying about modal offset, multiplying each note’s KeyChromaKeyChroma by 4 and then taking floored remainders modulo 7:

AEBFCGDAEBFCGDAEB41526304152630415\begin{array}{ c c c c c:c c c c c c c:c c c c c } \sf{A}\flat & \sf{E}\flat & \sf{B}\flat & \sf{F} & \sf{C} & \sf{G} & \sf{D} & \sf{A} & \sf{E} & \sf{B} & \sf{F}\sharp & \sf{C}\sharp & \sf{G}\sharp & \sf{D}\sharp & \sf{A}\sharp & \sf{E}\sharp & \sf{B}\sharp \\ 4 & 1 & 5 & 2 & 6 & 3 & 0 & 4 & 1 & 5 & 2 & 6 & 3 & 0 & 4 & 1 & 5 \end{array}

This gives correctly ordered scale degree numbering, indexed from 0 rather than 1.

It is, however, easier to simply keep a record of the letter name of the tonic as an offset from C:

CDEFGAB
0123456

This value can be found for any note by adding its coordinates modulo 7, or from the floored remainder of Chroma(p)÷7Chroma(p)\div 7

Now all we have to do to ascertain the scale degree an arbitrary note represents is add its coordinates together and subtract the offset from the previous step, modulo 7:

E4=(27,10)27+101=1  (mod  7)\sf{E}_4 = (27, 10) \rightarrow 27 + 10 - 1 = 1\;\sf{(mod\;7)}

We correctly arrive at E as degree 1 in D major (remember, these calculations produce 0-indexed scale degrees).