back to list

Vanishing Commas and Temperament Ranges

🔗cityoftheasleep <igliashon@...>

8/26/2010 5:33:20 PM

Simple question (hopefully): how do you compute the range of possible generators for a temperament? For instance, say we want our temperament to vanish 81/80, and that's the only comma we care about. I know that a flat fifth will vanish this comma, but how do I calculate the point at which the fifth becomes too flat (or not flat enough) to vanish the comma?

Also, does every comma that could be made to vanish in a temperament imply a unique generator range? For instance, could you vanish 81/80 without using a flattened 3/2 or a sharpened 4/3 as a generator?

Thanks,

-Igs

🔗Carl Lumma <carl@...>

8/26/2010 7:25:16 PM

Hi Igs,

> Simple question (hopefully): how do you compute the range of
> possible generators for a temperament? For instance, say we
> want our temperament to vanish 81/80, and that's the only
> comma we care about. I know that a flat fifth will vanish
> this comma, but how do I calculate the point at which the
> fifth becomes too flat (or not flat enough) to vanish the
> comma?

Gene can better answer this but I'll try.

Maps vanish commas, not tunings. To use your example, the
meantone map vanishes 81/80 by making four 3:2s equal to
one 5:4 (ignoring octaves for a moment).

Now, you can make that "3:2" be any size and the "5:4" will
come out accordingly. That's the tuning. It only depends
on your tolerance or desires. You can call 320 cents the
"3:2" and get a 1280-cent "5:4" if you want. Probably we
should have a rule to punish people who do things like this
but I'm not aware of anyone proposing such a rule.

One thing that has been proposed is that we should not carry
on stacking generators if a better approximation to the
target appears (other than the one the map tells you to use).
In my last example, 320 cents is itself a better approximation
to 5:4 than 1280 cents (or 80 cents if we have octaves) so we
wouldn't be able to stack even a single generator without
breaking the rule.

Herman Miller made this proposal and he may be able to tell
you more about it. The idea is, the larger the scale that
can be constructed without 'invalidating' the map, the better
the map (in a sense). Herman: did you compute this number
for popular temperaments (I forget)?

> Also, does every comma that could be made to vanish in a
> temperament imply a unique generator range? For instance,
> could you vanish 81/80 without using a flattened 3/2 or
> a sharpened 4/3 as a generator?

Good question. It depends on the number of primes being
mapped and the rank of the temperament produced. In meantone
we are usually mapping the 5-limit down to a rank 2 (2-D)
system. The 5-limit is 3-D, so we're eliminating one
dimension and that requires only one comma, and given a
tuning error function (say squared cents error) this comma
will always (for the right error function) give a single
tuning for a pair of generators. Except there's still the
question of 'factoring' the map, that is, whether to use a
fifth and and octave or a fourth and an octave, etc. To
standardize that, Gene uses something called Hermite normal
form. I think. Gene can tell you more.

So if you use the right error function and Hermite normal
form, you do get a single tuning of the generators for a
comma.... in the "codimension 1" case (where map subtracts
one dimension). However if you've got the 11-limit and you
want rank 2, you need three commas (codimension 3) and then
things get more complicated. Gene and Graham have developed
ways to make sense of it, but it's not easy and it's still
a bit of a work in progress.

-Carl

🔗cityoftheasleep <igliashon@...>

8/27/2010 12:01:23 AM

Hi Carl,
Wow, this is a lot more complicated than I expected.

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:

> Maps vanish commas, not tunings. To use your example, the
> meantone map vanishes 81/80 by making four 3:2s equal to
> one 5:4 (ignoring octaves for a moment).
>
> Now, you can make that "3:2" be any size and the "5:4" will
> come out accordingly. That's the tuning. It only depends
> on your tolerance or desires. You can call 320 cents the
> "3:2" and get a 1280-cent "5:4" if you want. Probably we
> should have a rule to punish people who do things like this
> but I'm not aware of anyone proposing such a rule.

Okay, I know one tuning can have many maps, and that one map can have many tunings. But since 81/80 (or any comma) is a specific value, I had a feeling that the size of the comma would have some effect on the range of allowable generators for the tuning.

What confuses me is on the one hand, we see 81/80 as the difference between four 3/2's and 5/4--to understand 81/80, we have to regard 3/2 and 5/4 as having absolute values. But then you say when we "temper out" 81/80, we do so according to a map where 3/2 and 5/4 can mean whatever we want. It seems to me that there has to be some non-arbitrary limit, related to the commas being tempered out, for what intervals like 3/2 and 5/4 can mean. Otherwise you could say every temperament tempers out every comma, and they'd only be differentiable by error. We could call, say, Mohajira something like "16-comma meantone", and that would be absurd. Is there really no non-arbitrary way around this?

> > Also, does every comma that could be made to vanish in a
> > temperament imply a unique generator range? For instance,
> > could you vanish 81/80 without using a flattened 3/2 or
> > a sharpened 4/3 as a generator?
>
> Good question. It depends on the number of primes being
> mapped and the rank of the temperament produced. In meantone
> we are usually mapping the 5-limit down to a rank 2 (2-D)
> system. The 5-limit is 3-D, so we're eliminating one
> dimension and that requires only one comma, and given a
> tuning error function (say squared cents error) this comma
> will always (for the right error function) give a single
> tuning for a pair of generators. Except there's still the
> question of 'factoring' the map, that is, whether to use a
> fifth and and octave or a fourth and an octave, etc. To
> standardize that, Gene uses something called Hermite normal
> form. I think. Gene can tell you more.

Why does the question of factoring the map arise? Because one factorization may have a higher complexity than another?

> So if you use the right error function and Hermite normal
> form, you do get a single tuning of the generators for a
> comma.... in the "codimension 1" case (where map subtracts
> one dimension). However if you've got the 11-limit and you
> want rank 2, you need three commas (codimension 3) and then
> things get more complicated. Gene and Graham have developed
> ways to make sense of it, but it's not easy and it's still
> a bit of a work in progress.

This wasn't really my question, though. I know that for a specific "error" value, you will get a specific tuning of generators, but what I wanted to know is if the range of error values is arbitrary or if it's related to the comma.

I assumed all temperaments dealt with adding or subtracting some fraction of a comma (i.e. less than a whole comma) or commas to one of the intervals from which the comma is derived. For instance, 81/80 is the difference between four 3/2s and one 5/4, so it would seem like if you wanted to temper it out, you just subtract some fragment of the comma from 3/2. The error between 5/4 and 3/2 will remain constant, i.e. if you don't subtract any amount of 81/80 from 3/2, then 5/4 bears a whole comma's worth of error, but if you subtract 1/4 comma, then you get a pure 5/4 with the error distributed over the four 3/2s. It would seem to me that when you subtract more than 1/4 comma, the 5/4 will start to pick up more error, so now you've actually gone past an 81/80's-worth of error and it stops making sense to say you're tempering out 81/80. Why does there have to be more to it than this?

