Lutherburbanking

Luther Burbank made lots of plant crosses and hybrids. The russet potato? That was him. Shasta daisy? Burbank. And he made many more plants which you probably haven't heard of. He made a white black berry. He made a cactus without needles for use as animal feed. He was a cool guy. He didn't make the first plum-apricot hybrid, but he made lots of good ones and had a big involvement in bringing them to market. There are reportedly 113 named varieties of plums due to his experimentation with Asian plum varieties that he imported to the U.S.

From "Plant Breeding Giants" (Crow, 2001):

His successes depended on judicious employment of several techniques: he selected the best seedlings from large numbers of plants, he imported promising strains from around the world, he made crosses between distantly related varieties and even species, he exploited skillful grafting, and he astutely utilized vegetative propagation of superior recombinants, thereby preserving their genotypes. Probably his greatest contribution to science was discovering nonsegregating, true-breeding hybrids, such as from a cross between a raspberry and blackberry, that were later understood to be amphidiploids. He pioneered in regarding these as another mode of species formation.

What's stopping me or you from Lutherburbanking? Not much that I can see. "Noting but devotion", says my wise friend Feast. He did have financial support from Andrew Carnegie and other rich people, but he didn't start out that way. To start out, you need some related but non-identical plants and the patience to cross them. Maybe it would help to have an idea of what plants to cross? That's what this post is for.

You might have learned in school that "different species can't produce fertile offspring". That's bullshit. Nature doesn't care about our categories, and our categories don't reflect nature very well. Interspecific and intergeneric hybrids are quite common. Interfamilial and even interordinal hybrids are rare but documented.

So, what families of plants might we want to form hybrids from?

Here are some plant families that each include multiple edible species (leaves, seeds, or fruit): 

* Monocots:

Poaceae: bamboo, corn, wheat, rice, barley, millet, oats, rye, sorghum, sugarcane

* Caryophyllales:

Amaranthaceae: amaranth, spinach, beet, quinoa
Cactaceae: prickly pear, saguaro, agave

* Asterids:

Apiaceae: parsley: anise, caraway, carrot, celery, cilantro, cumin, dill
Asteraceae: lettuce, sunflower, artichoke, dandelion, chrysanthemum
Convolvulaceae: sweet potato, water spinach
Ericaceae: blueberry, huckleberry, cranberry
Lamiaceae: basil, heal-all, hyssop, lavender, marjoram, mint, oregano, perilla, rosemary, sage, salvia, savory, thyme

* Rosids:

Fabaceae: string bean, lentil, pea, alfalfa, clover, 
Malvaceae: cacao, kola nut, okra, durian, hibiscus, baobab
Myrtaceae: myrtle, clove, guava, allspice, eucalyptus
Rosaceae: apple, pear, quince, raspberry, strawberry, almond, hawthorn

.

Maybe I should focus on genera with multiple distinct species, but I'm just getting started and documenting my journey as I go.

Some things that have already been done, in the way of fertile edible plant hybrids: Triticale is a hybrid of wheat and rye (different genera, same family). Already mentioned, pluots/plumcots are hybrids of plums and apricots, which are different species in the same genus (Prunus). Basically every citrus you've ever heard of is a hybrid of at least two Citrus species, and in 2013, (Smith, Gultzow, and Newman) established a hybrid between Citrus wakonai and Citropsis gabunensis, previously thought sexually incompatible. Loganberries are a hybrid of the American blackberry with the European raspberry, which are both in the genus Rubus. Rubus is a difficult genus to separate into species to begin with:

Rubus is very complex, particularly within the blackberry/dewberry subgenus, with polyploidy, hybridization, and facultative apomixis apparently all frequently occurring, making species classification of the great variation in the subgenus one of the grand challenges of systematic botany.

I used to think this meant that "Rubus species" and "Rubus hybrids" weren't all that meaningful as categories. And then I learned that Luther Burbank made white blackberries! Who cares if the genetic categories are crisp! You can still get amazing phenotype differentiation.

The most commercially used mint, peppermint, is a hybrid of two Mentha species, spearmint and water mint, but apparently doesn't belong on this list: peppermint is sterile and spreads vegetatively by producing runners. Who knew! 

