I've never seen two tables give all the same names for intervals in 5-limit just intonation. The Xenharmonic wiki differs from Wikipedia differs from Anatomy Of An Octave. So of course I'm adding another system to the mix. It is ejlilley's system (Haskell code here) except that he uses historical names for some of the 2nd intervals ("lesser major seconds", "greater major seconds", and variations of those) where I'm just going for straight simplicity, unencumbered by historical names. Tremendous praise to ejlilley for his work. No one has ever explained just intonation to me in words a tenth as well as he did in code.
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. The Perfect and Major sonorities are also omitted when preceded by an augmentation. The Perfect sonority is also omitted when immediately preceded by an Acute or Grave. 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 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.
The more common basis for representing 5-limit just intonation intervals is the [P8, P5, M3] basis. The square brackets around these basis vectors aren't doing anything different from the parentheses; I just like to distinguish the two bases that way.
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 lots of intervals by their names, by their (Ac1, A1, d2) basis representations, by their [P8, P5, M3] basis representations, and by their frequency ratios. I've limited myself to intervals with small names, in the sense that they don't have repetitions of "grave"s, "acute"s, "diminished"s or "augmented"s.
Conversion between the (Ac1, A1, d2) and [P8, P5, M3] bases is straightforward if you know the representations of the basis vectors in the other system - in particular, if you know that:
and that
If we call the components of a vector in the (Ac1, A1, d2) representation (m, n, o) and we call the components of a vector in the [P8, P5, M3] basis [p, q, r], then converting from (m, n, o) to [p, q, r] requires only:
You can see that the columns of coefficients are just the (Ac1, A1, d2) basis vectors represented in the [P8, P5, M3] basis.
Likewise, to convert from [p, q, r] to (m, n, o), we only require:
And likewise here, the columns are [P8, P5, M3] in the (Ac1, A1, d2) basis.
No comments:
Post a Comment