Tuned Cords With Constrained Adjacent Harmony

Weird dissonant chords can be given musical functions through resolution; you follow the weird chord with a pretty one through tight voice leading, and the dissonances become setups for the consonances in the punch line. There's a baroque prescription of preparing your dissonances by consonant suspension from the previous chord and then resolving them downward by to consonances in the next chord, and this is a beautiful idiom that composers should become skilled in, but in non-baroque music, it can  be beautiful to just introduce some crazy bullshit and then follow it with whatever resolution your ear likes, not requiring preparation or downward resolution.

Anyway, most chords can be given musical function, so it doesn't make sense for a person to give a list of all the useable chords. Almost any chord should be usable. But it might be good to have a list of pretty chords - the ones you can resolve to, the ones that make sense of the weird ones, the punch lines.

I haven't trained my ear well enough to compose well in just intonation, and so I often look for theoretical shortcuts to finding good chords. I've done this in interval space a lot. I can't recall if I've written it up here, but that's a topic for another day. I've also looked for consonant chord identification heuristics in frequency space a little bit: see "Odd Harmonics Sound Great". In this post, I'm going to share a new heuristic for making pretty chords in frequency space, chords with moderately high prime limits.

Here's the trick: I start with a justly tuned harmonic seventh chord, which has the otonal representation [4, 5, 6, 7]. Now I make a new chord from that. Each voice in the chord has to move up or down by one of these steps: 

       [1/1, 3/2, 4/3, 5/3, 5/4, 6/5, 7/4, 7/6, 8/5, 8/7, 9/8, 10/9, 11/4, 11/8, 12/7, 12/8, 13/8]

There's nothing magical about that list, it's just one of the first things I tried and liked. It has super particular ratios, some reduced harmonics, and some octave complements of those, and also the unison. I call them the tridecimal fluid steps.

Next we check if the chord made this way has good adjacent harmony, i.e. if there is good harmony between each pair of adjacent voices. I used a similar but slightly different set of frequency ratios for the blessed set of good harmonies:

    [2/1, 3/2, 4/3, 5/3, 5/4, 6/5, 7/4, 7/6, 8/5, 8/7, 9/8, 10/9, 11/10, 12/7, 12/11, 13/12, 14/13, 15/14, 16/15]

This one has the octave instead of the unison, and more high-limit super particular ratios than the previous list. Again, nothing magic, it's just the first thing that I tried and liked. 

So we make make a new chord that flows from the harmonic seventh chord. And then we repeat, basing off the most recent new chord each time. 

Most chords that follow as fluid transitions won't also have good adjacent harmony. Sometimes I had to do like 8000 loops of (chord construction and checking) to get the next chord. And not every chord made in this way will sound amazing. But a large proportion of them sound good. I don't know why it works, but I'm glad that it does. It doesn't even seem to me that the chords get reliably worse as you go farther from the initial chord in the generative chain. You can definitely get chords with larger integers in their otonal representations, but the quality doesn't really degrade much, in my estimation.

I do confess that the chords sound worse at higher prime limits. So maybe I'll focus on figuring predictive principles for which 7-limit and higher-limit chords sound good next. But also the generative sequence weaves into and then back out of high-prime limit chords, so the sequences you get are still overall pretty good.

So here below are about 500 chords I found by this procedure. I haven't filtered out the bad sounding ones, because I haven't decided which ones sound bad for all 500 yet, and also because I don't want to present only the good ones: I'm showing you what my procedure makes, and there is work left to do to figure out why a few of these chords sound bad - there's is more aesthetic formalization that I want to do that should start with this data.

