Thursday, November 6, 2025

72edo

Here's a new piece in 72edo. This uses the scale I mentioned a couple days ago, 21 notes per octave generated by the 7 microstep that approximates the semitone 16:15. Conventionally a perfect fifth corresponds to 7 semitones. But if you compare the just tuned perfect fifth, 3:2, to the just tuned semitone, 16:15, the perfect fifth corresponds to 6.28 semitones. In 72edo, the perfect fifth corresponds to 6 semitones. The post here from a couple days ago gets into comma traversals supported by this scale.

This piece is generated by my usual thermodynamic process, where order spontaneously emerges at a phase transition that is marked by a sudden drop in energy or cost:

This new piece is a snapshot of the system at a temperature around 10000000, right at the phase transition.

Tuesday, November 4, 2025

Loop Search

Recently I was exploring the 270edo tuning system, and a 90 note scale. I wanted a symmetric scale, which this subset is. I also wanted a scale that would traverse the comma 2080:2079, which includes the primes 2, 3, 5, 7, 11, and 13. I was wondering whether that scale might support traversal of other commas, too. This is a lot of notes in a space of rather high dimensionality! So I wrote a program! I can switch the set of primes, the tuning system, and the scale, all very easily, to explore the possibilities for comma traversals.

The program looks at loops for each note in the scale: sometimes the loops that pass through one note are different than those that pass through a different note. Experimenting with this program, I see that happening sometimes. For this particular 90 note subset of 270edo, each note has the same set of loops:

  • | 12 -2 -1 -1 0 -1 > = 4096:4095
  • | -7 -1 2 0 -1 2 > = 4225:4224
  • | -10 -1 -1 1 0 3 > = 15379:15360
  • | 2 1 -1 -3 1 1 > = 1716:1715
These strings of numbers are the powers of the primes 2, 3, 5, 7, 11, and 13, so they give the prime factorization of the ratios. These commas can be combined arbitrarily to form a whole linear space of commas that can be traversed with this scale. My new program looks for a minimal basis for this space.

This 90 note subset is symmetric: the 270 notes of the tuning system are divided into 10 blocks of 27 notes each. The scale picks out 9 notes from each block, at the same positions in each block. I ran the program with only 8 notes per block: then the sets of commas traversable had a basis of three instead of four commas. When I increased the number of notes per block, some notes had a basis set of five commas. So 9 notes per block does seem like a nice threshold.

Another scale I have explored at some point - I don't remember when! - is a 21 note scale in 72edo, generated by the semitone 16:15. 72edo works well with primes 2, 3, 5, 7, and 11, but not with 13. So I ommitted 13 in this analysis. Again, all the notes in the scale had the same space of commas traversable:

  • | -10 1 0 3 0 > = 1029:1024
  • | -5 2 2 -1 0 > = 225:224
  • | -7 -1 1 1 1 > = 385:384

Wednesday, October 22, 2025

Forget the Commas!

Here's another piece in 270edo. This uses the same scale as the piece I posted yesterday. I wanted to make something with more coherence. The earlier piece is more stretched out: it is built from a 12x12=144 array of measures. For this piece I used a 2x2x2x2x2x2=64 array, i.e. a six dimensional hypercube, with measures a bit more than twice as long. The very short sides of the array mean that comma traversals are almost impossible. The harmonic complexity in this new piece is much more immediate, rather than the result of long paths wandering through the woods!

Tuesday, October 21, 2025

Symmetric Scales

Here is a new piece in 270edo.

This is a graphical score for the piece. The horizontal axis is time, in seconds. The vertical axis is pitch classes, from 0 to 269. All the octaves have been folded into a single octave.

The score shows the scale I used for this piece. This scale is an example of what Olivier Messiaen called a "mode of limited transposition" - I am calling it a symmetric scale. A nice feature of 270edo is that 270 factors very nicely: 270 = 2 x 5 x 27. These factors create opportunities for symmetries: a pattern of notes in or out of the scale can be repeated within an octave. In the scale here, the pattern is 27 pitch classes long, and repeats 10 times in an octave, to cover the full 270 pitch classes. From the 27 pitch classes in the pattern, 9 are in the scale and the other 18 are excluded. The 9 included are a simple sequence of every other pitch class in the scale, every other pitch class out of the scale.

So the complete scale starts with pitch classes 0, 2, 4, 6, 8, 10, 12, 14, 16, 27, 29, 31, 33, 35, etc.