-Igs

🔗genewardsmith <genewardsmith@...>

8/27/2010 1:08:15 AM

--- In tuning@yahoogroups.com, "cityoftheasleep" <igliashon@...> wrote:

> What confuses me is on the one hand, we see 81/80 as the difference between four 3/2's and 5/4--to understand 81/80, we have to regard 3/2 and 5/4 as having absolute values. But then you say when we "temper out" 81/80, we do so according to a map where 3/2 and 5/4 can mean whatever we want. It seems to me that there has to be some non-arbitrary limit, related to the commas being tempered out, for what intervals like 3/2 and 5/4 can mean.

Why does it need to be related to the commas being tempered out? It seems to me that if the 3/2 and 5/4 cease sounding like 3/2 and 5/4, then you've gone beyond the bounds of acceptable tempering. That's why I put quote marks around "temperaments" like father or beep--they don't really have an acceptable range of values. If your 5/4 morphs into something more like 9/7, in my view you may have a temperament, but it isn't meantone.

Here's a fun game you can play with meantone retuning. Let's say you want to use 36edo as a meantone tuning. You decide 29/36 would make for a nifty generator, and call it a fifth. Four of these, down two octaves, gives 44/36 (11/9) octaves, and you call that a major third. You are happy with your new meantone tuning, since the 5-limit triads you tune in this way sound harmonious to you. Unfortunately, it isn't really meantone since your "fifth" is actually very close to 7/4, and your "major third" is even closer to 7/3. Your attempt at approximating 1-5/4-3/2 has lead you to 1-7/3-7/4, and your meantone piece, while nicely harmonious, sounds not at all like the piece you started with.

🔗Carl Lumma <carl@...>

8/27/2010 1:22:22 AM

Hi Igs,

I'm going to riff on this best I can. Hopefully something
will make sparks for you.

> What confuses me is on the one hand, we see 81/80 as the
> difference between four 3/2's and 5/4--to understand 81/80,
> we have to regard 3/2 and 5/4 as having absolute values.

The map specifies a relationship between 3/2 & 5/4, nothing
more.

> But then you say when we "temper out" 81/80, we do so
> according to a map where 3/2 and 5/4 can mean whatever
> we want.

Let's say you have an EDO scale in front of you, but no map.
Could you say the scale tempers out 81/80?

First, you'd have to specify a prime or odd limit -- what
you consider consonant.

In the 3-limit, there is no 81/80.

In the 5-limit, 81/80 is tempered out if a stack of four
approximate 3/2s lands on the same note as a stack of one
approx. 5/4. How do you find these approximations in the
scale? Usually you take the interval in the scale closest
in size to 3/2 to be the 3/2 approximation, and so on.
So that's a rule that lets you test if a scale is making
81/80 vanish.

In the 81-limit, 81/80 is tempered out when 81/80
approximates to zero steps. You'd check if there was a
step closer in size to 22 cents than 0. If the step size
were 45 cents, 81/80 would vanish, because 0 is a better
approximation.

If the scale tempered out 81/80 via the 5-limit map but
not via direct approximation, or vice versa, it would be
*81-limit inconsistent*.

That's the scale-based way of looking at things.

The temperament-based way works differently. You start
with a simple map -- a map that uses short stacks, like
meantone with stacks of 4 units and 1 unit. Maps with
tall stacks aren't good because you'd never get to use
them unless you had a lot of notes in your scale. Like
with meantone, you only need a 4-note scale to encounter
the comma. So simple maps are good.

So you start with some good map and ask what the best
tuning is. To tell if one tuning is better than another
you need a way to measure error. Once you say what way
you like you can answer the question. And once you have
this "optimal" tuning for the generators of your map, you
can produce a scale by stacking them. You know it will
pass the test for scales we discussed above as far as
making the comma from the map vanish.... unless you stack
the generator so many times that a better approximation
comes up than the one mapped. That's the situation
Herman was interested in -- knowing the biggest scale for
each map that avoids this issue.

> It seems to me that there has to be some non-arbitrary limit,
> related to the commas being tempered out, for what intervals
> like 3/2 and 5/4 can mean. Otherwise you could say every
> temperament tempers out every comma, ... Is there really no
> non-arbitrary way around this?

Once you say how you intend to measure error (total cents
error, mean squared error, Tenney-weighted, etc.) you can
find one or more minimums -- tunings that give the least
error. The max error isn't bounded. You can have as
crappy a tuning as you want! But you can't have no error.
That'd be JI and your comma wouldn't vanish. So that's
what the comma specifies -- a minimum amount of error that
you must have.

> Why does the question of factoring the map arise?

It arises because, as you noted, the smaller generator can
always be subtracted from the larger -- it could be 5ths
and octaves or 4ths and octaves. For a rank 3 temperament
there are three different generators, and you can imagine
that means even more ways to 'factor' the map. Rather
than deal with all that, Gene introduced wedgies. There's
only one wedgie for each temperament so you'll never count
the same temperament twice by accident.

> what I wanted to know is if the range of error values is
> arbitrary or if it's related to the comma.

See above.

> For instance, 81/80 is the difference between four 3/2s
> and one 5/4, so it would seem like if you wanted to temper
> it out, you just subtract some fragment of the comma
> from 3/2.

Right, you can find the TOP tuning for a codimension 1
temperament (e.g. 5-limit rank 2) by distributing the
comma this way -- the algorithm is easy and is in Paul's
Middle Path paper. But when you get to codimension 2
(e.g. 7-limit rank 2) this simple picture no longer
applies, because the commas are mixing.

>The error between 5/4 and 3/2 will remain constant, i.e.
>if you don't subtract any amount of 81/80 from 3/2, then
>5/4 bears a whole comma's worth of error, but if you
>subtract 1/4 comma, then you get a pure 5/4 with the error
>distributed over the four 3/2s. It would seem to me that
>when you subtract more than 1/4 comma, the 5/4 will start
>to pick up more error, so now you've actually gone past
>an 81/80's-worth of error and it stops making sense to say
>you're tempering out 81/80.

No- 81/80 still vanishes because you still wind up on
the same note! You have more error than you need is all.
In the Baroque period, many well temperaments made use
of sharp 5ths. But in the 20th century Owen Jorgensen
(I think it was) pointed out that this is more error than
needed -- he called it "harmonic waste". If you split
the Pythagorean comma over all 12 fifths they wind up
narrow. So if you make any of them wider than 3/2 you
just have to make up for that somewhere else.