[1, 2, 3, 6], # 3-limit
[2, 3, 4, 6], # 3-limit
[3, 6, 12, 16], # 3-limit
[4, 6, 9, 12], # 3-limit
[4, 6, 9, 18], # 3-limit
[6, 8, 9, 12], # 3-limit
[6, 8, 9, 18], # 3-limit
[8, 9, 12, 16], # 3-limit
[8, 9, 18, 24], # 3-limit
[8, 16, 18, 27], # 3-limit
[8, 16, 24, 27], # 3-limit
[9, 12, 16, 32], # 3-limit
[16, 18, 27, 36], # 3-limit
[1, 2, 3, 5], # 5-limit
[2, 3, 5, 10], # 5-limit
[2, 4, 5, 10], # 5-limit
[3, 4, 6, 10], # 5-limit
[3, 5, 8, 10], # 5-limit
[3, 6, 10, 16], # 5-limit
[4, 5, 6, 8], # 5-limit
[4, 5, 6, 10], # 5-limit
[4, 5, 8, 9], # 5-limit
[4, 5, 8, 16], # 5-limit
[4, 5, 10, 15], # 5-limit
[4, 5, 10, 16], # 5-limit
[4, 5, 10, 20], # 5-limit
[5, 6, 9, 10], # 5-limit
[5, 6, 9, 12], # 5-limit
[5, 6, 9, 18], # 5-limit
[5, 6, 10, 15], # 5-limit
[5, 6, 12, 15], # 5-limit
[5, 8, 9, 10], # 5-limit
[5, 8, 10, 12], # 5-limit
[5, 8, 12, 15], # 5-limit
[5, 8, 12, 24], # 5-limit
[5, 8, 16, 32], # 5-limit
[5, 10, 16, 20], # 5-limit
[5, 10, 16, 24], # 5-limit
[6, 10, 15, 20], # 5-limit
[6, 12, 15, 20], # 5-limit
[9, 10, 12, 16], # 5-limit
[9, 10, 15, 20], # 5-limit
[9, 10, 16, 24], # 5-limit
[9, 10, 20, 32], # 5-limit
[9, 12, 20, 40], # 5-limit
[9, 15, 16, 18], # 5-limit
[9, 15, 16, 32], # 5-limit
[9, 15, 18, 20], # 5-limit
[9, 15, 20, 24], # 5-limit
[9, 15, 20, 32], # 5-limit
[9, 15, 30, 40], # 5-limit
[9, 18, 30, 40], # 5-limit
[10, 12, 15, 20], # 5-limit
[10, 12, 24, 27], # 5-limit
[10, 15, 16, 20], # 5-limit
[10, 15, 18, 24], # 5-limit
[10, 15, 18, 36], # 5-limit
[10, 15, 24, 30], # 5-limit
[10, 15, 24, 36], # 5-limit
[10, 15, 24, 40], # 5-limit
[10, 16, 24, 27], # 5-limit
[12, 15, 20, 30], # 5-limit
[12, 15, 20, 32], # 5-limit
[12, 15, 20, 40], # 5-limit
[12, 20, 25, 30], # 5-limit
[15, 16, 18, 24], # 5-limit
[15, 16, 20, 40], # 5-limit
[15, 16, 24, 30], # 5-limit
[15, 16, 24, 40], # 5-limit
[15, 16, 32, 64], # 5-limit
[15, 18, 24, 32], # 5-limit
[15, 18, 24, 40], # 5-limit
[15, 18, 30, 32], # 5-limit
[15, 18, 36, 40], # 5-limit
[15, 20, 24, 27], # 5-limit
[15, 20, 24, 30], # 5-limit
[15, 20, 24, 32], # 5-limit
[15, 20, 30, 32], # 5-limit
[15, 20, 30, 36], # 5-limit
[15, 20, 32, 40], # 5-limit
[15, 20, 32, 64], # 5-limit
[15, 24, 30, 50], # 5-limit
[15, 24, 32, 40], # 5-limit
[15, 24, 36, 40], # 5-limit
[15, 24, 40, 50], # 5-limit
[15, 24, 40, 64], # 5-limit
[15, 30, 32, 48], # 5-limit
[15, 30, 36, 40], # 5-limit
[15, 30, 40, 64], # 5-limit
[15, 30, 48, 64], # 5-limit
[16, 20, 25, 40], # 5-limit
[16, 20, 30, 45], # 5-limit
[16, 20, 40, 45], # 5-limit
[16, 24, 27, 30], # 5-limit
[18, 20, 30, 45], # 5-limit
[18, 27, 36, 40], # 5-limit
[18, 30, 40, 45], # 5-limit
[18, 30, 45, 50], # 5-limit
[18, 30, 50, 75], # 5-limit
[18, 36, 40, 45], # 5-limit
[20, 24, 27, 45], # 5-limit
[20, 24, 27, 54], # 5-limit
[20, 24, 40, 45], # 5-limit
[20, 30, 45, 54], # 5-limit
[20, 40, 45, 72], # 5-limit
[24, 40, 45, 75], # 5-limit
[25, 30, 32, 36], # 5-limit
[25, 30, 36, 60], # 5-limit
[25, 30, 36, 72], # 5-limit
[25, 30, 45, 54], # 5-limit
[25, 30, 48, 64], # 5-limit
[25, 30, 48, 72], # 5-limit
[25, 30, 48, 80], # 5-limit
[25, 30, 60, 64], # 5-limit
[25, 30, 60, 72], # 5-limit
[25, 40, 48, 64], # 5-limit
[25, 40, 64, 128], # 5-limit
[25, 40, 80, 128], # 5-limit
[25, 50, 80, 128], # 5-limit
[27, 30, 40, 60], # 5-limit
[27, 30, 45, 50], # 5-limit
[27, 36, 40, 60], # 5-limit
[27, 36, 40, 64], # 5-limit
[27, 45, 60, 64], # 5-limit
[27, 45, 72, 80], # 5-limit
[30, 40, 45, 72], # 5-limit
[30, 45, 60, 64], # 5-limit
[32, 40, 45, 90], # 5-limit
[32, 40, 50, 75], # 5-limit
[36, 45, 48, 80], # 5-limit
[36, 45, 60, 80], # 5-limit
[40, 45, 48, 64], # 5-limit
[40, 45, 54, 60], # 5-limit
[40, 45, 60, 64], # 5-limit
[40, 45, 90, 108], # 5-limit
[40, 64, 72, 81], # 5-limit
[45, 54, 60, 100], # 5-limit
[45, 72, 80, 128], # 5-limit
[45, 72, 96, 128], # 5-limit
[45, 72, 96, 160], # 5-limit
[50, 75, 90, 108], # 5-limit
[50, 75, 120, 128], # 5-limit
[60, 75, 120, 128], # 5-limit
[64, 72, 81, 135], # 5-limit
[64, 72, 120, 135], # 5-limit
[64, 80, 120, 135], # 5-limit
[75, 80, 160, 192], # 5-limit
[75, 90, 120, 128], # 5-limit
[75, 120, 160, 256], # 5-limit
[80, 90, 108, 135], # 5-limit
[80, 96, 108, 135], # 5-limit
[81, 90, 96, 128], # 5-limit
[81, 108, 144, 160], # 5-limit
[128, 160, 180, 225], # 5-limit
[135, 144, 240, 256], # 5-limit
[135, 144, 240, 320], # 5-limit
[135, 180, 240, 256], # 5-limit
[144, 180, 225, 250], # 5-limit
[225, 240, 480, 512], # 5-limit
[375, 600, 640, 768], # 5-limit
[2, 3, 6, 7], # 7-limit
[2, 4, 7, 12], # 7-limit
[3, 4, 7, 12], # 7-limit
[4, 6, 7, 14], # 7-limit
[4, 7, 8, 14], # 7-limit
[4, 7, 12, 15], # 7-limit
[4, 7, 14, 28], # 7-limit
[5, 8, 14, 16], # 7-limit
[6, 7, 8, 9], # 7-limit
[6, 7, 12, 14], # 7-limit
[6, 7, 12, 18], # 7-limit
[6, 7, 14, 28], # 7-limit
[6, 9, 12, 14], # 7-limit
[7, 8, 9, 12], # 7-limit
[7, 8, 9, 18], # 7-limit
[7, 8, 12, 16], # 7-limit
[7, 8, 14, 16], # 7-limit
[7, 8, 14, 28], # 7-limit
[7, 8, 16, 24], # 7-limit
[7, 12, 14, 24], # 7-limit
[7, 12, 15, 24], # 7-limit
[7, 12, 16, 20], # 7-limit
[7, 12, 16, 28], # 7-limit
[7, 12, 18, 21], # 7-limit
[7, 12, 20, 32], # 7-limit
[7, 14, 16, 18], # 7-limit
[7, 14, 24, 42], # 7-limit
[7, 14, 28, 48], # 7-limit
[8, 9, 12, 14], # 7-limit
[8, 10, 12, 21], # 7-limit
[8, 12, 21, 42], # 7-limit
[8, 14, 28, 35], # 7-limit
[9, 10, 16, 28], # 7-limit
[9, 10, 20, 35], # 7-limit
[9, 15, 20, 35], # 7-limit
[9, 18, 21, 28], # 7-limit
[10, 12, 14, 15], # 7-limit
[10, 12, 21, 36], # 7-limit
[10, 15, 24, 42], # 7-limit
[12, 14, 21, 24], # 7-limit
[12, 15, 16, 28], # 7-limit
[12, 15, 24, 28], # 7-limit
[12, 16, 18, 21], # 7-limit
[12, 21, 28, 32], # 7-limit
[14, 15, 18, 21], # 7-limit
[14, 15, 24, 36], # 7-limit
[14, 15, 25, 30], # 7-limit
[14, 21, 24, 27], # 7-limit
[14, 21, 24, 30], # 7-limit
[14, 21, 36, 40], # 7-limit
[14, 21, 36, 54], # 7-limit
[14, 21, 36, 60], # 7-limit
[15, 18, 21, 28], # 7-limit
[15, 18, 24, 28], # 7-limit
[15, 20, 24, 42], # 7-limit
[15, 24, 28, 42], # 7-limit
[15, 24, 28, 49], # 7-limit
[15, 30, 48, 56], # 7-limit
[16, 24, 28, 35], # 7-limit
[16, 24, 28, 49], # 7-limit
[16, 28, 35, 56], # 7-limit
[16, 28, 42, 49], # 7-limit
[16, 28, 56, 63], # 7-limit
[18, 20, 30, 35], # 7-limit
[18, 20, 35, 60], # 7-limit
[18, 24, 30, 35], # 7-limit
[18, 30, 35, 60], # 7-limit
[18, 36, 42, 49], # 7-limit
[20, 35, 40, 48], # 7-limit
[20, 35, 56, 70], # 7-limit
[21, 24, 28, 32], # 7-limit
[21, 24, 28, 56], # 7-limit
[21, 24, 32, 40], # 7-limit
[21, 24, 32, 56], # 7-limit
[21, 24, 32, 64], # 7-limit
[21, 24, 40, 48], # 7-limit
[21, 28, 42, 45], # 7-limit
[21, 28, 48, 56], # 7-limit
[21, 28, 48, 96], # 7-limit
[21, 35, 56, 60], # 7-limit
[21, 35, 56, 64], # 7-limit
[21, 35, 60, 75], # 7-limit
[21, 36, 60, 80], # 7-limit
[21, 42, 72, 80], # 7-limit
[24, 28, 35, 56], # 7-limit
[24, 30, 35, 60], # 7-limit
[25, 30, 35, 42], # 7-limit
[27, 30, 35, 70], # 7-limit
[27, 30, 60, 70], # 7-limit
[27, 36, 42, 56], # 7-limit
[27, 36, 63, 70], # 7-limit
[28, 35, 40, 64], # 7-limit
[28, 35, 40, 70], # 7-limit
[28, 35, 60, 70], # 7-limit
[28, 42, 45, 50], # 7-limit
[28, 42, 45, 60], # 7-limit
[30, 35, 40, 48], # 7-limit
[30, 35, 40, 64], # 7-limit
[32, 36, 63, 84], # 7-limit
[32, 56, 60, 105], # 7-limit
[32, 56, 63, 105], # 7-limit
[35, 40, 45, 72], # 7-limit
[35, 40, 60, 96], # 7-limit
[35, 40, 70, 84], # 7-limit
[35, 42, 48, 60], # 7-limit
[35, 42, 63, 108], # 7-limit
[35, 42, 70, 120], # 7-limit
[35, 42, 72, 96], # 7-limit
[35, 56, 60, 72], # 7-limit
[35, 56, 63, 108], # 7-limit
[35, 56, 64, 80], # 7-limit
[35, 56, 64, 96], # 7-limit
[35, 56, 64, 112], # 7-limit
[35, 56, 70, 120], # 7-limit
[35, 56, 84, 90], # 7-limit
[35, 56, 84, 96], # 7-limit
[35, 56, 96, 144], # 7-limit
[35, 70, 80, 96], # 7-limit
[35, 70, 112, 128], # 7-limit
[35, 70, 112, 192], # 7-limit
[36, 40, 70, 105], # 7-limit
[36, 42, 56, 63], # 7-limit
[36, 45, 60, 70], # 7-limit
[36, 48, 56, 63], # 7-limit
[40, 45, 48, 84], # 7-limit
[42, 45, 48, 56], # 7-limit
[42, 45, 60, 80], # 7-limit
[42, 49, 84, 90], # 7-limit
[42, 63, 70, 80], # 7-limit
[45, 48, 64, 112], # 7-limit
[45, 60, 64, 112], # 7-limit
[45, 72, 96, 112], # 7-limit
[48, 56, 60, 75], # 7-limit
[48, 56, 60, 105], # 7-limit
[48, 56, 63, 84], # 7-limit
[48, 80, 140, 175], # 7-limit
[48, 84, 140, 175], # 7-limit
[49, 56, 96, 192], # 7-limit
[49, 84, 144, 180], # 7-limit
[49, 84, 144, 240], # 7-limit
[54, 60, 100, 175], # 7-limit
[54, 63, 70, 140], # 7-limit
[54, 63, 84, 112], # 7-limit
[54, 63, 105, 140], # 7-limit
[56, 60, 105, 112], # 7-limit
[56, 60, 105, 210], # 7-limit
[56, 63, 105, 120], # 7-limit
[56, 63, 108, 126], # 7-limit
[56, 63, 108, 135], # 7-limit
[56, 70, 75, 120], # 7-limit
[56, 70, 120, 135], # 7-limit
[56, 96, 168, 189], # 7-limit
[60, 105, 112, 192], # 7-limit
[63, 70, 105, 120], # 7-limit
[63, 70, 105, 180], # 7-limit
[63, 70, 112, 192], # 7-limit
[63, 70, 120, 210], # 7-limit
[63, 70, 140, 240], # 7-limit
[63, 72, 80, 96], # 7-limit
[63, 72, 80, 100], # 7-limit
[63, 72, 80, 140], # 7-limit
[63, 72, 84, 140], # 7-limit
[63, 72, 96, 128], # 7-limit
[63, 84, 140, 150], # 7-limit
[63, 105, 120, 160], # 7-limit
[63, 108, 120, 128], # 7-limit
[63, 108, 120, 160], # 7-limit
[63, 126, 144, 160], # 7-limit
[64, 112, 120, 135], # 7-limit
[70, 84, 126, 135], # 7-limit
[70, 105, 126, 216], # 7-limit
[70, 105, 168, 180], # 7-limit
[72, 80, 90, 105], # 7-limit
[81, 90, 120, 140], # 7-limit
[84, 140, 150, 175], # 7-limit
[98, 105, 120, 210], # 7-limit
[100, 175, 210, 252], # 7-limit
[105, 112, 140, 150], # 7-limit
[105, 112, 140, 160], # 7-limit
[105, 112, 140, 240], # 7-limit
[105, 112, 192, 256], # 7-limit
[105, 112, 192, 288], # 7-limit
[105, 112, 224, 256], # 7-limit
[105, 120, 128, 224], # 7-limit
[105, 120, 140, 168], # 7-limit
[105, 120, 144, 160], # 7-limit
[105, 126, 140, 240], # 7-limit
[105, 126, 144, 160], # 7-limit
[105, 140, 160, 192], # 7-limit
[105, 168, 224, 384], # 7-limit
[105, 168, 280, 300], # 7-limit
[105, 180, 210, 224], # 7-limit
[108, 120, 150, 175], # 7-limit
[112, 120, 135, 225], # 7-limit
[112, 120, 140, 175], # 7-limit
[112, 126, 135, 144], # 7-limit
[112, 168, 180, 315], # 7-limit
[112, 168, 189, 216], # 7-limit
[120, 140, 168, 189], # 7-limit
[120, 210, 245, 294], # 7-limit
[128, 224, 252, 441], # 7-limit
[135, 216, 252, 280], # 7-limit
[147, 252, 280, 320], # 7-limit
[150, 175, 210, 224], # 7-limit
[160, 180, 315, 336], # 7-limit
[168, 280, 300, 525], # 7-limit
[175, 200, 240, 288], # 7-limit
[175, 210, 240, 256], # 7-limit
[175, 210, 360, 432], # 7-limit
[175, 280, 480, 576], # 7-limit
[175, 300, 360, 576], # 7-limit
[180, 210, 245, 294], # 7-limit
[189, 210, 240, 280], # 7-limit
[189, 210, 360, 400], # 7-limit
[189, 216, 288, 320], # 7-limit
[189, 252, 288, 320], # 7-limit
[189, 315, 350, 400], # 7-limit
[216, 240, 280, 315], # 7-limit
[224, 252, 315, 540], # 7-limit
[245, 280, 448, 768], # 7-limit
[245, 294, 336, 576], # 7-limit
[245, 420, 448, 768], # 7-limit
[245, 420, 672, 768], # 7-limit
[245, 420, 672, 1152], # 7-limit
[270, 315, 336, 560], # 7-limit
[270, 315, 420, 448], # 7-limit
[280, 315, 504, 540], # 7-limit
[300, 525, 560, 672], # 7-limit
[315, 336, 384, 512], # 7-limit
[315, 336, 560, 640], # 7-limit
[315, 360, 384, 640], # 7-limit
[315, 420, 448, 768], # 7-limit
[315, 504, 560, 600], # 7-limit
[315, 504, 560, 960], # 7-limit
[336, 560, 630, 675], # 7-limit
[343, 392, 420, 720], # 7-limit
[441, 504, 560, 640], # 7-limit
[441, 504, 560, 960], # 7-limit
[525, 560, 960, 1152], # 7-limit
[735, 784, 1344, 2304], # 7-limit
[784, 882, 945, 1080], # 7-limit
[11, 12, 16, 18], # 11-limit
[11, 12, 18, 24], # 11-limit
[11, 12, 20, 32], # 11-limit
[11, 12, 24, 27], # 11-limit
[11, 22, 33, 36], # 11-limit
[15, 18, 20, 22], # 11-limit
[18, 30, 33, 55], # 11-limit
[20, 25, 30, 33], # 11-limit
[20, 40, 44, 55], # 11-limit
[22, 33, 36, 48], # 11-limit
[24, 40, 44, 55], # 11-limit
[25, 40, 80, 88], # 11-limit
[25, 50, 55, 66], # 11-limit
[30, 33, 55, 110], # 11-limit
[33, 36, 63, 70], # 11-limit
[33, 36, 72, 80], # 11-limit
[33, 44, 88, 96], # 11-limit
[33, 55, 60, 70], # 11-limit
[33, 55, 60, 72], # 11-limit
[33, 55, 60, 90], # 11-limit
[33, 55, 66, 72], # 11-limit
[33, 55, 110, 120], # 11-limit
[35, 40, 60, 66], # 11-limit
[35, 60, 66, 110], # 11-limit
[44, 48, 56, 63], # 11-limit
[44, 48, 72, 81], # 11-limit
[44, 55, 60, 70], # 11-limit
[44, 66, 72, 81], # 11-limit
[45, 50, 60, 66], # 11-limit
[45, 60, 80, 88], # 11-limit
[50, 60, 66, 99], # 11-limit
[54, 90, 99, 110], # 11-limit
[55, 88, 96, 168], # 11-limit
[55, 88, 110, 120], # 11-limit
[66, 77, 84, 147], # 11-limit
[66, 99, 110, 120], # 11-limit
[66, 110, 120, 135], # 11-limit
[66, 110, 165, 180], # 11-limit
[77, 84, 96, 192], # 11-limit
[77, 84, 144, 216], # 11-limit
[77, 132, 231, 252], # 11-limit
[88, 110, 120, 135], # 11-limit
[88, 110, 165, 180], # 11-limit
[99, 108, 180, 200], # 11-limit
[99, 110, 120, 128], # 11-limit
[99, 110, 120, 192], # 11-limit
[99, 110, 165, 180], # 11-limit
[121, 242, 264, 288], # 11-limit
[125, 200, 220, 352], # 11-limit
[165, 176, 192, 384], # 11-limit
[165, 220, 240, 384], # 11-limit
[175, 300, 330, 396], # 11-limit
[200, 225, 270, 297], # 11-limit
[200, 240, 264, 297], # 11-limit
[220, 385, 616, 672], # 11-limit
[231, 252, 280, 480], # 11-limit
[231, 385, 440, 480], # 11-limit
[363, 605, 660, 720], # 11-limit
[440, 495, 540, 864], # 11-limit
[605, 968, 1056, 1152], # 11-limit
[847, 924, 1056, 1152], # 11-limit
[847, 968, 1056, 1152], # 11-limit
[1815, 1936, 2112, 2304], # 11-limit
[24, 26, 52, 91], # 13-limit
[60, 65, 78, 91], # 13-limit
[60, 65, 78, 130], # 13-limit
[65, 70, 105, 168], # 13-limit
[65, 70, 140, 168], # 13-limit
[108, 117, 130, 260], # 13-limit
[117, 126, 140, 168], # 13-limit
[117, 126, 140, 280], # 13-limit
[144, 156, 195, 260], # 13-limit
[144, 156, 273, 455], # 13-limit
[168, 182, 195, 260], # 13-limit
[180, 195, 260, 312], # 13-limit
[195, 210, 245, 294], # 13-limit
[240, 260, 455, 728], # 13-limit
[288, 312, 364, 637], # 13-limit
[324, 351, 468, 520], # 13-limit
[360, 390, 455, 728], # 13-limit
[420, 455, 520, 624], # 13-limit
[420, 455, 780, 936], # 13-limit
[1188, 1287, 1430, 1560], # 13-limit
[1456, 1638, 1755, 1890], # 13-limit