My goal with this scale was to support traversal of the comma 2080:2079. This comma is not too complicated but it includes all the primes involved in the notion of consonance I imposed for this piece: 2080 = 32 x 5 x 13; 2079 = 27 x 7 x 11. I figured that if a scale could allow traversal of this comma, it could support a rich harmonic language.

Friday, October 17, 2025

270edo

A tuning system is a set of pitches that enable the making of music. A tuning system can be used in designing a musical instrument, or as the foundation of a system of notation, or as a theoretical construct for composition and analysis. There are countless possible tuning systems, and even the actual systems in use are very many. One simple class of tuning systems consists of those that divide octaves into some number of equal steps. The conventional tuning system that has spread from Europe around the world, 12edo, divides octaves into twelve equal steps. This system is so dominant, governing the design of instruments, tuners, digital audio workstations, etc., that exploring alternatives is not so easy! But there is a vast world available to explore, with just a bit of effort.

What makes a tuning system good? The availability of consonant intervals is a major criterion. What should count as a consonant interval, that's a challenging issue. A classical starting point is that a consonant interval is one that is very close to a simple frequency ratio. How close? How simple? But at least we are getting close to a concrete idea.

The chart above shows, for a quite wide spectrum of simple ratios, how closely they can be approximated by the available intervals of 12edo. The numbers on the top and left margins define the numerator and denominator of a simple ratio. The green square containing 0.02 in the upper left shows the error when 12edo is approximating the simple ratio 3:1. That ratio would be 19.02 steps of 12edo, but of course the closest actual interval in the tuning system is 19 steps, so the error is 0.02. The error for 5:1 is 0.14, which is not so terribly accurate. I have used bright green to flag the very accurate intervals of 12edo and pale green to flag the moderately accurate intervals. The squares in grey are redundant, because the numerator and denominator are not mutually prime.

The simplest intervals are the ones toward the upper left. The more and brighter green cells that a tuning has, the better the tuning, especially when the green cells are toward the upper left.

One of the simplest alternative tunings is 24edo, where each (half) step of 12edo is divided in half, to form quarter tones. These charts measure errors in terms of the size of the step of the tuning. Since the step size of 24edo is half the size of the steps of 12edo, many of the errors double in size. But some are much smaller. The error for 11:1 is only 0.03. 11:1 falls just about half way between steps of 12edo, so when a new note is added in the middle, it comes very close to 11:1. But overall, comparing 24edo to 12edo, it is not clear which is the winner. 24edo adds a lot of notes for not so much gain.

270edo divides octaves into 270 equal steps instead of the conventional 12, so obviously it is adding an awful lot of extra notes! But its chart shows, it really hits a lot of simple ratios quite accurately. Of course its steps are so small that it can't be too far off! But these errors are in terms of the tiny steps of 270edo. For example, 3:1 is 427.94 steps of 270edo. The available interval of 428 steps is just 0.06 of a step sharp.

Here are three snapshots of the evolution of a composition from my thermodynamic composition system:

Even at the final stage, the piece has not settled into monotony:

For this piece I counted as consonant a wide range of simple intervals, such as 14:13, 13:12, 12:11, etc. These ratios can be combined to form commas like 676:675, 1001:1000, and 2401:2400 that 270edo tempers out. Traversals of these commas can get stuck, as topological defects, in the piece. Exactly what pattern of such traversals remains in this final stage... that would be a bit complicated to figure out!

Sunday, October 12, 2025

Emergent Order

I use a thermodynamic simulation in my algorithmic composition software. Randomized decisions are at the heart of this simulation. A piece of music might have ten thousand note events, a voice and a point in time at which a pitch is to be sounded. The pitch to be sounded at each note event is randomly chosen. Each possible pitch that could be played, selected from the options provided by the tuning system, is assigned a probability. A pitch that fits well into the musical context will be assigned a high probability; a pitch that would sound very out of place is assigned a low probability. The musical context is defined by the pitches that have been chosen at related note events:
  • vertical relationships: pitches sounding at the same time in other voices
  • horizontal relationships: pitches immediately before or after in the same voices
  • thematic relationships: pitches sounding at more distant times that are in the same corresponding place in a different expression of a musical phrase or motif or theme.
The choice of the pitch to sound at one note event depends on the pitches chosen to sound at other note events. There is a problem of circularity here! How can the first choices be made? Won't the result depend heavily on the order in which choices are made?