-Carl

* This is disputed by some in the early music sce

🔗Carl Lumma <carl@...>

8/27/2010 1:27:36 AM

I wrote:

> * This is disputed by some in the early music sce

Sorry, edit cruft. Disregard. -C.

🔗cityoftheasleep <igliashon@...>

8/27/2010 7:54:34 AM

Hi Carl, I think this is making more sense.

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:
> Let's say you have an EDO scale in front of you, but no map.
> Could you say the scale tempers out 81/80?
>
> First, you'd have to specify a prime or odd limit -- what
> you consider consonant.
>
> In the 3-limit, there is no 81/80.
>
> In the 5-limit, 81/80 is tempered out if a stack of four
> approximate 3/2s lands on the same note as a stack of one
> approx. 5/4. How do you find these approximations in the
> scale? Usually you take the interval in the scale closest
> in size to 3/2 to be the 3/2 approximation, and so on.
> So that's a rule that lets you test if a scale is making
> 81/80 vanish.

But theoretically, if you were of a mind to be "difficult" about it, you *could* take an interval that doesn't approximate 3/2 and "say" that it does, and call whatever interval four of them approximates a "5/4"...then you could say it vanishes 81/80, right? You'd just be a jerk for saying it.

> If the scale tempered out 81/80 via the 5-limit map but
> not via direct approximation, or vice versa, it would be
> *81-limit inconsistent*.

Oh, so *that's* what consistency means.

> So you start with some good map and ask what the best
> tuning is. To tell if one tuning is better than another
> you need a way to measure error. Once you say what way
> you like you can answer the question. And once you have
> this "optimal" tuning for the generators of your map, you
> can produce a scale by stacking them. You know it will
> pass the test for scales we discussed above as far as
> making the comma from the map vanish.... unless you stack
> the generator so many times that a better approximation
> comes up than the one mapped. That's the situation
> Herman was interested in -- knowing the biggest scale for
> each map that avoids this issue.

Oh, NOW I get what he was trying to do. That sounds tricky, because I guess it isn't absolutely related to size of generator. For instance, between any two sizes of generator that give small EDOs--say between the fifth of 19-EDO and 26-EDO--there're going to be lots of fifths that give very BIG EDOs, where better approximations to 5/4 are almost sure to appear eventually. Even one minor tweak to the size of a fifth, like 699 cents instead of 700, gives a major third much better than 400 cents if you go way the heck out on the spiral of fifths. Seems like the only sure-fire way is to stick with values from the Stern-Brocot tree, find the largest EDO where 4 fifths is still the best approximation, and anything that's not an EDO lower than that one on the tree gets ruled out. But then you'd end up ruling out a whole lot of scales where 4 fifths is still a "good enough" approximation of 5/4 to function as a meantone. I'd love to hear how Herman approached this. Hopefully he's reading?

> Once you say how you intend to measure error (total cents
> error, mean squared error, Tenney-weighted, etc.) you can
> find one or more minimums -- tunings that give the least
> error. The max error isn't bounded. You can have as
> crappy a tuning as you want! But you can't have no error.
> That'd be JI and your comma wouldn't vanish. So that's
> what the comma specifies -- a minimum amount of error that
> you must have.

Damn. So the comma is the minimum error, but there is no max error. I was afraid you were going to say that.

> > For instance, 81/80 is the difference between four 3/2s
> > and one 5/4, so it would seem like if you wanted to temper
> > it out, you just subtract some fragment of the comma
> > from 3/2.
>
> Right, you can find the TOP tuning for a codimension 1
> temperament (e.g. 5-limit rank 2) by distributing the
> comma this way -- the algorithm is easy and is in Paul's
> Middle Path paper. But when you get to codimension 2
> (e.g. 7-limit rank 2) this simple picture no longer
> applies, because the commas are mixing.

Yeah, that's the crazy part. Mixing commas. I suppose for something like a 7-limit meantone, you'd want to temper out...what, the difference between 10 fifths and 7/4? So 59049/57344? Convenient that 1/10 of that comma is very close to 1/4 of 81/80, I'm sure it gets much more complex in other temperaments. Like if you wanted to make 2 fourths equal to 7/4 instead of 10 fifths, then you'd get what, a comma of 64/63? So then you'd have to take 1/2 that comma, ~13.63 cents, out of the fourth, or add it to the fifth...and NOW I see where these error formulas come into play. The two commas are pushing the generator in opposite directions. I'd be at a total loss to figure out an optimal generator. And even more at a loss to tell if that generator --assuming it's not identifiable as exactly belonging to a lowish EDO--wouldn't produce approximations better than the desired mapping if extended far enough.

Man, temperament is a LOT more complicated than I thought!

> >The error between 5/4 and 3/2 will remain constant, i.e.
> >if you don't subtract any amount of 81/80 from 3/2, then
> >5/4 bears a whole comma's worth of error, but if you
> >subtract 1/4 comma, then you get a pure 5/4 with the error
> >distributed over the four 3/2s. It would seem to me that
> >when you subtract more than 1/4 comma, the 5/4 will start
> >to pick up more error, so now you've actually gone past
> >an 81/80's-worth of error and it stops making sense to say
> >you're tempering out 81/80.
>
> No- 81/80 still vanishes because you still wind up on
> the same note! You have more error than you need is all.

The same note as what? I mean, say you use a fifth like 690 cents, where four of them gives a major third of 360 cents, but if you keep going till 11 fifths out, you get an interval of 390 cents, a better 5/4...so aren't you really tempering out the difference between 11 3/2s and a 5/4 at this point, or 177147/163840? But then, maybe you could keep going even further, and find a better 5/4 made from 690-cent generators (I'm too lazy/inept to pursue it any further myself), so then *really* you'd be tempering out THAT comma.

I guess my point is that unless you nail the 5/4 exactly, or you're in an EDO where you know there is no better 5/4, there's gonna be a chance that a better approximation will pop up, and if a better approximation DOES pop up, doesn't that imply a different comma than 81/80? Is this what Herman was working on?

-Igs

🔗Carl Lumma <carl@...>

8/27/2010 11:54:21 AM

Hi Igs!

> But theoretically, if you were of a mind to be "difficult"
> about it, you *could* take an interval that doesn't approximate
> 3/2 and "say" that it does, and call whatever interval four
> of them approximates a "5/4"...then you could say it vanishes
> 81/80, right? You'd just be a jerk for saying it.

Exactly. Gene just answered, 'don't be a jerk'. Nobody's
bothered to quantify it. Since there's no reason to use more
than the minimum I suppose you're a jerk if you use any more
than that (since you were free to choose the error measure).
But that makes many 17th-century tuners jerks, and the early
music crowd doesn't like their heroes being called jerks.