When composing music generatively in frequency space, I think a person could do a lot worse than to bless all of these chords as good, then see what they can produce for chord progressions using these chords, and then decide yay or nay for each little generated progression, instead of having to decide yay or nay for each chord. And then you can do whatever you like given your harmonic skeleton - a four voice chorale, a wandering chromatic solo over a waltz figure, some cocktail piano comping, whatever.

Glossolalia

:: Some glossolalic aphorisms:

 * Not every philiglossem will spull a thusk and a phloke.

* When you hear the ur-shwongs in the ooznobb, you'll know that anyone who has seen sphism can be xembistomed.

* It is said that the right yume stands with the left, but the true smalybi and froiscs have ordained a phlaerg of heuthim in the nalik of their thloons.

* Love is shown first by thaogniosphauds and second by acts of spleth.

* When the first fritsobeorr ran the schabe and saw smubb, it was for thamskirgs, whose hengst was dweothm, and for dwuable, who was sworsh since the start of fauf.

* Happiness is this: to take your floam first with squelf and then with gausp.

* An up-stallid arb, they say, is just a gnoasm presenting kauck without zuzemt.

* To become smeej and enter under the jestliath is pure prubbleshams.

* Your papth is a present from a strapet and a high phead.

* After a fraup, any small smeext can squorth the best smooj.

