Saturday, March 7, 2026

The Other Side of 612edo

When a tuning system tempers out a set of commas, it will temper out any linear combination of that set... assuming that the tuning system includes linear combinations of any subset of its intervals. Here "linear" means integer multiples. So e.g. two perfect fifths makes an octave plus a major second, etc. Half of a perfect fifth doesn't really make so much sense musically. So the natural mathematical structure for these sorts of tuning systems is a module. Someday maybe I will learn more about modules. So far I have just got the name straight! The set of commas tempered out by these tuning systems form a submodule. One can find basis sets for these submodules, i.e. a set of commas where every comma tempered out by the tuning system is an integer combination of the commas in the basis set. A couple days ago I posted here one comma tempered out by 612edo. Here is another comma tempered out by 612edo; with that earlier comma, these form a basis set for the (5-limit) commas tempered out by 612edo.

9010162353515625:9007199254740992 = 3^10 * 5^16 : 2^53

This comma is about 0.57 cents, i.e. extremely small. This is a reflection of the precision of the 612edo tuning system.

Here is a new piece of algorithmic music that traverses this comma 36 times: 621edo scale 52.

I used a scale for this that has 52 notes per octave. This scale has a period of 306 steps of 612edo, i.e. the scale pattern repeats twice in an octave, with 26 notes in each repetition. The scale was generated by the interval 83\612, which corresponds to 1125:1024. The scale has step sizes of 5\612 and 21\612. I came up with this scale just by staring at the tonnetz diagram for 612edo to see what might work!

Each cell represents a pitch class of 612edo. Moving one cell to the right is moving up a perfect fifth, e.g. from pitch class 0 to pitch class 358. Moving up a cell is moving up a major third, e.g. from 0 to 197. Moving up three major thirds does not return one to the starting pitch class, e.g. from 0 one moves to 197, then 394, then 591. 591 is 21\612 flatter than the starting 0. This reflects the fact that 612edo does not temper out the diesis.

The notes of the scale are highlighted in this diagram. It's easy to see that they form a path from one occurrence of the pitch class 0 to another instance of the same pitch class. A more accurate geometrical representation of this tuning system would be a torus, wrapping this diagram around in two directions so the pitch class occurences would fold back on themselves... more accurate, but less easy to see!

A graphical score for the piece shows the structure of the traversal:

This score folds the actual score in two ways. All the pitches are folded into a single octave, so the pitches along the vertical axis run from 0 to 611; and all the traversals are folded into a single traversal, so time along the horizontal axis runs from 0 to 78 seconds, the length of each traversal.

Thursday, March 5, 2026

Big-Small

A comma in musical tuning is a ratio made of small primes which is very close to 1. Two classic commas are the syntonic comma, 81:80, and the Pythagorean comma, 531441:524288. These are quite similar in size. The ratio between them is even closer to 1, the comma known as the schisma, 42467328:42515280.

Commas are important in music because consonant intervals have frequency ratios built from simple primes. Combining consonant intervals then generates more complex ratios that are still built from simple primes. Commas thus correspond to combinations of consonant intervals that are very close to unison. This closeness has potential to cause trouble and potential also to cause delight; in any case, managing this closeness is an important musical task. The main tool for this is temperament, adjusting intervals slightly so that when they are combined the result is never awkwardly just slightly different than unison: it is either exactly unison, or distinctly different.

Conventional tuning, twelve tone equal temperament, tempers intervals so that the syntonic comma and the Pythagorean comma both vanish, i.e. the corresponding combinations of tempered consonant intervals results in exact unison. But there are other musical possibilities!

Here is a new piece: 612edo scale 82.

This is in the tuning system that divides octaves into 612 equal steps. Any tuning with such small steps will be extremely precise. 612edo is one of the most precise, for intervals like perfect fifths and major thirds, among other tuning systems with similarly small steps. I am using it here, though, to explore commas. The Pythagorean comma is 12 steps of 612edo; the syntonic comma is 11 steps. Thus the schisma, the difference between these, is 1 step. 612edo is so precise that it does not temper out the usual commas.

I don't know a name for this comma:

450359962373049600:450283905890997363

but 612edo tempers it out! Factored into primes, this is 2^54 * 5^2 : 3^37. It is about 0.3 cents off of unison.

This piece uses a scale with 82 notes per octave. A perfect fifth is 358 steps of 612edo; the octave and the perfect fifth have a greatest common divisor of 2, which means that there are two cycles of fifths. The scale I used here is made of sequences of 41 perfect fifths, one for each cycle of fifths.

This piece traverses this big-small comma 25 times.

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

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.