> > If the scale tempered out 81/80 via the 5-limit map but
> > not via direct approximation, or vice versa, it would be
> > *81-limit inconsistent*.
>
> Oh, so *that's* what consistency means.

Yup.

> Oh, NOW I get what he was trying to do. That sounds
> tricky, because I guess it isn't absolutely related to size
> of generator. For instance, between any two sizes of
> generator that give small EDOs--say between the fifth of
> 19-EDO and 26-EDO--there're going to be lots of fifths that
> give very BIG EDOs, where better approximations to 5/4 are
> almost sure to appear eventually. Even one minor tweak to
> the size of a fifth, like 699 cents instead of 700, gives
> a major third much better than 400 cents if you go way the
> heck out on the spiral of fifths. Seems like the only
> sure-fire way is to stick with values from the Stern-Brocot
> tree, find the largest EDO where 4 fifths is still the best
> approximation, and anything that's not an EDO lower than
> that one on the tree gets ruled out. But then you'd end up
> ruling out a whole lot of scales where 4 fifths is still a
> "good enough" approximation of 5/4 to function as a meantone.
> I'd love to hear how Herman approached this. Hopefully he's
> reading?

Herman wasn't thinking in terms of EDOs, but in terms of
rank 2 temperaments. There, you take the optimal generator
and stack it. Each time, you check if a better approx. has
appeared. As soon as it does, you stop and report the size
of the stack. But you're right that a small change in the
generator size can change this number.

> Yeah, that's the crazy part. Mixing commas. I suppose
> for something like a 7-limit meantone, you'd want to temper
> out...what, the difference between 10 fifths and 7/4?

That's one way. There are different ways to extend
meantone.

> Like if you wanted to make 2 fourths equal to 7/4 instead
> of 10 fifths, then you'd get what, a comma of 64/63?

