Some verbs that can precede "that" as a relativizer of sentential complements

Consider: 

He #believed# that (the dog was alive).
He #said# that (the dog was alive).

The stuff in parentheses is a sentence that's an argument to the verb - i.e. a sentential complement - and the word "that" is a relativizer or complementizer that quotes the relative sentential complement. What other verbs can go between the hashes? I tried to make a little taxonomy. Certainly not complete, but I think it's a good start:

 Believe: anticipate assume believe envision expect feel gather guess imagine judge know presume reckon recollect remember repute suppose surmise suspect think
 Believe not: doubt disbelieve forget question
 Perceive: appreciate ascertain deduce detect determine discover discern infer figure find glean hear learn memorize notice observe overhear perceive read realize recognize relearn savor see sense smell taste witness
 Show: elucidate demonstrate establish explain explicate prove reveal show
 Say: announce articulate communicate convey claim ejaculate express indicate mention narrate note present recount recite reiterate relate relay remark repeat report say specify state tell warn
 Say not: denounce deny disavow reject
 Say (manner of sound production): babble bark bellow blab bleat blurt boom bray burble cackle chatter chirp cluck coo croak croon crow cry groan growl grumble grunt hiss holler hoot howl moan mumble murmur mutter purr roar scream screech shout shriek snap snarl squawk squeak squeal stammer stutter thunder tsk wail warble wheeze whimper whine whisper whistle whoop yammer yap yell yelp yodel
 Say definitely: assert avow charge certify confirm declare decree diagnose guarantee hold maintain ordain preach proclaim promise pronounce teach warrant
 Say indefinitely: hint imply mean suggest
 Say finally: accept acknowledge admit allow begrudge cede concede conclude confess confide consider credit grant profess surrender
 Say provisionally: advance allege bet conjecture contribute extend offer pose posit proffer propose submit supply wager predict
 Send message (medium specific): broadcast chant dictate illustrate post radio sign signal sing telegraph telephone write
 Positive Evaluation: adore delight gladden like love
 Negative Evaluation: anguish care hate regret revile rue
 Negative Prospective evaluation: despair dread fear panic worry
 Positive Prospective evaluation: desire fancy hope pray will wish
.

Let me know if I missed a good one and I'll add it!

The Bohlen-Pierce Scales


There are basically two Bohlen-Pierce scales. One of them separates the frequency ratio of (3/1) (also called a justly tuned perfect 12th or a tritave) into 13 logarithmically equal pieces. Scale degree ^0 of this scale has a frequency ratio of 3^(0/13), and scale degree ^4 has a frequency ratio of 3^(4/13), and so on. If we talk about scales that equally divide the tritave (EDTs) instead of scales that equally divide the octave (EDOs), then the first Bohlen-Pierce scale is 13-EDT.

The second Bohlen-Pierce scale is really close to the first, but it has justly tuned (i.e. rational) frequency ratios, instead of irrational exponential ones. Moreover, the ratios are 7-limit or septimal, meaning that they can have factors of (2, 3, 5, 7) in their factorizations, but no higher primes. In fact, the septimal Bohlen-Pierce ratios don't have any factors of 2 - it's an odd 7-limit scale. There are no octaves and no even harmonics. Here are the elements of the septimal BP scale:

Bohlen 0: C ~ 1/1
Bohlen 1: C#/Db ~ 27/25
Bohlen 2: D ~ 25/21
Bohlen 3: E ~ 9/7
Bohlen 4: F ~ 7/5
Bohlen 5: F#/Gb ~ 75/49
Bohlen 6: G ~ 5/3
Bohlen 7: H ~ 9/5
Bohlen 8: H#/Jb ~ 49/25
Bohlen 9: J ~ 15/7
Bohlen 10: A ~ 7/3
Bohlen 11: A#/Bb ~ 63/25
Bohlen 12: B ~ 25/9
Bohlen 13: C ~ 3/1
.
There are also letter names (i.e. pitch classes) which I've written in. The letters go up to J now, instead of G. How curious. And there's no pitch class I. Kind of dumb. Not my system. Some people call the tritave a "decade", after the number 10, which fits with there being 9 natural pitch classes, just as an octave, afterr the number 8, fits with there being 7 natural pitch classes in western music. I like "decade" better than tritave, honestly, but....I'll probably use tritave in this post.

The intervals of septimal BP are symmetric with respect to the tritave, so that for example, these intervals add to a tritave:

^1 + ^12 = ^13

and their frequency ratios multiply to a justly-tuned tritave:

(27/25) * (25/9) = (3/1)

Consequently, the intervals between successive steps are also symmetric with respect to the tritave. Four different intervals show up between successive steps. I'm not sure yet how to name intervals in Bohlen-Pierce, but the four intervals have the following frequency ratios:

(27/25), (49/45), (375/343), (625/567)
.

These four tuned intervals happen to increase in size with increasing complexity. Here they are in cents:

133 cents ~ (27/25)
147 cents ~ (49/45)
154 cents ~ (375/343)
169 cents ~ (625/567)
.

The small simple ratios ("A-sized" intervals) are related to each other by one factor and the large complicated ratios ("B-sized" intervals) are related to each other by the same factor:

(49/45) / (27/25) = (245/243)
(625/567) / (375/343) = (245/243)

Each large-complicated ratio is also related to one of the small-simple ratios:

(375/343) * (49/45) = (25/21)
(625/567) * (27/25) = (25/21)

, so there's a lot of structure here.

I said that I don't know how to name intervals in the Bohlen-Pierce scales, but one thing that we could do is just take the names of septimal frequency ratios in {septimal just intonation with pure octaves} and import the names directly to talk about this new scale without octaves. On each line below I show a frequency ratio for a scale degree in septimal BP, the frequency ratio represented in the reduced prime basis (2/1, 3/2, 5/4, 7/4), and the name for the frequency ratio in the Johnston-Lilley naming system for 7-limit just intonation.

1/1 :: (0, 0, 0, 0) : P1
27/25 :: (-1, 3, -2, 0) : Acm2
25/21 :: (1, -1, 2, -1) : SpA2
9/7 :: (0, 2, 0, -1) : SpM3
7/5 :: (0, 0, -1, 1) : Sbd5
75/49 :: (1, 1, 2, -2) : SpSpAA4
5/3 :: (1, -1, 1, 0) : M6
9/5 :: (0, 2, -1, 0) : m7
49/25 :: (0, 0, -2, 2) : SbSbAcd9
15/7 :: (1, 1, 1, -1) : SpA8
7/3 :: (1, -1, 0, 1) : Sbm10
63/25 :: (0, 2, -2, 1) : SbAcd11
25/9 :: (2, -2, 2, 0) : A11
3/1 :: (1, 1, 0, 0) : P12
.
I think it would be really cool if I could take music written in an octave-based tuning system and retune it to BP. That'll be one of my goals in this blog post. Also, I want to find a principled way of assigning interval names to BP steps that looks better than the thing above. Like, the opposite of an augmented 11th, A11, should be diminished interval, not an acute minor second, Acm2. The interval prefixes are mismatched here (or, rather, they're matched to octave complements, rather than tritave complements).

We just represented the BP frequency ratios in a rank-4 basis in order to import names from a subspace of the rank-4 septimal intervals with octave complements, but Bohlen-Pierce is only a rank-3 space: you can represent frequency ratios with powers of (3/1, 5/1, 7/1). Another option I prefer is the tritave-reduced odd prime basis, (3/1, 5/3, 7/3), in which all the odd prime ratios are divided by 3 until they fit in the rage [1/1, 3/1].

Here are the septimal Bohlen Pierce frequency ratios represented in the tritave-reduced odd prime basis:
1/1: (0, 0, 0)
27/25: (1, -2, 0)
25/21: (0, 2, -1)
9/7: (1, 0, -1)
7/5: (0, -1, 1)
75/49: (1, 2, -2)
5/3: (0, 1, 0)
9/5: (1, -1, 0)
49/25: (0, -2, 2)
15/7: (1, 1, -1)
7/3: (0, 0, 1)
63/25: (1, -2, 1)
25/9: (0, 2, 0)
3/1: (1, 0, 0)
.
There's an even better basis than this though. To introduce it, let's talk about how to name BP intervals a little. Guided a lot by the specific intervals that appear between successive steps of the septimal BP scale, and a little bit by the pitch classes for BP scale steps that are listed on Wikipedia and reproduced at the top of this post, I came up with this assignment of interval names and pitch classes for the septimal BP steps:

Bohlen 0: C ~ 1/1 :: P1
Bohlen 1: Db ~ 27/25 :: m2
Bohlen 2: D ~ 25/21 :: M2
Bohlen 3: E ~ 9/7 :: P3
Bohlen 4: Fb ~ 7/5 :: m4
Bohlen 5: F ~ 75/49 :: M4
Bohlen 6: G ~ 5/3 :: P5
Bohlen 7: H ~ 9/5 :: P6
Bohlen 8: Jb ~ 49/25 :: m7
Bohlen 9: J ~ 15/7 :: M7
Bohlen 10: A ~ 7/3 :: P8
Bohlen 11: Bb ~ 63/25 :: m9
Bohlen 12: B ~ 25/9 :: M9
Bohlen 13: C ~ 3/1 :: P10
.
The basic insight that let me build this is that an A-sized interval increases the pitch class lexicographically through (A, B, C, D, E , F, G, H, J), and a B-sized interval raises the pitch class from a flat to a natural. 

This assignment of pitch classes is really close to the set of pitch classes for Bohlen-Pierce that you can find on Wikipedia, or at the top of this article. The only changes are that (Bohlen ^4 ~ 7/5) is now called Fb instead of F, and (Bohlen ^5 ~ 75/49) is now called F instead of F#/Gb. My system has an intervallic justification and is superior.

Once I had all of that figured out, I examined the merits of some bases that had an A-sized interval, a B-sized interval, and third fudge factor interval to smooth over the fact A and B have two members. Since the two members of each size are related by a factor of (245/243), that was my obvious fudge-factor for C-sized intervals. Doing that worked tremendously well - so well that I gave the frequency ratio basis [(27/25), (375/343), (245/243)] a name, the Bluepoint basis, but there's an even better one coming. A Bluepoint is an oyster harvested near Long Island in New York. It's a cute name. I'm cute.

Of the four intervals that appear between successive steps of septimal Bohlen-Pierce, 

[(27/25), (49/45), (375/343), (625/567)]

only the first one has been associated with an interval name so far: it's a minor second, and it appears as Bohlen ^1. If (49/45) is also an A-sized interval that raises letter names of pitch classes, then it also has to be some kind of a 2nd interval. The more I looked at it, the more I came to realize that it was functioning like an acute minor second, Acm2, in 5-limit just intonation. This means that C-sized interval, the "fudge-factor" with a frequency ratio of (245/243), is an acute unison, Ac1. The B-sized interval that raises pitch classes from flat to natural is obviously an augmented unison, A1, since that's basically what augmentation means. I ended up calling (375/343) the A1 and the related (625/567) is an acute augmented unison, AcA1.

All together we have these differences between successive chromatic intervals:

P1 - m2 = m2
m2 - M2 = AcA1
M2 - P3 = m2
P3 - m4 = Acm2
m4 - M4 = A1
M4 - P5 = Acm2
P5 - P6 = m2
P6 - m7 = Acm2
m7 - M7 = A1
M7 - P8 = Acm2
P8 - m9 = m2
m9 - M9 = AcA1
M9 - P10 = m2
.

Next I wrote a program that names intervals in Bluepoint, which we can now say is an interval basis, (m2, A1, Ac1), tuned to a frequency ratio basis, [(27/25), (375/343), (245/243)]. The results are a little bit crazy; some intervals with short names have very large numerators and denominators:

(0, -1, -1) : Grd1 : (567/625)
(0, -1, 0) : d1 : (343/375)
(0, -1, 1) : Acd1 : (16807/18225)
(0, 0, 0) : P1 : (1/1)
(0, 0, 1) : Ac1 : (245/243)
(0, 1, 0) : A1 : (375/343)
(0, 1, 1) : AcA1 : (625/567)
(1, -1, -1) : Grd2 : (15309/15625)
(1, -1, 0) : d2 : (3087/3125)
(1, -1, 1) : Acd2 : (16807/16875)
(1, 0, 0) : m2 : (27/25)
(1, 0, 1) : Acm2 : (49/45)
(1, 1, 0) : GrM2 : (405/343)
(1, 1, 1) : M2 : (25/21)
(1, 1, 2) : AcM2 : (875/729)
(1, 2, 0) : GrA2 : (151875/117649)
(1, 2, 1) : A2 : (3125/2401)
(1, 2, 2) : AcA2 : (15625/11907)
(2, 0, 0) : Grd3 : (729/625)
(2, 0, 1) : d3 : (147/125)
(2, 0, 2) : Acd3 : (2401/2025)
(2, 1, 0) : Gr3 : (2187/1715)
(2, 1, 1) : P3 : (9/7)
(2, 1, 2) : Ac3 : (35/27)
(2, 2, 0) : GrA3 : (164025/117649)
(2, 2, 1) : A3 : (3375/2401)
(2, 2, 2) : AcA3 : (625/441)
(3, 0, 1) : Grd4 : (3969/3125)
(3, 0, 2) : d4 : (2401/1875)
(3, 0, 3) : Acd4 : (117649/91125)
(3, 1, 1) : Grm4 : (243/175)
(3, 1, 2) : m4 : (7/5)
(3, 1, 3) : Acm4 : (343/243)
(3, 2, 1) : GrM4 : (3645/2401)
(3, 2, 2) : M4 : (75/49)
(3, 2, 3) : AcM4 : (125/81)
(3, 3, 1) : GrA4 : (1366875/823543)
(3, 3, 2) : A4 : (28125/16807)
(3, 3, 3) : AcA4 : (15625/9261)
(4, 1, 2) : Grd5 : (189/125)
(4, 1, 3) : d5 : (343/225)
(4, 1, 4) : Acd5 : (16807/10935)
(4, 2, 2) : Gr5 : (81/49)
(4, 2, 3) : P5 : (5/3)
(4, 2, 4) : Ac5 : (1225/729)
(4, 3, 2) : GrA5 : (30375/16807)
(4, 3, 3) : A5 : (625/343)
(4, 3, 4) : AcA5 : (3125/1701)
(5, 1, 2) : Grd6 : (5103/3125)
(5, 1, 3) : d6 : (1029/625)
(5, 1, 4) : Acd6 : (16807/10125)
(5, 2, 2) : Gr6 : (2187/1225)
(5, 2, 3) : P6 : (9/5)
(5, 2, 4) : Ac6 : (49/27)
(5, 3, 2) : GrA6 : (32805/16807)
(5, 3, 3) : A6 : (675/343)
(5, 3, 4) : AcA6 : (125/63)
(6, 1, 3) : Grd7 : (27783/15625)
(6, 1, 4) : d7 : (16807/9375)
(6, 1, 5) : Acd7 : (823543/455625)
(6, 2, 3) : Grm7 : (243/125)
(6, 2, 4) : m7 : (49/25)
(6, 2, 5) : Acm7 : (2401/1215)
(6, 3, 3) : GrM7 : (729/343)
(6, 3, 4) : M7 : (15/7)
(6, 3, 5) : AcM7 : (175/81)
(6, 4, 3) : GrA7 : (273375/117649)
(6, 4, 4) : A7 : (5625/2401)
(6, 4, 5) : AcA7 : (3125/1323)
(7, 2, 4) : Grd8 : (1323/625)
(7, 2, 5) : d8 : (2401/1125)
(7, 2, 6) : Acd8 : (117649/54675)
(7, 3, 4) : Gr8 : (81/35)
(7, 3, 5) : P8 : (7/3)
(7, 3, 6) : Ac8 : (1715/729)
(7, 4, 4) : GrA8 : (6075/2401)
(7, 4, 5) : A8 : (125/49)
(7, 4, 6) : AcA8 : (625/243)
(8, 2, 4) : Grd9 : (35721/15625)
(8, 2, 5) : d9 : (7203/3125)
(8, 2, 6) : Acd9 : (117649/50625)
(8, 3, 4) : Grm9 : (2187/875)
(8, 3, 5) : m9 : (63/25)
(8, 3, 6) : Acm9 : (343/135)
(8, 4, 5) : GrM9 : (135/49)
(8, 4, 6) : M9 : (25/9)
(8, 4, 7) : AcM9 : (6125/2187)
(8, 5, 5) : GrA9 : (50625/16807)
(8, 5, 6) : A9 : (3125/1029)
(8, 5, 7) : AcA9 : (15625/5103)
(9, 3, 6) : d10 : (343/125)
(9, 4, 5) : Gr10 : (729/245)
(9, 4, 6) : P10 : (3/1)
(9, 4, 7) : Ac10 : (245/81)
(9, 5, 6) : A10 : (1125/343)

, but that's not a problem with my system; when you have frequency ratios with factors of (3, 5, 7) instead of (2, 3, 5), the numerators and denominators are simply usually going to be bigger. So here's the code. You can now name name septimal Bohlen-Pierce intervals, provided you can express them in the Bluepoint basis, which is a pretty simple matter of finding the exponents of [(27/25), (375/343), (245/243)] that reproduce your desired frequency ratio. 

This basis is really good. It has many of the desirable properties of Lilley's (Ac1, A1, d2) basis for 5-limit just intonation. Let's look at just the chromatic intervals of septimal BP in the Bluepoint basis for a moment:

(0, 0, 0) : P1 : (1/1)
(1, 0, 0) : m2 : (27/25)
(1, 1, 1) : M2 : (25/21)
(2, 1, 1) : P3 : (9/7)
(3, 1, 2) : m4 : (7/5)
(3, 2, 2) : M4 : (75/49)
(4, 2, 3) : P5 : (5/3)
(5, 2, 3) : P6 : (9/5)
(6, 2, 4) : m7 : (49/25)
(6, 3, 4) : M7 : (15/7)
(7, 3, 5) : P8 : (7/3)
(8, 3, 5) : m9 : (63/25)
(8, 4, 6) : M9 : (25/9)
(9, 4, 6) : P10 : (3/1)

.

Some desirable properties:

1) All of the basis components increase monotonically with increasing BP step.

2) All of the frequency ratios of the tuned basis elements are greater than (1/1).

3) One of the basis components matches the ordinal of the interval name minus one. I would have been happy if they were related by any constant integer offset, but minus one is nice.

4) The absolute determinant of the basis is unity, which just ensures that things have integral coordinates. I haven't demonstrated this to you, and I know it's a little unclear what I mean. If you express Bluepoint in the odd prime basis, you can find the determinant of that matrix of vectors, and the absolute value of the determinant will be 1. There are lots of full rank bases with determinants that are one or minus one, and expressing any of them in any of the others will give you determinant whose absolute value is unity, which gives you integer coordinates. Integer coordinates are good for lots of reasons, like for designing isomorphic keyboards with non-overlapping keys. Also integer coordinates become integer exponents in tuning, which means that if you start with basis elements tuned to rational values, then every interval in your system will also be rational. Tuning systems where the absolute determinant of the matrix of basis vectors is unity (when the basis vectors are expressed in any other such basis, using the primes as a base case for inducing the full family) let you define just intonation tuning systems.

There's an even better basis coming, but this table is still good for quickly looking up interval names and their corresponding frequency ratios.

What if you don't want to do a brute force search over exponents in order to name a frequency ratio? I can help with that. First, factorize your frequency ratio, i.e. express it in the odd prime basis (3/1, 5/1, 7/1). Then we can do a change of basis to Bluepoint.   

If you've been reading my blog, you know the drill by now. To change bases, first you find the frequency ratios of the old basis (the odd 7-limit prime basis in this case) expressed in the new basis (the Bluepoint basis in this case):

3/1 = (9, 4, 6) # P10
5/1 = (13, 6, 9) # P14
7/1 = (16, 7, 11) # P17

Then you convert columns into rows: 

def convert_prime_basis_to_bluepoint(interval):
(x, y, z) = interval
a = x * 9 + y * 13 + z * 16
b = x * 4 + y * 6 + z * 7
c = x * 6 + y * 9 + z * 11
return (a, b, c)

It is done, and it is done well. Now you can find the tritave-based interval names associated with arbitrary odd 7-limit frequency ratios from their factorizations, by using this change of basis function and then running my python code from before.

Now for the best basis: in 5-limit octave-based just intonation, the Lilley basis is (Ac1, A1, d2). In septimal Bohlen-Pierce, the Bluepoint basis is (m2, A1, Ac1). The order of intervals isn't important, so the only real difference is that the d2 from 5-limit JI is replaced with an m2 in the Bluepoint basis. What happens if we use Lilley's (Ac1, A1, d2) for Bohlen Pierce intervals though? The BP diminished 2nd is 

d2 : (3087/3125)

To make a change of basis, here are the old vectors of the Bluepoint basis 

(0, 1, 1) = 27/25 # m2
(0, 1, 0) = 375/343 # A1
(1, 0, 0) = 245/243 # Ac1

expressed in a version of the Lilley basis, (Ac1, A1, d2), modified for Bohlen-Pierce, so that we now tune those intervals to frequency ratios of (245/243, 375/343, 3087/3125). Although, it's actually faster for me to find coordinates by brute force search over exponents than to do a change of basis, so instead of writing a new change of basis function, here are the coordinates for the chromatic Bohlen Pierce intervals directly:

(0, 0, 0) = 1/1 # P1
(0, 1, 1) = 27/25 # m2
(1, 2, 1) = 25/21 # M2
(1, 3, 2) = 9/7 # P3
(2, 4, 3) = 7/5 # m4
(2, 5, 3) = 75/49 # M4
(3, 6, 4) = 5/3 # P5
(3, 7, 5) = 9/5 # P6
(4, 8, 6) = 49/25 # m7
(4, 9, 6) = 15/7 # M7
(5, 10, 7) = 7/3 # P8
(5, 11, 8) = 63/25 # m9
(6, 12, 8) = 25/9 # M9
(6, 13, 9) = 3/1 # P10

.

It's so good! Now the last component, d2, is the interval's ordinal minus 1, just as m2 was before. The second component, A1, is the number of Bohlen-Pierce steps!  The first component is... just there. I've never known how to interpret Ac1 in 5-limit octave-basis just intonation either. But it's fine. It's the fudge factor. In 5-limit JI, major Nth and minor Nths had the same Ac1 component, which was kind of nice, and that's not the case here or in the Bluepoint basis, but it's still fine.

Coordinates in the BP-Lilley basis and the JI-Lilley basis generally don't have the same interval names, and of course they shouldn't - the two systems have different intervals, like P3 in Bohlen-Pierce and P4 in Just Intonation. For an example, (4, 9, 6) is a major seventh, M7, in the BP-Lilley basis with a frequency ratio of 15/7 ~= 2.14, and it's an acute diminished 7th, Acd7, in the JI-Lilley basis, with a frequency ratio of 2187/1250 = 1.7496. I wouldn't have minded if the names had been different and the frequency ratios had been close. That would have made it easy to translate music. But it's fine. And you can still translate music if you want, it's just going to be really weird. And let's not pretend that we don't like when music is really weird. The chromatic BP intervals translated to JI intervals this way do keep their order, at least. If we take the chromatic intervals of BP and reinterpret their BP-Lilley coordinates as being JI-Lilley coordinates, we get these frequency ratios:

(0, 0, 0) -> 1.0
(0, 1, 1) -> 1.066666
(1, 2, 1) -> 1.125
(1, 3, 2) -> 1.2
(2, 4, 3) -> 1.296
(2, 5, 3) -> 1.35
(3, 6, 4) -> 1.458
(3, 7, 5) -> 1.5552
(4, 8, 6) -> 1.679616
(4, 9, 6) -> 1.7496
(5, 10, 7) -> 1.889568
(5, 11, 8) -> 2.0155392
(6, 12, 8) -> 2.125764
(6, 13, 9) -> 2.2674816

That interval on the bottom line used to be the perfect 10th with a frequency ratio of (3/1), and now it's only ~ 2.27. So just intonation is falling quite flat.

I've looked at lots of different way of translating music between tritave-based interval space and (rank-2, rank-3, rank-4) octave-based interval spaces and this is by far the best I've come up with. This post used to be about three times as long, and it was just documenting my failures with that search. This is one of the only ways that even keeps the chromatic BP intervals in the same tuned order.

My next goal is to write a program to translate music from 5-limit JI to septimal BP using this scheme to find out how it sounds. I bet it will really suck, but I've got to know.

 ...

Some other time. Some more music theory first. The 13-EDT version of the Bohlen-Pierce scale tempers out some intervals that the septimal BP scale doesn't. And we can find them *so* easily. An interval in the Lilley basis that has a zero for its second component, the A1 component, will be tuned to 0 steps in 13-EDT. All of those intervals are tempered out, i.e. tuned to the same value as P1, namely 1/1 or 3^(0/13). Here are a few with short names

  (-2, 0, 0) : GrGr1 :: 59049/60025
(-1, 0, -1) : GrA0 :: 16875/16807 (-1, 0, 0) : Gr1 :: 243/245 (-1, 0, 1) : Grd2 :: 15309/15625 (0, 0, -1) : A0 :: 3125/3087 (0, 0, 0) : P1 :: 1 (0, 0, 1) : d2 :: 3087/3125 (1, 0, -1) : AcA0 :: 15625/15309 (1, 0, 0) : Ac1 :: 245/243 (1, 0, 1) : Acd2 :: 16807/16875 (2, 0, 0) : AcAc1 :: 60025/59049

.
Those intervals are all tuned to a frequency ratio of 1/1 or 3^(0/13). The fractions at the end were their old justly tuned values. The mathematically inclined among you might be saying, "Since we're going from a 3 dimensional space to a one dimensional space, shouldn't all the tempered out intervals be a linear combination of two independent commas?" You're right and they are. The two independent ones are Ac1 and d2. Any other tempered out interval can be made by a linear combination of those two. It's so easy. There's a much harder way to tune things to 13-EDT, but let's go the easy way.

I went the hard way first and made/found some useful functions along the way though.

This one converts from the Bluepoint basis to the Lilley basis:

def convert_bluepoint_basis_to_lilley(interval):
(x, y, z) = interval
a = x * 0 + y * 0 + z * 1
b = x * 1 + y * 1 + z * 0
c = x * 1+ y * 0 + z * 0
return (a, b, c)

, and this one converts from the Lilley basis to the (P5, P8, P10) basis:

def convert_lilley_basis_to_reduced_perfect(interval):
(x, y, z) = interval
a = x * 1 + y * 3 + z * -5
b = x * 2 + y * -3 + z * 3
c = x * -2 + y * 1 + z * 0
return (a, b, c)

The intervals (P5, P8, P10) are the ones that were justly tuned to (5/3, 7/3, 3/1), respectively, so (P5, P8, P10) is just an intervallic name for the tritave-reduced prime basis of frequency ratios. It's nice that the primes got paired up with perfect intervals, isn't it? It's a good system.

It feels wrong that I have large tables and programs concerning the Bluepoint basis and comparatively little written about the BP-Lilley basis, which I prefer. So here are some more interval in the BP-Lilley basis, sorted by increasing frequency ratio:

(0, 0, 0) : P1 :: 1/1
(1, 0, 0) : Ac1 :: 245/243
(0, 0, -1) : A0 :: 3125/3087
(0, 1, 1) : m2 :: 27/25
(0, 1, 0) : A1 :: 375/343
(1, 2, 2) : d3 :: 147/125
(1, 2, 1) : M2 :: 25/21
(0, 3, 2) : Gr3 :: 2187/1715
(2, 3, 3) : d4 :: 2401/1875
(1, 3, 2) : P3 :: 9/7
(2, 3, 2) : Ac3 :: 35/27
(1, 3, 1) : A2 :: 3125/2401
(2, 4, 3) : m4 :: 7/5
(1, 4, 2) : A3 :: 3375/2401
(3, 5, 4) : d5 :: 343/225
(2, 5, 3) : M4 :: 75/49
(3, 6, 5) : d6 :: 1029/625
(2, 6, 4) : Gr5 :: 81/49
(3, 6, 4) : P5 :: 5/3
(2, 6, 3) : A4 :: 28125/16807
(4, 6, 4) : Ac5 :: 1225/729
(2, 7, 5) : Gr6 :: 2187/1225
(4, 7, 6) : d7 :: 16807/9375
(3, 7, 5) : P6 :: 9/5
(4, 7, 5) : Ac6 :: 49/27
(3, 7, 4) : A5 :: 625/343
(4, 8, 6) : m7 :: 49/25
(3, 8, 5) : A6 :: 675/343
(5, 9, 7) : d8 :: 2401/1125
(4, 9, 6) : M7 :: 15/7
(5, 10, 8) : d9 :: 7203/3125
(4, 10, 7) : Gr8 :: 81/35
(5, 10, 7) : P8 :: 7/3
(4, 10, 6) : A7 :: 5625/2401
(6, 10, 7) : Ac8 :: 1715/729
(5, 11, 8) : m9 :: 63/25
(5, 11, 7) : A8 :: 125/49
(6, 12, 9) : d10 :: 343/125
(6, 12, 8) : M9 :: 25/9
(6, 13, 10) : d11 :: 9261/3125
(5, 13, 9) : Gr10 :: 729/245
(6, 13, 9) : P10 :: 3/1
.

Cool.

You might wonder whether the chromatic intervals of the septimal Bohlen Pierce scale lie on a rank-2 subspace of the full rank-3 space. They do not, so you can't make an isomorphic keyboard in two dimensions that has them all. But I've got an idea for the next best thing!

The next best thing is to use the 13-EDT version of BP and play on a one dimensional keyboard that you may well already own. Easy.

But the next best way after that involves some math! Here it comes!

We'll make a rank-2 system in the Pythagorean way. For Pythagorean tuning, we start with the frequency ratio (1/1) and then we multiply by (3/2), dividing by an (2/1) if the result becomes larger than (2/1). Repeat that on and on upward forever. Also, we can start with the frequency ratio of (1/1) and divide by (3/2), multiplying by (2/1) if the result ever goes below (1/1). Repeat that on and on, downward forever. This produces intervals that only have factors of 2 and 3, but not 5 like in 5-limit just intonation. If we tabulate those results, the portion closest to (1/1) looks like this:

(-7, 5) 4096/2187 d8
(-6, 4) 1024/729 d5
(-5, 3) 256/243 m2
(-4, 3) 128/81 m6
(-3, 2) 32/27 m3
(-2, 2) 16/9 m7
(-1, 1) 4/3 P4
(0, 0) 1/1 P1
(1, 0) 3/2 P5
(2, -1) 9/8 M2
(3, -1) 27/16 M6
(4, -2) 81/64 M3
(5, -2) 243/128 M7
(6, -3) 729/512 A4
(7, -4) 2187/2048 A1

.

The interval coordinates on the far left are in (P5, P8) basis. The middle portion, vertically, consists of the chromatic intervals of octave-based music, and the intervals further toward the tails just get crazier - more and more augmented or diminished. Once you have the notion that (P5 * 2 + P8 * -1) should be a M6, then you can choose a better tuning system, namely quarter comma meantone, that makes things sound more 5-limit and less awful.

What if we do the same thing for Bohlen Pierce? We'll make a tuning system that only tunes intervals to frequency ratios with factors of 3 and 5, use that tuning system to figure out rank-2 interval names, and then find a new tuning system that makes it sound more septimal and less awful! If we start with the frequency ratio and repeatedly multiply or divide by (5/3), normalizing by a factor of (3/1) if things go too low or too high, then we get this table:

(3, 10, 8) : GrGrd9 :: 177147/78125
(0, 3, 3) : GrGrd4 :: 19683/15625
(3, 9, 7) : GrGrd8 :: 6561/3125
(0, 2, 2) : Grd3 :: 729/625
(3, 8, 6) : Grm7 :: 243/125
(0, 1, 1) : m2 :: 27/25
(3, 7, 5) : P6 :: 9/5
(0, 0, 0) : P1 :: 1/1
(3, 6, 4) : P5 :: 5/3
(6, 12, 8) : M9 :: 25/9
(3, 5, 3) : AcM4 :: 125/81
(6, 11, 7) : AcA8 :: 625/243
(3, 4, 2) : AcAcA3 :: 3125/2187
(6, 10, 6) : AcAcA7 :: 15625/6561
(3, 3, 1) : AcAcA2 :: 78125/59049

.

Like before, this goes off infinitely at both ends. And like before, there's a special subset in the middle surrounding P1 ~ (1/1)! The special subset here is everything but the very top interval and the very bottom interval. Look at the second component of each interval coordinates for that set; that's the A1 component and it tells you how the interval gets tuned in 13-EDT, the number of steps. In that special subset, we have every number from [0, 12]. We have a full chromatic scale! Here it is sorted by A1 the component:

(0, 0, 0) : P1 :: 1/1
(0, 1, 1) : m2 :: 27/25
(0, 2, 2) : Grd3 :: 729/625
(0, 3, 3) : GrGrd4 :: 19683/15625
(3, 4, 2) : AcAcA3 :: 3125/2187
(3, 5, 3) : AcM4 :: 125/81
(3, 6, 4) : P5 :: 5/3
(3, 7, 5) : P6 :: 9/5
(3, 8, 6) : Grm7 :: 243/125
(3, 9, 7) : GrGrd8 :: 6561/3125
(6, 10, 6) : AcAcA7 :: 15625/6561
(6, 11, 7) : AcA8 :: 625/243
(6, 12, 8) : M9 :: 25/9
.

Now that we have our chromatic order, let's represent the intervals in the (P5, P10) basis and give them the natural chromatic names that we used to use for the septimal chromatic intervals:

(0, 0) : P1 :: 1/1 => 1/1
(-2, 1) : m2 :: 27/25 => 27/25
(-4, 2) : M2 :: 25/21 => 729/625
(-6, 3) : P3 :: 9/7 => 19683/15625
(5, -2) : m4 :: 7/5 => 3125/2187
(3, -1) : M4 :: 75/49 => 125/81
(1, 0) : P5 :: 5/3 => 5/3
(-1, 1) : P6 :: 9/5 => 9/5
(-3, 2) : m7 :: 49/25 => 243/125
(-5, 3) : M7 :: 15/7 => 6561/3125
(6, -2) : P8 :: 7/3 => 15625/6561
(4, -1) : m9 :: 63/25 => 625/243
(2, 0) : M9 :: 25/9 => 25/9

.

On each line above we have coordinates for a rank-2 chromatic BP interval, the interval name, the frequency ratio associated with the interval in the 7-limit system and the frequency ratio associated with the interval in the 5-limit system.

I wondered if the 5-limit version of P8, 15625/6561, which otherwise would be tuned to 7/3, is really the best 5-limit ratio for the job. Maybe it just came about from our weird operation of stacking P5s and normalizing by P10? Sadly no. You can do a search for arbitrary ratios with powers of 3 and 5, and ....

2.2050895 :: 390625/177147
2.2674816 :: 177147/78125
2.3159674 :: 476837158203125/205891132094649
2.3316389 :: 5559060566555523/2384185791015625
2.3333333 :: 7/3
2.3814967 :: 15625/6561
2.4488801 :: 4782969/1953125
2.5720164 :: 625/243

... and you'll see that our old friend 15625/6561 is a good approximation to 7/3, and anything better would have a crazy number of digits.

That's the Bohlen Pierce version of Pythagorean tuning. Now for the Bohlen Pierce version of quarter comma meantone: to make our Pythagorean chromatic scale sound more septimal, we'll keep the P10 tuned justly to (3/1), but we'll adjust P5 away from (5/3) so that P8 is exactly (7/3). This is analogous to how quarter comma meantone adjusts fifths to improve the intonation of thirds.

The way to adjust the tuned value of the BP perfect fifth (5/3) is to start with the coordinates for P8 in the (P5, P10) basis:

(6, -2) : P8

Form (6, -2) we can say that we want the tuned value of P5, t(P5), to be such that 

t(P5)^6 * t(P10) ^-2 = 7/3

keeping t(P10) = 3/1. Solving this, we get 

t(P5) = 21^(1/6)

which is quite close to the old value of 5/3. It's about 6 cents flat. Just barely noticeable. Now you can make a 2D isomorphic keyboard to play Bohlen Pierce music, and it will sound fairly septimal.

There is a little hiccup. The interval differences don't make sense any more. For example, in this rank-2 system,

m2 - P1 = m2
M2 - m2 = m2

both of those differences happen to equal a minor second now, but they *shouldn't* be equal. The difference between two second intervals should be some kind of unison for example. If you have a solution, I'd love to hear it. I'll keep thinking about it in the meantime. But whatever the correct interval names are, I think you can make a 2D isomorphic keyboard where a step in one cardinal direction increases/decreases the frequency ratio by (3/1) and a step in the other cardinal direction increases/decreases the frequency ratio by 21^(1/6), and then you'll get music that sounds like septimal Bohlen Pierce out of it.

Ooh! I should do a comparison of the 3d septimal just BP frequency ratios against the 1d EDT BP frequency ratios against my 2d meantone BP frequency ratios!

1.0 :: P1

1.08 :: m2_septimal
1.0873803730028921 :: m2_meantone
1.0881822434633168 :: m2_equal

1.1823960755919092 :: M2_meantone
1.184140594988857 :: M2_equal
1.1904761904761905 :: M2_septimal

1.2857142857142858 :: P3_meantone
1.2857142857142858 :: P3_septimal
1.2885607692309613 :: P3_equal

1.4 :: m4_septimal
1.4021889487005645 :: m4_equal
1.404775430545576 :: m4_meantone

1.5258371159564499 :: M4_equal
1.5275252316519465 :: M4_meantone
1.530612244897959 :: M4_septimal

1.6603888560010867 :: P5_equal
1.661000956165023 :: P5_meantone
1.6666666666666667 :: P5_septimal

1.8 :: P6_septimal
1.8061398392728831 :: P6_meantone
1.8068056703447524 :: P6_equal

1.96 :: m7_septimal
1.9639610121239315 :: m7_meantone
1.9661338478579946 :: m7_equal

2.135572657926458 :: M7_meantone
2.1395119415112758 :: M7_equal
2.142857142857143 :: M7_septimal

2.3281789044302967 :: P8_equal
2.333333333333333 :: P8_meantone
2.3333333333333335 :: P8_septimal

2.52 :: m9_septimal
2.5334829434069275 :: m9_equal
2.5372208703400814 :: m9_meantone

2.7568911531325972 :: M9_equal
2.7589241763811203 :: M9_meantone
2.7777777777777777 :: M9_septimal

3.0 :: P10

.

Everything is really close, which is good. The meantone value is closer to the septimal value than is the EDT value for all of (m2, P3, M4, P5, P6, m7, P8, and M9). The EDT value is only closer to the septimal value for (M2, m4, M7, m9), and only by a small amount for each. This is to say that the added dimension helped: a 2d keyboard organized by my meantone scheme really can play Bohlen Pierce music with better intonation than a one dimensional 13-EDT keyboard. I am to be commended.  Also, I think it's petty cool that we adjusted the P5s to make the P8s pure, so you might have expected those to be particularly out of tune, yet the P5s are still closer to being pure than the EDT version. Excellent.

Conlanging IV: Concluding Content

My post Conlanging III is long enough now that Blogger's editor freezes up when I ty to add to it, so I guess it's time for a new post. First up, there are a few hundred nominal concepts that I want the Xenants to have words for, and since Xenant nouns have ontological phonesthemes in the initial syllables, that means I have to do some ontological categorization work that I've been putting off for too long.

First a random thought that I need to get out: I've been growing increasingly favorable to the idea of having a comparative verbal suffix, so that you can say X exists as a Y (more than Z does). That would be the only verbal suffix that doesn't have a short prepositional gloss, which is less than ideal, but I don't think it's semantically irregular; the (as a Y) suffix is already doing equative work, and a comparative is hardly different.

Okay, now to shore up the nominal classes.

I want the Xenants to have words for psychological concepts. I don't have strong opinions on how their psychology should differ from ours architecturally, so let's just start by translating human psychological concepts directly into their language. First, I want a class for countable psychological endurants. If you can talk about an X rather than some quantity of X, then X is countable, rather than massed. If you can talk about things happening during an X, then X is a perdurant, rather than an endurant. This is a little tricky, because systematic polysemy often means, in English and other languages, that concepts labelled X might be described with more than one of those seemingly binary distinction, e.g. the universal-grinder in English let's us say both "two potatoes" and "some potatoes". The Xenants don't have systematic polysemy though.

:: Cognitive Endurants

