Monday, January 26, 2026

1029:1024

Dividing octaves into 87 equal steps, 87edo, has some quite precise approximations for consonant intervals. But the details of how these approximations combine, the algebra of the intervals, is worth exploring too.

This is a tonnetz diagram for 87edo. Each cell represents a pitch class, i.e. a pitch with octaves treated as equivalent. To the right of a 0 cell is a 51 cell: a perfect fifth is 51 steps of 87edo. Above a 0 cell is a 28 cell: a major third is 28 steps of 87edo. 87edo also has a good approximation for the less conventional 8:7 interval: 17 steps. A nice feature of all this is that 3*17 = 51, i.e. moving by 8:7 three times, one arrives at 3:2, at least as those intervals are approximated by 87edo. This is the same as saying that 87edo tempers out the comma 1029:1024.

This feature of 87edo can be used to construct a nice scale, as highlighted in the diagram above. This scale is generated by the 17 step approximation of 8:7. The scale has 26 notes per octave, with the gaps between the scale notes being 2 and 9 steps of 87edo. 87edo also tempers out 245:243, which this scale also traverses. So there are nine different major thirds in the scale: three clusters of three major thirds. Each cluster is in the shape of a diatonic scale. So this scale looks like three diatonic scales with a bit of connective tissue.

87edo does not temper out the syntonic comma, so conventional music will not work very well in this tuning system. The diatonic clusters have some unresolved tension. We can associate the white keys on a piano with some pitch classes on this tonnetz diagram: F=0, C=51, G=15, A=28, E=79, B=43. The challenge is with the D. It could be 64, to make it a perfect fourth from A. Or it could be 66, to make it a perfect fifth from G. This gap of two steps of 87edo is how 87edo represents the syntonic comma.

Some sound: 87edo scale 26.

Sunday, January 25, 2026

Tamp It Down

I am always hunting for a balance between order and chaos in the music I create. The software I have been tweaking for the last several years always builds music from a sequence of measures of equal length. I can have many short measures or fewer long measures, but the measures in a single piece have the same length.

The measures are broken up into a rhythmic pattern of notes. The measures in a piece will often have a variety of patterns. In today's piece there are 8 different patterns for the measures. There are 216 measures in the piece. This piece introduces a new bit of code, which decides how to distribute the 8 patterns across the 216 measures. In the past, I used a sort of random walk. This new approach uses a recursive approach that provides a lot more repetition: a lot more order. The pattern sequence looks a bit like DDCDDCBDDCDDCBA.

Another source of increased order is how the rhythmic patterns are correlated between the voices. In the past, the random walks were independent between the voices. In the new code, the rhythmic patterns vary the same way in all the voices.

This piece is in 87edo, using a consonance function based on the primes 2, 3, 5, and 7: 87edo recurse.

Thursday, January 22, 2026

Lost in Space

There are many parameters in the computer code that I've written to generate musical scores. Really the whole program is one big parameter! Someday maybe I will have a single program that can read a parameter file, so there will be a clear distinction between the code and the parameters that control it. But what I do instead is just edit the program itself for each new piece.

The program uses a random number generator to decide many of the details in the score. The random number generator is controlled by a seed. I can just change the seed to get multiple pieces that are all similar, with the same gross structure.

A fundamental parameter is the tuning system. I have some code that can work with more general tuning systems, but most of the code is limited to dividing octaves into some number of equal steps. So the number of steps per octave is a fundamental parameter. The piece linked below uses the tuning system where octaves are divided into 53 equal steps.

A table of interval scores is constructed based on a set of prime numbers. So another parameter is the prime numbers that are to define consonance. The primes 2, 3, and 5 are a common choice, which is used in the piece linked below. Sometimes I will add the prime 7. So far the largest prime I have used is 19, but the code isn't really limited. The construction of the interval score table does slow down as the number of primes increases, though. The table construction code has some other paramters that I'll tweak. The program writes the table to a file, so I can check that file to see if the table looks reasonable. If it doesn't, I can tweak some parameters in the code to make the table look better. Mostly it's just a matter of getting a good range of scores, so some intervals will be much preferred over other intervals. But the range shouldn't be too extreme, or the pitch selection algorithm can get stuck too easily.

The rhythmic topology is another key parameter. The basic rhythmic parameters are the length of each measure and the number of measures. The measures are arranged in a cubical array of arbitrary dimensionality. In the piece linked below, each measure is about 35 seconds long, and there are 64 measures, arranged as a 4x4x4 array.

Measures are divided into individual notes of varying length. I have used several different algorithms to divide up measures, each of which has multiple parameters.

The number of voices in the piece is another parameter. Here I am using 3 voices.

That's a sketch of the control I have over what gets generated! Here's the latest output: 53edo 4x4x4 scale 34.

Saturday, January 17, 2026

Neutral Thirds

I saw some discussion on a facebook tuning group about neutral thirds in Persian music, attributed to Mansour Zalzal in the 9th Century. A neutral third is between a major third and a minor third. Since a major third and a minor third combine to form a perfect fifth, a neutral third should be about half of a perfect fifth. Zalzal evidently proposed 27:22 as a neutral third. Squaring this gives 729:484. A perfect fifth would be 726:484, so Zalzal's neutral third is quite accurate.