* A great spelp is a scheuzz, parting fermeth under itself.

* Loebrendth and grioduel go together like a larnsworf and a thurpt.

* One schaob is at least as diachtispaunct as the next. 

* One cannot wheemp out from all the other tumps on the moarm without snuelfing a ploat.

* Let priamps yup upon the thatoth.

* You can taken take quarypt after quarypt with side-chourms and theofs, and never learn to rhoosm a pluke.

* A skuroch besides a thalk is a strunth and a hammeled sphlea.

* One dringst, two gapnarshes.

-

:: A glossolalic poem:

<spooky whisper>
Proqupt in the bapuet and out ellyn aupisp,
Frythier few to lecsion, thank the owners benipst.
Plinep ovenneney, woliodys tyng ag.
On outle ayr kiggen, his naywatt, thered thues of nyb;
It zyrrops alout, shoud ol' woofout be plassed!
We've theyed every nashoul, frae when the routtient saceit -
E'ery broudy through Puxpuert's sourdus alid,
"Froduct becomes loursuvir", sarts onard thae besyg.
"And when they tyng under, sometimes the aggrycted abyg."
Noicherrim en wackspill, volseroo takesonest the dype,
And in the b'lo elorib,
Where sleeps the blire cohn,
Lilur follows lours, for hours anone!