In the last post, I said that the ontological phonestheme for counted cognitive endurants would be "Ik-". The first word-sense I think of for each of the words (concept, belief, memory, desire, preference, goal, reason) is a countable endurant, so let's give each of those short "Ik-" words. A bunch of other psychological words (sensation, thought, judgement, interpretation, deduction, inference, selection, decision) are also countable and I think they have both endurant and perdurant senses, but I think in such cases, I should first give the Xenants words for the perdurants, and then only make endurant words when I find those expressively insufficient, or perhaps instead of making a new endurant root word, just apply a derivational suffix to those perdurant words to make them into endurants. Alternatively, all the perdurant words I made in the last post were for binary / polar / antonymic endurants, not categorical ones. I never really even came up with ontological phonesthemes for categorical perdurants. Maybe I should just keep all of the perdurants polar, skip the categorical ones ("manner perdurants"), and instead use endurant word senses for things like (sensation, thought, judgement). That's kind of good, I think. It would make the perdurants a very tight class, if not a closed class. I'll decide shortly. In the meantime, here are some new Xenant words:

IkOx: concept
IkIx: belief
Iktk: memory
IkXt: desire
IkTK: preference
Iktz: goal
IkXi: reason

.
And maybe they can add augmentative or diminutive suffixes on the word for "belief" to get words like "conviction" and "suspicion". All of them work productively with both suffixes, really.

:: Shapes

In the last post I introduced phonesthemes for directed parts and shapes,

Directed part: Tx
Shape: Ox

, but I didn't give any examples. The directed parts should at least include: (top | bottom), (front | back), (surface | interior). The shapes should at least include: (mass| void), (rod | pipe), (sheet | fault), (bump | dent), (ridge | furrow). I wouldn't mind having (left <| center |> right) as directed parts, and then for parallelism we should have something like (top <| middle |> bottom), (front <| midway |> back). And maybe like (surface <| mantle |> core) instead of (surface | interior). The Xenants live inside their planet, so here their psychological preferences for parallelism has also resulted into something appropriate for their environment. Oh, but, shoot, the language already has locative and directive frames as adverbial suffixes. Do these directed parts match up with those? ...

I don't know. I really want to get this language done, so I'm going to push forward. 

Here are some clustered words for shape vocabulary:

(surface | interior) boundary facet patch border outline contour curve
* 2d polygons: polygon, triangle quadrilateral (rectangle square diamond trapezoid kite parallelogram rhombus) pentagon hexagon heptagon octagon decagon
* 2d stars: star, pentagram, hexagram, heptagram, higher n-grams
* 2d closed curves: circle ellipse oval lune crescent
* 2d knots: lemniscate trefoil
* 2d open curves: line spiral semicircle arch helix zigzag chevron cross angle
* 3d closed curves: loop torus ring hoop
(mass | void) bulb sphere prism pyramid cube cylinder figure blob ball wedge spike expanse frustum gap slot hole rift aperture body cavity solid
(rod | conduit) string thread fibre filament bolt beam coil bar pole belt duct pipe wand post tube adit vent shaft billet rail vein
(sheet | fault) plane wall saddle incline slab wafer membrane plate disc diaphragm interface
(ridge | groove) crack elbow crotch edge rim arc fold fork kink bend furl part-line fissure cleft flap crest gyrus crevice sulcus
(bump | dent) horn pillar column obelisk spire point dot peak barb burr plateau corner vertex tab dendrite cup basin mound bowl chasm hook tip peak dimple divot 

bend crimp wrinkle
? incline gradient bevel
? level tier ledge shelf layer slice
bell dome mesh coif cusp zenith apogee cone curl split
? grid weave lattice braid bow knot web network roll
Not shapes or directed parts: joint union juncture quadrant sector hemisphere twist
roles for mass: sliver shred shard strand tendril fiber cord strip
? axis center side edge
? line 2d-form 3d-form

.

I'll have to clean that up eventually. I'd also like to note that Xenant shapes are considered to be counted concrete endurants. Moving on.

:: Artefacts

How about artefact categories? The Xenants are blind to EM radiation, so they don't have much in the way of vehicles. They do have a sense of particle radiation, but it's non high-dimensional enough for rapid localization and mapping.

I think they sometimes wear personal coverings, but "equipment" is probably a more apt word than "clothing". What's the unit of equipment? What do you call one piece of kit? Or armor, for that matter? I don't know a short word. But they have protective gear for use in hazardous situations. And they weapons for when they want to get into hazardous situations. I don't know what specific weapons they have, but they also have the general word "weapon", and other general artefact roles besides that like "container", "covering", "support", "tool", "machine", "sensor", "actuator".

They live in magma, so they don't have much use for fire and don't cook their food. They have buildings, and normal architectural-parts to go with, including the door, window, wall, and floor. I'm not sure how they move from room to room vertically. Maybe a staircase, ladder, climbing-rope? Or they just swim up/down. They live spartan lives, but they might still have some furniture or furnishings, such as a bed, table, shelf, and maybe even a rug. Boxes, buckets, food pots, locked safes; all fine.

I think they have similar hand tool as humans do, including perhaps the hook, needle, chisel, trowel, fork, saw, hoe, crowbar, wrench, hammer, axe, broom, screwdriver, scythe, and shovel. They have fasteners of various kinds, like screws and nails and staples and wire. They might have passive measuring devices like plumb bobs, tape measure, and calipers. 

Aside from hand tools, they have simple mechanical machines like pulleys, lifts, cranes, pliers, scissors, screwjacks, augurs, hydraulic motors/fans/turbines, hydraulic cylinders, and valves, along with complex machines like locks and clockwork timepieces. They also have electromechanical devices, including the microphone/loudspeaker, motor/generator, capacitive sensor, and limit switch.

They're not a warm, loving species, but they do have medical technology and use it on the people who are important to them. Simple medical equipment they might have includes syringes, catheters, bandages, and stretchers. For more complex equipment, they might have pacemakers and artificial organs, prosthetic actuated limbs, hearing aids, and patient-monitors.

They have documents, but it's a little bit different from our concept. To them, our stop signs would also be called documents. Physical keys are documents to them. Even coins are documents, in so far as they are treated as created artefacts in a legal system and not simply valuable chunks of metal.

Somewhat related, but with a different ontological prefix, Xenants have words for functional substance roles, like (medicine, ammunition, fuel, food, poison, fertilizer). And maybe biological words like pheromone and excrement they specify (function and relational roles to biological processes) more than (material composition) go with those too? Maybe.

:: Evaluative Roles