In 2018, some folks hybridized white rice, Oryza sativa, with a cutgrass from Madagascar, Leersia perrieri. And this will prove to be an illustrative example: they didn't just transfer pollen. They had to do embryo rescue! You take an embryo or an entire ovule from the pollinated plant and put it in a nutrient medium. A solution of Knop's mineral salts (KNO3, Ca(NO3)2, MgSO4•7H2O, KH2PO4) and sucrose is a common old-timey recipe that still works pretty well. The Murashige and Skoog medium, MS0, is a big step up in complexity, but also good; it includes may more trace elements and some vitamins and hormones and stuff. Every modern bio lab that does embryo rescue probably has their own recipes, and they often vary the nutrients with embryo growth phase. Anyway, they did something like that in 2018, and now they've got plants that can be rehybridized with white rice in order to introduce some of the good properties of the Madagascar cutgrass into rice. Genius! So sometimes plant hybridization takes more than devotion. Sometimes a high degree of genetic incompatibility means you have to nurse the first generations of offspring with chemicals. But we could also just skip that. If you're not up to culturing a plant embryo in sugar-mineral water, try making new plants the normal way. It worked for Luther Burbank.

There are lots of reasons why sexually compatible plants might not hybridize in nature: they could be geographically isolated, they could flower at different times, they might not be visited by the same pollinators. Sometimes just bringing plants together in one garden is enough to make new hybrids, although if you want to make an art of it, then manual pollination in a greenhouse is a good way to go.

Cotton (Gossypium hirsutum) occasionally forms a fertile hybrid with hibiscus (Hibiscus panduriformis), and these are in the same family, Malvaceae. One in two-thousand pollinations works and the offspring produces fewer seeds than either parent, and I don't even know if any part of the hybrid is usable as food, as hibiscus is, but it's encouraging! Even if the hybrid is useless, we might be able to re-hybridize it with hibiscus. Or other Malvaceae hybrids might be possible. That same link reports on an attempted hybridization of the cacao tree (Theobroma cacao) and Mountain cocoa (Herrania mariae) (both in Malvaceae), which produced fruit but not viable seeds. But maybe we just need to roll the dice 2,000 more times and then we can get new chocolates. I hear that there's some commercial demand for chocolate.

I've got a suspicion that plants which can double their genomes (auto-polyploids) are good candidates for forming vigorous hybrids containing a complete set of genes from both parents (allo-polyploids). That's something to look into. For example, hexaploid bread wheat (Triticum aestivum) (which you might also know as all-purpose flour) is an inter-specific allo-polyploid hybridization of tetraploid durum wheat (Triticum durum) (which we use for pasta) and the diploid Tausch's goatgrass (Aegilops tauschii). The durum might also be an allo-polyploid? I don't know much about it. Canola (Brassica napus) is an allo-polyploid hybridization of Brassica rapa (turnips, et cetera) and Brassica oleracea (broccoli, et cetera). There are probably others.

What about Lamiaceae? Most of the cooking herbs are in Lamiaceae. It would be cool to get some new ones. We could also just try using some already existing Lamiaceae plants in the kitchen that we haven't used before, but that's not the topic of this post. We've already seen that Mentha species can cross. What about basil with heal-all or perilla with savory? If basil could be hybridized with rosemary, the Mediterraneans probably would have found out hundreds or thousands of years ago, but how about trying some geographically isolated species?

My guess is it still won't work. Basically anyone who has put together an herb garden has collected Lamiaceae plants that were once geographically diverse and we just don't get cool hybrids that way. But if you've already got an herb garden, why not try lutherburbanking it? Spread some pollen around, see what happens.

One kind of hybrid that people do commonly get in their gardens is with squashes/gourds in the genus Cucurbita. Cucurbita maxima and Cucurbita moschata often form seedless hybrids when grown together. Also Cucurbita pepo has a lot of morphological variation between cultivars and you can get some crazy shapes when they cross. I once had a yellow C. pepo in the shape of a trumpet mute with knuckles, which I guess is like halfway between summer squash and pattypan, but the seeds were supposed to be zucchini. That's all within one species - nothing too crazy genetically, but you can get some cool things if you're into knuckled trumpet mute squashes.

Apparently modern sugar cane varieties, genus Saccharum, are often a mix of up to three wild Saccharum species, and there have also been successful hybridizations and back-crosses of Saccharum with corn (Zea mays), with sorghum (Sorghum bicolor), with some wild broomsedge grass (Erianthus), and with some Bamboo (Bambusa), and with cogon grass (Imperata cylindrica). Some of these apparently requires many thousands of attempts to get a single hybrid.

