Five-Limit Just Intonation
Pythagorean tuning has beautiful sounding pure intervals, (the unison, fourth, and fifth, and octave), but somewhat janky impure intervals (the seconds, thirds, sixths, and sevenths). It turns out that the impure intervals sound better if they're tuned to small frequency ratios with factors of five, whereas Pythagorean tuning only tuned intervals to frequency ratios with factors of 2 and 3. Here is a table showing how simple fractions with factors of five (like 16/15 for the minor second) can replace the complex Pythagorean versions (like 256/243) with only factors of 2 and 3. These discovered fractions sound better both horizontally/temporally/melodically and vertically/spectrally/harmonically:
m2 : 256/243 → 16/15
M2 : 9/8 → 10/9
m3 : 32/27 → 6/5
M3 : 81/64 → 5/4
m6 : 128/81 → 8/5
M6 : 27/16 → 5/3
m7 : 16/9 → 9/5
M7 : 243/128 → 15/8
You may notice that if the Pythagorean frequency ratio has its power of 3 in the numerator, then the 5-limit frequency ratio has a power of 5 in the numerator, and if the Pythagorean frequency ratio has its power of 3 in the denominator, then the 5-limit frequency ratio has a power of 5 in the denominator. To a first approximation, 5-limit just intonation replaces large powers of 3 with small powers of 5, at least for these eight major and minor intervals.
Okay, so Pythagorean tuning sounds kind of bad. We'd like some of the intervals to be tuned closer to the frequency ratios above with factors of five. We could use a rank-2 tuning system like 12-EDO and Quarter-Comma Meantone to detune the pure intervals a little in service of improving the impure intervals.... but why not just make them all sound good?
Introducing: 5-limit just intonation, a rank-3 tuning system which tunes rank-3 intervals to rational frequency ratios. Rank-3 intervals can be represented with vectors of 3 integers, and this lets us naturally put frequency ratios with factors of three different primes (2, 3, and 5) in a one-to-one correspondence with our intervals. Basically, the exponents of the prime harmonics for a frequency ratio give us a 3-dimensional vector in frequency space, and the tuning system connects the frequency space to the interval space.
If you study the table showing how 5-limit ratios can simplify Pythagorean tunings, you can start to see that there's a lot of structure in the simplifications, that the 3-limit and 5-limit ratios have a very regular relationship.
For one thing, all of the Pythagorean ratios are either raised or lowered by a factor of (81/80) to get the simplified version. For example, the Pythagorean major third is tuned to (81/64). If we lower its frequency by a factor of (81/80), then we get (5/4), also known as the "just" or "5-limit" major third,
(81/64) / (81/80) = (5/4)
Let's do another. The Pythagorean minor seventh is tuned to (16/9). If we raise its frequency by a factor of 81/80, then we get (9/5), also known as a "just minor seventh".
(16/9) * (81/80) = (9/5)
To do the analogous calculation additively in interval space will require some new terminology: There's a rank-3 interval called the Acute Unison, or Ac1, and 5-limit just intonation tunes Ac1 to (81/80). The inverse of the acute unison, is the grave unison, justly tuned to (80/81):
P1 - Ac1 = Gr1
(1/1) / (81/80) = (80/81)
So "grave" and "acute" are opposite interval qualities, much like "minor" pairs with "major" and "augmented" pairs with "diminished". In 5-limit just intonation, the interval called "m7" is justly tuned to 9/5. The ratio that we formerly justly associated with the minor seventh in the Pythagorean world, being a factor of (81/80) smaller than (9/5), is an acute unison less than our new minor seventh, so we called it a grave minor seventh.
m7 - Ac1 = Grm7
(9/5) / (81/80) = 16/9
Let's look at a few more.
...
The Pythagorean major second, M2, is tuned to (9/8) and its 5-limit version is (10/9). The Pythagorean M2 divided by the Justly-tuned M2 gives the same frequency ratio:
(9/8) / (10/9) = (81/80)
For the minor third, the direction switches: the justly-tuned m3 divided by the Pythagorean-tuned m3 produces the usual suspect:
(6/5) / (32/27) = (81/80)
And likewise, with the minor second, the justly-tuned frequency ratio has to be on top of the Pythagorean one for us to get our old friend:
(16/15)/ (256/243) = (81/80)
It might seem kind of arbitrary that the impure intervals in 5-limit just intonation are sometimes derived from the Pythagorean ones by raising by a comma or by lowering by a comma. But you just do whichever one gives you the simpler fraction - the one where a large power of 3 is replaced with a small power of 5. Also, the frequency ratios for the major intervals in just intonation are all regularly lowered by (81/80) relative to Pythagorean tuning, while the minor intervals in just intonation are all regularly raised by (81/80).
I don't really know a good way to remember all of the justly tuned frequency ratios for the impure rank-3 intervals, but this at least lets you generate them if you know how to build up Pythagorean intervals and frequency ratios by chains of perfect fifths.
Let's talk about some heuristics for learning the just frequency ratios anyway. First, we should all memorize that M3 is tuned to the octave-reduced fifth harmonic, 5/4. Reduced prime harmonics are super important in microtonal music and the major third is the interval that's associated with the fifth harmonic. Learn it, know it, love it. The major third's frequency ratio, 5/4, is a nice "super-particular" ratio (i.e. a ratio of the form n+1 / n). The minor third in just intonation is tuned to another nice super particular ratio 1 degree up, i.e. 6/5. Divide (2/1) by those to get the frequency ratios for the octave complements, the m6 and the M6, respectively:
P8 - M3 = m6
(2/1) / (5/4) = 8/5
and
P8 - m3 = M6
(2/1) / (6/5) = 5/3
How do we memorize the 2nd and 7ths? The M2 is justly tuned to (10/9), a super particular ratio one degree up from the Pythagorean M2, (9/8). The (9/8) is impossible for me to forget because it's the gap between a pure perfect 4th (tuned to 4/3) and a pure perfect 5th (tuned 3/2).
P5 - P4 = M2 in Pythagorean tuning
(3/2) / (4/3) = 9/8
And (9/8) is still the gap between them in 5-limit just intonation, since the pure intervals like P5 and P4 don't change, but (9/8) isn't the name for the major second any more. In 5-limit just intonation, the major second is lowered by (81/80), giving (10/9), and the frequency ratio (9/8), which is an acute unison higher than the major second, is called an acute major second, AcM2.
P5 - P4 = AcM2 in 5-limit just intonation
Enough sources incorrectly say that (9/8) is the tuned value for M2 in just intonation that I've learned (10/9) through sheer frustration. But also, (10/9) is a nice super particular ratio that's one degree up from the Pythagorean version. You could learn it that way instead of through frustration.
The minor seventh, m7, is the octave complement of this,
P8 - P2 = m7
so it's justly tuned to nine fifths:
(2/1) / (10/9) = (9/5)
Easy. Sadly, I don't have any mnemonic heuristics for teaching or remembering the justly tuned values of the minor second and the major seventh. But here they are again for good measure:
m2 : 256/243 → 16/15
M7 : 243/128 → 15/8
I guess the major seventh is the reduced 15th harmonic. Fifteen isn't as important as five, but it's something. Major third = reduced fifth harmonic, Major seventh = reduced fifteenth harmonic. Sure.
A quick point of terminology: In traditional music theory, either the Acute unison or its frequency ratio, (81/80), might be called a "syntonic comma". I think "syntonic" means "having the same tone" and is used because it doesn't change an interval's frequency ratio very much. But what's a "comma"? Any intervals that shows up as a difference between related intervals is called a comma, especially if it's tuned to a small value, perhaps less than 50 cents. The syntonic comma has a cent value of
1200 * log_2(81/80) ~ 21.5 cents
Okay, so lots of these new 5-limit just intonation intervals differ from the old ones by an acute unison. We will want to capture this Acute Unison comma structure in the names of our rank-3 intervals, so that we can point to two intervals and quickly say, "These two pitches are related by the same commas that relates Pythagorean and Just tuning". And we will.
There's some other comma structure in the names of the just intervals we've already seen that we'll want to characterize and incorporate into a regular naming scheme. In rank-2 intervals, the difference between a major Nth and a minor Nth was always an augmented unison, A1, which was tuned to a frequency ratio of (2187/2048). For example, a major third minus a minor third was an augmented unison:
M3 - m3 = A1
(81/64) / (32/27) = (2187/2048)
and a major seventh minus a minor seventh was the same:
M7 - m7 = A1
(243/128) / (16/9) = (2187/2048)
When we introduce these new five-limit frequency ratios for the impure intervals, there's still a frequency ratio which consistently separates them, and we shall continue to call this the (5-limit) tuned value for the augmented unison. It happens to be (25/24). For example,
M2 - m2 = A1
(10/9) / (16/15) = (25/24)
or
M3 - m3 = A1
(5/4) / (6/5) = (25/24)
It's pretty cool that things keep working analogously, right? Let's do a quick recap. The acute unison, Ac1, with a just frequency ratio of (81/80) is a new rank-3 interval which relates the old Pythagorean frequency ratios for impure intervals to the new 5-limit just intonation frequency ratios for impure intervals. The augmented unison, A1, with a 5-limit frequency ratio of (25/24), relates rank-3 major Nths to rank-3 minor Nths, just as the rank-2 augmented unison related the rank-2 major Nths and minor Nths.
The 5-limit version of the augmented unison happens to be two syntonic commas lowered relative to the Pythagorean value:
(2187/2048) / (81/80)^2 = (25/24)
I think of this as being a consequence of the fact that the 5-limit major intervals are all lowered by a syntonic comma relative to Pythagoras and the 5-limit minor intervals are all raised by a syntonic comma relative to Pythagoras. It's not super important to have a good mental model of this: I just wanted to show that not all 5-limit frequency ratios for rank-3 intervals with rank-2 names can be obtained from Pythagorean tuning by one step of syntonic comma simplification.
Who do we have to thank for 5-limit tuning? Most of the credit goes to Claudius Ptolemy, a Greco-Egyptian polymath who lived in Egypt under Roman rule, from 100 A.D. to 170 A.D. He was some 600 years after Pythagoras.
One of Ptolemy's scales was 5-limit in its tuning and we call it "Ptolemy's intense diatonic scale". It's almost the same as the 5-limit simplification of Pythagorean tuning I presented above, with one deviation. Ptolemy kept the Pythagorean M2 plain, but lowered the frequency ratios of the M3, M6, and M7 by a justly tuned syntonic comma, 81/80. If we take octave complements in the obvious way, then this means that the m7 (~ M2) stays Pythagorean, but we raise the tuned values of m6 (~ M3), m3 (~ M6), and m2 (~ M7) by a syntonic comma. Here are the natural intervals of Ptolemy's intense diatonic scale:
1/1 :: P1
16/15 :: 5-limit m2 (raised by syntonic comma relative to Pythagorean m2) # inferred
9/8 :: Pythagorean M2
6/5 :: 5-limit m3 (raised by a syntonic comma) # inferred
5/4 :: 5-limit M3 (lowered by a syntonic comma)
4/3 :: P4
3/2 :: P5
8/5 :: 5-limit m6 (raised by a syntonic comma) # inferred
5/3 :: 5-limit M6 (lowered by a syntonic comma)
16/9 :: Pythagorean m7 # inferred
15/8 :: 5-limit M7 (lowered by a syntonic comma)
This only differs from modern 5-limit just intonation on the Major Second and Minor Seventh intervals, which we do not leave Pythagorean but adjust in their tunings like all the other impure intervals. And then everything's even and regular and beautiful, with major intervals all being lower by a comma, and minor intervals all being raised by a comma. And consequently, all the minor Nths and major Nths are all separated by an acute unison, t(Ac1) = (25/24). Some Ptolemy fans will still tell you to keep the M2 and m7 tuning Pythagorean. It's also weirdly common to see people giving a Pythagorean frequency ratio for the M2 and a 5-limit frequency ratio for the m7, which breaks the octave complement structure. Pretty gross.
I would support using 10/9 as the just tuning for the rank-2 major second even if it sounded horrible. That's how important mathematical regularity is. Fortunately, it doesn't sound bad. It sounds better. Chords with the 10/9 tuned major second (and the 20/9 tuned major ninth) sound significantly better to my ears, at least on the major tonic. So I don't know what's going on with Ptolemy and Ben Johnston and everyone else. But we're going to do better. We'll be regular *and* beautiful in procedure and structure and notation and sound. And acute major seconds will still show up everywhere: they're good and unavoidable. But they're the less important of the two intervals and get a more complex name and a more distance place from P1 on the 3D lattice of intervals.
In addition to Ptolemy's Intense diatonic scales, "Rast" is another famous historic diatonic scale that partly shifts Pythagorean tuning toward 5-limit just intonation. Rast is the fundamental middle eastern diatonic scale, and I think it will be interesting to compare the three scales, both to show the regularity of the modern system and to see the melodic character of historic scales that approximate the modern diatonic 5-limit scale.
Here are the frequency ratios of Rast:
1/1 :: P1
9/8 :: Pythagorean M2
5/4 :: 5-limit M3
4/3 :: P4
3/2 :: P5
27/16 :: Pythagorean M6
15/8 :: 5-limit M7
2/1 :: P8
Now, 5-limit just intonation has names for any frequency ratio made of powers of 2, 3, and 5. We could have used rank-3 interval names for all the frequency ratios above, e.g. the acute major second, AcM2, is tuned to 9/8 in 5-limit just intonation. I'm just notating the Pythagorean names here to show how the rank-2 system relates to the rank-3 system.
We could infer a chromatic scale from Rast by using octave complements:
1/1 :: P1
16/15 :: 5-limit m2 # inferred
9/8 :: Pythagorean M2
32/27: Pythagorean m3 # inferred
5/4 :: 5-limit M3
4/3 :: P4
3/2 :: P5
8/5 :: 5-limit m6 # inferred
27/16 :: Pythagorean M6
16/9 :: Pythagorean m7 # inferred
15/8 :: 5-limit M7
2/1 :: P8
It's a little weird to do this though. Of the inferred frequency ratios above, I've seen 16/15 used in analyzing melodic intervals between Turkish scale degrees, but not used as a scale degree itself, and I don't think I've seen the other ones at all. So maybe I'm doing something un-Turkish by filling in the gaps with octave complements, but I still think it's interesting.
Let's listen to the difference between the three 5-limit scales, first the major/diatonic scales that are actually attested and then we'll listen to the inferred chromatic scales. I'm going to warn you right now, if you grew up with western music, you're brain is pretty keyed in to 12-TET logarithmic equal spacing and these might sound a little wonky. I'll use a 5-limit diminished fifth to fill in the P4 to P5 gap for all of them.
Diatonic Major in Modern Just intonation, Ptolemy's Intense Diatonic scale, and Rast : ...
Chromatic Just intonation, Ptolemy's Intense Chromatic (inferred), Chromatic Rast (inferred): ...
There's one more interval which we'll use to make our 3-component basis. Have you guessed it? It's okay, I'll tell you: It's the diminished second, d2! The rank-3 Lilley basis, (Ac1, A1, d2) is just like the rank-2 Lilley basis, (A1, d2), with the addition of the Acute unison, and also the A1 and d2 basis components get tuned to new 5-limit frequency ratios.
With rank-2 intervals, a diminished second is just a minor second that you diminish, i.e. subtract an augmented unison from. We can still define the diminished second interval, d2, as a minor second minus an augmented unison for rank-3 interval space:
m2 - A1 = d2
and from this we find the justly tuned value for d2:
(16/15) / (25/24) = (128/125)
This guy also has a weird name in traditional music theory: the rank-3 diminished second and/or its justly tuned value can be called the "diesis" in traditional music theory. It also happens to also be the difference between an octave and three stacked major thirds:
P8 - 3 * M3 = d2
(2/1) / (5/4)^3 = (128/125)
.
In the rank-3 Lilley basis, the A1 component continues to be the approximate number of steps of 12-EDO that you need to find a similar frequency ratio to the justly tuned value for the interval, e.g. an A1 component of 5 means that the interval's frequency ratio is probably something like going up five keys on a piano or five frets on a guitar. The d2 component continues to be the interval's ordinal minus one. And the acute unison component, Ac1, ... it's also there. It's there to make sure that the nicest 5-limit frequency ratios end up on the intervals with simple names, like m2 and M6.
Here's a short table with interval coordinates in the rank-3 Lilley basis, (Ac1, A1, d2) for some simple intervals:
P1 : (0, 0, 0) # 1/1
d2 : (0, 0, 1) # 128/125
A1 : (0, 1, 0) # 25/24
m2 : (0, 1, 1) # 16/15
M2 : (0, 2, 1) # 10/9
m3 : (1, 3, 2) # 6/5
M3 : (1, 4, 2) # 5/4
d4 : (1, 4, 3) # 32/25
A3 : (1, 5, 2) # 125/96
P4 : (1, 5, 3) # 4/3
A4 : (1, 6, 3) # 25/18
d5 : (2, 6, 4) # 36/25
P5 : (2, 7, 4) # 3/2
d6 : (2, 7, 5) # 192/125
A5 : (2, 8, 4) # 25/16
m6 : (2, 8, 5) # 8/5
M6 : (2, 9, 5) # 5/3
A6 : (2, 10, 5) # 125/72
d7 : (3, 9, 6) # 216/125
m7 : (3, 10, 6) # 9/5
M7 : (3, 11, 6) # 15/8
d8 : (3, 11, 7) # 48/25
A7 : (3, 12, 6) # 125/64
P8 : (3, 12, 7) # 2/1
And also, after the pound sign on each line above, we have listed the tuned frequency ratios for the intervals, using the mapping
t(Ac1) = 81/80
t(A1) = 25/24
t(d2) = 128/125
Let's do one! Let's use the basis intervals and their tuned values to figure out the frequency ratio for a rank-3 interval from its coordinates.
Let's find the tuned value for the augmented sixth, t(A6), from the interval's rank-3 coordinates
A6 = (2, 10, 5) # 125/72
The ratio after the sharp symbol is what we'll be deriving.
Just like in rank-2 tuning systems, these coordinates are multiplicative coefficients for the basis intervals:
A6 = 2 * Ac1 + 10 * A1 + 5 * d2
The coordinates are also exponents for the tuned values of the basis intervals:
t(A6) = t(Ac1)^2 * t(A1)^10 * t(d2)^5
t(A6) = (81/80)^2 * (25/24)^10 * (128/125)^5 = 125/72
Great success!
When we talk about rank-2 intervals, there are lots of tuning systems, and it's easy to remember that the intervals aren't the same as frequency ratios, because each tuning system will assign different frequency ratios to the intervals. But with rank-3 intervals, it's basically just 5-limit just intonation that stands out as the main tuning system, and so it's easy to forget that M7 is not the same as 15/8. To help us remember the distinction (and because it's really cool), later on in this post we'll talk about making EDO tuning systems from rank-3 interval space and maybe higher ranks / higher prime limits. Different tuning systems, different frequency ratios for the intervals, clear separation of domains. It's going to be great. We'll do that once we talk about prime harmonic bases.
But first we need to learn how to name rank-3 intervals! I promised you that comma bases, and in particular Lilley comma bases, are great for naming intervals. So let's use the rank-3 Lilley comma basis for naming some rank-3 intervals!
Most resources online that understand the difference between frequency ratios and intervals still have really weird ugly irregular names for the rank-3 intervals. Part of the beauty of Lilley bases is that things are dead regular. Rank-3 intervals look just like rank-2 intervals, i.e. you have an ordinal preceded by some adjectives like (Perfect, Major, Minor, Augmented, Diminished). The only difference is that we add on a new pair of adjectives, (Acute) and (Grave). I tried tracking down the origin of these names. So far as I can tell, they're most attributable to Alexander Ellis, who translated Hermann von Helmholtz's "Sensations of Tone" and made lots of foot notes and improvements of notation. The Grave (`) and Acute (´) refer to typographic accent marks that he'd put after pitch classes to indicate a modification by an acute unison. These accent marks seem to reflect their use in Ancient Greek polytonic orthography: Ancient Greek was a somewhat tonal language ("pitch-accented"), and diacritic marks were used to indicate pitch: the grave accent marked a lower pitch and the acute accent marked a higher pitch. I tried tracking down earlier use of "Grave" and "Acute" in works about just intonation, and mostly found out that no one should ever read the drivel produced by John Farey senior, certainly not multiple papers of his in trying to crack the code of his notation. There's nothing of value to learn. I hope if you do some scholarship in the history of Just Intonation, you skip right over Farey and save yourself the time.
Anyway, the naming of intervals! 5-limit just intonation is a rank-3 tuning system (i.e. represented by vectors with three component numbers), and the interval names should naturally extend those of rank-2 tuning system (the naming system and algebra for which I also learned from ejlilley). In particular, all of the intervals here either have rank-2 names, or they have rank-2 names preceded by "Grave" or "Acute" (or repetitions of one of those, like "Grave grave diminished second"). In this system, we don't need a random mix of extra adjectives like narrow, wide, semi-augmented, semi-diminished, Pythagorean, classic, greater, or lesser. We also don't really need extra nouns like diesis, apotome, and limma. It's so nice and tidy.
Here's the general structure of names: An interval has zero or more "Grave"s and "Acute"s at the front, but not both. Then the interval has zero or more "diminished"s and "augmented"s, but not both. Then the interval has one of three sonorities (Major, Minor, or Perfect), and finally there's an ordinal number (First, Second, Third, Fourth, ...). The Perfect and Minor sonorities are omitted for brevity when preceded by a diminution.
dP8 -> d8
dm7 -> d7
The Perfect and Major sonorities are also omitted when preceded by an augmentation.
AP1 -> A1
AM3 -> A3
The Perfect sonority is also omitted when immediately preceded by an Acute or Grave.
AcP15 -> Ac15
GrP8 -> Gr8
If it's a modified interval, it's not Perfect anymore. For even more brevity, we write "Acdd2" for "acute diminished diminished second" and "GrM6" for "grave major sixth" and "Acm6" for "acute minor sixth" and so on.
Ejlilley's code shows the logic for assigning names to intervals represented in the (Ac1, A1, d2) basis, and this post is mostly just showing off how beautiful his system is. He walks you through building up all the intervals from the basis vectors, and then he condenses it all down and generalizes it in the jToQual function/switch-case thing. The only changes you need to make to jToQual so that the 2nd intervals are as regular and beautiful as the others (i.e. to make the major second 5-limit instead of Pythagorean as Ptolemy did) is to replace Lesser with Maj on line 242, and then delete line 243. I didn't actually run his code ever, I just translated it line for line into Python. But it worked in Python.
Another common basis for representing 5-limit just intonation intervals is the (P8, P5, M3) basis.
From knowing that a diminished fourth is (1, 0, -2) in the (P8, P5, M3) basis, and that the frequency ratios associated with the basis vectors in 5-limit just intonation are (2/1), (3/2), and (5/4) respectively, you can find d4's frequency ratio as (2/1)^(1) * (3/2)^(0) * (5/4)^(-2) = 32/25.
You can also calculate frequency ratios using the (Ac1, A1, d2) basis. The frequency ratios for the basis vectors are (81/80), (25/24), and (128/125) respectively, and you just raise those to the appropriate exponents and multiply together like before. The vector for the diminished fourth is (1, 4, 3) in the (Ac1, A1, d2) basis, so the frequency ratio is
(81/80)^(1) * (25/24)^(4) * (128/125)^(3) = 32/25
just as before.
Below I give a list of some rank-3 intervals by their names, by their [P8, P12, M17]-basis coordinates, and by their (Ac1, A1, d2)-coordinates. The square brackets and round brackets are just there to distinguish the basis in the table; they're not different objects mathematically. I also list the frequency ratio justly associated with each interval at the end of the line.
Grd1 : [7, -3, -1] :: (-1, -1, 0) # 128/135
Gr1 : [4, -4, 1] :: (-1, 0, 0) # 80/81
Grd2 : [11, -4, -2] :: (-1, 0, 1) # 2048/2025
GrA1 : [1, -5, 3] :: (-1, 1, 0) # 250/243
Grm2 : [8, -5, 0] :: (-1, 1, 1) # 256/243
GrM2 : [5, -6, 2] :: (-1, 2, 1) # 800/729
GrA2 : [2, -7, 4] :: (-1, 3, 1) # 2500/2187
d1 : [3, 1, -2] :: (0, -1, 0) # 24/25
P1 : [0, 0, 0] :: (0, 0, 0) # 1/1
d2 : [7, 0, -3] :: (0, 0, 1) # 128/125
A1 : [-3, -1, 2] :: (0, 1, 0) # 25/24
m2 : [4, -1, -1] :: (0, 1, 1) # 16/15
M2 : [1, -2, 1] :: (0, 2, 1) # 10/9
Grd3 : [8, -2, -2] :: (0, 2, 2) # 256/225
A2 : [-2, -3, 3] :: (0, 3, 1) # 125/108
Grm3 : [5, -3, 0] :: (0, 3, 2) # 32/27
GrM3 : [2, -4, 2] :: (0, 4, 2) # 100/81
Grd4 : [9, -4, -1] :: (0, 4, 3) # 512/405
GrA3 : [-1, -5, 4] :: (0, 5, 2) # 625/486
Gr4 : [6, -5, 1] :: (0, 5, 3) # 320/243
GrA4 : [3, -6, 3] :: (0, 6, 3) # 1000/729
Acd1 : [-1, 5, -3] :: (1, -1, 0) # 243/250
Ac1 : [-4, 4, -1] :: (1, 0, 0) # 81/80
Acd2 : [3, 4, -4] :: (1, 0, 1) # 648/625
AcA1 : [-7, 3, 1] :: (1, 1, 0) # 135/128
Acm2 : [0, 3, -2] :: (1, 1, 1) # 27/25
AcM2 : [-3, 2, 0] :: (1, 2, 1) # 9/8
d3 : [4, 2, -3] :: (1, 2, 2) # 144/125
AcA2 : [-6, 1, 2] :: (1, 3, 1) # 75/64
m3 : [1, 1, -1] :: (1, 3, 2) # 6/5
M3 : [-2, 0, 1] :: (1, 4, 2) # 5/4
d4 : [5, 0, -2] :: (1, 4, 3) # 32/25
A3 : [-5, -1, 3] :: (1, 5, 2) # 125/96
P4 : [2, -1, 0] :: (1, 5, 3) # 4/3
A4 : [-1, -2, 2] :: (1, 6, 3) # 25/18
Grd5 : [6, -2, -1] :: (1, 6, 4) # 64/45
Gr5 : [3, -3, 1] :: (1, 7, 4) # 40/27
Grd6 : [10, -3, -2] :: (1, 7, 5) # 1024/675
GrA5 : [0, -4, 3] :: (1, 8, 4) # 125/81
Grm6 : [7, -4, 0] :: (1, 8, 5) # 128/81
GrM6 : [4, -5, 2] :: (1, 9, 5) # 400/243
GrA6 : [1, -6, 4] :: (1, 10, 5) # 1250/729
Acd3 : [0, 6, -4] :: (2, 2, 2) # 729/625
Acm3 : [-3, 5, -2] :: (2, 3, 2) # 243/200
AcM3 : [-6, 4, 0] :: (2, 4, 2) # 81/64
Acd4 : [1, 4, -3] :: (2, 4, 3) # 162/125
AcA3 : [-9, 3, 2] :: (2, 5, 2) # 675/512
Ac4 : [-2, 3, -1] :: (2, 5, 3) # 27/20
AcA4 : [-5, 2, 1] :: (2, 6, 3) # 45/32
d5 : [2, 2, -2] :: (2, 6, 4) # 36/25
P5 : [-1, 1, 0] :: (2, 7, 4) # 3/2
d6 : [6, 1, -3] :: (2, 7, 5) # 192/125
A5 : [-4, 0, 2] :: (2, 8, 4) # 25/16
m6 : [3, 0, -1] :: (2, 8, 5) # 8/5
M6 : [0, -1, 1] :: (2, 9, 5) # 5/3
Grd7 : [7, -1, -2] :: (2, 9, 6) # 128/75
A6 : [-3, -2, 3] :: (2, 10, 5) # 125/72
Grm7 : [4, -2, 0] :: (2, 10, 6) # 16/9
GrM7 : [1, -3, 2] :: (2, 11, 6) # 50/27
Grd8 : [8, -3, -1] :: (2, 11, 7) # 256/135
GrA7 : [-2, -4, 4] :: (2, 12, 6) # 625/324
Gr8 : [5, -4, 1] :: (2, 12, 7) # 160/81
GrA8 : [2, -5, 3] :: (2, 13, 7) # 500/243
Acd5 : [-2, 6, -3] :: (3, 6, 4) # 729/500
Ac5 : [-5, 5, -1] :: (3, 7, 4) # 243/160
Acd6 : [2, 5, -4] :: (3, 7, 5) # 972/625
AcA5 : [-8, 4, 1] :: (3, 8, 4) # 405/256
Acm6 : [-1, 4, -2] :: (3, 8, 5) # 81/50
AcM6 : [-4, 3, 0] :: (3, 9, 5) # 27/16
d7 : [3, 3, -3] :: (3, 9, 6) # 216/125
AcA6 : [-7, 2, 2] :: (3, 10, 5) # 225/128
m7 : [0, 2, -1] :: (3, 10, 6) # 9/5
M7 : [-3, 1, 1] :: (3, 11, 6) # 15/8
d8 : [4, 1, -2] :: (3, 11, 7) # 48/25
A7 : [-6, 0, 3] :: (3, 12, 6) # 125/64
P8 : [1, 0, 0] :: (3, 12, 7) # 2/1
A8 : [-2, -1, 2] :: (3, 13, 7) # 25/12
Acd7 : [-1, 7, -4] :: (4, 9, 6) # 2187/1250
Acm7 : [-4, 6, -2] :: (4, 10, 6) # 729/400
AcM7 : [-7, 5, 0] :: (4, 11, 6) # 243/128
Acd8 : [0, 5, -3] :: (4, 11, 7) # 243/125
AcA7 : [-10, 4, 2] :: (4, 12, 6) # 2025/1024
Ac8 : [-3, 4, -1] :: (4, 12, 7) # 81/40
AcA8 : [-6, 3, 1] :: (4, 13, 7) # 135/64
We haven't talked about the (P8, P12, M17) basis yet, but it's of comparable importance to Lilley's (Ac1, A1, d2) basis. Each component of (P8, P12, M17) is justly associated with a prime harmonic, namely (2/1, 3/1, 5/1), and because of this, coordinates in this basis can be inferred from the prime factorization of the justly-associated frequency ratio. More on that in a future post. For example,
m7 : [0, 2, -1] :: (3, 10, 6) # 9/5
Minor seventh is justly associated to 9/5, which is
(2^0 * 3^2 * 5^-1)
And you can see that the exponents of the prime factors are our coordinates.
Conversion between the (Ac1, A1, d2) and (P8, P12, M15) bases is straightforward. Let's take the rank-3 major sixth, M6, as an example:
M6 : [0, -1, 1] :: (2, 9, 5) # 5/3
We'll convert from the harmonic prime basis coordinates, (0, -1, 1), to some unknown coordinates in the Lilley basis, possibly (2, 9, 5), we'll see.
To convert into the Lilley basis, we just need to know the old basis vectors, (P8, P12, M15), as they are represented in the new system, which in this case in the Lilley basis. They happen to be
P8: (3, 12, 7)
P12: (5, 19, 11)
M17: (7, 28, 16)
Next we multiple the old interval coordinates by this 3x3 matrix:
(0, -1, 1) * ((3, 12, 7), (5, 19, 11), (7, 28, 16)) = (2, 9, 5).
Success! Ah, but what if we want to go the other way? We start with M6 in the Lilley basis, (2, 9, 5). In the same fashion, we need to know the old basis vectors, (Ac1, A1, d2), as they are represented in the new system, which in this case is the prime harmonic basis.
Ac1: [-4, 4, -1]
A1: [-3, -1, 2]
d2: [7, 0, -3]
Now we just multiple through again:
(2, 9, 5) * ((-4, 4, -1), (-3, -1, 2), (7, 0, -3)) = (0, -1, 1)
Another smashing success. The two matrices are inverses of each other, so if, for example, you knew the prime harmonic coordinates for (Ac1, A1, d2), but not the Lilley coordinates for (P8, P12, M15), then you could just do the first conversion like this:
(0, -1, 1) * inverse(((-4, 4, -1), (-3, -1, 2), (7, 0, -3))) = (2, 9, 5)
provided you can find matrix inverses.
Summary: To convert an interval from an old basis to a new basis, you find the old basis vectors in the new basis and multiply the old interval vector by the old-to-new matrix. You can also use the inverse of a new-to-old-matrix, if that's more convenient.
You can also do basis conversion using Cramer's rule, as we did with rank-2 intervals, although Cramer's rule gets a little uglier in 3 dimensions, and much uglier in higher dimensions. Lets do the ugly thing as proof.
Suppose you have an interval N expressed in a familiar basis like (Ac1, A1, d2):
(m, n, o) = N
and you want new coordinates
(x, y, z) = N
in some weird new basis made of three rank-3 intervals B1, B2, and B3. We'll also need to know the coordinates for B1, B2, B3 in the same familiar basis, like (Ac1, A1, d2):
(a, b, c) = B1
(d, e, f) = B2
(g, h, i) = B3
For example, let's say that N is GrA4
GrA4 = (m, n, o) = (0, 6, 3)
And our basis elements are:
P8 = (a, b, c) = (3, 12, 7)
P5 = (d, e, f) = (2, 7, 4)
M3 = (g, h, i) = (1, 4, 2)
If we call the basis matrix A, then its determinant has the closed form:
|A| = a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g)
We can substitute (m, n, o) in for each row vector in the basis matrix, once at a time, to get three altered matrices called A1, A2, A3. Their determinants are
|A1| = m * (e * i - f * h) - n * (d * i - f * g) + o * (d * h - e * g) # substituting (m, n, o) in for (a, b, c)
|A2| = a * (n * i - o * h) - b * (m * i - o * g) + c * (m * h - n * g) # substituting (m, n, o) in for (d, e, f)
|A3| = a * (e * o - f * n) - b * (d * o - f * m) + c * (d * n - e * m) # substituting (m, n, o) in for (g, h, i)
.
And now we're ready! The coordinates (x, y, z) for N in the (B1, B2, B3) basis will be
x = |A1| / |A|
y = |A2| / |A|
z = |A3| / |A|
That's it! If you do all the variable substitutions, you'll find that (x, y, z) = (3, -6, 3). This means that
GrA4 = 3 * P8 + -6 * P5 + z * M3
We know the just tunings for P8, P5, and M3, but if you want to detune them a little bit and see how that affects other intervals like GrA4, this shows you how. You can pick different frequency ratios for the basis elements and use the frequency space version of the previous equation for tuning:
t(N) = t(B1)^x * t(B2)^y * t(B3)^z
i.e.
t(GrA4) = t(P8)^3 * t(P5)^(-6) * t(M3)^3
We'll do more of that in the future for fun and profit. And now you have a good introduction to the mathematics of 5-limit just intonation, rank-3 interval space, and rank-3 basis conversion.