Yup, pajara does that (but it doesn't get rid of 81/80).

> So then you'd have to take 1/2 that comma, ~13.63 cents,
> out of the fourth, or add it to the fifth...and NOW I see
> where these error formulas come into play.

You should read Middle Path and work through the meantone
tuning algorithm. In TOP we temper all the prime factors
of the comma, including the octave, to make it vanish.
That spreads it out as widely and evenly as possible. But
the final insight is to dole out the error in proportion
to the Tenney height -- because you'll notice it less on
more discordant intervals. And Tenney height adds up the
same way primes multiply in just intonation. So the error
you doled out to the primes will be the same error doled
out to ANY interval. It's all in the paper!

> The two commas are pushing the generator in opposite
> directions. I'd be at a total loss to figure out an
> optimal generator.

Yup, I don't know how to do it either. Gene uses linear
programming
http://en.wikipedia.org/wiki/Linear_programming

Graham made a variant of TOP that uses squared error.
That makes the optimization somewhat easier... and after a
trip to another dimension
http://x31eq.com/primerr.pdf
he deduced formulae for it that even I can understand.
Almost. Which reminds me, I owe him an e-mail on that...

> Man, temperament is a LOT more complicated than I thought!

It's a very simple concept, which produces scales that are
simpler than JI to use. But it involves some heavy lifting
to do the calculations beforehand.

> > >The error between 5/4 and 3/2 will remain constant, i.e.
> > >if you don't subtract any amount of 81/80 from 3/2, then
> > >5/4 bears a whole comma's worth of error, but if you
> > >subtract 1/4 comma, then you get a pure 5/4 with the error
> > >distributed over the four 3/2s. It would seem to me that
> > >when you subtract more than 1/4 comma, the 5/4 will start
> > >to pick up more error, so now you've actually gone past
> > >an 81/80's-worth of error and it stops making sense to
> > >say you're tempering out 81/80.
> >
> > No- 81/80 still vanishes because you still wind up on
> > the same note! You have more error than you need is all.
>
> The same note as what?

Let's look at the 5-limit JI map.

2 3 5
[1 0 0] 2
[0 1 0] 3
[0 0 1] 5

Here's the meantone version

2 3 5
[1 0 0] 1200.0
[0 1 4] 700.0

Note that the 700.0 cent generator has two numbers in its
row. That will never happen in a JI map. This and this
alone causes 81/80 to vanish. You are only allowed to use
the map! You may NOT use a 5/4 other than the one the map
tells you to use. Now, if you have a scale with a better
5/4, you can say the scale is inconsistent with respect to
the map. Or represents a poor tuning of the map, etc. etc.
But if you use that better 5/4 you are no longer causing
81/80 to vanish! If you use it, 81/80 has some size -- the
difference between the better 5/4 and the mapped one.
No longer the same note!

12-EDO has far more error than meantone needs to have, but
it IS a meantone tuning. I guess that makes us all jerks.

-Carl

🔗genewardsmith <genewardsmith@...>

8/27/2010 12:46:41 PM

--- In tuning@yahoogroups.com, "cityoftheasleep" <igliashon@...> wrote:

> Yeah, that's the crazy part. Mixing commas. I suppose for something like a 7-limit meantone, you'd want to temper out...what, the difference between 10 fifths and 7/4? So 59049/57344?

Fortunately, it doesn't need to be that complicated, as adding either 126/125 or 225/224 to 81/80 will work just as well.

> Convenient that 1/10 of that comma is very close to 1/4 of 81/80, I'm sure it gets much more complex in other temperaments. Like if you wanted to make 2 fourths equal to 7/4 instead of 10 fifths, then you'd get what, a comma of 64/63?

Leading to dominant temperament, quite a lot less accurate than septimal meantone.

> So then you'd have to take 1/2 that comma, ~13.63 cents, out of the fourth, or add it to the fifth...and NOW I see where these error formulas come into play. The two commas are pushing the generator in opposite directions. I'd be at a total loss to figure out an optimal generator.

A fifth of 700 cents works pretty well, and leads to a scale which should be familiar.

🔗cityoftheasleep <igliashon@...>

8/27/2010 12:55:00 PM

Okay, I think I've got it.

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:

> Let's look at the 5-limit JI map.
>
> 2 3 5
> [1 0 0] 2
> [0 1 0] 3
> [0 0 1] 5
>
> Here's the meantone version
>
> 2 3 5
> [1 0 0] 1200.0
> [0 1 4] 700.0

Shouldn't the meantone version be:

2 3 5
[1 0 0] x
[0 1 4] y

Where x and y are the two generators, since the map doesn't have tuning built into it?

I'm kind of surprised that there's been no attempt to pin down the "max error" for a temperament, i.e. the point at which it no long bears audible resemblance to the JI intervals that are supposed to be approximated. Well, actually I guess I'm not surprised, since temperament theory here has been developed with the idea of minimizing error, not establishing discrete musical boundaries between scale/temperament families. Maybe I'll bug Paul about this a bit.

> Note that the 700.0 cent generator has two numbers in its
> row. That will never happen in a JI map. This and this
> alone causes 81/80 to vanish. You are only allowed to use
> the map! You may NOT use a 5/4 other than the one the map
> tells you to use. Now, if you have a scale with a better
> 5/4, you can say the scale is inconsistent with respect to
> the map. Or represents a poor tuning of the map, etc. etc.
> But if you use that better 5/4 you are no longer causing
> 81/80 to vanish! If you use it, 81/80 has some size -- the
> difference between the better 5/4 and the mapped one.
> No longer the same note!

Gotcha.

> Herman wasn't thinking in terms of EDOs, but in terms of
> rank 2 temperaments. There, you take the optimal generator
> and stack it. Each time, you check if a better approx. has
> appeared. As soon as it does, you stop and report the size
> of the stack. But you're right that a small change in the
> generator size can change this number.

What I figured is that in EDOs, a stack of generators becomes a circle, i.e. it stops making new intervals at some point. So with EDOs, you will know when you have your best approximation of a given interval. You can look at all the pitches at once. As I'm sure you know, the range of generators that will give their best approximation to 5/4 as four 3/2s is not continuous; i.e. you can't just say it's anything between 700 and 690 cents (or whatever), because there will be generators in that range that reach better approximations of 5/4 at more than a stack of 4 generators. That's why I'd think that taking it branch-by-branch on the Stern-Brocot tree would be the best approach. Heck, how else could you even do it? Strange attractors, or some other sort of iterative functions? Gosh, I guess Herman's got his work cut out for him if it's as complex as I'm imagining.

-Igs

🔗Carl Lumma <carl@...>

8/27/2010 1:09:37 PM

Igs wrote:

> > Here's the meantone version
> >
> > 2 3 5
> > [1 0 0] 1200.0
> > [0 1 4] 700.0
>
> Shouldn't the meantone version be:
>
> 2 3 5
> [1 0 0] x
> [0 1 4] y
>
> Where x and y are the two generators, since the map doesn't
> have tuning built into it?

Yes.

-Carl

🔗Carl Lumma <carl@...>

8/27/2010 1:11:32 PM

Also Igs, at the risk of being didactic I will double down
on my suggestion that you read Middle Path and work through
the TOP meantone tuning example. -Carl

🔗genewardsmith <genewardsmith@...>

8/27/2010 1:12:24 PM

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:

> Graham made a variant of TOP that uses squared error.
> That makes the optimization somewhat easier... and after a
> trip to another dimension
> http://x31eq.com/primerr.pdf
> he deduced formulae for it that even I can understand.

Did my explanations here

http://xenharmonic.wikispaces.com/RMS+tuning

and here

http://xenharmonic.wikispaces.com/RMS+temperament+measures

in terms of the Moore-Penrose pseudoinverse and the Gramian make any sense? Which reminds me, I should add something about badness measures.

🔗Herman Miller <hmiller@...>

8/27/2010 5:32:11 PM

Carl Lumma wrote:

> One thing that has been proposed is that we should not carry
> on stacking generators if a better approximation to the
> target appears (other than the one the map tells you to use).
> In my last example, 320 cents is itself a better approximation
> to 5:4 than 1280 cents (or 80 cents if we have octaves) so we
> wouldn't be able to stack even a single generator without
> breaking the rule.
> > Herman Miller made this proposal and he may be able to tell
> you more about it. The idea is, the larger the scale that
> can be constructed without 'invalidating' the map, the better
> the map (in a sense). Herman: did you compute this number
> for popular temperaments (I forget)?

I made a set of charts for some common 5-limit temperaments and put them in the tuning-math files folder at /tuning-math/files/Rank%202%20Consistency/. The darker areas in the charts represent the most consistent tunings according to the size of the generators. I think I came to the conclusion that the actual numbers could be misleading, since some of these temperaments had highly intricate regions where a very slight change in tuning makes a drastic difference in the consistency score.

Basically I only checked the prime intervals (2/1, 3/1, 5/1). It's quite possible that I would have got different results if I checked for better approximations of other intervals. For each tuning within the range of the chart, I looked for mappings that were more accurate than the mapping of the temperament. For instance, quarter comma meantone has a fifth of around 696.58 cents, so its approximation of 3/1 is 1896.58 cents. But you get a better approximation after 30 generators, at 1902.65 cents (only 0.69 cents sharp, vs. 5.38 cents flat). You can't get a better approximation of 2/1 or 5/1, since these are exactly just in quarter-comma meantone. TOP meantone with generators of around 504.13 and 1201.70 cents has a better consistency for 3/1: you need to go as far as (+75, -175) before you get a better approximation than (+2, -1). But it has a better approximation of 5/1 at (+17, -35). And since the octave is also tempered, eventually at (+87, -205) you reach a better approximation of 2/1.

🔗Herman Miller <hmiller@...>

8/27/2010 6:03:43 PM

Carl Lumma wrote:

...

>> The two commas are pushing the generator in opposite
>> directions. I'd be at a total loss to figure out an
>> optimal generator.
> > Yup, I don't know how to do it either. Gene uses linear
> programming
> http://en.wikipedia.org/wiki/Linear_programming

I have a method that involves extracting a set of commas from the wedgie and using the one with the largest TOP error. It gives results that are practically the same sa Gene's, but these days I prefer Graham's RMS method.

> Graham made a variant of TOP that uses squared error.
> That makes the optimization somewhat easier... and after a
> trip to another dimension
> http://x31eq.com/primerr.pdf
> he deduced formulae for it that even I can understand.
> Almost. Which reminds me, I owe him an e-mail on that...

Graham's method has a couple of nice features: it generalizes easily to all ranks and limits of regular temperaments, and it can be done in a simple spreadsheet with just a few matrix operations.

🔗Carl Lumma <carl@...>

8/27/2010 6:14:40 PM

--- In tuning@yahoogroups.com, Herman Miller <hmiller@...> wrote:

> I made a set of charts for some common 5-limit temperaments and
> put them in the tuning-math files folder at
> /tuning-math/files
> /Rank%202%20Consistency/.
> The darker areas in the charts represent the most consistent
> tunings according to the size of the generators. I think I
> came to the conclusion that the actual numbers could be
> misleading, since some of these temperaments had highly
> intricate regions where a very slight change in tuning makes
> a drastic difference in the consistency score.

Thanks Herman! Yeah, some of those have pretty fractal-like
patterns. -Carl

🔗Carl Lumma <carl@...>

8/27/2010 6:16:10 PM

--- In tuning@yahoogroups.com, Herman Miller <hmiller@...> wrote:
>
> Graham's method has a couple of nice features: it generalizes
> easily to all ranks and limits of regular temperaments, and it
> can be done in a simple spreadsheet with just a few matrix
> operations.

I'd be keen to know more about that. Graham sent me the
formulae for rank 2, but I thought he said he hadn't worked
out formulae for all the different ranks... -Carl

🔗Herman Miller <hmiller@...>

8/27/2010 6:20:12 PM

cityoftheasleep wrote:

> What I figured is that in EDOs, a stack of generators becomes a
> circle, i.e. it stops making new intervals at some point. So with
> EDOs, you will know when you have your best approximation of a given
> interval. You can look at all the pitches at once. As I'm sure you
> know, the range of generators that will give their best approximation
> to 5/4 as four 3/2s is not continuous; i.e. you can't just say it's
> anything between 700 and 690 cents (or whatever), because there will
> be generators in that range that reach better approximations of 5/4
> at more than a stack of 4 generators. That's why I'd think that
> taking it branch-by-branch on the Stern-Brocot tree would be the best
> approach. Heck, how else could you even do it? Strange attractors,
> or some other sort of iterative functions? Gosh, I guess Herman's
> got his work cut out for him if it's as complex as I'm imagining.

Yes, actually the Stern-Brocot tree is great for setting the boundaries of temperaments in the case where the octave is untempered. So on one end of meantone you have mavila with a 3/7 generator, and on the other end 5/12 where meantone meets schismatic. Still, the deeper you go into the tree, you start running into other temperaments like 7&47 <0, -1, -11] with a 14/33 generator, or 12&79 <0, -1, -16] with a 33/79 generator. Within the mavila range you have a variety of more complex temperaments.