I use a variety of technniques for the initial choices, but the main way around the problem of circularity is that choices are made again and again. After initial pitches have been chosen for all ten thousand note events, those choices are revisited. Some single note event is randomly selected from among the ten thousand. The probabilities are computed for this note event, based on the pitches currently assigned to related note events. A fresh random pitch choice is made, using these probabilities, and the chosen pitch is assigned to this note event. This process is repeated again and again, many millions of times. So the pitch to be assigned to a single note event will be chosen again and again, thousands of times. Between each choice, though, the pitches assigned to the related note events will also have changed, so the probabilities will be different each time the pitch is chosen.

The calculation of the probabilities is based on a cost function. A low cost is assigned to pitches that fit well with pitches at related note events. A system temperature parameter is used in deriving probabilities from the costs. When possible pitches have cost differences that are small relative to the temperature, they will be assigned similar probabilities. When cost differences are large relative to the temperature, then the probabilities will be very different.

The overall process of pitch selection usually involves starting the system at a high temperature, assigning and reassigning pitches to note events again and again, then slowly lowering the temperature, again reassigning pitches many times at each temperature. The pitch choice made at one note event will affect the choices to be made at related note events, and then those choices will affect yet other choices, and this propagation of choices will let the whole system organize itself.

A total cost for the system can be computed, as simply the sum of the costs for all the note events in the system. At high temperatures, high cost pitches have a higher probability, so the total system cost will be high. As the temperature is lowered, the total system cost goes down. A curious feature of thermodynamic systems like this is that the decrease in cost with temperature is often not smooth. Phase transitions occur, where long range order arises and the system cost suddenly decreases. The graph above, with temperature on the horizontal axis and cost on the vertical axis, shows a sudden drop in cost around temperature 230.

A tonal center would be a typical kind of long range order in a musical system. Looking at a particular note event, if the pitches at the related note events are quite unrelated harmonically, then there will be no strong bias in the probabilities for assigning a new pitch at this event. But once the pitches at the related note events are all harmonically close to some tonal center, then there will be a strong bias to assign a harmonically related pitch at this event, too.

The slow decrease in system temperature allows long range order to emerge spontaneously. I took eighteen snapshots of the evolution of the system in a run of this software. The first snapshots are at a very high temperature, so the pitches are quite disordered. The last snapshots are at a very low temperature, after long range order has emerged and established itself. At these extremes of very little order or very strong order, the pieces are rather boring. The most musically interesting pieces are in the middle, at the boundary between order and disorder.

  1. temp=4983.67001252014; cost=10544386.267572;
  2. temp=3178.35877439225; cost=8365076.82243706;
  3. temp=1768.29608835035; cost=6691731.54375484;
  4. temp=907.870229277442; cost=5341434.10767405;
  5. temp=437.105167762909; cost=4254305.00978789;
  6. temp=253.151000149135; cost=3362954.84572504;
  7. temp=226.226281845489; cost=2575694.51859118;
  8. temp=213.857636486513; cost=1992138.33672853;
  9. temp=194.206977218147; cost=1593476.40311909;
  10. temp=168.06408964933; cost=1268744.01912949;
  11. temp=144.276865461673; cost=1010195.00479415;
  12. temp=119.940307483187; cost=804750.28245681;
  13. temp=103.794718800345; cost=639506.147892938;
  14. temp=88.3911327966952; cost=494414.291970105;
  15. temp=77.7312146561222; cost=382966.425501626;
  16. temp=69.4638522645718; cost=300979.198963986;
  17. temp=60.1130776123832; cost=239863.346055088
  18. temp=48.7834419649326; cost=190764.398975199
Even the final piece here has not settled into utter monotony. When a tuning system tempers out simple commas, the system can get stuck in some pattern of comma traversal. That seems to have happened here. The tuning system I used here is 34edo. Studying the scores a bit, I think a traversal of the diaschisma is what got caught.

Thursday, October 9, 2025

Well Temperament

Temperament is tuning with compromises. There are many criteria, that can't all be satisfied perfectly:
  • including many consontant intervals;
  • not including too many notes per octave;
  • symmetry, where the intervals available from one note are also available from other notes;
  • simple paths from a note don't lead to a note that is slightly off the starting point, giving rise to drifting or sounding out of tune.
Well temperament is a class of tunings that allow all twelve key signatures without any sounding too far off. A few years ago I suggested a 12 note subset of 34edo that tempers out the diaschisma rather than the syntonic comma, so it is not too conventional. Lately I have been looking at just tuned diatonic scales. The diaschismic tuning avoids perfect fifths that are too far off, so I had the idea that it could provide a form of well temperament, supporting all twelve key signatures with reasonable diatonic scale shapes.

C Major

An algorithmic example.

G Major

An algorithmic example.

D Major

An algorithmic example.

A Major

An algorithmic example.