In 1995, (Li, Liu, and Luo) made a hybrid of Brassica napus and Chinese violet cress (both Brassicaceae), and it's crazy? The genomes separate during mitosis but you can keep getting hybrid plants out?:

From the selfed progeny of the hybrid, mainly two kinds of plants, B. napus and the hybrid, were found. The hybrid plants of the selfed progeny again produced two kinds of plants, B. napus and the hybrid.

How about plants in the heather family, Ericaceae? The lingonberry (Vaccinium vitis-idaea) sometimes forms a hybrid in nature with the European blueberry (Vaccinium myrtillus). It was first discovered by Ruthe in the late 1800s and bears the name (Vaccinium intermedium Ruthe). I don't yet know whether it is fertile. The Andean blueberry (Vaccinium meridionale) has been crossed with the lingonberry and the hybrid displayed fertility in backcrosses with both parents. The team of  (Vorsa, Johnson-Cicalese, Polashock)... made a vigorous blueberry x cranberry hybrid, but they weren't sure if it was fertile at the time of publishing. Before we talk about it, let's go over cranberry genetics. The large American cranberry used for juice and sauce is Vaccinium macrocarpon. There are three other species of Cranberry in the U.S. of less commercial importance

1) The southern mountain cranberry (Vaccinium erythrocarpum), which is native to the southeast US and also China+Japan+Korea, weirdly. The other three U.S. species are more closely related to each other and this one is more distant. I don't know much about it

2) The northern cranberry (Vaccinium oxycoccos). More cold tolerant than the American cranberry, smaller fruits, often polyploid.

3) The small cranberry (Vaccinium microcarpum). Micro-carpum versus macro-carpon - It's annoyingly close, I know. V. microcarpum is commonly included as in V. oxycoccos, but I've been convinced - by "Pacbio Sequencing Reveals Identical Organelle Genomes between American Cranberry and a Wild Relative" (Diaz-Garcia et al., 2019) - that it shouldn't be. Microcarpum is diploid, probably branched off from the diploid macrocarpon, and oxycoccos is a polyploid hybrid of microcarpum and macrocarpon. Anyway, this one is also small and also cold tolerant.

Okay, back to the blueberry x cranberry hybrid paper. Vorsa and friends first crossed the Florida evergreen blueberry (Vaccinium darrowii) with "diploid small-fruited cranberry, V. oxycoccos". Diaz-Garcia et al. teach us that diploid oxycoccos is more properly called V. microcarpum. The result of that crossing didn't produce a vigorous hybrid. It was weak, they said. If you tried to make cran-blueberry sauce from it, you'd get weaksauce. Then Vorsa and friends crossed the same Florida blueberry with a cross of V. oxycoccos and V. macrocarpon and they got a plant that lived! They didn't know at the time of publishing whether it was fertile, but they got a vigorous hybrid. But, honestly, the oxycoccos x macrocarpon hybrid is almost as interesting to me as the blueberry x cranberry hybrid. There isn't a lot of literature that I've seen on intentionally crossing cranberry species. I think that's more because I'm doing a poor job searching, but still - if we could get a more cold tolerant large cranberry by crossing, that would be amazing. 

For cold tolerance in the heath family, Ericaceae, I'd previously been looking with hungry eyes at a plant called winter heath (Erica carnea), whose flowers look a lot like cranberry flowers. It springs up in the mountain snow in the Alps, with a interesting pink and black coloration. I was worried we'd have to figure out an Erica x Vaccinium cross to get large cold tolerant cranberries, but maybe we can just cross cranberries with cranberries! That sounds easier. Or cross them with lingonberries or blueberries or whatever. Do it all. Make new crops.

The highbush blueberry (Vaccinium corymbosum) has been crossed with the deerberry (Vaccinium stamineum), and then backcrossed into the blueberry with an aim of making more drought-resistant blueberries.

...

My wise friend Feast asked me what plants I actually want to improve in which ways by hybridization and/or selection from natural variation. I have a standing interest in making plants more cold tolerant. This is mostly due to my interest in space colonization and slightly due to living in a moderately cold climate with a moderately short growing season. Dwarf varieties of normally large-growing plants, like grains, are also desirable for use in early space botany.

Another interest of mine is improving the proteinogenic amino acid profile of grains. There are cultivars of corn in use in some countries, so called QPMs or Quality Protein Maizes, that are complete proteins. I'd like to play a role in similarly improving wheat and rice as protein sources. Also, buckwheat already exists and is delicious and are complete protein. The world should use more buckwheat, and if there's any good reason why we're not, then let's Lutherburbank up a solution to that.