🔗genewardsmith <genewardsmith@...>

8/27/2010 6:57:25 PM

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:
>
> --- In tuning@yahoogroups.com, Herman Miller <hmiller@> wrote:
> >
> > Graham's method has a couple of nice features: it generalizes
> > easily to all ranks and limits of regular temperaments, and it
> > can be done in a simple spreadsheet with just a few matrix
> > operations.
>
> I'd be keen to know more about that. Graham sent me the
> formulae for rank 2, but I thought he said he hadn't worked
> out formulae for all the different ranks... -Carl

I gave two different methods suitable for all ranks in the Xenwiki article. Of course it's dead easy if you have a Moore-Penrose pseudoinverse function, but that should be somewhere or other on Matlab which you used to use. It's also on Maple or Mathematica. If not, least squares is also easy.

🔗Carl Lumma <carl@...>

8/27/2010 10:51:37 PM

Gene wrote:

> Did my explanations here
> http://xenharmonic.wikispaces.com/RMS+tuning
> and here
> http://xenharmonic.wikispaces.com/RMS+temperament+measures
>
> in terms of the Moore-Penrose pseudoinverse and the Gramian
> make any sense? Which reminds me, I should add something
> about badness measures.

I just finished the second article. I had no idea I could
wedge weighted vals (or monzos) and get something that made
sense (a weighted wedgie I presume).

I'm not sure which programming environments make Gramians
available but not wedge products. At any rate, Herman's
C code for wedge products seemed simple enough to add to
my libraries. However I've misplaced it. Herman?

I assume J^W is the JIP wedged with a weighted wedgie (?).
That makes the subsequent RMS norm give "relative error"
instead of weighted complexity. Graham's TOP-RMS error has
the same units I think -- cents per step or something for
ETs. I'm not sure I'd call that error. Sounds like it's
already a kind of badness.

How'm I doing?

Oh, and I found this:

> Erlich magic L1 norm; if <<a1 a2 a3 a4 a5 a6|| is the wedgie,
> then complexity is
> |a1/p3|+|a2/p5|+|a3/p7|+|a4/p3p5|+|a5/p3p7|+|a6/p5p7|

That looks pretty easy. Except what are the ps?

First article. It seems you vacillate between TOP-RMS
and RMS-TOP. That's just a style guide thing.

The subtitle "Pure octaves RMS tuning" would be greatly
enhanced with the use of a graphic plot showing an example.

Wow, this article fairly blew me away, whereas I basically
felt like I grasped the other one.

-Carl

🔗genewardsmith <genewardsmith@...>

8/27/2010 11:21:23 PM

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:

> I'm not sure which programming environments make Gramians
> available but not wedge products.

One with determinants but not wedge products, which is awfully common.

> I assume J^W is the JIP wedged with a weighted wedgie (?).

Exactly.

> That makes the subsequent RMS norm give "relative error"
> instead of weighted complexity. Graham's TOP-RMS error has
> the same units I think -- cents per step or something for
> ETs. I'm not sure I'd call that error. Sounds like it's
> already a kind of badness.

Graham calls it "simple badness", but we used to call error times complexity "relative error", and it seems to me the older term more precisely captures what it's all all about. Paul insisted that for ets, relative cents had to equal absolute cents in the case of 12 equal, but for higher rank temperaments we needn't worry about that.

> How'm I doing?
>
> Oh, and I found this:
>
> > Erlich magic L1 norm; if <<a1 a2 a3 a4 a5 a6|| is the wedgie,
> > then complexity is
> > |a1/p3|+|a2/p5|+|a3/p7|+|a4/p3p5|+|a5/p3p7|+|a6/p5p7|
>
> That looks pretty easy. Except what are the ps?

p3 is shorthand for log2(3) and so forth.

> First article. It seems you vacillate between TOP-RMS
> and RMS-TOP. That's just a style guide thing.

Ei! I'd better check which one Graham uses.

> The subtitle "Pure octaves RMS tuning" would be greatly
> enhanced with the use of a graphic plot showing an example.

I'm not sure what you are asking for.

> Wow, this article fairly blew me away, whereas I basically
> felt like I grasped the other one.

RMS tuning is the evil one? Did the pseudoinverse make sense?

🔗Carl Lumma <carl@...>

8/27/2010 11:39:05 PM

--- In tuning@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:

> Graham calls it "simple badness", but we used to call error
> times complexity "relative error", and it seems to me the
> older term more precisely captures what it's all all about.

But would you multiply it by complexity to get badness?
Your badness would have a double helping of complexity.

> > > Erlich magic L1 norm; if <<a1 a2 a3 a4 a5 a6|| is the wedgie,
> > > then complexity is
> > > |a1/p3|+|a2/p5|+|a3/p7|+|a4/p3p5|+|a5/p3p7|+|a6/p5p7|
> >
> > That looks pretty easy. Except what are the ps?
>
> p3 is shorthand for log2(3) and so forth.