Odd Harmonics Sounds Great

I've never found good principles for making tuned chords that use high-prime-limit frequency ratios, but I recently heard of a cool trick that seems to work.

A tuned chord can be written "otonally" as a sequence of integers, like [4, 5, 6]. Divide all the list elements through by the first list entry to get the frequency ratios, e.g. [4, 5, 6] -> (1/1, 5/4, 3/2). That's a major chord and it sounds great.

You can generate random sequences of integers all day to make chords, and some will be okay, some will be bad, some will be good. But it's not easy to listen to 500 random chords, pick your favorites, try to remember how they sounds based on a name that is a list of integers, and then try to use them to compose. It would be nicer if we had some principles for finding tuned chords that sounded good almost surely.

I heard about such a method from Kite Giedraitis; you just use sequences of odd integers. I find that things sound better if you also keep all your integers within an octave, i.e. the largest integer in your list is smaller than twice the first integer in your list.

These chords almost all sound good to my ear. Or maybe I was just in a very-open-to-weirdness headspace when I played with them last night. But I think it's the former. And that's very exciting, because you can get very high prime limit chords.

Here's a list of frequency ratios between 1/1 and 2/2 that show up in such chords, with numerators up to 31: [1/1, 5/3, 7/5, 9/5, 9/7, 11/7, 11/9, 13/7, 13/9, 13/11, 15/11, 15/13, 17/9, 17/11, 17/13, 17/15, 19/11, 19/13, 19/15, 19/17, 21/11, 21/13, 21/17, 21/19, 23/13, 23/15, 23/17, 23/19, 23/21, 25/13, 25/17, 25/19, 25/21, 25/23, 27/17, 27/19, 27/23, 27/25, 29/15, 29/17, 29/19, 29/21, 29/23, 29/25, 29/27, 31/17, 31/19, 31/21, 31/23, 31/25, 31/27, 31/29].

