[gsharp-devel] Microtones

Magnus Jonsson magnus at smartelectronix.com
Sun Jun 17 16:55:29 UTC 2007


On Sat, 16 Jun 2007, Christophe Rhodes wrote:

> Right, but I'm afraid I wasn't clear enough -- or at least, I think
> that we'd probably be better served defining some objects with useful
> introspective properties, rather than bare symbols.
>
> So for instance, from a little bit of Wikipedia browsing, there's this
> hierarchy that I'm expecting to see shredded to bits...
>
>  regular-temperament
>    p-limit-just-temperament
>    twelve-edo
>    linear-temperament
>    miracle-temperament

At first that seems like a good idea, but on second thought I think a 
simpler approach is better because otherwise we will run up against the 
hairy mess that is tuning theory.

If we are this careful about classification perhaps twelve-edo should be 
an equal-temperament. But even with equal temperaments we will have to 
specify the size of a fifth (because there can be multiple valid choices, 
especially in high cardinality equal temperaments) and the "octave", ie 
what it is an equal division of. So it ends up looking very much like 
linear temperaments anyway. And Western staff notation is based on the 
assumption of a linear temperament or something resembling it. With the 
introduction of additional accidentals the sizes of those accidentals will 
also have to be specified in the tuning as there may be multiple valid 
choices.

I think the distinction between regular and irregular temperaments is the 
only important one for gsharp.

For regular temperaments it should be enough to specify what the sizes of 
the octave, the fifth and microtonal accidentals are. The user interested 
in exploring and creating tunings can use other programs such as scala to 
calculate the various sizes.

For irregular temperaments something more complicated is needed. I haven't 
thought enough about them to say what is needed and I am not currently 
very interested in them either.

> We don't necessarily need to add all of these at once, but one thing
> that we probably /do/ need to think about is saving and loading these
> things.  A TUNING probably needs to inherit from GSHARP-OBJECT, and
> have a method for saving its slots via PRINT-OBJECT /
> PRINT-GSHARP-OBJECT (and the method for SEGMENT needs similarly to be
> adjusted).  The idea, however, would be that if the tuning object
> representing 12-EDO could be of the same general class as one
> representing a linear-temperament, then the saving and loading code is
> probably a lot simpler. FIND-TUNING then is a fairly thin wrapper
> about MAKE-INSTANCE on these classes.

It will probably be good to be able to load/save tunings independently of 
the song they are in too. I will try to understand how the loading/saving 
works in gsharp.

> (As far as I can tell, despite our previous discussion, 12-EDO is not
> a linear temperament, as a linear-temperament has two independent
> generators, one of which is the octave, whereas 12-EDO only has the
> ET-semitone -- but be careful with believing anything I say; my
> exposure to mathematical properties and categorization of tuning
> systems is very recent, limited to one conference I attended last
> month).

Some choices of octave and fifth coincide with equal temperaments. It is 
not an either/or thing IMO. For an anology consider the polynomial 1+x. Is 
it linear or quadratic? It is both. 1+x just doesn't utilize all the 
freedoms that quadratic equations have.

> Linear temperament, yes -- but that's unfortunately not the same as
> "linear tuning", as far as my limited understanding of the
> classification goes.

I will use "temperament" henceforth, thanks for the correction.

>> A favorite of mine is to stretch the octave slightly in order to not
>> compromise the fifth too much but still have sweet thirds: 1201 cents
>> octave and 698 cents fifth (anything thereabouts is fine).
>
> OK, summarizing my understanding here (so correct me if I'm wrong):
> what's going on here is that putting the origin at a given note, from
> the fifth and the octave we can generate the other notes by moving
> around the helix of fifths (it's not a circle unless we've especially
> arranged that 12*fifth = 7*octave, where those are measured in cents).

Correct. There are other possible circles of fifth too, such as those of 
31-EDO and 19-EDO which are relatively popular.

> Which means that my question about "which key are we in?" is almost
> misguided -- that is, the frequencies of C-D-E-F-G-A-B-C are a
> constant multiple of those of D-E-F#-G-A-B-C#-D -- the reason that
> it's not totally misguided is that one of these tunings which arranges
> that the A above middle C is 440Hz is a constant frequency multiple
> away from, say, one which arranges that the D above middle C is 293.66
> (its 12-EDO value).

Yes, it would be a good idea to store somewhere a reference note pitch and 
a frequency it should be pinned at. That seems like the most flexible and 
easy to use way. Should it be stored in the segment alongside the tuning 
or inside the tuning itself?

Cheers,
Magnus



More information about the gsharp-devel mailing list