Coding 2026-06-24

Tags:
By Max Woerner Chase

All right, I'm trying to put together a second, unrelated iteration of the prototype, but I'll probably need to take a break soon.

Thinking on this, what I think I need to do is get back to taking notes on paper.

Regardless, the current difficulty with the second prototype is that I haven't properly nailed down what an "interval" is. This is because it can be various things depending on the scale. It can be a combination of integer powers of multiple numbers. It can be an integer number of "steps". These steps can be a root of an integer, or the result of stranger calculations, but functionally is just going to be a float. Now, it probably makes sense to use floats for just intonation as well, but imagining that makes me uncomfortable. Also, I could imagine some kind of weird combination of 12edo and 13edt or whatever. Maybe deliberately "worse" tunings so they don't have so many near misses.

Anyway, let's think about it a little.

I'm defining a scale as a set of intervals above a root pitch. These could be functionally arbitrary steps, or they could be particular rational numbers. We want to be able to use intervals to transform pitches, and we also want to be able to perform various processes on them, like composing "related" intervals together, or inverting them relative to the scale period (... hm), or combining them together for harmonic purposes.

Possibly, then, I could model intervals in terms of some set of steps, where just intonation uses multiple numbers that happen to be integers, equal divisions use a single number, and meantone temperament is like what I speculated about above, except that it's something a lot of people actually did: it needs both the overall period to fit the interval into the correct period, and the step size, which is the fourth root of five or whatever.

...

Wait, the accidentals aren't all the same width in just intonation. Or are they? I need to sleep on this.

Good night.