Here they are sorted by increasing size: [1/1, 31/29, 29/27, 27/25, 25/23, 23/21, 21/19, 19/17, 17/15, 31/27, 15/13, 29/25, 27/23, 13/11, 25/21, 23/19, 11/9, 21/17, 31/25, 29/23, 19/15, 9/7, 9/7, 17/13, 25/19, 31/23, 23/17, 15/11, 29/21, 7/5, 27/19, 13/9, 19/13, 25/17, 31/21, 29/19, 23/15, 17/11, 11/7, 27/17, 21/13, 31/19, 5/3, 5/3, 5/3, 29/17, 19/11, 23/13, 9/5, 9/5, 31/17, 13/7, 17/9, 21/11, 25/13, 29/15].

If you sounds those in order against 1/1, you'll notice some elements are very close to each other. Like right at the start,

(29/27) / (31/29) = 841/837 @ 8 cents

is a fairly small comma, and

(25/23) / (27/25) = 625/621 @ 11 cents

is similarly small.

They're not unnoticeable commas, but if you want very-high-prime-limit temperaments, then I've heard of worse methods to generate very-high-prime-limit tuned commas.

The Bohlen-Pierce scale also doesn't use any even harmonics, but it limits things to 7-limit frequency ratios. I think it's cool that this extends Bohlen-Pierce.

I have no idea why this works. But let's figure it out. 

I've forgotten almost everything I've written about otonality and utonality. I haven't written much. Time to redo it, and better.

Chords made of frequency ratios are called tuned chords. They differ from chords made of intervals. Those are intervallic chords, like [P1, M3, P5]. We'll be looking at tuned chords in this post.

Here are the just frequency ratios for a 5-limit major chord: [1/1, 5/4, 3/2]. We can multiply through by the least common multiple of the denominators to get a sequence of integers: [4, 5, 6]. This is the otonal representation. To get back to the ratios, divide everything through by the first element of the otonal list.

We can find "inversions" of tuned chords, by which I  mean cyclic permutations modulo the octave. Pop the first element off of the list, multiply by 2, and stick it at the end of the list. Divide all the list elements by the new first element. Multiply through by the least common multiple of the denominators if you want that chordal inversion to be represented otonally.

The otonal major chord [4, 5, 6] has cyclic inversions of [5, 6, 8] and [3, 4, 5].

We can also find the elementwise inverse of chords. For each element {e} in a list, take {1/e} for the new element in that position. Sort by size and multiply through by the least common multiple of denominators. We'll call this the utonal inverse of the chord. Optionally you can divide through by the first element if you want frequency ratios. Cyclic inversions versus utonal inverses.

Here are the three inversions of the otonal major chord and the utonal inverse for each after a double colon:

    [4, 5, 6] :: [10, 12, 15]

    [5, 6, 8] :: [15, 20, 24]

    [3, 4, 5] :: [12, 15, 20]

The utonal inverses are also inversions of each other, i.e. the set is closed under cyclic permutation modulo the octave. They happen to also be justly-tuned minor chords. 

What if we space things out more, beyond the octave? If we remove factors of two, i.e. raise and lower things by octaves until the factors of two are gone from the utonal integer list, then the major chord has only one all-odd voicing: [1, 3, 5] and its utonal inverse has only one all-odd voicing, [3, 5, 15].

And.... all-odd voicings usually sound good, at least within an octave, not that these necessarily are within an octave. So can we take a bad sounding chord and make it sound better by spacing it out in an all-odd voicing? Are there chords that sound better when compressed into an octave than when expanded to the all-odd voicing?

I think a normally voiced harmonic seventh chord, [4, 5, 6, 7], sounds way better than its all-odd voicing, [1, 3, 5, 7]. So there's one.

...

Defective Portuguese

In Portuguese, a few verbs are missing some conjugations. They're called "defective verbs". The standard example is "colorir", to color, which has no first person singular forms. You might say, "Obviously the simple present tense form should just be coloro?" and your language teacher will say that word is forbidden.

Wiktionary has a list of which verbs are defective in continental versus Brazilian, and there's... no overlap. So basically all the verbs have obvious forms, but different countries have different taboos?