This looked worth exploring. What equal divisions of the octave work well with ratios involving the prime number 11? 87edo is very good, but it is a bit strange: it doesn't temper the schisma, it has three circles of fifths, etc. 65edo looks good, though!

The Persian scales discussed in the tuning group have 17 notes per octave. The neutral third corresponds to 19 steps of 65edo, or 19\65. A 17 note scale generated by neutral thirds has the Moment of Symmetry property, e.g. the scale has two different step sizes: 3\65 and 5\65.

This is a table of the 17 notes, in terms of cents.

Here's an example of what it sounds like: 65edo scale 17.

Friday, January 9, 2026

114edo Tweak

In yesterday's post I mentioned that the scale there could probably get straightened out a bit, so that's what I did. The simpler structure has a simpler description, too! The scale is built of two similar sequences generated by the interval of 5 steps of 114edo. The pitch classes in the scale thus go 0, 5, 10, 15, ..., 55, and then 57, 62, 67, 72, ..., 112. So there are two intervals of 2 steps seperating the two sequences of 5 steps. The tonnetz diagram above looks much the same as yesterday's, but just a little more symmetric.

I made a new piece with this tweaked scale: 114edo 24b. I used a somewhat different process to make this. Both today's and yesterday's piece use my usual thermodynamic algorithm. Yesterday I started the simulation at a very high temperature and gradually cooled in until global order emerged spontaneously. The piece is a snapshot from around the transition temperature. In today's simulation, I just fixed the temperature at the transition temperature that I observed in yesterday's piece. I initialized the system with a traversal of the comma 245:243. This traversal is repeated eight times over the course of the piece.

Thursday, January 8, 2026

114edo

I've been exploring diaschismic tunings, tunings that temper out the diaschisma comma, 2048:2025. 2025 = 25 * 81, so the comma gets tempered by making both perfect fifths and major thirds a bit sharp. A few days ago I looked at 90edo, which has a perfect fifth sharp enough to do all the work, leaving the major third very close to just. Today's exploration is 114edo, which has perfect fifths and major thirds equally sharp, sharing the workload.

Looking at the tuning errors of 114edo, in the upper left area one can see that 3:1 and 5:1, corresponding to perfect fifths and major thirds, are not so accurate, being sharp enough to temper out the diaschisma. Since they are equally sharp, minor thirds, 5:3, are quite precise. But what jumped out at me with this table of errors is that 114edo has a quite accurate approximation for 7:1. That should spice things up!

Staring at the tonnetz diagram for a while and contemplating 7:1 which corresponds to 92 steps of 114... well, two steps of 7:1 would be 70 steps, which comes back near the the starting point. This corresponds to the comma 245:243, which I see people call the minor Bohlen-Pierce diesis. I looked for a scale that would support traversals of this and the diaschisma. I came up with the 24 note scale highlighted above. This is the union of two scales generated by the interval of 62 steps of 114edo, the two scales offset by 67 steps. As I have thought more about this, probably offsetting the scales by 5 steps would have been better, but I got pretty far down the road with the 67 step offset, so that's what I have here.

The tonnetz diagram layout shows perfect fifths, moving from a cell to its neighbor on the right, and major thirds, moving from a cell to its neighbor above. I used colors to show movement by 7:1. Each blue cell can move to a purple cell by a 7:1 interval. So an example of a traversal of 245:243 would be to start at a (blue) 0 cell and leap to a (purple) 92 cell, moving with a 7:1 interval. Then move by two perfect fourths, stepping left two cells, to a (blue) 72 cell. Leap by 7:1 again to a (purple) 50 cell. From there, move left three cells, three perfect fourths, to a 77 cell, and then up one cell, a major third, which brings one back to a 0 cell where the traversal started.

Here's what the scale sounds like: 114edo scale 24.

Tuesday, January 6, 2026

90edo Diaschismic

I have posted some music in the past that uses 34edo, a tuning system that has very good approximations for conventional intervals like perfect fifths and major thirds. But 34edo does not temper out the syntonic comma 81:80; instead it tempers out the diaschisma 2048:2025. The diagram above is a tonnetz diagram for diaschismic tuning of the conventional 12 notes of a piano.

Conventional music, in the Palestrina - Wagner tradition, is built on tempering the syntonic comma, which is the foundation of meantone tunings. The tonnetz diagram for meantone tuning looks quite different:

There is a spectrum of meantone tunings, where the flatness of the perfect fifth is traded against the sharpness of the major third. 31edo, or quarter comma meantone, are at one end of the spectrum, where the major thirds are quite precise while the perfect fifth is rather flat. It occurred to me that the same sort of spectrum should exist for diaschismic tunings.

Perfect fifths are a bit sharper than just, in diaschismic tunings. There are two wolf fifths, D-A and Ab-Eb in the tonnetz diagram. These are flat, to make for the sharpness of most of the fifths. As the fifths are sharpened, most of the major thirds get flatter. When the fifths get to around 707 cents (versus the just fifth of 702 cents), the major thirds become just, at 386 cents. There are wolf major thirds in this tuning though, such as A-C# in the tonnetz diagram, that sharpen as the fifths sharpen.

It turns out that 90edo has fifths that are close to the value needed to make the major thirds very exact... so of course I had to see what it sounded like: 90edo scale 12.