You might have heard that Brussels sprouts used to be more bitter and have been made milder over the last ~30 years by the efforts of people including Hans van Doorn. Well, I don't particularly like non-pickled cucumbers; what if we used our ingenuity to make them into palatable food too?

...

Integer Relation Algorithms

Last year, I investigated polynomial continued fractions at some length. I found some pretty cool relationships; if you wanted to inscribe them on my grave, I wouldn't be upset - not that I'm planning to die. 

For many continued fractions that seem to converge to real values, I was not able to find separate finite closed-form expressions, but I'm ready to try again. My technique in the last post was to search through coefficients of Möbius transformations of famous mathematical constants for coincidences with convergent values of continued fractions. My technique in this post will be... Integer Relation Algorithms!

One of the simplest and oldest ones is called the Lenstra-Lenstra-Lovász algorithm, or LLL. Another famous one is the PSLQ algorithm, which seems better, but I'm going to start with LLL. Apparently, it's basically a combination of the Euclidean algorithm for finding greatest common divisors with the Gram-Schmidt orthogonalization process. I like both of those things! It seems that you can take a given real-valued constant, and construct from it a matrix that represents some unknown polynomial, perform the LLL algorithm on the matrix, and sometimes you get out integer coefficients for a polynomial which has the given constant as a root! Amazing! An algebraic number explainer. And there are some generalizations for finding expressions for a given constant where the polynomials have non-integer coefficients or even non-algebraic coefficients. That's what this post will be about. Starting with the integer coefficients.

...

Hm. I tried to express six mysterious constants from the PCF post as roots of quadratic polynomials with integer coefficients without luck. Let's do an example. Our constant r will be T3 from the PCF post, 1.1263572396234227708. We set up the following matrix for a quadratic polynomial:

[1, 0, 0, 10000 * (r ** 2)],
[0, 1, 0, 10000 * r],
[0, 0, 1, 10000],

and run LLL reduction on it. The first vector of the resulting basis will have four components. If the fourth component is nearly zero (or at least much smaller in magnitude than the other components?), then the first three components are likely our polynomial coefficients, defined up to a sign change.

But the first vector in the LLL reduced basis with that {r} is

[8, -17, 9, 13],

, and the corresponding quadratic polynomial

y = 8x^2 - 17x + 9

has a root nearby {r} at 

x = 9/8 = 1.125

, but not at {r}. Sad.

Let's try higher degree polynomials!

Let's start with a sanity check. The polynomial x^3 - 2x^2 + x + 2, which I just made up, has a single real-valued root at ~ -0.6956207695598. Let's see if we can recover the coefficients from the root.

Here's the matrix:

[1, 0, 0, 0, 10000 * (r ** 3)],
[0, 1, 0, 0, 10000 * (r ** 2)],
[0, 0, 1, 0, 10000 * r],
[0, 0, 0, 1, 10000],

.  I run LLL reduction on that and the first vector in the new basis that I get out is:

[1, -2, 1, 2, 0]

which has the desired coefficients. Radical. But it didn't work for T3 or any of the other constants I was testing.

I tried fourth degree polynomials and I got a match, but I'm pretty sure it's a false positive. The number {2 / (sqrt(pi) * e * erfc(1))} is pretty close to a root of 

y = 3x^4 - 5x^3 - 4x^2 - 9x - 2

, in particular the erf thing is about

2.6389674131942744

and the root is about

2.6389675142347912

.

The constant T1, {0.4084843294696858}, from the PCF post is moderately close to a root of 

x^4 - 2x^3 + 2x^2 - 3x + 1

and the constant T2, {0.8120409412226914}, is close to a root of 

x^5 - x^4 - 2x^3 - 1x^2 + x + 1

.

I've suddenly lost hope in this project. In the polynomial continued fraction post, the constants were all rational, quadratic, or non-algebraic. There weren't any third roots, for example. My old techniques were good enough to find quadratic constants, and while this technique might find third roots and higher, I doubt that PCFs produce third roots.

Also, I think there's something slightly wrong with my LLL implementation: when I get the coefficeints out, my coefficients match other sources, but the last number in my vector is always an integer and other sources have non-integer entries. So.... I don't think fixing it would change anything substantive above - clearly my code can find polynomials with nearby roots, but I'm a little sad that my code doesn't exactly match my references.

Might come back to this later with a generalization of LLL.

...

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.

...