To be fair, I have heard that "colorir" is defective in both Continental and Brazilian Portuguese, even though it isn't on both lists. But it's still pretty suspicious pair of lists. And it's pretty weird to have defective verbs at all, regardless of whether they're agreed on.

The weird spells to summon leather

I was reading about different tanning methods and I'm fairly confused about what they're achieving.

Like, some cultures would soak hides in poop... for proteolytic enzymes? And others just wouldn't and that seemed to work fine. Or you can use chromium III sulfate to change the spacing between collagen threads, but also you can just cover the thing in astringent bark water (or other sources of tannic acid, but why would you gather small rare parasitic oak galls if you could just use waste tree bark or leaves), and wouldn't it be nice if your nice-smelling leather products that children might want to chew on weren't impregnated with poisonous heavy metals?

Or I saw a buckskin recipe that covered the hide in egg wash, or a mix of grated bar soap and vegetable oil, or you can rub the deer's brain on its skin, and supposedly these methods all soften the leather in equivalent ways, with emulsions of triglycerides in water, but they don't even mention a protein changing step to finish. It's just: 1) take off the fur and fat with alkali and then 2) soften with brain grease or eggs.

And then I see references to "tawing", meaning treating the hide with alum and something else, like eggs or flour, as an alternative to proteolytic enzymes or protein-complexing chromium or protein-binding tannins, so maybe the alum does something like tanning but you need to soften the hide at the same time to prevent the alum from over-drying the hide?

It feels like there are 20 different ways to make leather, so it shouldn't be a finicky process, but all of the processes require some highly specific bullshit like green papaya latex or deer brains or fermented pigeon droppings.

Chitosan Fiber

The Thought Emporium on youtube made a video about weaving fibers made from the chitin, obtained from waste arthropod exoskeletons, e.g. shrimp and crab shells. I shared it with a friend and they didn't like the presenter's style, so here is a text summary. It's also a summary for me, because I don't remember all that many exact process details after watching a 16 minute video.

To make chitosan: reduce crustacean shells to very small pieces, perhaps powder, and cover with 10% solution of HCl. Stir for several hours (with heat?). Filter out solids and rinse. Cover solids in 10% solution of NaOH. Heat at 90 C for 2 hours. Filter out solids and rinse. Cover in 45% NaOH. Boil vigorously for 3 hours, topping off with water to maintain coverage. Strain and rinse. Now you have chitosan.

To make chitosan threads: Dissolve in vinegar. The mixture thickens a lot and will need to be stirred for a day for full incorporation. You'll only get about 3% chitosan by weight into your solvent, but you need more like an 11% solution for making threads. Heat the dilute solution to 65 C with stirring overnight (for 16 hours? until the solution reduces to a 1/4 of its initial volume?) to drive off water. You'll have a thick brown jelly now. Chitosan is soluble in the vinegar (and other acids), but not in bases, so to form fibers, extrude the jelly solution into NaOH and you get coagulation or some similar effect. Pull the coagulated thread from the extrusion syringe, through te NaOH bath, and then through a water bath to rinse, then hang to dry. Thinner extrusions will be less brittle. You might be able to loop the thread around a sequence of rollers with gradually increasing speeds to pull the thread thinner.

The lab hopes to put acetyl groups back on the chitosan threads at some point, turning the chitosan back into chitin, to make the threads more generally insoluble.

Sugar-Free Juice

I want to try extracting some things from juice - like organic acids and pigments and polyphenols - and I think this will be easier if I get rid of the sugar. But how does one get rid of the sugar in juice? Here's my plan.

If you aerate yeast, it's more likely to use aerobic respiration than fermentation. This is called the Pasteur effect. So let's put an aquarium pump and some yeast in bottle of juice and see what it does? I don't think that will quite work; lots of yeasts will still ferment sugars when aerated if there's a lot of sugar around - like in juice. This is called the Crabtree effect.

So we could dilute the juice to reduce its sugar content, but I estimate you have to dilute by something like 1000 times to prevent the Crabtree effect when using saccharomyces cerevisiae on juice. And that's not a home scale experiment. 

Another option is that we could find a food-grade yeast that doesn't have the Crabtree effect. Kluyveromyces species fit this bill. Kluyveromyces species are pretty good at doing just respiration on carbohydrates when aerated, and they're found in live-culture kefir.

I don't know the composition of yeast and bacteria in the kefir itself (the fermented milk) as well as the composition in the kefir grains; the latter is the thing that's analyzed in detail in biology publications. Here are some quotes about the grains:

"Kefir grain is composed of a diverse spectrum of species and genera including lactic acid bacteria (Lactobacillus, Lactococcus, Leuconostoc), yeasts (Kluyveromyces, Candida, Saccharomyces, and Pichia) and sometimes acetic acid bacteria (Acetobacter) in a symbiotic association."

"A complex and highly variable symbiotic community can be found in these grains, which can include acetic acid bacteria (such as Acetobacter aceti and A. rasens), yeasts (such as Candida kefyr and Saccharomyces cerevisiae) and a number of Lactobacillus species, such as L. parakefiri, L. kefiranofaciens (and subsp. kefirgranum), L. kefiri, etc."

"Many different species of Saccharomyces have been isolated from kefir, however, S. cerevisiae and S. unisporus are the most common and present in many varieties (Angulo et al., 1993; Marquina et al., 2002; Latorre-García et al., 2007; Diosma et al., 2014). Kluyveromyces make up the majority or entirety of the lactose utilizing yeast population, with K. marxianus and K. lactis being the two most common species (Simova et al., 2002; Latorre-García et al., 2007; Diosma et al., 2014). The Candida population is made up of a wide range of species with C. holmii and C. kefyr being the most prevalent (Angulo et al., 1993; Marquina et al., 2002). Outside of these three genera, only Pichia has been identified with any regularity and in each case the species was identified as Pichia fermentans."

"As fermentation progresses the proportions of some yeast species change with non-lactose fermenting yeasts, such as Saccharomyces, decreasing, whereas lactose utilizing K. marxianus and K. lactis show a similar distribution between grain and kefir (Simova et al., 2002)."