E Major

An algorithmic example.

B Major

An algorithmic example.

F# Major

The shapes of the diatonic scales now start to repeat, so their characters will be the same as those already given.

C# Major

Ab Major

Eb Major

Bb Major

F Major

Monday, September 1, 2025

Hanson[19]

A couple days ago I posted a piece in a 19 note scale, using 55edo. This was a classic meantone scale, built from a chain of perfect fifths with the syntonic comma tempered out.

Here is a new piece in a different 19 note scale, using 53edo. This is a Hanson scale, built from a chain of minor thirds with the kleisma tempered out.

I thought it was a nice coincidence that both meantone scales and Hanson scales work with 19 notes per octave: one can shift the scale along the chain of generating intervals by just sharpening or flattening one note of the scale. Initially I just tweak my code to switch the tuning system and scale, but what the software generated was mostly just a single note repeated again and again. Exactly what combinations of parameters will result in anything reasonable musical... I can usually guess the general ballpark, but generally I have to sift through at least a few trials to find something that sounds plausible. So the parameters here have wandered quite a bit from last Saturday's!

Saturday, August 30, 2025

1/6-Comma Meantone

Here is a new piece in 55edo. This piece uses a 19 note subset of the 55 notes per octave of 55edo. This subset is generated from a chain of perfect fifths, which is the way conventional scales are generated. So the scale can be mapped to conventional note names:

A perfect fifth is 32 microsteps of 55edo, which is 698.18 cents. A just tuned perfect fifth is 701.96 cents, so the perfect fifth of 55edo is about 3.77 cents flat. A syntonic comma, the difference between a just tuned major third 5:4 and a pythagorean major third 81:64, is about 21.5 cents. Since 3.77 cents is quite close to 1/6 of 21.5, 55edo is quite close to 1/6-comma meantone. This is a tuning that would have been familiar to musicians in the 18th Century.

Friday, August 15, 2025

Hanson[34]

Scales generated by a minor third support traversing the kleisma, a comma tempered out by 53edo. Larry Hanson built keyboards that exploited this fact, so the scales are called Hanson scales. Hanson[19] is a common size such scale. Starting from pitch class 0, a sequence of eighteen minor thirds generates a scale with 19 notes per octave. The last pitch class in the series is 40. The whole sequence can be shifted by a minor third, by ommitting the starting pitch class, 0, and adding one more pitch class at the end, pitch class 1. Thus the shift is accomplished by sharpening 0 by a single step of 53edo.

With scale sizes of 7, 11, 15, and 34, shifting the sequence ahead a minor third is accomplished by flattening the 0 pitch class. For a scale size of 7, the 0 pitch class would be flattened to pitch class 45. For a scale size 11, 0 is flattened to 48; for size 15, to 51; for 34, to 52. Hanson[34] is largest such scale, a scale that can be shifted by sharpening or flattening a pitch class to an adjacent pitch class.

Here is an algorithmic piece in Hanson[34].

Tuesday, August 12, 2025

Yet More Ways to Tune a Piano

I've been exploring the possibilities for just intonation for the twelve notes per octave on a piano. One can pick a subset of the intervals to tune exactly, and then the other intervals will be have even worse errors than with conventionl equal temperament. I counted 41,844 ways to choose which intervals to tune exactly!

But much of the fun and fascination of tuning has to do with temperament. By relaxing the requirement for intervals to be tuned to exact simple frequency ratios, one can increase the number of intervals that sound acceptably. Of course equal temperament pushes this to the limit, but at the cost of thirds sounding rather rough. There are many other possible choices.

Another way to expand the range of choices is to tune unconventional intervals between the piano keys, or to let go entirely of the seven white and five black keys of the piano, to change the layout of the keyboard. Historically, with meantone tuning, keyboards often enough had split black keys, e.g. seperate black keys for G# and Ab.

Still, it is a nice exercise to stick with the twelve piano keys and their conventional intervals, to start with a choice from among the 41,844 just intonation possibilities, and then to introduce temperament to add a few more acceptably tuned intervals.

This is a tonnetz diagram showing the Pythagorean tuning of the twelve piano keys. The piano is tuned to a chain of perfect fifths. There are no just tuned major thirds available in this tuning.

When this tuning is mapped to 53edo, the tuning system that divides the octave into 53 equal steps, the chain of perfect fifths gets flattened slightly, which brings some of the major thirds into a good approximation. These new relationships change the topology of the tuning: instead of a line segment, the tuning has been wrapped into a circular shape, a loop. The schisma is one of the commas that is tempered out by 53edo. This scale supports traversal of the schisma.