Ok then, where's the /p2?

> > First article. It seems you vacillate between TOP-RMS
> > and RMS-TOP. That's just a style guide thing.
>
> Ei! I'd better check which one Graham uses.

TOP-RMS

> > The subtitle "Pure octaves RMS tuning" would be greatly
> > enhanced with the use of a graphic plot showing an example.
>
> I'm not sure what you are asking for.

Like, for a particular temperament, plot the lines you are
talking about and label them (or color them). If necessary,
choose the example so the space is 2D or 3D, or whatever
you know how to plot.

> > Wow, this article fairly blew me away, whereas I basically
> > felt like I grasped the other one.
>
> RMS tuning is the evil one? Did the pseudoinverse make sense?

Not particularly. I went here:

http://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_pseudoinverse#Finding_the_pseudoinverse_of_a_matrix

which has the problem of giving four methods and adequately
explaining none of them.

For me when even when I occasionally manage to grasp one of
these things, I get stuck at 'how the heck did they think
of that' or 'why does that work'. The beauty of Erlich's
stuff is that motivation and justification are always central
and crystal clear.

-Carl

🔗Herman Miller <hmiller@...>

8/28/2010 1:54:20 PM

Carl Lumma wrote:
> Gene wrote:
> >> Did my explanations here
>> http://xenharmonic.wikispaces.com/RMS+tuning
>> and here
>> http://xenharmonic.wikispaces.com/RMS+temperament+measures
>>
>> in terms of the Moore-Penrose pseudoinverse and the Gramian
>> make any sense? Which reminds me, I should add something
>> about badness measures.
> > I just finished the second article. I had no idea I could
> wedge weighted vals (or monzos) and get something that made
> sense (a weighted wedgie I presume).
> > I'm not sure which programming environments make Gramians
> available but not wedge products. At any rate, Herman's
> C code for wedge products seemed simple enough to add to
> my libraries. However I've misplaced it. Herman?

http://www.io.com/~hmiller/music/regular-temperaments.html

wedgiesize = 0;
for (i = 0; i < valsize - 1; i++)
{
for (j = i + 1; j < valsize; j++)
{
wedgie[wedgiesize] = val1[i] * val2[j] - val2[i] * val1[j];
wedgiesize++;
}
}

This is a special case for rank 2 temperaments. You might be able to extend this to higher ranks using the determinants of matrices, but I haven't checked.

🔗genewardsmith <genewardsmith@...>

8/28/2010 2:03:01 PM

--- In tuning@yahoogroups.com, Herman Miller <hmiller@...> wrote:

> This is a special case for rank 2 temperaments. You might be able to
> extend this to higher ranks using the determinants of matrices, but I
> haven't checked.

It works.

🔗Herman Miller <hmiller@...>

8/28/2010 2:29:07 PM

Carl Lumma wrote:
> --- In tuning@yahoogroups.com, Herman Miller <hmiller@...> wrote:
>> Graham's method has a couple of nice features: it generalizes
>> easily to all ranks and limits of regular temperaments, and it
>> can be done in a simple spreadsheet with just a few matrix
>> operations.
> > I'd be keen to know more about that. Graham sent me the
> formulae for rank 2, but I thought he said he hadn't worked
> out formulae for all the different ranks... -Carl

You can represent a temperament as a matrix in a spreadsheet, e.g. one possible mapping for starling temperament:

1 1 2 3
0 1 1 1
0 1 0 -2

Multiply this matrix by the transpose of the matrix, which gives you what Graham calls A*A:

15 6 -5
6 3 -1
-5 -1 5

then take the inverse

0.93 -1.67 0.6
-1.67 3.33 -1.0
0.6 -1.0 0.6

and multiply by the original matrix to give A#:

0.93 -0.13 0.2 -0.07
-1.67 0.67 0.0 0.33
0.6 0.2 0.2 -0.4

This gives you a generator tuning if you multiply each column by the base 2 logarithms of the primes and add the numbers in each row (1199.08, 390.91, 310.12), but this is actually the unweighted optimization. To get the TOP-RMS tuning you need to weight the matrix first by dividing each column by the prime logarithms (1.0 1.58 2.32 2.81).

1.0 0.63 0.86 1.07
0.0 0.63 0.43 0.36
0.0 0.63 0.0 -0.71

Then go through the steps to calculate A#, and add the rows to give the TOP-RMS generators (1199.80, 390.03, 311.10). (Technically you should undo the weighting and then multiply the colums by the prime logarithms, but these steps cancel each other out.)

I think that's right. It's been a while since I actually did it with rank 3 temperaments.

🔗genewardsmith <genewardsmith@...>

8/28/2010 2:38:38 PM

--- In tuning@yahoogroups.com, "Carl Lumma" <carl@...> wrote:

> One thing that has been proposed is that we should not carry
> on stacking generators if a better approximation to the
> target appears (other than the one the map tells you to use).

An easily coded and useful procedure takes as input a scale, a set of target consonances such as a tonality diamond, and an error tolerance (all in cents, let us say.) It is then fast and easy to find the least squares optimum values for the notes of the scale. It takes inconsistencies in stride, but they may fight each other.

For example, if you take [9/8, 5/4, 4/3, 3/2, 5/3, 15/8 2] and use the 5-limit diamond and a tolerance of 25 cents, you get

! diaopt5.scl
5-limit optimized diatonic
7
!
192.103
384.205
502.262
696.895
887.311
1081.943
1200.000

! diaopt7.scl
7-limit optimized diatonic
7
!
192.227
384.454
501.764
697.175
887.279
1082.69
1200.00

No effort was made to introduce meantone, which introduced itself because the approximations within 25 cents of error imply it. Even if we start from a scale such as a MOS using a given temperament, after a bit you may find it is warping itself in another direction if you apply this procedure, however.

🔗Carl Lumma <carl@...>

8/28/2010 2:52:42 PM

I wrote:

> --- In tuning@yahoogroups.com, Herman Miller <hmiller@> wrote:
>
> > I made a set of charts for some common 5-limit temperaments and
> > put them in the tuning-math files folder at
> > /tuning-math/files
> > /Rank%202%20Consistency/.
> > The darker areas in the charts represent the most consistent
> > tunings according to the size of the generators. I think I
> > came to the conclusion that the actual numbers could be
> > misleading, since some of these temperaments had highly
> > intricate regions where a very slight change in tuning makes
> > a drastic difference in the consistency score.
>
> Thanks Herman! Yeah, some of those have pretty fractal-like
> patterns. -Carl

No doubt because of the nested structure of the Stern-Brocot
tree.

