A rank-2 syntonic tuning system is determined by fixing the frequency ratio values of two linearly independent basis vectors. For almost all tuning systems, one of those basis vectors is the octave, P8, which we fix to a pure frequency ratio of two, t(P8) = 2/1, leaving us only one free parameter. If the second basis intervals of a rank-2 syntonic tuning system with pure octaves is set to a frequency ratio of 1, then an EDO is generated, i.e. we get a tuning system that divides the Octaves into logarithmically Equal Divisions. The most famous of these is 12 tone equal temperament, which can be generated by tempering out the diminished second, d2.
Setting that frequency ratio of the second basis value to 1 will be called "tempering out" throughout this post. We temper out d2 to get 12-TET.
Let's represent intervals in the (A1, d2) basis. This python code snippet might be of some help: it finds the name of a rank-2 interval with integral coefficients, for example, (7, 4) = P5 and (12, 7) = P8.
We can temper out any interval (a, b) besides (0, 0) = P1 to get an EDO tuning system. Oh, and of course you can't use P8 either if you've already set that to 2. And multiples of P8 don't work. Anyway. The number of divisions of the octave will be{edo_divisions = abs(a * 7 - b * 12) / gcd(a, b)}, where abs() is the absolute value function and gcd() is the greatest common divisor. We can substitute (a, b) = (0, 1) = d2 into this, and as expected we find that tempering out d2 produces a 12-EDO.
Interestingly, multiple intervals can be tempered out to generate EDO tuning systems with the same number of divisions. For example, tempering out any of these intervals
(37, 19) = AAAA20
(25, 12) = AAAA13
(13, 5) = AAAA6
(-1, 2) = dddd3
(11, 9) = dddd10
(23, 16) = dddd17
(35, 23) = dddd24
(47, 30) = dddd31
will produce a 31-EDO. And maybe there are other intervals with larger coefficients that can do the same. Even more interestingly, they're not all the same EDO. They're all tuning systems that divide the octave into 31 logarithmically equal divisions, so they have the same pitches, but the tuning systems map different intervals to those pitches. For an example, let's look at how tempering out these intervals will map (7, 4) = P5 to the pitch space.
In general, to tune a rank-2 interval (m, n) in a tuning system, we start with our two basis intervals (a, b) and (c, d), and fixed values for them, t(a, b) = basis_value1 and t(c, d) = basis_value2. Then
frequency_ratio = t(m, n) = (basis_value1)^x * (basis_value2)^y
where
y = (a * n - b * m) / (a * d - b * c)
.
This simplifies a lot for EDOs. Since one of the basis vectors has a value of one, and one raised to a power is one, the frequency ratio formula just becomes:
frequency_ratio = 2^y
where
y = (a * n - b * m) / (a * 12 - b * 7)
.
With this, we're ready to calculate the frequency ratio for the perfect fifth (n, m) = P5 = (7, 4) when we temper out different intervals (a, b). I think this is the least messy way to show them:
AAAA20: 15/31
AAAA13: 16/31
AAAA6: 17/31
dddd3: 18/31
dddd10: 19/31
dddd17: 20/31
dddd24: 21/31
dddd31: 22/31
.
The first line is to be read like this: tempering out a four times augmented 27th interval AAAA27, i.e. t(AAAA27) = 1, produces a 31-EDO tuning system in which the perfect fifth has a frequency ratio of t(P5) = 2^(14/31).
Isn't the spread on that table crazy? If you compose a song with a P1 and a P5, the ratio between them could be anywhere from 1.36 to 1.64 depending on the choice of tuning system. A ratio of 1.36 is like a P4 in 12-TET (or should I say, the 12-TET generated by tempering out d2?) and a ratio of 1.64 is like a M6. Four semitones! Holy shit.
When I first learned this, I thought, "Well, dang, I guess you can't compose music in interval space." But I can do anything. Let's take a song and hear what it sounds like in different 31 EDOs.
Here's a monophonic rendition of the folk tune "Down In The Valley" in a format I like to use that's heavily inspired by ABC notation: "G4,q C5,q D5,q | E5,d_h | C5,d_h | E5,q D5,q C5,q | D5,d_h | G4,q B4,q D5,q | F5,d_h | D5,d_h | B4,q C5,q D5,q | C5,d_h | G4,q C5,q D5,q | E5,d_h | C5,d_h | E5,q D5,q C5,q | D5,d_h | G4,q B4,q D5,q | F5,d_h | D5,d_h | B4,q C5,q D5,q | C5,d_h"
Notes consist of a pitch, like G4 or C5, a comma for a separator, and a note length, like q for quarter note or d_h for dotted half note. Bars are optionally separated by a pipe character |. I fixed C5 as the origin of my pitch space, despite it not being the lowest note in the song, so some of the song's pitches have associated intervals with 0 or negative ordinals, but it's fine:
"B4": "M0",
"C5": "P1",
"D5": "M2",
"E5": "M3",
"F5": "P4",
.
This mapping gives us a song in interval space: "P-2,q P1,q M2,q | M3,d_h | P1,d_h | M3,q M2,q P1,q | M2,d_h | P-2,q M0,q M2,q | P4,d_h | M2,d_h | M0,q P1,q M2,q | P1,d_h | P-2,q P1,q M2,q | M3,d_h | P1,d_h | M3,q M2,q P1,q | M2,d_h | P-2,q M0,q M2,q | P4,d_h | M2,d_h | M0,q P1,q M2,q | P1,d_h". Want to hear it rendered in the two most wildly differing 31-EDOs?
I thought I did too, but it's pretty bad. Tempering out the low end AAAA27 or the high end dddd31 both make the song fly all over the place. The familiar ordering of intervals from 12-TET is not preserved. Let's look at the table again:
(49, 26) = AAAA27
(37, 19) = AAAA20
(25, 12) = AAAA13
(13, 5) = AAAA6
(-1, 2) = dddd3
(11, 9) = dddd10
(23, 16) = dddd17
(35, 23) = dddd24
(47, 30) = dddd31
See how (-1, 2) = dddd3 has the smallest coefficients and the smallest ordinal in the interval name? That one works fine. Temper out dddd3 and it doesn't sound particularly different from 12-TET. Like I wouldn't have guessed if you'd randomly played it for me that it was in a microtonal tuning. I think there's some interesting mathematical investigation to be done here. There are some intervals like dddd3 that can be tempered out to produce tuning systems that sound something like 12-TET and there are others that make me regret getting up this morning. Heh heh, no it's not that bad.
Here's d2 (12-TET) in one ear and dddd3 in the other ear. It just has some nice width and warmth.
Here's AAAA27 in one ear and dddd31 in the other. It's something else.
Right now I think I can compose music in interval space rather than pitch space, but I need to find and target a class of related tuning systems that don't get too wibbly wobbly woo on me. But a little wibbly wobbly woo, that I'm okay with. Is there a class of tuning systems that induces the same 1D total ordering on 2D interval space as 12-TET? That's what I'm going to look for next. And they don't have to be EDOs, I just happened to see some EDOs with different P5s and thought it might make a good blog post.
Ooh! I just layered all four tuning systems together and got something approximately the right amount of spicy. Nice.
Huh! I tried some non-EDO tuning systems first (some of the ones named in ejlilley's Tuning.hs and two more that complete the pattern of using 5-limit just intonation values for rank-2 bases), and they all had the same total ordering over pitches as 12-TET, at least for the primitive rank-2 intervals (P1 m2 M2 m3 M3 P4 P5 m6 M6 m7 M7 P8).
Here are the values for the frequencies of the primitive rank-2 intervals above concert A, truncated to integers, for several non-EDO tuning systems. The values of 440 and 880 are omitted from all for brevity:
.
So, that's pretty cool, right? Maybe it's not too hard to compose in interval space after all. Maybe things don't usually jump around too much. Next I'll look into EDOs that preserve the total order of the primitive intervals.
Okay! If you temper out these ones to make EDOs, they keep the same total ordering for primitive rank-2 intervals as 12-TET: [m2, d2, d3, dd2, dd3, dd4, ddd2, ddd3, ddd4, ddd5, ddd6, dddd2, dddd3, dddd4, dddd5, dddd6, dddd7, ddddd2, ddddd3, ddddd4, ddddd5, ddddd6, ddddd7, ddddd8, ddddd9, dddddd10, dddddd2, dddddd3, dddddd4, dddddd5, dddddd6, dddddd7, dddddd8, dddddd9, ddddddd10, ddddddd2, ddddddd3, ddddddd4, ddddddd5, ddddddd6, ddddddd7, ddddddd8, ddddddd9, dddddddd10, dddddddd2, dddddddd3, dddddddd4, dddddddd5, dddddddd6, dddddddd7, dddddddd8, dddddddd9, ddddddddd10, ddddddddd2, ddddddddd3, ddddddddd4, ddddddddd5, ddddddddd6, ddddddddd7, ddddddddd8, ddddddddd9, dddddddddd10, dddddddddd2, dddddddddd3, dddddddddd4, dddddddddd5, dddddddddd6, dddddddddd7, dddddddddd8, dddddddddd9, ddddddddddd10, ddddddddddd3, ddddddddddd4, ddddddddddd5, ddddddddddd6, ddddddddddd7, ddddddddddd8, ddddddddddd9, dddddddddddd10, dddddddddddd3, dddddddddddd4, dddddddddddd5, dddddddddddd6, dddddddddddd7, dddddddddddd8, dddddddddddd9, ddddddddddddd10, ddddddddddddd4, ddddddddddddd5, ddddddddddddd6, ddddddddddddd7, ddddddddddddd8, ddddddddddddd9, dddddddddddddd4, dddddddddddddd5, dddddddddddddd7, dddddddddddddd8]. They're all straight shooters.
And these ones, they have their own orders: [M2, m3, M3, P4, P5, m6, M6, m7, M7, m9, M10, A1, A2, A3, A4, A5, A6, A7, A8, A9, A11, AA1, AA2, AA3, AA4, AA5, AA6, AA7, AA8, AA9, AAA1, AAA2, AAA3, AAA4, AAA5, AAA6, AAA7, AAA8, AAAA1, AAAA13, AAAA2, AAAA20, AAAA27, AAAA3, AAAA4, AAAA5, AAAA6, AAAAA1, AAAAA2, AAAAA3, AAAAA4, AAAAAA1, AAAAAA2, AAAAAA3, AAAAAA4, AAAAAAA1, AAAAAAA2, AAAAAAAA1, AAAAAAAA2, AAAAAAAAA1, AAAAAAAAAA1, d1, d10, d11, d12, d13, d4, d5, d6, d7, d8, d9, dd1, dd10, dd11, dd12, dd5, dd6, dd7, dd8, dd9, ddd1, ddd10, ddd12, ddd7, ddd8, ddd9, dddd1, dddd10, dddd12, dddd17, dddd24, dddd31, dddd8, dddd9, ddddd1, ddddd10, dddddd1, ddddddd1, dddddddd1, ddddddddd1, dddddddddd1]. They're black sheep. Although for a few of them, the problem might just be that tempering out the interval results in an EDO with fewer divisions that 12, so some of the intervals end up having the same pitch, which means there's some ambiguity in the order when my sorting function looks at them. Like tempering out d1 produces a 7-EDO, and 7-EDO can sound totally badass.
Here are some black sheep that produce EDOs with 12 or more divisions: [AA2, AA4, AA5, AA6, AA7, AAA2, AAA3, AAA4, AAA6, AAA7, AAA8, AAAA13, AAAA2, AAAA20, AAAA27, AAAA3, AAAA5, AAAA6, AAAAA2, AAAAA3, AAAAA4, AAAAAA2, AAAAAA3, AAAAAA4, AAAAAAA2, AAAAAAAA2, dd10, dd12, dd5, dd6, dd8, dd9, ddd12, ddd7, ddd8, ddd9, dddd10, dddd12, dddd17, dddd24, dddd31, dddd8, dddd9, ddddd10]. I think they're legitimately unruly.
What EDOs do we get if we just look at the straight shooters above? A good number of them are repeated, like there's a regular series of increasingly diminished intervals that all produce 12-TETS, but if we just look at the shortest interval that tempers out to an n-EDO, then we have:
No comments:
Post a Comment