Here is an example of this tuning. This piece is built from a traversal of the schisma, looping around 64 times. A scale built from a chain of perfect fifths, and tempering out the schisma: this is a quite conventional way to tune. This piece does not sound too terribly exotic, at least to my ears!

Here is another of the 41,844 just tunings of a piano. This is built from four chains of major thirds. There are not many perfect fifths in this tuning! It's a more more exotic tuning.

When this tuning is mapped to 53edo, an additional major third is added, which forms a loop that traverses the semicomma.

Here is an example of this tuning, built from 64 traversals of the semicomma.

This exotic tuning does not have a very neat structure: for example, there are three sizes of steps between the notes. By adding one more note per octave, and shifting a couple of the other notes, a more neatly structured tuning can be created:

This tuning does not fit well on a piano keyboard. It's not just that there are thirteen notes per octave. This tuning is built from chains of major thirds of length four and five. Conventional tuning does not allow such chains!

Here is an example of this unconventional and exotic tuning, again built from 64 traversals of the semicomma.

Wednesday, July 23, 2025

Cyclic Paths in Tuning

This diagram shows relationships between the sixteen ways to tune a diatonic scale using just intonation. Each arrow in the diagram represents moving from one tuning to another by shifting a single note by a syntonic comma. The arrows point in the direction of raising the pitch of the note. The diagram has a loop: once all seven notes have been raised by a syntonic comma, one has returned to the same tuning structure that one started with, just a tad higher.

I've made diagrams for each of the sixteen tunings, showing the just tuned perfect fifths, major thirds, and minor thirds. In this first tuning, for example, there is no arrow from G to D. In conventional equal tempered tuning, every interval of seven half steps is the same. In just intonation, not all similar intervals can be tuned the same. In this first tuning, the G-D interval is tuned to a 40:27 frequency ratio, and will sound rather harsh.

Here is an example of tuning 1. I used 87edo to create these examples, rather than just intonation, because my algorithmic composition software works mainly with edo. This software uses weighted random choices to decide what pitches to play. The weights are computed based on the consonance or dissonance of intervals between related notes. So with tuning 1 for example, the program will not very often put a G near a D. It will much more often put A and D near each other.

Here is an example of tuning 2.

Here is an example of tuning 3.

Here is an example of tuning 4.

Here is an example of tuning 5.

Here is an example of tuning 6.

Here is an example of tuning 7.

Here is an example of tuning 8.

Here is an example of tuning 9.

Here is an example of tuning 10.

Here is an example of tuning 11.

Here is an example of tuning 12.

Here is an example of tuning 13.

Here is an example of tuning 14.

Here is an example of tuning 15.

Here is an example of tuning 16.

Saturday, July 19, 2025

Diatonic Scale in Just Intonation

I am continuing to explore conventional scales, like the 12 notes of a piano or the 7 white notes, tuned with just intonation.

This interval graph is a simple way to tune a piano - just a little bit out of the ordinary. Here is an algorithmic example using this tuning.

Just toying with possibilities, I came up with a tweaked version:

Here is an algorithmic example in this tuning. This network still has a diatonic scale as a connected subgraph, but this subgraph does not appear as any of the seven tuning modes I listed a few days ago. This got me wondering: how many ways are there to just tune a diatonic scale?

It was a pretty simple tweak to the code I wrote that counted 41844 ways to tune all twelve notes of the piano with just intonation. Looking just at the seven white notes, and requiring these seven notes to be all interconnected by simple just ratios - there are 16 ways to tune a diatonic scale! Here is a list.

Thursday, July 17, 2025

Non-Diatonic

I hadn't realized how many ways the 12 conventional notes could be tuned in just intonation!There are so many possibilities with temperaments, with scale sizes... but even with this very restricted approach, there is a lot of room for exploration!

Many of the tunings will be oddly shaped with few options for harmonic movement. Many will be based on conventional diatonic tuning, with the usual seven note pattern connected by close harmonic relationships. The above tuning network does not fit the diatonic pattern. The core of the pattern consists of the two short chains of perfect fifths, C#, Ab, Eb, and E, B, F#. Either A or Bb could be added to make a diatonic scale, but both A and Bb are not directly related.

Here is an algorithmic example of this non-diatonic tuning.

This piece was created in 53edo, which is quite close to just intonation. The table above shows just tuning and also the 53edo approximation for this interval network.

It's simple enough to move A and Bb in the network so that diatonic scales are supported. Here E major and Ab minor will be tuned properly:

Here's a piece in this more conventional tuning.