Monday, February 23, 2026

Magic

Here's a new piece of algorithmic music: 19edo 2026.

This piece is in 19edo, the tuning system that divides octaves into 19 equal steps. 19edo is a meantone tuning, so conventional note names work well. The tonnetz diagram above shows how 19edo pitch classes are related by the fundamental intervals of perfect fifths, perfect fourths, major thirds, minor thirds, major sixths, and minor sixths. Start at a C note and move four perfect fifths, to G, D, A, and E. From E move a minor sixth to C, the pitch class at the start of this sequence. This combination of intervals is a syntonic comma (81:80). The fact that the combination returns to the starting pitch class is due to 19edo tempering out the syntonic comma, which is why it is a meantone tuning.

Another comma tempered out by 19edo is the magic comma (3125:3072). Start from the C pitch class and move five major thirds, to E, G#, Cb. Eb. and G. From there, move a perfect fourth to return to the starting pitch class of C.

The conventional diatonic scale is built by stacking perfect fifths. The piece posted above is built from an unconventional scale, built from stacking major thirds. The scale diagram above is like a piece of the tonnetz diagram, but then folded into a loop to show how the magic comma is tempered out.

Thursday, February 19, 2026

Extended Consonance

Here's a new piece: 494edo scale 17.

This piece is in a 17 note scale, in the 494edo tuning system. The scale is diagrammed above. Green arrows, e.g. from pitch class 459 to pitch class 254, represent perfect fifths, a frequency ratio of 3:2, or at least the best approximation available in the 494edo tuning system. Blue arrows, e.g. from 300 to 459, represent major thirds, 5:4. Red arrows, e.g. from 459 to 364, represent the 7:4 interval which is not so conventional. Orange arrows, e.g. from 0 to 227, represent the even less conventional 11:8 interval. Dark purple arrows, e.g. from 148 to 0, represent the yet less conventional interval 13:8. I didn't use a strict division between consonant vs. dissonant intervals in constructing this piece, but a more flexible scoring system. For this piece, 13:8 is treated as more consonant than e.g. 81:50, which is a more complex interval but built up from simpler primes.

This scale contains loops such as 459, 300, 205, 432, 227, 22, 170, 459. This loop traverses the comma 2080:2079. The loop travels along three green arrows, one red arrow, and one orange arrow in the forward direction, and along one blue and one purple arrow in the reverse direction. If these intervals were all tuned to precise rational intervals, the loop would not return to the start, but would have shifted by that comma 2080:2079. The tempered scale 494edo approximates these intervals, adjusting them slightly so the loop returns to the starting pitch class.

494edo might seem like a rather arbitrary choice for a tuning system, but the above diagram shows how it is not. The diagram shows the tuning errors for a variety of intervals. For example, in the column labeled 5 and the row labeled 3 appears the number 0.061. This is the error in the approximation of 494edo for the interval 5:3. This error number is given in terms of a single step of 494edo. 494edo divides octaves into 494 equal steps, so these steps are very small. But the error for 5:3 is only 0.061 of one of these small steps. This table has many such small errors. The way I chose 494edo was quite simple: I just computed these errors for a wide range of edo possibilities, and then searched through the results for the tuning system that had small errors for all the intervals I wanted to use. The table shows that 494edo does not approximate e.g. 17:16 very well, but that is not an interval I wanted to use here.

Thursday, February 12, 2026

Porwell 15

Here's a new piece: 99edo porwell 15.

This diagram shows the scale used by the piece. Green arrows are perfect fifths (3:2 frequency ratio), blue arrows are major thirds (5:4), and red arrows are the less conventional 7:4 interval. Tracing paths in the diagram, there is a direct connection, a perfect fifth, by which one can move from pitch class 32 to pitch class 90. One can also get from 32 to 90 by way of two red arrows and three blue arrows, e.g. moving through pitch classes 64, 96, 77, and 58. This convergence of paths is how 99edo tempers out the Porwell comma, 6144:6125.

This scale has 15 notes per octave, with spaces between notes of sizes 7, 6, 6, 7, 6, 7, 6, 6, 7, 6, 7, 6, 6, 7, and 9 steps of 99edo, i.e. quite evenly spaced.

Sunday, February 8, 2026

Toward Beauty

One more swing at 87edo: 87edo scale 10b.

More staring at scale diagrams. Move that 28 to 26. The scale steps are still nicely enough spaced: 11, 6, 11, 6, 11, 6, 11, 8, 9, 8. But now there aren't pitch classes hanging out in the remote country:

I changed the rhythmic structure of the piece, too. The piece from this morning was a 7x7x7x array of short measures. This new piece is a 12x12 array of longer measures.

The More I Look, the More I See!

Yet another piece in 87edo: 87edo scale 10.

Some of my fascination here just comes from the comma 1029:1024. It's a very small comma but it is also quite simple.

As I was staring at the scale diagrams from my last post, I thought it ought to be easy enough to make a scale with a nicer structure:

The step sizes in this scale are also nice: 11, 6, 11, 6, 11, 6, 11, 6, 11, 8.

Thursday, February 5, 2026

A Loop of Pentatonics

Here's a new piece in 87edo: 87edo pentaloop.

I was mulling over the 26 note scale of the pieces I posted recently. This scale has five bands of closely spaced notes. What if I made pentatonic scales by picking one note from each band? There could be a sequence through these scales that traverses a comma. So that's what I made here, a traversal of the comma 1029:1024 using sixteen pentatonic scales, with a total of sixteen notes among those scales, chosen out of the full 26 note scale. Moving from one scale to the next shifts just one note of the scale. So the piece is a bit like a chord progression, but the full five notes of the pentatonic scale played all together would probably not make a very pleasant chord!

This new piece has 256 measures. The sixteen scale traversal is repeated sixteen times.

The green horizontal arrows represent perfect fifths; the blue vertical arrows represent major thirds.

The red diagonal arrows represent the not very conventional interval 7:4.

The shape of this scale is the same as the starting scale. All the notes have been shifted by 8:7. The next scales shift in the same pattern by another 8:7.

We are again back at the starting shape. A third move of 8:7 will bring us back to the actual starting scale, but the sequence will also have to move by 4:3 to form the traversal of 1029:1024.

This next step is where the 4:3 move begins:

From here, pitch class 66 can be shifted to pitch class 64, which completes the loop back to the starting scale.

This is a diagram of the full set of sixteen notes from all the pentatonic scales here.

Monday, February 2, 2026

Just Keep Going

The piece I posted a few days sounded fun enough, so I thought I would make another piece in the same tuning and scale:

87edo 4x4x4x4 scale 26.

Both pieces have 256 measures. The earlier piece had the pieces arranged in a 16x16 square, which provides plenty of room for wandering around the tuning space. The 4x4x4x4 arrangement of the new piece constrains things to be more orderly, to provide more structure for the ear to recognize. This piece is also a snapshot of the thermodynamic evolution at a somewhat cooler point relative to the phase transition, which should also provide more structure.

My fascination with phase transitions goes back to my sophomore year in college. Professor Stephen Schnatterly gave a wonderful demo of an inverted pendulum showing a transition and spontaneous symmetry breaking, as an analogy for a phase transition. That got me to look into Stanley's book Introduction to Phase Transitions and Critical Phenomena. In that book there are some images from a computer simulation of the Ising model. Nowadays, of course, computer simulations are not so exotic as they were in the early 1970s! Professor Dan Schroeder has a nice one on the web: Ising Model Simulation.

My interests in software and phase transitions led me to work under Professor Elliott Lieb for my first semester junior independent research. Lieb's idea was to look at the partition functions for lattice gasses. Lattice gasses are similar to the Ising model. Their partition functions are polynomials. If the zeroes of these polynomials approach the positive real axis as the size of the system increases, that would be a sign of a phase transition. Lieb pointed to a theorem in Marden's book Geometry of Polynomials: one can construct a set of matrices from the coefficients of a polynomial; if the determinants of these matrices all have, hmmm, some particular sign, then the zeroes of the polynomial will be in the negative half plane, i.e. will not be anywhere near the positive real line. If I could compute these determinants from the partition functions of larger and larger lattice gasses, and they all showed zeroes in the negative half plane, well, that'd be good evidence that lattice gasses don't have phase transitions! Ha, I do wonder how much of this am I remembering correctly!

So my research project was to compute determinants for a bunch of largish matrices. I had told Lieb that I was a computer programmer. Well, one with very limited skills, it turned out! The textbook formula for determinants has a daunting computational complexity, growing as the factorial of the size of the matrix. That's the formula I ended up using, which limited me to very small matrices. That was pretty much the end of my physics career!

Here's a curious later development, if anyone wants to pick up the ball. Some 25 years after that disastrous semester, I found myself once again in the land of large matrices. I don't remember the exact details, but we were computing reached states in finite state machines, using binary decision diagrams. Professor Edmund Clarke noticed a similarity to Gaussian elimination in sparse matrices. His observation led me to the theory of Tree Decomposition, a part of graph theory.

Gaussian elimination is how one should properly compute determinants. Gaussian elimination can transform a matrix to half-diagonal form, and then one simply multiplies the matrix elements along the diagonal. Gaussian elimination can still be a bit costly for large matrices. If the matrix can be kept sparse the cost can stay low. Tree decomposition is a way to see how the sparsity of a matrix can be preserved during Gaussian elimination. Tree width is the measure of this preservable sparsity.

So here is a grand research proposal: those matrices of Marden, whose determinants I was to compute - how does their tree width grow as the size of the lattice gas system grow? Ha, I am still trying to salvage my physics career, fifty years later!

Here is someone poking around in this general territory, as a starting point: Phase Transition of Tractability in Constraint Satisfaction and Bayesian Network Inference