Another thing that might be worth pointing out, is this list
of consistency limit bounds computed by Manuel in prehistory,
which does look at more than just primes (all integer-limit
consonances) but is only for rank 1:

/tuning/files/Manuel/cons-limit-bounds.txt

-C.

🔗Carl Lumma <carl@...>

8/28/2010 2:54:42 PM

Thanks Herman! I will set this up in Excel when I get back
from burning man. I may have more questions then. For now:
when I view it with fixed-width font, all the matrices with
negative numbers in them have staggered columns. Was this
intentional?

-Carl

> >> Graham's method has a couple of nice features: it generalizes
> >> easily to all ranks and limits of regular temperaments, and it
> >> can be done in a simple spreadsheet with just a few matrix
> >> operations.
> >
> > I'd be keen to know more about that. Graham sent me the
> > formulae for rank 2, but I thought he said he hadn't worked
> > out formulae for all the different ranks... -Carl
>
> You can represent a temperament as a matrix in a spreadsheet,
> e.g. one possible mapping for starling temperament:
>
> 1 1 2 3
> 0 1 1 1
> 0 1 0 -2
>
> Multiply this matrix by the transpose of the matrix, which gives
> you what Graham calls A*A:
>
> 15 6 -5
> 6 3 -1
> -5 -1 5
>
> then take the inverse
>
> 0.93 -1.67 0.6
> -1.67 3.33 -1.0
> 0.6 -1.0 0.6
>
> and multiply by the original matrix to give A#:
>
> 0.93 -0.13 0.2 -0.07
> -1.67 0.67 0.0 0.33
> 0.6 0.2 0.2 -0.4
>
> This gives you a generator tuning if you multiply each column
> by the base 2 logarithms of the primes and add the numbers in
> each row (1199.08, 390.91, 310.12), but this is actually the
> unweighted optimization. To get the TOP-RMS tuning you need to
> weight the matrix first by dividing each column by the prime
> logarithms (1.0 1.58 2.32 2.81).
>
> 1.0 0.63 0.86 1.07
> 0.0 0.63 0.43 0.36
> 0.0 0.63 0.0 -0.71
>
> Then go through the steps to calculate A#, and add the rows to
> give the TOP-RMS generators (1199.80, 390.03, 311.10).
> (Technically you should undo the weighting and then multiply
> the colums by the prime logarithms, but these steps cancel
> each other out.)
>
> I think that's right. It's been a while since I actually did
> it with rank 3 temperaments.
>

🔗genewardsmith <genewardsmith@...>

8/28/2010 4:39:28 PM

--- In tuning@yahoogroups.com, "genewardsmith" <genewardsmith@...> wrote:

> An easily coded and useful procedure takes as input a scale, a set of target consonances such as a tonality diamond, and an error tolerance (all in cents, let us say.) It is then fast and easy to find the least squares optimum values for the notes of the scale.

Another fun thing you can do with this procedure is to iterate it. Trying it on Caleb Morgan's c'sHAIR2 scale, it took me four iterations using the 13-limit diamond as the target and 6 cents as the tolerance to reach a scale which was fixed by this procedure. In case Caleb or anyone else wants to try it, here it is:

! chair.scl
Iterated 13-limit 6 cent optimization of c'sHAIR2
36
!
116.0592
138.8353
150.8356
165.2569
181.7300
203.9256
232.7218
267.7890
291.0589
317.3625
347.2432
383.4950
415.9699
433.1917
498.0496
536.0634
550.7055
582.8485
617.1122
649.9992
664.0179
702.0033
766.5434
784.1618
816.6461
852.4854
883.1151
907.5949
932.2082
967.4072
995.8160
1018.6217
1034.6500
1049.1893
1084.3259
1200.0000

🔗Herman Miller <hmiller@...>

8/28/2010 8:08:21 PM

Carl Lumma wrote:
> Thanks Herman! I will set this up in Excel when I get back
> from burning man. I may have more questions then. For now:
> when I view it with fixed-width font, all the matrices with
> negative numbers in them have staggered columns. Was this
> intentional?

I was trying to line up the numbers, but Yahoo does unpredictable things with spacing even in fixed-with fonts.

🔗Graham Breed <gbreed@...>

8/29/2010 2:24:01 AM

On 29 August 2010 05:29, Herman Miller <hmiller@...> wrote:

> You can represent a temperament as a matrix in a spreadsheet, e.g. one
> possible mapping for starling temperament:
>
> 1  1  2  3
> 0  1  1  1
> 0  1  0 -2
>
> Multiply this matrix by the transpose of the matrix, which gives you
> what Graham calls A*A:

It's also what Gene calls the Gramian, and I doubt he's alone. You
should get an RxR matrix for a rank R temperament.

<snip>
> Then go through the steps to calculate A#, and add the rows to give the
> TOP-RMS generators (1199.80, 390.03, 311.10). (Technically you should
> undo the weighting and then multiply the colums by the prime logarithms,
> but these steps cancel each other out.)

That's an explicit method that amounts to finding the Moore-Penrose
pseudoinverse. Generally, finding the pseudoinverse is isomorphic to
solving the least squares system. The best method is to use whatever
library functions you have. As inverse functions are common, you
could use them as well, but there are more efficient ways.

If you don't have library support, the easiest way is probably to take
the weighted Gramian and put it into echelon form. Then it's easy to
solve the standard least-squares equation by back substitution. This
is roughly what LU decomposition does, but it may be easier to code it
naively than understand explanations of LU decomposition. It's still
pretty tough if you don't know about echelon form or back
substitution, in which case you could get a book on linear algebra, or
find a library.

There are separate formulas that give the optimal error and complexity
without solving for the optimal generators. These are easier to
implement because they only require determinants or wedgies and no
inverses. The easiest, general way to get a determinant is to find an
echelon form and mulitply the diagonals, but you can still hard code
the solutions up to rank 3 easily enough.

You can also find the generators using determiniants, by somebodyorother's law.

Graham

🔗Graham Breed <gbreed@...>

8/29/2010 2:35:49 AM

On 28 August 2010 14:21, genewardsmith <genewardsmith@...> wrote:

> Graham calls it "simple badness", but we used to call error times complexity
> "relative error", and it seems to me the older term more precisely captures
> what it's all all about. Paul insisted that for ets, relative cents had to equal
> absolute cents in the case of 12 equal, but for higher rank temperaments
> we needn't worry about that.

I don't remember anybody calling it that. If you did, it's a shame
you didn't say so at the time. I remember something about error as a
proportion of the step size of an equal temperament being relative
error. But if you apply that to the simple badness formula (what I
call "scalar badness") it doesn't imply TOP-RMS error. And you still
have the wrong norm for scalar complexity.

Graham