I was having a hard time making ontological categorizations for a bunch of words are very evaluative, like (defect error waste progress benefit). I like to start my ontological categorizations of nouns by asking three questions: 1) is it (an endurant | a perdurant | a rare other thing)? Is it massed or counted? Is it concrete or abstract? And for most of the evaluative words like "defect", I was having trouble answering at least one of the three preliminary questions. Like a defect seems to be usually concrete, an error seems to usually be abstract, and a mess can be either, maybe? But I don't feel super confident about any of those judgements. But here's a solution perhaps: just add an evaluative suffix to other nouns that are already well categorized, either as a bare adjectival suffix or as a genitive suffix that takes a dimension as an argument, like (valuable | worthless). The Xenants don't have a root word for a mess, they have a compound noun like (collection(-with-(disorder)). They don't have a root noun for a defect, they say (surface-feature(-with-(non-functionality)) or similar. You know how in English we can say "it was such a waste" and "there was a lot of waste on the ground"? It's a mass noun and a count noun. I was struggling to well-characterize both word senses, and now I don't have to: the Xenants don't use root nouns for those either word sense. 

I like this a lot. It's very Xenantish. No evaluative root nouns. Before I came to this decision, I was trying to make a tidy set of antonymic evaluative roles for situations:

(problem | solution)
(opportunity | threat)
(benefit/windfall | setback/mishap)
(impediment/restriction | freedom)
(scarcity | abundance)

.

Not perfect yet, but it was going somewhere. I still kind of like it. Might come back to it.

:: Speech Acts and Message Roles

In my post Conlanging III, I came up with these words for "compositions":

Word : IXZX
Name : IXXo
Sentence : IXXt
Message : IXKi
Record : IXZk
Aphorism : IXoi
Rule : IXXK
Contract : IXOz
Design : IXIx
Language : IXOT
Algorithm : IXIT
Program : IXtx
Game : IXZt
Explanation : IXot
Prediction : IXIk

.

In retrospect, I think the last two don't belong with the others. A message can function as an explanation or a prediction or other things. Those are roles for a message, not separate types of symbolic compositions. Here are some common roles for messages among human speakers, based on the content of the message: (greeting, well-wish, statement/claim, prediction, explanation, justification, insult, compliment, criticism, blame, praise, offer/proposal, denial, rejection, acceptance, request, inquiry, command, pronouncement, apology, promise, warning, invitation, suggestion/recommendation). And maybe (prompt, response, retort), but those seem to have less to do with the message content than the other words. I've said in previous posts that I'd like the Xenants to mostly not have speech acts: they don't think that reality is altered by verbally agreeing to terms of a contract, or by pronouncing two people to now be spouses, or by calling a meeting to order, et cetera. And they're not friendly, so they won't have greetings and well-wishes. And their emotions are kind of blunted relative to ours, so they might night even have (emotionally charges) insults and compliments, although they'll still have a capacity for causal attributions allowing them to make criticisms and praise, blame and... exonerations. And they are intelligent, with a capacity to weigh probabilities, so they need to have a way to talk about prediction and explanation, at the least.

Here's where I'm leaning: For messages that are claims, the Xenants recognize and use the following roles, which distinguish claims functionally by their contents:

(prediction | explanation)
(blame | exoneration)
(praise | criticism)
(warning/threat | good-tiding/proposal)
.

I want the Xenants to have words for all eight of those, although I'm not yet resolved if those words will add syllables onto some other word like "message" or "statement/claim" to speciate its meaning or whether roles will get their own ontological phonesthemes, separate from those for sortal categories.

: Social roles and social relations

I want names for Xenant social roles. I think it would be cute if they had a very small set of root-words for roles which are then distinguished by the subject that they deal with. Something like:

* administrator of (army, business, earth-mound, ecosystem)

* caretaker of (animals, corpses, earth-mounds, elders, infants, patients, plants, ...)

* creator of (earth-mounds, infants, prophecy, soldiers, ...)

* hunter of (animals, criminals, enemies, gems, plants, profits, spies, stratagems, wisdom, ....)


It seems very ant-like to have slaves, but I haven't given much thought to Xenant slave-taking behavior. If they do have slaves, then they probably have administrators, caretakers, creators, and hunters of them also.

In addition to slaves, looking over the subjects in the parentheses, there are some more social roles already: patient, solider, criminal, enemy, spy. I'm not sure if these and slaves should also be represented as kinds of administrators, caretakers, creators, and hunters. Something to figure out. A soldier is a hunter of hunters? A scout is a hunter of stratagems? A spy is a ... I mean, it doesn't have to be one of those four roots. I could make up more roots. But also, those four roots took me surprisingly far, and I'd like to see how much farther I can go with them. A spy is a hunter of tactical information.

Maybe ally, ally-turned-criminal, enemy, and enemy-turned-slave aren't social roles in the same class as the other things. They describe your relationship toward a person, not a person's relationship toward their work.

One more word in this category: "oracle", like the oracle of Delphi or a halting oracle in computer science. Oracle as in Delphi is a role for an agent. I'm not sure if oracle as in halting is also a role for an agent.

: More info objects

Among the hard words that I wanted to still fit into the language somehow, there were some other nouns for information compositions, besides the ones we've seen such as (word, name, sentence, message, ...). I "ontology" can be a compound noun, perhaps "explanation of nouns", or "book of nouns" if we're talking about specific published ontologies. Proofs seems kind of ontologically basic, and I wouldn't mind having a root noun for them. But also we already have a word for "program", and in light of the the Curry-Howard isomorphism, we kind of already do have a word for them. If I wanted to make a compound noun for "proof", I think it would be something like "explanation of (validity, truth, necessity, ...)".

A subject or topic seems kind of like an information object, and also strongly like a role. I'm not sure where that should go in the language. Also, an argument of a function. Roles. Kind of abstract. Hard. Moving on for now.

How about the word "number" and other mathematical objects. A number seems like an IX word, like (word, name, sentence, message, ...), doesn't it? Yeah.

: World Building

I'd like to flesh out the animal ecosystem a little. There are Xenants, of course. And some grazing animal akin to aphids that they manage and breed and eat or milk or both. Xenaphids we could call them, why not. And there's also a species that preys upon those two, which we could call a Xenantlion. And maybe a bird like species which they have myths about but don't see in their daily experience. There are a lot of birds with ant in their name already: (antbird, antpecker, antpipit, antpitta, antshrike, antthrush, antvireo, antwren), ant we could do worse then sticking a "Xen" at the front of one of those. I also thoroughly enjoy the sound of "Xenemu". But I think I'm going with "Xenowl" and "Xenowlet". Most owls don't eat ants - only the very small ones do - and the owl-ant relationship on earth mostly involves the behavior known as  "anting", where the owl lets ants crawl on it for... reasons. And that makes for a good Xenant myth. "Giant foreign creature, rarely seen, occasionally eats us, but usually rips us from our homes and stuffs us in its tail feathers". One more ecosystem note: I mentioned lots of specific plants in the last post; the Xenant language also needs at least one general word for "plant" that isn't a species.

: Roles which categorize roles

I had an idea! Possibly a good one. Roles could all have the form
(phonestheme)(half consonant)(one or more boundary consonants) 
.

The presence of a half consonant in the second position indicates a role, and specifically a role for the sortal ontological type associated with the phonestheme. I already did this with

Parent : IZx_Kx
Child : IZx_IZ
Ancestor : IZx_Xz
...

as roles for the sortal concept "organism" which has the phonestheme IZ. I think now I'm going to add a rule that the role-word which has "Zk" after the half-syllable will name the family of roles, e.g.

Relative: IZx_Zk

.

It's not ideal to have "relative" at the same level of lexical complexity as "parent", since "relative" is more abstract, but Xenants wouldn't recognize the phonestheme + half-syllable, "IZx_", as a well-formed noun. It would mess up their rigid parsing rules for identifying parts of speech and affix boundaries.

This potentially allows me to make roles for roles. Like if an agent is a role for a concrete endurant, maybe social roles for people, like "administrator of business", are roles for roles, with a form like

(phonestheme)(half syllable)(speciating boundary syllables)(half syllable)(speciating boundary syllables)

. I think that has the potential to make common important words unwieldy, so it won't be rigidly adhered to in the language: half-syllables in nouns will indicate roles, but not all roles with have half-syllables. For example, "agent" is a concept of such commonness and import that it will have a short word in the language, even if it's a role, and so social roles won't be so long as a consequence.

I had been struggling to find a place for the word "member" as a noun in the language. Endurants and perdurants can both be members of sets, so "member" has to be at a higher level of abstraction than either of those in the language, i.e. the level of Entities. For a moment, I had the idea that I could just not have "member" as a root noun: we have already introduced a genitive nominal suffixes that marks a noun as a member, "xkk_", so to speak of the concept "member" generally, I could say something like entity-(member-of(entity)), where "entity" here is not meant as a free variable, but rather the most general noun in the language, the word "entity", which they write as "ot". Written out it would be more like:

ot ot #1xkk_#2

That works to express the concept "member", but I'm not sure it works generally: I wanted a small closed class of genitive nominal suffixes, and it's not clear to me that nominal roles are a small closed class that can fit into the fixed lexical/morphosyntactcial space of genitive suffixes. Provisionally, I'm going to say that the Xenants have a word for "member" that is a role for entities, 

Member: otx_Ko

and other concepts related to "member" can also be in the "otx_" class, but I'm not sure what the general name of the class is, i.e. what the word "otx_Zk" means. Maybe "member" is the most general word and later I'll replace it with "otx_Zk". We'll see.

Since there are only 12 half syllables in the language, this choice of word-form for "member" is committing me to sorting entity-roles into at most 12 categories, which is... exciting maybe? We'll see how that goes. Members are countable, so maybe "otx_" entity roles are all countable, in addition to having other properties in common. I like that.

: Modal Roles

I tried to keep the Xenants from having adjectival nouns (property/quality words) with a modal character, like "flammability" and "legibility". Xenants don't remark on someone being "able" to do something, they say that [the person is (powerful, stable, intelligent, knowledgeable, ...) and therefore the speaker expects the person to do the thing]. In light of this, I'm struggling to figure out where if anywhere in the language to place the word "skill". Is it an info object like "knowledge"? Is it just a synonym for "ability", which I've tabooed? I'd feel better categorizing it as an info object if there were a numerical measure of skill so that an ascription of skill was a statement about the present and not about possible futures. Maybe instead of saying "skill", the Xenants will say "a history of success". How would they express that phrase in their language?

...

I'm forgetting which features this language has. I need to reread everything from the start. Please hold.

...

A Chord Grammar

:: Intro

Chord grammars are formal rules for producing and parsing chord sequences. I've played with some in the past and I've talked about them a little bit on twitter. I think it's time that I make a really really good one and posted about it here.

One thing that will make this chord grammar much better than other grammars you can find in the literature is this principle: Seventh chords, those with scale degrees (1 3 5 and 7) specified, have different functions. An Fmaj7 chord has a different function in the key of C major than does an F7 chord. So a good chord grammar has to treat different 7th chords differently. Most publish chord grammars don't. But we will.

:: Chord families

Let's start by introducing chords, and then I'll talk about how they link up. Further, let's work in C major. It's easy. At the end we'll talk about modulations.

The diatonic 7th chords in the C major harmonic field are these:

Cmaj7 Dm7 Em7 Fmaj7 G7 Am7 Bm7b5
.

The diatonic 7th chords in the parallel minor key of C minor, which are often borrowed into C major songs, are these:

Cm7 Dm7b5 Ebmaj7 Fm7 Gm7 Abmaj7 Bb7
.

The secondary dominants of the diatonic 7th chords in C major are these:

G7: V of Cmaj7
A7: V of Dm7
B7: V of Em7
C7: V of Fmaj7
D7: V of G7
E7: V of Am7
...
.
The secondary dominants often come before their target chords. We can think of the target chords as temporarily being the tonic of our key. There's an implied temporary tonicization. Looking at the last line with the ellipsis, you might be wondering about the secondary dominant of Bm7b5. It doesn't really exist. You can try playing an F#7 before a Bm7b5 if you like. It sounds awful. We will still use the chord F#7 in our chord grammar, but it won't be analyzed as a secondary dominant of Bm7b5.

Elementwise, the diatonic 7th chords of the parallel minor key mostly have the same secondary dominants, but not all:

G7: V of Cm7
...
Bb7: V of Ebmaj7
C7: V of Fm7
D7: V of Gm7
Eb7 : V of Abmaj7
F7 : V of Bb7

. The F7 and the Eb7 are new friends. Again here we have a gap because Dm7b5 doesn't have a secondary dominant.

Dominant 7th chords lend themselves well to tritone substitutions, i.e. you can replace a dominant 7th chord with another dominant 7th chord whose root pitch is a diminished fifth higher. Here are the tritone substitutions for the secondary dominants of C major:

Db7: Tritone substitution of G7 (V of Cmaj7)
Eb7: Tritone substitution of A7 (V of Dm7)
F7: Tritone substitution of B7 (V of Em7)
Gb7: Tritone substitution of C7 (V of Fmaj7)
Ab7: Tritone substitution of D7 (V of G7)
Bb7: Tritone substitution of E7 (V of Am7)

And here are the tritone substitutions for the secondary dominants of the parallel key of C minor:

Db7: Tritone substitution of G7 (V of Cm7)
...
Fb7: Tritone substitution of Bb7 (V of Ebmaj7)
Gb7: Tritone substitution of C7 (V of Fm7)
Ab7: Tritone substitution of D7 (V of Gm7)
Bbb7: Tritone substitution of Eb7 (V of Abmaj7)
Cb7: Tritone substitution of F7 (V of Bb7)
.

Next, diminished 7ths chords are useful, and they're often identified/analyzed as being passing chords. I don't know enough about them, but I'll sketch some things in here while I figure out the theory.

C#dim7 is a good passing chord between Cmaj7 and Dm7.

D#dim7 is a good passing chord between Cmaj7 and Em7.

F#dim7 is a good passing chord between Fmaj7 and G7.

...

I think basically, whenever you move between chords separated by a second or a third, you can insert a dim7 chord between them whose root is a minor second below the root note of the second chord. Maybe there are some limitations on that, but that's the gist. I'll have to experiment the next time I'm at a piano.

In 12-TET, lots of diminished 7th chords sound the same as other diminished 7th chords, e.g. F#dim7 and Cdim7 are played with the same keys on a standard piano. We're not working in 12-TET, though, we're working in interval space. They're not the same.

Oh! I have some old notes on which triad chord sequences I like, and the ones with diminished chords don't all fit that pattern. Here's a good one: Start with a Dm or Fmaj chord, then play a Ddim chord, then a Cmaj or Am cord. That's four different good sounding chord sequences with diminished chords, and none of them are accounted for by any of my theories. Also, past-me thinks that you can put any of (Gmaj, Fmaj, Ebmaj) before (Fdim -> Cmaj) and get a good sounding sequence. That one I kind of get though; I think the Fdim is functioning like an Fm chord, which is a parallel borrowing from the C minor scale. But wait, there's more! Between C and Dm you can insert a Ebdim chord and it sounds good. This is the whole sequence that past-me wrote down: (C Eb.dim D.m G C). Try it. It's good. Another unusual sequence with triads: (A.dim G.m F C). And finally, take any of these (Ab, Ab.aug, Ab.m) and follow it with any of these (G, G.m) and resolve down to C. Or, you know, don't resolve down to C. Go somewhere else. Do this:

    (Ab, Ab.aug, Ab.m) -> (G, G.m) -> Bb -> F -> B.dim -> C
.
You can embellish and lengthen chord sequences like that once know the ones you like. Anyway, I'm going to have to go through my triad chord progressions and see what 7ths go along with them.

Oh, you know what? They're passing dim chords are like secondary dominants, and I knew that. The VII.dim chord often has a dominant function, and so instead of preceding a chord by its tonicized V7 chord, you can precede a chord by its tonicized VII.dim chord. Like C#.dim is the VII of D major, and that's the normal way to explain (C#.dim D.m) in C major.

But wait, I found more old notes on music theory, and they're a little surprising. These guys were all grouped together in my notes:

C#.dim7 resolves to D.m7 (#I.dim7 mimics V7/II and resolves to II.m7)
D#.dim7 resolves to E.m7 (#II.dim7 mimics V7/III and resolves to III.m7)
F#.dim7 resolves to G7 (#IV.dim7 mimics V7/V and resolves to V.7)
G#.dim7 resolves to F.m7 (#V.dim7 mimics V7/VI resolves to VI.m7)

but there's no #III.dim or #VI.dim for some reason, and I do think that's there's a reason. Then these guys were mixed in with those:

C.dim7 resolves to C.maj7 (I.dim7 resolves to I.maj)
G.dim7 resolves to G7 (V.dim7 resolves to V.7)

. The roman numerals are the same on the antecedent and consequent chords, for some reason. Also-also, these were mixed in:

Eb.dim7 resolves to D.m7 (bIII.dim7 resolves to II.m7)
Ab.dim7 resolves to G7 (bVI.dim7 resolves to V.7)
.
And these ones have flatted Roman numerals instead of natural or sharp. I'm sure it all means something, but I don't know what. The sharp, the natural, and the flats were all listed together. And then these uses for .dim7 chords were listed separately:

Db.dim7 goes to C.maj7 (bII.dim7 goes to I.maj)
Gb.dim7 goes to F.maj7 (bV.dim7 goes to IV.maj)
Ab.dim7 goes to G7 (bVI.dim7 goes to V.7)
Bb.dim7 goes to A.m7 (bVII.dim7 goes to VI.m7)
A#.dim7 goes to B7 (#VI.dim7 goes to VII.dim)

And you might note that all of them have a flatted roman numeral going to a roman numeral that's one less, except the last rule, which has a sharped Roman numeral going to a Roman numeral one larger. Also, there are some gaps, like we don't have a bIII.dim7 going to some kind of II chord. I have no idea what to make of any of this, but I think I believe it? Something to figure out, eventually.

We're almost done. Another chord that's good to use in C major is Ebm7. It's the V or V of II.m7, i.e. the secondary dominant of Ab7, which is the secondary dominant of Dm7. So I guess it's a tertiary dominant? I don't know if we need a table of tertiary dominants, but I do like that one.

I also like a few chord progressions that use Bbmaj7 and F#m7b5 in C major songs. I don't know what they are, functionally, off hand. We'll figure it out in time, and maybe they'll bring some friends along. F#m7b5 is obviously diatonic in a G major scale, so that's a hint maybe. More likely, I think F#m7b5 will end up being analyzed as a passing chord, because that's basically how I use it. I also mentioned F#7 before. Same thing there. You can do like (F#7 Fmaj7 Cmaj7) and it sounds pretty good, in my opinion. Way better than (F#7 Bm7b5 Cmaj7). So there are probably a bunch of passing chords that I'll have to figure out or ignore at some point. But first I'm going to focus on a grammar that combines diatonic chords, parallel minor chords, secondary dominants, tritone substitutions, and maybe dim7 passing chords. I've done grammars with secondary dominants and tritone substitutions and modulations in the past, and so have other people, but I think now I can do a decent job of making a grammar that explains the use of parallel borrowings, which I don't think I've seen done before. That, at least, will be the contribution of this post to music theory.

I wondering now if I should make a table of secondary II.m chords to go along with the secondary dominant chord table, so that you can have tonicized (ii V I) progressions. Let's do it real quick for the C major pitch classes at least:
D.m7: ii of C
E.m7: ii of D
F#.m7: ii of E
G.m7: ii of F
A.m7: ii of G
B.m7: ii of Am7
...
.

Except that's not quite right because normally, when you do a (II V I) to a minor I chord, the II chord would be a .dim or .m7b5 chord. So... I probably messed that up somewhere down below. Oops.

:: Diatonic chord progressions

There are a few ways to define substitutions rules for chord grammars. One common way supposes that you can keep inserting chords before targets without worrying about the earlier part of the sequence. Like you if you have a sequence 
(Y Z)
, you can put the secondary dominant of Z before Z, 
(Y dom(Z) Z) 
and not worry at all about how Y interacts with the dominant of Z. Y is resolving down to Z and dom(Z) is resolving down to Z and they can resolve in parallel without any restrictions.

It honestly works pretty well, but I'd like to try something else. I want my substitution targets to be ordered pairs of chords, with insertions made between.

This list of expansion rules (over triads, not 7ths) doesn't have a theoretical basis,

(C) => (C F C)
(C) => (C G C)
(Am C) => (Am Bdim C)
(Am C) => (Am Dm C)
(Am C) => (Am F C)
(Am C) => (Am G C)
(C Am) => (C Em Am)
(C Am) => (C G Am)
(C F) => (C Am F)
(C F) => (C Em F)
(C G) => (C Dm G)
(C G) => (C F G)
(C G) => (C Am G)
(Dm C) => (Dm Bdim C)
(Dm C) => (Dm F C)
(Dm C) => (Dm G C)
(F C) => (F Bdim C)
(F C) => (F G C)
(G C) => (G F C)
(G F) => (G Am F)

But it happens to successfully parse a bunch of common diatonic chord progressions from popular music. I don't know if it generates good sequences when you run it for many steps. I haven't tried that. Maybe there are weirdly many rules for inserting Bdim and you'd have to equip the grammar with probabilities so that those rules trigger less often. But I think it's got some potential. And I'm pretty sure you could just stick the obvious diatonic 7th degree onto each triad and get a fairly suitable grammar over diatonic 7th chords.

I'll think I'll code that up and if it sounds good then I'll add in some insertion rules for parallel borrowings, and if that sounds good then I'll post it. And then the next step will be to iniclude secondary dominants and tritone substitutions.

Sequences of chord names are one thing, but how do we actually space them out across the bars of a song? Do we just say that every chord is one bar long, and the more complicated a chord sequence we make, the longer is has to be? A clever music maker named Donya Quick has a solution! They have a thesis on algorithmic music composition that includes a chord grammar called PTGG which assigns musical durations to the elements of the chord sequence as the elements are progressively generated, so that you can start with 8 bars of a I.major chord and when you're done you'll have 8 bars of some complicated cadential sequence that resolves down to I.major. It's a customizable system, but basically, if you're replacing one chord with four chords, then you might give each of them 1/4 of the original chord's duration. If you're replacing one chord with three, you might give the new chords durations that are (1/4 1/4 1/2) of the original, or something like that. It's a clever idea. I think it works better on a small scale than large. Like your whole song doesn't need to be a 64 bar (ii V I) cadence, for example. Four to eight bars are a pretty good length for a sequence and most people probably don't want more than four chords per bar - so the rules that turn a long tonic into an equally long complex song aren't really operating over a wide range of durations, and having a system that recursively applies regular division rules can be kind of low resolution, like broad brush strokes when you have a small space to paint and strong preferences for small details. The naïve way to implement the PTGG where the durations are divided the same way on a large scale and a small scale also won't give you, like, 3:4 or 5:4 time without also giving you 3 or 5 bar phrases. PTGG is pretty cool, don't get me wrong - it's customizable and you can definitely use it to make songs in 3:4 time, but I mostly regret having reimplemented it; chord sequences do need to be assigned durations somehow, but instead of starting with a general system of recursive application of (1/4 1/4 1/2) rules, and then adding in special rules for large scale and small scale composition to make the thing decent, just start with the large and small scale rules, and forget the recursive bit.

Okay, time to code.

: Mixed mode chord progressions

Or maybe I could get sad for no reason? That's an option. Here are some triad insertion/expansion rules that use non-diatonic chords. They're all just triads, but they do have parallel borrowings, which is cool, right? They use Eb, Bb, and Fm mostly. Also two substitution rules involve Gm. I think that's it.

(Bb -> C) => (Bb -> F -> C)
(C -> D.m) => (C -> Eb -> Dm)
(C -> F.m) => (C -> Bb -> F.m)
(C -> F.m) => (C -> F -> F.m)
(C -> F.m) => (C -> Eb -> F.m)
(C -> F.m) => (C -> D.m -> F.m)
(D.m -> Bb) => (D.m -> Eb -> Bb)
(D.m -> C) => (D.m -> Bb -> C)
(Eb -> Bb) => (Eb -> D.m -> Bb)
(Eb -> Bb) => (Eb -> G.m -> Bb)
(F -> C) => (F -> F.m -> C)
(F -> C) => (F -> Eb -> Bb -> C)
(F -> C) => (F -> Eb -> C)
(F -> Eb) => (F -> F.m -> Eb)
(F.m -> C) => (F.m -> G -> C)
(G -> F) = > (G -> Bb -> F)
(G.m -> F) => (G.m -> Bb -> F)
(Eb -> Bb) => (Eb -> D.m -> G -> Bb)
(D.m -> Eb) => (D.m -> Bb -> F -> Eb)

The parallel borrowings have well defined diatonic sevenths, in the parallel minor key, so this is pretty close to being in a completed state, honestly. Though it would be a lot nicer if we had a comparable number of rules for incorporating other members of the parallel minor scale, i.e. Dm7b5 and Abmaj7, and some more rules for Gm7.

It's a little bit sloppy to assume that all those triads are diatonic in C.major or C.minor: what if some of the major chords are functioning as secondary dominants? It's possible, and I will check how they sound before writing the sevenths in, but it doesn't look that way to me after a cursory review. Like, we have lots of Bb and Eb chords, and Bb7 is the V of Ebmaj7, so any time a Bb precedes an Eb in my expansion rules, it would be prudent to check if the Bb is the parallel diatonic Bbmaj or the secondary dominant Bb7: but Bb doesn't precede Eb in any of my rules. Likewise, F7 is the V of Bb7, so any F chord preceding a Bb deserves a little extra scrutiny to determine whether it's secretly an Fmaj7 or an F7, but again, the expansion rules above don't actually have any F chords before Bb chords, so no worries. Next, if you see a Bb chord and you're not sure whether it's should be dominant or diatonic, you've got another think coming: Bb7 is diatonic in C minor. There's no ambiguity there, and there won't be even why I add in some rules for how to introduce Ebmaj7 chords, for which Bb7 is the secondary dominant. Finally, it doesn't look like any of the C triads above are functioning as secondary dominants to Fmaj7 or Fm7, but that's something to look out for in the future.

: Secondary dominants as passing chords

If we seemingly don't have any secondary dominant insertion rules yet, where do the secondary dominants go in our chord progressions? In most chord grammars, you can insert them before their targets tonics without any regard for the stuff that came before. I might end up doing that also. But first, if we're inserting chords into a prefix-suffix context, I happen to know that these expansion rules for introducing secondary dominants,

(Fmaj7 G7) => (Fmaj7 D7 G7)
(G7 Am7) => (G7 E7 Am7)

, sound good in C major. Continuing on in that pattern of specifically inserting secondary dominants between chords whose roots are separated by ascending stepwise motion, you might also expect these to sound good:

(Cmaj7 Dm7) => (Cmaj7 A7 Dm7)
(Dm7 Em7) => (Dm7 B7 Em7)

, and they probably do, since normal practice lets you stick secondary dominants anywhere. But I'm still going to check them the next time I'm at a piano or in the mood to program some sounds. What about secondary dominants between stepwise chord motions that involve parallel borrowings?

These are the first insertion rules I want to check where the chords of the target context are both diatonic in C minor:

(Abmaj7 Bb7) => (Abmaj7 F7 Bb7)
(Gm7 Abmaj7) => (Gm7 Eb7 Abmaj7)
(Fm7 Gm7) => (Fm7 D7 Gm7)
(Ebmaj7 Fm7) => (Ebmaj7 C7 Fm7)
(Dm7b5 Ebmaj7) => (Dm7b5 Bb7 Ebmaj7)

.

It's a common alteration to make the ^5 chord of a minor scale into a dominant one (Gm7 => G7 in C minor), so let's also include:

(Fm7 G7) => (Fm7 D7 G7)

.

What about insertion targets where one of the chords is diatonic in C major and one is diatonic in C minor?

...

: Other spicy chord progressions

Even without a piano in front of me or any motivation to code things up, I have some cached knowledge of how to use spicy 7 chords besides secondary dominants.

We all know that jazz musicians use lots of (ii-V-I) cadences, like (Dm7 G7 Cmaj7). Replace the Dm7 with a Dm7b5, which comes from a C minor scale, and you get another perfectly serviceable (ii-V-I) cadence. But wait, it gets better. Another chord from the C minor scale, Abmaj7, sounds really good in the same spot: (Abmaj7 G7 Cmaj7). Both of these are established ways to voice (ii-V-I)s in the pop/jazz standard "Night and Day" by Cole Porter. That's what they tell you at Berklee when you pick up the Real Book.

Substituting Dm7b5 for Dm7 isn't any surprise. But why does Ab.maj7 work in place of a II.m chord? We can compare the pitch classes of the two chords:

D.m7b5: [D F Ab C]
Ab.maj7: [Ab C Eb G]

and see that they have some notes in common (Ab and C), which is the start of an explanation, and you might also note that the Ab is a d5 above D natural - like in a tritone substitution. But it's not a tritone substitution - for that the 3rds and 7ths would be the same, at least enharmonically, and switched, and they're not. 

Any analysis that says Ab.maj7 can substitute for D.m7b5 is also going to say that F.maj7 can substitute for B.m7b5 in regular C major, and that's... crazy, right? Isn't it? I think that's crazy, but I'm not sure. If I just look at my diatonic triad insertion rules, every rule with a Bdim still makes sense with an Fmaj in it's place, so, maybe it is a real/useful principle of substitution. Or my diatonic insertion rules aren't very advanced and you can only make the substitution sometimes.

Also, hey, whoa, speaking of enharmonics and shared tones: If we're not in 12-TET, do tritone substitutions stop working? Like using Db7 ([Db F Ab Cb]) for G7 ([G B D F]) is normally presented as working because the F and B/Cb are shared. But in other tuning systems, B and Cb aren't equal. Do we lose tritone substitutions in e.g. meantone temperaments? That's something I should test soon.

Okay, back to parallel borrowings. That Ab.maj7 borrowed from C minor can also bounce against the C.major7 pretty well,

(Cmaj7 Abmaj7 Cmaj7)

the same way you might do with a G or an F. And my diatonic triad insertion rules pretty much began with (C F C) and (C G C) and then inserted the other diatonic triads in the gaps between. So maybe there's a whole world of cadences to build around (Cmaj7 Abmaj7 Cmaj7)?

Another chord that can bounce against C.maj7 is Bb.maj7:

(C,maj7 Bb.maj7 C.maj7)

It sounds quite good, and I don't know why. It's not quite a parallel borrowing - the C minor scale has Bb7 instead. Maybe there's a whole world of cadences here too. Both the Abmaj7 bounce and the Bbmaj7 bounce have a bossa nova vibe to my ear. It would be great if I discovered cadences based on the two bounces that made bossa nova more explicable. 

On that subject: what's the deal with all the 6 chords? Bossa nova uses lots of 6 chords, and I don't know if it uses specific 6 chords for specific functions that differ from other 6 chords and other 7 chords. If so, that's something I should figure out and add to the grammar. And if not, then all the sooner I should have programs that make nice bossa nova chord progressions. I think later this evening I'll post most of what I know about 6 chords here and see if the totality of my knowledge forms a useable theory of cadential functions for 6 chords.

: All of my disordered half-formed thoughts about sixth chords in one place

In jazz, it's common to put a .6 chord made of [P1 M3 P5 M6] on the tonic. It's more interesting than major a triad and also it doesn't have the kind of dissonant m2 interval of .maj7 chord (like the m2 interval between the B and C of a C.maj7 chord), so it's kind of more sonorous / psycho-acoustically stable than a maj7, at least when it's put on scale degree ^1 in a major key. (A jazz pianist once told me that in C major, if the melody has a C note and a C.maj7 chord written,  you should instead play a C.6, and the C.maj7 is reserved for when the simultaneous melody note isn't the tonic. This i a good principle for the different uses of the two chords, but it's a principle for harmonizing given melodies rather than generating chord progression from scratch before having a melody. Only kind of relevant here.) It's also common to put a M9 interval above a .6 chord for extra layers of harmonic intrigue. So C.6 and C.6(add9) have tonic functions in jazz, and other genres that use lots of chords with upper chord tones, including bossa nova. In a minor key, like C minor, the .m6 chord and the .m6(add9) chord also have a tonic function. And in jazz, you really don't have to stick to a key. You can just play sequential (ii V I) cadences where the I of the previous sequence isn't related to the ii chord of the next sequence - maybe also choosing the root notes of the different I chords so that they generally go clockwise around the circle of fifths, or not doing that, who cares. But the point is, if you have lots of (ii V I) cadences, then you have lots of opportunities to use .6 chords and .6add9 chords and .m6 chords, and maybe .m6add9 chords, although I've never liked that one as much as the other three. It's a cool chord, but it's like, .... a sound effect in a noir detective radio drama? You can use it. I usually don't.

But that's not enough for me. Only putting 6/9 chords on the tonic? Weak. I want to know how to use sixth chords even if I'm staying in a single key. So let's talk about how chords can be respelled as if they were sixths. One tertian chord that's easy to reinterpret as some kind of 6th chord in C major is Bm7b5. It's an inversion of Dm6:

Bm7b5: [B D F A]
Dm(add13): [D F A B]

Did I mention that 6 chords are secretly 13 chords? No? Well I mentioned it in the last post. Try to keep up. So anywhere that you can use a VII.m7b5 chord, you can write in a II.m6 chord and now people will think that you have jazz chops. There aren't hugely many uses of VII chords, but it's a start.

The chord F.6b5 is also basically an inversion of B.m7b5:

F.6b5: [F A Cb D]

except that we have a Cb instead of a B. That might matter in microtonal tuning system; I'm not sure. But it doesn't matter in 12 TET. You can write in an F6b5 in place of Bm7b5, and now people will think that you know the secret art of how to use major thirds alongside diminished fifths.

What if you aren't ready to pose as a Keeper Of The Secret Art? I've got good news for you: a Dm7 chord is an inversion of an F6 chord. Now you can put 6 chords in place of the ii in a (ii V I) cadence also! Two third of your jazz songs are going to be 6 chords of one kind or another. And if you want to use a .6add9 chord instead of a .6 chord? Then F.6(add9) chord is an inversion of D.m7(add11), so if you feel comfortable writing a ii chord with a natural eleventh, then you should feel comfortable using .6(add9) chords on both the ^1 and the ^4 scale degrees in C major. The diatonic 13 chord rooted on scale degree ^2 in C major is a D.m13, which has a P11 interval, so it's even diatonic. Can we respell the other minor chords in C major as 6ths? The diatonic 13 chord rooted on scale degree ^6 in C major, namely A.m11b13, also has a P11 interval, so you should feel totally comfortable writing a A.m7(add11) chord on sheet music, and this is an inversion of our old friend C.6(add9). What about the 13 chord rooted on scale degree ^3? In C major, it's an E.m11b9b13 chord, with intervals [P1, m3, P5, m7, m9, P11, m13], and E.m7(add11) is a subset of that, so you should feel comfortable writing in a G.6(add9) chord anywhere that you're comfortable using a diatonic E.m7(add11).

Still think that's weak? It is kind of weak. We're just respelling diatonic chord sequences. I think some of the value of respelling these things is that the respellings suggest different voicings. When you put the F in the root of a D,m7(add11) chord, you might call it an F6(add9), but it's also Fmaj(add9)(add13)

F.maj(add9)(add13):[F A C G D]

and there's a really good chance that that's how a bossa nova guitarist is voicing it. And this has a cool stack of two P5s on the end. A pianist might play the the (3rd 6th 9th), i.e. (A D G), ascending in the right hand and get a stack of 4ths, like a delicate tinkly spacious atmospheric Joe Hisaishi piece. You don't get those voicings if you're putting D in the bass. These respelling have consequences.

Ready to have your mind blown? We just saw that D.m7(add9) = F.6(add9), but they're also inversions of a dominant G.11 chord with no third, a.k.a. G.9sus4. So, like... can you use F.6add9 as V.7 chord in C major? Can F.6add9 be a ii chord and a V chord? Can you just play F.6add9 twice for a (ii V) progression? I don't know.

There are a few other 6 chord I know of that are related to the dominant 7th chord: a G.7 chord with a sharp 9th is close to being a Bb.6b9 or A#.6b9 chord:

G.7#9: G B D F A#
Bb.majb9(add13): Bb D F Cb G
A#.majb9(add13): A# C## E# B F##

.

They're the same in 12-TET at least. Also G.7#5b9 is approximately equal to an Ab minor 6th chord with a G in the bass, Ab.m6/G, better known as Ab.mmaj7(add13), and also they're both approximately equal to Fm9b5.

G7#5b9: G B D# F Ab
Ab.mmaj7(add13): Ab Cb Eb G F
G#.mmaj7(add13): G# B D# F## E#
Fm9b5: F Ab Cb Eb G

.

I think I once saw an Ab.m6/G chord used in a (ii V I) progression in the wild. Idk if it works outside of 12-TET.

Two more kind of interesting respellings that I've found while doing this post: 

This

F.6(add11) ~ D.m7b13 ~ A#.maj9

relates and F6 to a Dm7, which isn't surprising, but also to an Bb.maj7, which showed previously as a 12-TET respelling of G.7#9 and also I previously claimed that Bbmaj7 bounces well against Cmjaj7:

(C,maj7 Bb.maj7 C.maj7)

and might be a source for a whole new family of interesting cadences.

One more interesting respelling, not related to dominant 7 chords or even 6 chords really, but I just have to show you:

G.maj7#9b13 = B.maj7#9b13 = D#.maj7#9b13

Isn't that crazy? Three different .maj7#9b13 chords. I just found out about that.

Now let's respell chords from the parallel minor key!

The D.m7b5 of the C minor scale can be replaced with Fm6. The F.m7(add11) can be replaced with Ab.6(add9). The Gm7(add11) can be replaced with Bb.6(add9).

I once wrote on twitter that a good principle for introducing 6 chords into your music is to put them on every diatonic chord in your key's harmonic field, maybe excluding V.7.  In C major, our usual harmonic field of diatonic seventh chords

Cmaj7 Dm7 Em7 Fmaj7 G7 Am7 Bm7b5

then becomes:

C6 Dm6 Em6 F6 G7 Am6 Bdim7

The 7 in a .dim7 chord is made by an interval of a d7 above the root, which is tunes to the same key as a M6 above the root in 12 TET, so a .dim7 chord works really well among other 6 chords.

If you just take a normal song with diatonic triads and translate them all to the harmonic field of 6 chords, it's sound good. It sounds cohesive and unified, and also maybe a little bit dark and sexy.

By comparison, the harmonic field I've been trying justify, a piece at a time, is more like this:

(Cmaj7 => C6) (Dm7 => F6(add9)) (Em7 => G.6(add9)) Fmaj7 G7 (Am7 => C6(add9)) (Bm7b5 => Dm6)

I don't feel great about any of the substitutions that I found for G7, so I'm not including those above. This harmonic field has some of the same pieces as the 6 chord field I once posted on twitter, but we're missing E.m6, A.m6, and B.dim7. So let's talk about those.

Let's start with A.m6. It's not a diatonic chord in C major.

A.m(add13): [A C E F#]

although upper chord tones don't have to be diatonic. They're sexier when they're not. The prroblem is that without a 7th scale degree on the chord, I'm not sure of its harmonic function in C major. There's a coward's way around this: A.m6 is an inversion of F#m7b5:

F#.m7b5: [F# A C E]

which is diatonic in G major. (Also it's almost an inversion of C6b5:

C6b5: [C E Gb A]

, but I'm not a Keeper of the Art, so let's leave that one to better theorists.)

So one way to get A.m6 chords into your C major progression is to modulate or temporarily tonicize to G major, and get a chord progression in G major that includes an F#.m7b5 chord, and then respell it as an A.m6.

That might sound like a lot, but it basically means that we can look at old triad rules like

(Am C) => (Am Bdim C)

and modulate the whole thing like this, adding in diatonic sevenths:

(E.m7 G.maj) => (E.m7 F#.m7b5 G.maj)

and then respell the middle chord like this:

(E.m7 G.maj) => (E.m7 A.m6 G.maj)

.

You might be wondering why I have a bare G.maj above at the end of that sequence, without a seventh scale degree. My thinking was that it should be a G.maj7 or G.6 or G6.9 if we've modulated to G major, and it could be another chord quality if we're dealing with a temporary tonicization, but most often it will be G.7 for tonicization. Lots of G.7 chords arise in C major chord sequences, and when you tonicize them, you don't change the chord quality away from .7, even though the .7 quality isn't otherwise normally used as a chord quality/sonority/type for for the I scale degree. In short, if we don't modulate out of C major, one way I know to functionally justify A.m6 chords is through tonicization. Which is basically modulation, but I'm still calling this a small win.

An E.m6 chord is an inversion of C#m7b5, which is diatonic in D major. We could pull the same trick again.

(B.m D) => (B.m7 E.m6 D.maj)

It's really not a very good trick. And where are you going to get a D.major chord to tonicize anyway? Maybe you can tonicize a D.m chord but still precede it with a C#.m7b5 from D major? Something to test, but not obviously right. Otherwise, D7 is a secondary dominant of G chords, so you could get a sequence like

    (((B.m7 E.m6 D.7) G.7) C.6)

maybe.

I have a few more ideas for the theory of how to use 6 chords. One is this: they're seventh chords. That's right, you guessed it, they've secretly got diminished 7th or diminished 14th intervals, not M6 or M13. Common practice music theory says that this is the case for the dim7 chord, and why shouldn't it be the same for the other chords in that harmonic field of 6 chords that I once posted on twitter? Have you ever played a song with 6 chords on a polyphonic microtonal instrument and verified that M6 intervals sound better than d7? Probably not. I'm not super serious about this one, but I do think it merits a little investigation. I think this does a decent job of explaining why .6 and .6(add9) chords are very common in jazz: they're secretly types of 7 and 9 chords, which are a little easier to use than 11 and 13 chords. Why else would be have scale degrees ^9 and ^13 specified so often but not ^7 or ^11? "Quartal harmony?" Yeah, okay, maybe.

Next theory: 6 chords are 7th chords without 7ths. By this I mean, you can use an F6 for an Fmaj7 because and F6 is an Fmaj7(add13)(no 7). No one expects upper chord tones to be diatonic, so the presence of non diatonic 13 degrees in (E.m6, A.m6, B.dim7) doesn't need to be explained. If this were the case, I think we'd have a lot more .b6 and b6(add9) chords in jazz and bossa nova than we see in practice, since b13 is a common upper chord tone. This one is easy to test with normal instruments: whenever you see a 6 chord, try adding in the seventh that seems to explain its harmonic function in the context of nearby chords. If you see an E.m6, you can guess that it's just a diatonic .m7 chord, add in the 7th degree to get E.m7(add13), and then listen and see if the chord seems to have changed meaningfully. If adding the 7th doesn't change how to chord is functioning, then it was a .m7(add13) chord all along. If the .m7(add13) feels functionally different from the .m6, then this theory goes out the window and it's time to figure out what the different functions are.

Next idea: let's look at the pitch classes of the harmonic field with all 6 chords. Here's the field again:

C6 Dm6 Em6 F6 G7 Am6 Bdim7

and here are the pitch classes for those chords:

C.6: [C E G A]
D.m6: [D F A B]
E.m6: [E G B C#]
F.6: [F A C D]
G.7: [G B D F]
A.m6: [A C E F#]
B.dim7: [B D F Ab]

.... Now what? I feel like maybe I should be doing some analysis of how the accidentals work across chord transitions. Like, if you have a chord progression generated by the C major diatonic triad grammar from way up above, 

(C Em Am G F Bdim C)

with all of the chords replaced by their homologues in the 6 chord harmonic field:

(C6 Em6 Am6 G7 F6 Bdim7 C6)

, are the accidentals doing interesting things to link the chords? The A.m6 has an F# which could move by a half step to the root of G7, and that's kind of nice. The E.m6 has a C# that could move by half step to the C of the A.m6 chord. And the B.dim7 has an Ab, which could move by half step to the A of the C.6. The actual movements will depend on how the chords are voiced. This is not impressive: there are only so many notes, you're bound to have small steps from an accidental to one of the pitch classes of the next chord. Every chord in the 6 field has a C or a D or both, so the fact that C# moves by a half step to the next chord is completely trivial. Likewise, every chord has an E or an F, so F# moving by step isn't interesting. I just don't know what to do here.

Lol, okay, I just looked at some actual lead sheets for bossa nova and there were hardly any 6 chords? At least not in Desde Que O Samba or Nao Vou Pra Casa or Garota de Ipanema. And the ones that do appear, about half of them are like an Am6 following an Am7, i.e. normal stepwise voice leading on top of normal diatonic seven chord function. WTF have I been doing?

One more quick thought about 6 chords though: if you can use C.m6 tonically in C minor, you should be able to use A.m6 in C major. You can have an A minor modal section within a C major song. There doesn't need to be any justification like a tonicization of a G chord for A.m6 in C major. It's fine. Use it whenever.

And, maybe I never mentioned it? A rootless V.9 is a II.m6, e.g. rootless G.9 = Dm(add13) = F6b5 = Bm7b5. Also, rootless Ab.maj7b9.

Let's get back to the grammar. I think we can improve both the diatonic C major grammar and the parallel borrowing grammar a lot. For one thing, the diatonic grammar has hardly any rules involving Em, which means we have limited opportunities in introduce the chord or to expand around the chord. There's one chord progression in particular, (C Dm Em Dm C), that's common in pop music but the grammar can't generate at the moment, and that needs to be fixed. It's basically the entire structure of songs like The Allman Brothers' "Melissa" and Charles Manson's "Your Home Is Where You're Happy". Another weakness: the borrowed chord grammar right now has very few rules involving Ab.maj chords, so, for example, it won't recognize or generate the Mario cadence, (bVI.maj bVII.maj I.maj), and that's a damn shame.

Looking back over my music theory notes from past years for stuff about chord grammars I found a claim that secondary subdominant chords were all the rage in the romantic era. My notes say that (II.dim of IV), (II.dim of V), and (IV.m of IV) were common. Is II.dim even subdominant? Someone thinks so. The same document says augmented 6 chords were common, and had a subdominant function, and were resolved to dominant 7 chords. In one of my chord grammars, I had the substitution rule "V → (bII.6 V)", so that's one way to use sixths predominantly. The document also says that shared-tone chromatic mediant motion was all the rage.

Some more notes about romantic era harmony, these seem to be from "Analyzing Tschaikovsky's "Der Puppe Begräbnis"", probably reproduced with some small edits in my notes:

"An augmented sixth chord functions harmonically as a chromatically altered predominant chord (typically, an alteration of ii^(4/3), IV^(6/5), vi^(7) or their parallel equivalents in the minor mode) leading to a dominant chord. This characteristic has led many analysts to compare the voice leading of augmented sixth chords to the secondary dominant V of V. In most occasions, the augmented-sixth chords precede either the dominant, or the tonic in second inversion. The augmented sixths can be treated as chromatically altered passing chords."

"Tchaikovsky considered the augmented sixth chords to be altered dominant chords. He described the augmented sixth chords to be inversions of the diminished triad and of dominant and diminished seventh chords with a lowered second degree (♭scale degree 2), and accordingly resolving into the tonic. He notes that, "some theorists insist upon [augmented sixth chord's] resolution not into the tonic but into the dominant triad, and regard them as being erected not on the altered 2nd degree, but on the altered 6th degree in major and on the natural 6th degree in minor", yet calls this view, "fallacious", insisting that a, "chord of the augmented sixth on the 6th degree is nothing else than a modulatory degression into the key of the dominant"."

So that's all good and useful. Oh wow, this document is huge. I cannot post it all. I will just code it up and post that.

Looking at my old substitution-based chord grammar code, there are just a few things that I haven't really accounted for in my expansion-based chord grammars above. In my old grammar, I replaced replaced V.maj with VII.dim very freely. Replacing G with Bdim in all of the diatonic grammar rules and throwing out the ones look completely crazy, I think these might be useful:

(Am C) => (Am Bdim C)
(Dm C) => (Dm Bdim C)
(F C) => (F Bdim C)
(Bdim C) => (Bdim F C)
(Bdim F) => (Bdim Am F)

, although I'll have to check how they sound.

I also used to replace V.maj with III.m very freely. This is a little weird, but why not try it? None of these immediately stand out to me visually as being crazy, but I doubt that all of them will work:

(C) => (C Em C)
(Am C) => (Am Em C)
(C Am) => (C Em Am)
(C Em) => (C Dm Em)
(C Em) => (C F Em)
(C Em) => (C Am Em)
(Dm C) => (Dm Em C)
(F C) => (F Em C)
(Em C) => (Em F C)
(Em F) => (Em Am F)

. Only four of the ten rules here actually introduce Em into chord sequences. The other six rules insert other chords into contexts that include Em.

Another rule in my old substitution grammar works directly as a rule in an expansion grammar: ("V → V VI.m VII.dim V"), which we can spell as

G → (G Am Bdim G)

. I don't know if it sounds any good. I think I just blindly copied that one from Donya Quick. I'm not anxious to add that one to my expansion grammar, but I'll give it a listen later on. This rule comes from Donya too:

V → III.m VI.m
.

When applied to my diatonic expansion rules, this mostly just reproduces other rules that I've made other ways, such as through (G -> E.m), so that's encouraging. The new ones are these:

(C) => (C Em Am C)
(Am C) => (Am Em Am C)
(Dm C) => (Dm Em Am C)
(F C) => (F Em Am C)

. I'll also give them a listen, sure. I suppose I could apply the same substitutions to the borrowed chord grammar now. We get these from (G -> B.dim):

(F.m C) => (F.m B.dim C)
(B.dim F) = > (B.dim Bb F)
(Eb Bb) => (Eb D.m B.dim Bb)

and these frorm (G -> Em):

(F.m C) => (F.m E.m C)
(E.m F) = > (E.m Bb F)
(Eb Bb) => (Eb D.m E.m Bb)
.

And these from (G -> Em Am):

(F.m C) => (F.m E.m A.m C)
(A.m F) = > (A.m Bb F)
(Eb Bb) => (Eb D.m E.m A.m Bb)
.

For the second one, the substitution actually gives

(E.m A.m F) = > (E.m A.m Bb F)

and I got rid of the E.m that appears at the beginning of both sides because I think it's redundant. An insertion context needs a chord in front and a chord behind, and that's enough. I hope. I'm just making this up as I go. But it's kind of working out so far. I'll work on adding mixed mode rules for D.m7b5 and Ab.maj7 and G.m7 next time. Good night.

....

 I sat down at a piano with a note book but no laptop, and I played around and found that these expansion rules with parallel borrowings work pretty well / sound pretty good:

(C) => (C Bb C)
(C) => (C Ab C)
(C Bb) => (C Ab Bb)
(C Ab ) => C Bb Ab)
(Ab C) => (Ab Bb C)
(Bb C) => (Bb Ab C)
(C Bb) => (C Eb Bb)
(G C) => (G Bb C)
(Ab C) => (Ab G C)
(G C) => (G Eb C)
(Bb C) => (Bb Bdim C)
(Ab C) => (Ab Bdim C)

. Most of them involve the chord Ab, but also there are a few new uses for Bb. I haven't tried them with different 7ths. Maybe some of the Bb chords are maj7 and some are dominant 7.

Here are the expansion rules that I feel best about so far:

"A.m C → A.m B.dim C",
"A.m C → A.m D.m C",
"A.m C → A.m E.m A.m C",
"A.m C → A.m E.m C",
"A.m C → A.m F C",
"A.m C → A.m G C",
"A.m F → A.m Bb F",
"Ab C → Ab B.dim C",
"Ab C → Ab Bb C",
"Ab C → Ab G C",
"B.dim F → B.dim Bb F",
"Bb C → Bb Ab C",
"Bb C → Bb B.dim C",
"Bb C → Bb F C",
"C A.m → C E.m A.m",
"C A.m → C G A.m",
"C Ab → C Bb Ab",
"C Bb → C Ab Bb",
"C Bb → C Eb Bb",
"C D.m → C Eb D.m",
"C E.m → C A.m E.m",
"C E.m → C D.m E.m",
"C E.m → C F E.m",
"C F → C A.m F",
"C F → C E.m F",
"C F.m → C Bb F.m",
"C F.m → C D.m F.m",
"C F.m → C Eb F.m",
"C F.m → C F F.m",
"C G → C A.m G",
"C G → C D.m G",
"C G → C F G",
"C → C Ab C",
"C → C Bb C",
"C → C E.m A.m C",
"C → C E.m C",
"C → C F C",
"C → C G C",
"D.m Bb → D.m Eb Bb",
"D.m C → D.m B.dim C",
"D.m C → D.m Bb C",
"D.m C → D.m E.m A.m C",
"D.m C → D.m E.m C",
"D.m C → D.m F C",
"D.m C → D.m G C",
"D.m Eb → D.m Bb F Eb",
"E.m C → E.m F C",
"E.m F → E.m A.m F",
"E.m F → E.m Bb F",
"Eb Bb → Eb D.m B.dim Bb",
"Eb Bb → Eb D.m Bb",
"Eb Bb → Eb D.m E.m A.m Bb",
"Eb Bb → Eb D.m E.m Bb",
"Eb Bb → Eb D.m G Bb",
"Eb Bb → Eb G.m Bb",
"F C → F B.dim C",
"F C → F E.m A.m C",
"F C → F E.m C",
"F C → F Eb Bb C",
"F C → F Eb C",
"F C → F F.m C",
"F C → F G C",
"F Eb → F F.m Eb",
"F.m C → F.m B.dim C",
"F.m C → F.m E.m A.m C",
"F.m C → F.m E.m C",
"F.m C → F.m G C",
"G C → G Bb C",
"G C → G Eb C",
"G C → G F C",
"G F → G A.m F",
"G F → G Bb F",
"G.m F → G.m Bb F",

.

This is kind of crazy. I've got more than 70 rules here, whereas my implementation of Donya's PTGG system only had like 25 rules, and it could do secondary dominants and modulations and stuff. I honestly think this is going to make cooler/better chord sequences than any of the variants of Donya's grammar that I played with, but it's still crazy.

I could maybe compress the presentation a little bit by making rules like this

(A.m C) |+> [B.dim, D.m, E.m, F, G]
(C C) |+> [Ab, Bb, E.m, F, G]
(D.m C) |+> [B.dim, Bb, E.m, F, G]
(Bb C) |+> [Ab, B.dim, F]

where each rule says that any of the options on the right can be inserted in the middle of the context on the left. You might think that some interpretable chord classes would emerge from that. Like the family (G, E.m, B.dim) has to emerge, because I explicitly used the transformations (G -> E.m) and (G -> B.dim) to generate additional rules. And it does. But what else? I think (F, D.m, A.m) frequently co-occur in option sets. And (Bb, Eb) might be a family. Although (Bb, Eb) usually occur in the same places as (F, D.m, A.m), so it might be just one family. There are some other regularities, besides those. The chord F.m is only ever introduced after an F chord in my rules, so far. I think Bb is only ever introduced before a C, and F, or an F.m. Still reading.

If a C chord is at the end of the context, you're probably going to insert a (G, E.m, B.dim) chord, especially if the first chord of the context comes from (F, D.m, A.m, Bb, Eb). If C is the first chord of the context, you're probably going to insert a (F, D.m, A.m, Bb, Eb) chord, the second chord in the context hardly matters at all. If the firrst chord of the context is in (G, E.m, B.dim) and the second chord is F, then you insert one of  (F, D.m, A.m, Bb, Eb).

Okay, that's a first pass at compressing the grammar in broad, lossy strokes. Next...I think my next pass should look at (Bb, Eb) as a separate family, and maybe look at (A.m) separate from (F, D.m).

Or better yet, I could just stop trying to compress the thing, then code the rules up, and discover whether they sound as good, when randomly selected by a program, as they do when I'm choosing them with artistic bias at a piano

...

I coded it up! It's decent! There are more repetitions than I'd like, but that's to be expected with a context-free grammar. The generated sequences can easily be cleaned up with a regex. Here are some non-repetitious mixed-modality 8-chord phrases that start and end on C, with no C chords in between:

C A.m E.m A.m F G Bb C
C Ab Bb Ab G Bb B.dim C
C Bb Ab Bb F E.m F C
C Bb Ab Bb F F.m Eb C
C E.m A.m Bb F F.m Eb C
C Eb Bb Ab G Bb B.dim C
C Eb D.m B.dim Bb Ab B.dim C
C Eb D.m B.dim Bb F B.dim C
C Eb D.m G A.m G Eb C
C Eb D.m G Bb Ab B.dim C
C Eb D.m G Bb F B.dim C
C Eb G.m Bb Ab Bb B.dim C
C Eb G.m Bb Ab G Eb C
C Eb G.m Bb F F.m Eb C
C G A.m Bb F G Eb C
C G Bb F E.m A.m F C

.

The grammar can make at least 1390 unique 8-chord phrases like that.

And here are some that are 16 chords long:

C A.m Bb F G Bb F F.m Eb D.m B.dim Bb Ab G Eb C
C A.m E.m A.m F G Bb F Eb D.m Bb F Eb Bb B.dim C
C A.m F G A.m Bb F E.m A.m G F E.m A.m E.m F C
C A.m G A.m Bb F E.m A.m D.m F Eb G.m Bb F F.m C
C A.m G A.m E.m A.m Bb F E.m A.m F Eb D.m E.m Bb C
C D.m G A.m E.m A.m Bb F F.m E.m A.m E.m F Eb Bb C
C E.m A.m Bb F G A.m Bb F F.m Eb D.m E.m Bb B.dim C
C E.m F G A.m E.m A.m F E.m A.m D.m E.m A.m E.m F C
C Eb D.m Bb F F.m Eb D.m Bb F Eb G.m Bb Ab B.dim C
C Eb D.m E.m A.m F E.m A.m D.m F F.m Eb G.m Bb B.dim C
C Eb D.m E.m Bb F F.m Eb D.m E.m A.m Bb Ab G Eb C
C Eb D.m Eb Bb Ab Bb F F.m Eb D.m B.dim Bb Ab G C
C Eb D.m Eb Bb F F.m Eb D.m E.m Bb Ab G Bb B.dim C
C Eb D.m Eb G.m Bb F F.m Eb D.m B.dim Bb Ab Bb B.dim C
C Eb D.m G A.m Bb F F.m Eb D.m G Bb F F.m Eb C
C Eb D.m G A.m E.m A.m F F.m Eb D.m B.dim Bb Ab G C
C G A.m E.m F F.m Eb D.m B.dim Bb F F.m E.m F B.dim C
C G A.m F G A.m E.m A.m F Eb D.m E.m Bb Ab G C

.

I tried rendering a 16-chord phrase, (C A.m Bb F G Bb F F.m Eb D.m B.dim Bb Ab G Eb C) to find out how it sounded. Just okay. The grammar needs some work. Also, I probably should have chosen 9-chord and 17-chord phrases instead of an 8- and 16-chord phrases. It sounds better if the last C chord gets its own measure. Also, sadly, it sounds better with triads than with diatonic seventh chords. Also, 16 chord sis too long to get back to the tonic, I think.

That rendering is pretty basic. It's just in 12-TET, with the barest waltz figure for the horizonal realization, and the chords are all voiced in root position, except one, the G major, that I manually respelled because the leap in the bass was driving me nutty. Also there's no natural variation in tempo, onset times, or volume. All of those are bad, and know how to fix them in code; I've done it before and I'll do it again. But first, I want to fix the grammar.

Despite all of that, it's still not terrible, I think. With better voicings, more interesting comping, and a melody on top, that audio clip would be something that I'd consider posting on soundcloud. I have lots more work to do, but I still think we've got a worthy germ of a mixed mode chord grammar here.

...

New day, new plans. Let's render multiple shorter C to C phrases in sequence and voice them better so that the seventh chords sound good. I can do that very quickly, and that'll be way easier than changing the whole grammar with rules about duration, and rechecking every rule for sound.

For the voicing and the comping, let's make it sound more like bossa nova. Befoe I was voicing the chords with 

  (^1 ^5 | 

in the lower chord tones / left hand, and 

| ^1 ^3 ^5)

in the upper chord tones / right hand.

One common way to voice chords in bossa nova is to put just the ^1 in the bass, and upper chord tones will only be ^3 and ^7. Then you use voice leading considerations to chose between (^1 | ^3 ^7) and (^1 | ^7 3) for each chord. Once you have the placement of the third and the seventh figured out, you can put the fifth scale degree on top indiscriminately. You can do more advanced stuff of course, but lots and lots of bossa nova just has sparse little 4 note chord like that, on piano or guitar. So these are the voicing options:

(1 | 7 3 5)
(1 | 3 7 5)

.

It's not a general solution, but I bet I could just assign one of those two voicings rigidly for every chord in the C major and C minor harmonic fields and get something out with good voice leading. I never actually used C.m or D.dim from the C minor harmonic field in my grammar, but here are the others: 

C.maj7:  (1 | 7 3 5)
D.m7: (1 | 7 3 5)
E.m7: (1 | 3 7 5)
F.maj7: (1 | 7 3 5)
G.7: (1 | 3 7 5)
A.m7: (1 | 7 3 5)
B.m7b5: (1 | 3 7 5)
Eb.maj7: (1 | 7 3 5)
F.m7: (1 | 7 3 5)
G.m7: (1 | 7 3 5)
Ab.maj7: (1 | 7 3 5)
Bb.7: (1 | 3 7 5)

.

I made that up, but I think it's going to work. It alternates |7 3) to |3 7) to |7 3) in the (II V I) cadence of (Dm G7 C), which I know sound good, and then I just assigned every other chord the |7 3) or |3 7) voicing depending on whether I feel like the grammar uses the chord more like a II, a V or a I. Even if I guessed a few wrong, it's not going to sound any worse than the straight (^1 ^3 ^5 ^7) voicing that I tried first. It'll be fine.

Bossa nova comping: ...

...