Based on the last quote, I'm hopeful that I can use a well fermented kefir's liquid as a purer source of Kluyveromyces yeast than the grains would be.

Once source, "Survivability of Kluyveromyces marxianus Isolated From Korean Kefir in a Simulated Gastrointestinal Environment" says that "Kluyveromyces marxianus accounts for > 90% of the yeast population of kefir", so our isolation is already well in progress.

I've seen a procedure for isolating Kluyveromyces that used kefir directly (the fermented milk) rather than kefir grains. You take a wire loop and dip it in the kefir and scratch it over an agar plate enriched with a growth medium favorable to yeasts and then grab a sample of the the right yeast by visual discrimination once some spots have grown on the plate. 

I think that would work fine, but I don't want to do it. I'm not really up to mixing a growth medium, or making an agar plate, or waiting for cultures to grow on agar. For this to be an experiment worth my time, it has to be a lot less time consuming than that. But I think I have a solution!

Kluyveromyces species are famously heat tolerant as yeasts. Some quotes:

"The thermotolerance of different K. marxianus strains has already been documented, where it has been observed to grow at temperatures of up to 52°C and to ferment ethanol at temperatures between 38 and 45°C (Choudhary et al., 2016)."

"The thermotolerant yeast Kluyveromyces marxianus, growing at high temperature (45℃) , showed stronger survival under heat shock at 50℃ than the brewing yeast Saccharomyces cerevisiae, which was unable to grow at 45℃. The survival rate of K. marxianus decreased to 10% during heat shock at 50℃ for 20 min, and to less than 0.01% at 60℃ for 20 min. Cells with damaged cellular membranes were infrequently observed at 50℃ and had decreased significantly from heat shock at 60℃. The metabolic activity of K. marxianus was retained at 50℃, whereas that of S. cerevisiae was not."

So my plan is get some Kluyveromyces from kefir, and heat it to 50℃ for long enough to reduce other yeasts (and hopefully bacteria) without killing the Kluyveromyces, i.e. perhaps somewhat less than 20 minutes so that I don't decrease it all the way down to 10%.

I think this temperature and exposure length will kill Lactococcus and Leuconostoc and Acetobacter, but not all Lactobacillus.

So that's where I'm stuck at the moment. I think I can kill the other yeasts, but I want to also kill of the other bacteria. And then I'll maybe build up the Kluyveromyces culture a little by feeding it some sugar and add it to a container of juice with an air pump. Maybe there will be a HEPA filter or two somewhere for sterility.

Instead of using Kluyveromyces, I've also put some thought into protocols that remove sugar from juice by fermenting the sugar to alcohol using the standard Saccharomyces and then removing the alcohol, perhaps simultaneously with the ferment or in several alternating stages. I'm not optimistic about that, but I haven't given up on it entirely.

...

Anyway, the next task is selection for Kluyveromyces over Lactobaccilus. I think Kluyveromyces might be a little more tolerant of low pH, but I'm not sure and even if I'm right, I don't think it's a big enough effect that I'd want to rely on it for selection. I've heard of using a protein called lysozyme as an anti-bacterial agent against gram-positive bacteria, and Lactobaccilus species are gram-positive, but apparently their response to lysozyme is strain dependent and I don't have any to begin with. Perhaps I could find a food that Kluyveromyces can metabolize but Lactobaccilus can't? That might be hard: lactobaccilus species can produce at least lactase, proteases, fructanases, amylases, bile salt hydrolases, phytases, and esterases. I hear most Lactobaccilus species are disparaged by the presence of hops in beer, but Lactobacillus brevis isn't.

...

You know, if I can't separate the two, maybe it's not the biggest problem? I'll still get juice that's free of simple sugars and alcohol. It might have extra lactic acid. Sad. Also, I'm a little worried that if I have a yeast and a bacteria, then that's a lot of metabolic machinery, and other things in juice that I wanted to extract might get eaten - no more esters, no more weird polysaccharides, no more variety. 

...

Hm! Here's an interesting quote: "Because they are unable to synthesize cytochromes, Streptococci cannot carry out oxidative phosphorylation. They are able to ferment sugars, but the end product is always lactic acid. Therefore, Streptococci are very acid tolerant and count among the lactic acid bacteria order."

Cytochromes are proteins that can perform electron transport because they have a heme group, a little tetrapyrole with an iron atom in the middle. So I looked into Streptococcus thermophilus, a lactic acid bacterium which is also a streptococcus, and which is used in dairy fermentation. And I got some different quotes from a source that I trust more, "Metabolic Profiles of Carbohydrates in Streptococcus thermophilus During pH-Controlled Batch Fermentation":

"S. thermophilus ferment sugars by the Embden-Meyerhoff-Parnas (EMP) pathway to pyruvate, which is converted into lactic acid by lactate dehydrogenase (LDH)."

"Streptococcus thermophilus is a typical homofermentative organism but also produces other metabolites, such as acetic acid, formic acid, acetaldehyde, and ethanol."

"Mixed-acid metabolism, a type of homofermentation, is characterized by the production of formate, acetate, ethanol, and/or CO2 in addition to lactate. And the homolactic metabolism can be shifted to a mixed-acid metabolism under certain conditions (carbon limitation, carbon excess of slowly metabolized sugars) (Mayo et al., 2015). However, the mechanisms underlying the shift from homolactic fermentation to mixed-acid fermentation have been the subject of considerable controversy (Papagianni et al., 2007). The primary metabolites and genes of carbohydrate metabolism in LAB have been studied."

If I'm reading table 1 correctly, it looks like S. thermophilus produces about 5000 times as much lactic acid as ethanol, so maybe that would be fine. Maybe I could take some juice, and turn the sugar into lactic acid, and then neutralize that with a base to get at all the other non-sugar and non-acid things.

...