This is an Opt In Archive . We would like to hear from you if you want your posts included. For the contact address see About this archive. All posts are copyright (c).

- Contents - Hide Contents - Home - Section 8

Previous Next

7000 7050 7100 7150 7200 7250 7300 7350 7400 7450 7500 7550 7600 7650 7700 7750 7800 7850 7900 7950

7400 - 7425 -



top of page bottom of page up down


Message: 7425

Date: Fri, 19 Sep 2003 21:31:37

Subject: Re: Please remind me

From: Gene Ward Smith

--- In tuning-math@xxxxxxxxxxx.xxxx "Dave Keenan" <d.keenan@b...> wrote:

> --- In tuning-math@xxxxxxxxxxx.xxxx Graham Breed <graham@m...> wrote:
> > For more details, see the optimizeMinimax method.  There are so many 
> > complications, it turns out the RMS is simpler, so see optimizeRMS
for 
> > that.  If anybody's following the OCaml, the methods there are 
> > optimize_minimax and optimize_rms.
> 
> Graham,
> 
> I'm not looking at the code, but since minimax is
> root-mean-infinite-power, could you implement it the same as RMS but
> with a large power and thereby get rid of all those complications? 

That would be more complicated than simply using minimax, since you
would need to find the root of a high-order polynomial. Minimax isn't
complicated anyway, at least in the way I did it. I set the thing up
as a linear programming problem, which means standard simplex methods
quickly find the solution. What's the problem?


top of page bottom of page up down


Message: 7426

Date: Fri, 19 Sep 2003 21:33:06

Subject: Re: Please remind me

From: Gene Ward Smith

--- In tuning-math@xxxxxxxxxxx.xxxx "Paul Erlich" <perlich@a...> wrote:

> why? in game theory you're trying to maximize profits, in 
> optimization or statistics (where the term minimax is found) you're 
> trying to minimize error. maximin is where the smallest possible 
> profit is maximized. minimax is where the largest possible error is 
> minimized.

When I took a course in game theory as an undergrad the instructor
called it minimax anyway.


top of page bottom of page up down


Message: 7427

Date: Fri, 19 Sep 2003 03:13:51

Subject: Re: Please remind me

From: Dave Keenan

--- In tuning-math@xxxxxxxxxxx.xxxx Graham Breed <graham@m...> wrote:
> For more details, see the optimizeMinimax method.  There are so many 
> complications, it turns out the RMS is simpler, so see optimizeRMS for 
> that.  If anybody's following the OCaml, the methods there are 
> optimize_minimax and optimize_rms.

Graham,

I'm not looking at the code, but since minimax is
root-mean-infinite-power, could you implement it the same as RMS but
with a large power and thereby get rid of all those complications? It
would take some experimentation to find what power is high enough to
give an accurate enough result without risking floating-point overflow
or losing so many low bits that you can't find the minimum 'cause it's
too flat.

Or could you use a high power (but not so high as assumed above, maybe
even RMS would do) to put you in the right ballpark, and then use
successive approximation until you decide you're close enough?

When I used you excellent wonderful fabulous free web-based
temperament finder recently, I found it was giving me lots of
temperaments with more error than I had asked for. Is that because it
is filtering based on RMS and then giving minimax, or what?


top of page bottom of page up down


Message: 7428

Date: Fri, 19 Sep 2003 21:38:47

Subject: Re: Please remind me

From: Paul Erlich

--- In tuning-math@xxxxxxxxxxx.xxxx Graham Breed <graham@m...> wrote:
> Dave Keenan wrote:
> 
> It might be better to consider 
> the whole second-order diamond instead of the more complex and 
>probably 
> incorrect way I do it at the moment.

what does the second-order diamond have to do with optimizing 
temperaments?

> If the 
> curve approximates minimax, then it'll have more than one local 
>minimum,

not true. why would you think so? minimax can often have a "floor" 
for a range of values, the approximating curve will then have a very 
broad, flat local minimum, but still only one . . .


top of page bottom of page up down


Message: 7429

Date: Fri, 19 Sep 2003 09:15:36

Subject: Re: Please remind me

From: Graham Breed

Paul Erlich wrote:

>why? in game theory you're trying to maximize profits, in 
>optimization or statistics (where the term minimax is found) you're 
>trying to minimize error. maximin is where the smallest possible 
>profit is maximized. minimax is where the largest possible error is 
>minimized.
>  
>
Oh, that's okay, then.  I always had a 50% chance of getting it right!


                Graham


top of page bottom of page up down


Message: 7430

Date: Fri, 19 Sep 2003 22:03:48

Subject: Re: Please remind me

From: Gene Ward Smith

--- In tuning-math@xxxxxxxxxxx.xxxx "Paul G Hjelmstad"
<paul.hjelmstad@u...> wrote:

> Thanks. I look at your lists a lot. However, with respect to Linear 
> Temperaments, as calculated in Python, for example, I still am not
> clear. Per Graham Breed's web site, I've learned that the generator
> for a Linear Temperament is (in simple situations) g such that 
> n*g+1=0 mod d (where m,n are temperaments such that m+n=d)

If 1 < n < d is prime to d and g = +-1/n (mod d, reduced to 1<g<d)
then by definition n*g = +-1 (mod d.) It follows from this that there
is an a < n such that either 

a/n < g/d < (g-a)/(d-n) 

or 

(g-a)/(d-n) < g/d < a/n 

are successive members of the dth row of the Farey sequence. We've
picked out a range of generators, even if not always the one you hoped
to obtain.


top of page bottom of page up down


Message: 7431

Date: Fri, 19 Sep 2003 11:15:48

Subject: Re: Please remind me

From: Graham Breed

Dave Keenan wrote:

>I'm not looking at the code, but since minimax is
>root-mean-infinite-power, could you implement it the same as RMS but
>with a large power and thereby get rid of all those complications? It
>would take some experimentation to find what power is high enough to
>give an accurate enough result without risking floating-point overflow
>or losing so many low bits that you can't find the minimum 'cause it's
>too flat.
>  
>
I might be able to implement it that way, but I don't see it removing 
any complications.  The first one -- that intervals which don't depend 
on the generator have to be removed -- may as well stay there, as it 
makes the calculation more efficient.  It might be better to consider 
the whole second-order diamond instead of the more complex and probably 
incorrect way I do it at the moment.  I already have the routine to find 
a second order diamond.

>Or could you use a high power (but not so high as assumed above, maybe
>even RMS would do) to put you in the right ballpark, and then use
>successive approximation until you decide you're close enough?
>  
>
Why use approximations?  If you are in the right ballpark, taking the 
best-tuned second order consonance and making it perfect should work.  
But that all depends on knowing you're in the right ballpark.  If the 
curve approximates minimax, then it'll have more than one local minimum, 
so you have to check them all anyway, but as the solutions of fairly 
complicated polynomials instead of simple equivalences of intervals.

It has to be an even power so that you don't have to take absolute 
errors (which would stop the derivative being discontinuous).  So the 
next simplest curve is the quartic one, which means solving a cubic 
equation.  I don't even know how to do that algebraically -- it 
certainly won't be conceptually simpler than the minimax.  It may be 
faster, because it's only linear in the number of consonances.  But 
where there's a large number of consonances, so that the calculation is 
slow in the first place, an RMS is probably more appropriate anyway.

>When I used you excellent wonderful fabulous free web-based
>temperament finder recently, I found it was giving me lots of
>temperaments with more error than I had asked for. Is that because it
>is filtering based on RMS and then giving minimax, or what?
>  
>
Yes, that's it.  I need to work on the output.  Or get the OCaml back 
end wired up.  That's fast enough that the penalty for calculating the 
mimimax isn't a problem.


                              Graham


top of page bottom of page up down


Message: 7433

Date: Sat, 20 Sep 2003 12:38:33

Subject: Re: Please remind me

From: Graham Breed

I wrote:

>1) Guess a point
>2) Find the two worst tuned intervals
>3) If they're the same, this is the minimax
>4) Otherwise, find the point where they have equal absolute error
>5) Go to step 2
>  
>
3) should start "If the absolute errors are the same..."


                Graham


top of page bottom of page up down


Message: 7434

Date: Sat, 20 Sep 2003 16:40:22

Subject: Re: Please remind me

From: Graham Breed

I wrote:

>>1) Guess a point
>>2) Find the two worst tuned intervals
>>3) If they're the same, this is the minimax
>>4) Otherwise, find the point where they have equal absolute error
>>5) Go to step 2
>> 
>>
>>    
>>
>3) should start "If the absolute errors are the same..."
>  
>
That's still wrong, but I've got a variant that's more reliable than the 
algorithm I was using before.  That is, it's always gives the same or 
lower minimax error than the old algorithm, which means the old one 
wasn't always right were a consonance is a muliple of the period.

And the new algorithm only makes the full calculation 13% slower than 
using RMS.

I'm uploading the changes to #  Temperament finding library -- definitions * [with cont.]  (Wayb.)


                       Graham


top of page bottom of page up down


Message: 7435

Date: Sat, 20 Sep 2003 21:34:41

Subject: Re: Please remind me

From: Dave Keenan

--- In tuning-math@xxxxxxxxxxx.xxxx Graham Breed <graham@m...> wrote:
...
>  I've got a variant that's more reliable than the 
> algorithm I was using before.  That is, it's always gives the same or 
> lower minimax error than the old algorithm, which means the old one 
> wasn't always right were a consonance is a muliple of the period.
> 
> And the new algorithm only makes the full calculation 13% slower than 
> using RMS.

Well done Graham!

So will it be possible to let the user of your online temperament
finder choose whether they want to use RMS or minimax and have it used
for both filtering and output? If so, I suggest it should also say in
the output, which one was used, at least once near the start, but
preferably next to every error.

I expect you're well aware of this, but I remind you just in case,
that although when optimising the generator by minimax error you need
to ignore the intervals that do not depend on the generator, as you
said, but when filtering temperaments by minimax error, and when
quoting the minimax error in the output, you need to give the worst
error over _all_ the diamond intervals.

Note that ignoring the intervals that don't depend on the generator,
when optimising the generator for minimum max-absolute error, is fully
justified by the definition of minimax as the limit of the
p-th-root-of-the-mean-of-the-p-th-powers as p goes to infinity, not
merely by the fact that some people complained. :-)


top of page bottom of page up down


Message: 7436

Date: Sat, 20 Sep 2003 21:44:47

Subject: Re: names for 5-limit commas

From: Dave Keenan

I wrote: 
"The first one to have its absolute value fall into the correct size
category is it."

I meant "absolute value of its size in cents". And should then have
said, "If it's a negative number of cents then we flip the signs of
all the prime exponents, and that's it."

And the last boundary in the list should not have been simply "0", but
"sqrt(3^0/2^0)   0 c"


top of page bottom of page up down


Message: 7437

Date: Sat, 20 Sep 2003 11:04:29

Subject: Re: names for 5-limit commas

From: David C Keenan

This is a followup to Monz's query on the main tuning list. I posted it 
there too, which I probably shouldn't have done.

In the following, I will write "komma" for the more general term and 
"comma" for the restricted size range.

During the development of the sagittal notation system, George and I looked 
at a _lot_ of kommas, and eventually came up with a descriptive naming 
system that worked for us, in the sense that it
(a) is consistent with most existing names,
(b) automatically gives _unique_ names to hundreds of the most commonly 
encountered notational kommas,
(c) gives _short_ names to hundreds of the most commonly encountered 
notational kommas,
(d) gives names that make it possible to unpack the komma ratio from the 
name, if the naming-system is known, (and maybe even if it isn't).

The latter property is very valuable and is something that naming after 
people, or pieces of music, can never give.

This system won't necessarily suit the temperament-cataloging project, but 
it can probably be adapted.

The kommas we examined were generated by starting with a list of all the 
ratios that appear in the Scala archive, along with counts of their number 
of ocurrences (courtesy of Manuel Op de Coul).

The factors of 2 and 3 were removed from these ratios, then like ratios had 
their ocurrences combined and they were sorted by number of ocurrences 
(popularity). Then for each 2,3-reduced ratio we found all the kommas 
having an absolute 3-exponent not greater than 12 and a size not greater 
than 70 cents. I imagine these ranges would need to be increased for the 
temperament project. There was another constraint on komma "slope" which I 
won't go into here as it probably isn't relevant to your purposes.

The first part of the komma name is simply the two sides of the 2,3-reduced 
ratio, with a colon between. As a convention, we put the smallest number 
first. If one side of the reduced ratio is unity, we omit it, and the 
colon. When speaking, the colon is not pronounced. And you are welcome to 
pronounce 1 (which is equivalent to 3 in this system) as "Pythagorean", 5 
as "classic", 7 as "septimal", 11 as "undecimal", etc., but I find it's 
easier just to say them in English.

The second part of the name is one of

schismina
schisma
kleisma
comma
small diesis
(medium) diesis
large diesis

This part of the name is made to do double duty. It not only gives the size 
category, but it distinguishes multiple kommas for the same 2,3-reduced 
ratio. To do this, the boundaries between categories have to be chosen very 
carefully. An intial set of category names and approximate boundaries were 
obtained by looking at the existing komma names in Scala's intnam.par.

Then we worked our way down the ratio popularity list, and whenever we 
found two kommas for the same ratio in the same category, we moved an 
existing boundary if we could do so without upsetting any previous ratios, 
or otherwise added a new boundary and category.

We didn't bother moving a boundary to separate two commas for the same 
ratio when they were less than about 0.7 c apart, but I imagine you would 
need to do this for your purposes. We also made boundary decisions based on 
the boundaries between sagittal symbols which would not be relevant. So you 
might repeat this process with larger 3-exponents etc., and come up with 
slightly different boundaries and more size categories. Some of the 
boundaries we obtained are very similar to some obtained by Monz in
Onelist Tuning Digest # 483 message 26, (c)200... * [with cont.]  (Wayb.)

Here's what we are using (cents)
0
schismina
0.98
schisma
4.5
kleisma
13.47
comma
36.93
small diesis
45.11
(medium) diesis
56.84
large diesis
68.57

Some of these are very precisely defined as they are exact square-roots of 
3-limit kommas. The boundaries seem to naturally want to fall on these. 
56.84 is actually a half apotome. 45.11 is actually a half Pythagorean 
limma. The kleisma/comma boundary really wants to be half the Pythagorean 
comma and the comma/small-diesis boundary seems to want to be about 33.38 
cents, which looks like half the [27,-17] comma. The medium/large diesis 
boundary is at half of [-30,19].

  Maybe the next higher boundary (large diesis/small semitone?) should be 
at 78.49 c, half of [35,-22]. The schismina/schisma and schisma/kleisma 
boundaries were not actually needed (by us) to distinguish same-ratio 
kommas, and so are somewhat arbitrary, but maybe they can usefully be 
assigned roots of other 3-limit commas.


And by the way, I think that, in general, new or obscure temperaments are 
more usefully named after their generators, than their vanishing kommas.


top of page bottom of page up down


Message: 7438

Date: Sat, 20 Sep 2003 12:08:36

Subject: Re: names for 5-limit commas

From: David C Keenan

Here are possible systematic descriptive names for all the 5-limit commas 
in the tuning list database, in order of decreasing size. By the way, why 
is this database at tuning and not tuning-math?

I pronounce "^" below as "to the".
Also note that "1" or "3" can be pronounced "Pythagorean", and "5" can be 
pronounce "classic" or not pronounced at all.

Current name (Scala) Possible systematic name
-------------------------------------------
large limma          25-semitone
diatonic semitone    5-semitone
major limma          5-limma
limma                1-limma or 3-limma
classic
  chromatic semitone  25-small-semitone
major diesis         625-large-diesis
<unnamed>            625-medium-diesis
maximal diesis       125-medium-diesis
minor diesis         125-small-diesis
small diesis         5^5-comma
minimal diesis       625-comma
Pythagorean comma    1-comma or 3-comma
syntonic comma       5-comma
diaschisma           25-comma
<unnamed>            125-comma
<unnamed>            5^7-comma
Wuerschmidt's comma  5^8-kleisma
semicomma            5^7-kleisma
<unnamed>            5^9-kleisma
kleisma              5^6-kleisma
<unnamed>            5^5-kleisma
parakleisma          5^13-kleisma
<unnamed>            625-schisma
<unnamed>            5^14-schisma
19-tone comma        5^19-schisma
<unnamed>            5^17-schisma
<unnamed>            125-schisma
schisma              5-schisma
<unnamed>            5-schismina
<unnamed>            5^15-schismina
<unnamed>            5^17-schismina
ennealimma           5^18-schismina
<unnamed>            5^31-schismina
<unnamed>            5^16-schismina
<unnamed>            5^33-schismina
<unnamed>            5^51-schismina
monzisma             25-schismina
<unnamed>            5^14-schismina
<unnamed>            5^47-schismina
<unnamed>            5^35-schismina
<unnamed>            5^37-schismina
<unnamed>            5^49-schismina
atom of Kirnberger   5^12-schismina

So it looks like the schismina/schisma boundary needs to be at 1.807523 c 
which is half the [-84,53] 3-schisma.


top of page bottom of page up down


Message: 7439

Date: Sat, 20 Sep 2003 04:03:56

Subject: Re: names for 5-limit commas

From: Gene Ward Smith

--- In tuning-math@xxxxxxxxxxx.xxxx David C Keenan <d.keenan@b...> 
wrote:
> Here are possible systematic descriptive names for all the 5-limit 
commas 
> in the tuning list database, in order of decreasing size.

You've given the names, but not the commas.


top of page bottom of page up down


Message: 7440

Date: Sat, 20 Sep 2003 07:41:10

Subject: Re: names for 5-limit commas

From: Dave Keenan

--- In tuning-math@xxxxxxxxxxx.xxxx "Gene Ward Smith" <gwsmith@s...>
wrote:
> --- In tuning-math@xxxxxxxxxxx.xxxx David C Keenan <d.keenan@b...> 
> wrote:
> > Here are possible systematic descriptive names for all the 5-limit 
> commas 
> > in the tuning list database, in order of decreasing size.
> 
> You've given the names, but not the commas.

And I suppose you want me to fetch your pipe and slippers too. ;-)

Please save me some typing (and typing errors) and just go to the
5-limit-commas database associated with the Yahoo Group "tuning", and
click the appropriate heading to sort it by size in cents, then click
the same again to make it _decreasing_ order. My list is intended to
exactly match that one, and if it doesn't, the current name I gave
should help.

Maybe we need a new column in that database for these systematic names.


top of page bottom of page up down


Message: 7441

Date: Sat, 20 Sep 2003 11:10:32

Subject: Re: Please remind me

From: Graham Breed

Gene Ward Smith wrote:

>That would be more complicated than simply using minimax, since you
>would need to find the root of a high-order polynomial. Minimax isn't
>complicated anyway, at least in the way I did it. I set the thing up
>as a linear programming problem, which means standard simplex methods
>quickly find the solution. What's the problem?
>  
>
Minimax is complicated the way I do it -- it requires 50 lines of code 
whereas RMS only needs 37 lines, including the comment explaining the 
derivation of the formula.  If you can implement minimax optimization 
using simplex methods in under 50 lines of Python code, I'll consider 
using it.  I haven't myself, because I don't know what you're talking about.


                              Graham


top of page bottom of page up down


Message: 7442

Date: Sat, 20 Sep 2003 20:19:44

Subject: Re: names for 5-limit commas

From: David C Keenan

Here's a better idea. Instead of looking up the database, test the naming 
system and see if you can unambiguously extract the commas from the names.

In case anyone missed it, the neat thing about this naming system is that 
the last part of the name not only gives the size category, but it also 
gives the powers of 2 and 3, indirectly.

I've shown the boundaries between the size categories below.

To extract the comma from the name, try combining the number in the first 
part of the name with successive powers of 3, in the series 0, 1, -1, 2, 
-2, 3, -3, 4, -4, ... and whatever power of 2 is required to bring its size 
back into the range -600 c to +600 c. The first one to have its absolute 
value fall into the correct size category is it.

Possible systematic name
------------------------
                    sqrt(2^2/3^1)  ~249.0 c  ?
1-tone or 3-tone
                    sqrt(2^5/3^3)  ~147.1 c  ?
25-semitone
5-semitone
                    sqrt(3^2/2^3)  ~102.0 c
5-limma
1-limma or 3-limma
                    sqrt(3^31/2^49) ~80.3 c
25-small-semitone
                    sqrt(3^19/2^30) ~68.6 c
625-large-diesis
                    sqrt(3^7/2^11)  ~56.8 c
625-medium-diesis
125-medium-diesis
                    sqrt(2^8/3^5)   ~45.1 c
125-small-diesis
                    sqrt(2^27/3^17) ~33.4 c
5^5-comma
625-comma
1-comma or 3-comma
5-comma
25-comma
125-comma
5^7-comma
                    sqrt(3^12/2^19) ~11.7 c
5^8-kleisma
5^7-kleisma
5^9-kleisma
5^6-kleisma
5^5-kleisma
5^13-kleisma
                    sqrt(2^317/3^200) ~4.5 c  ?
625-schisma
5^14-schisma
5^19-schisma
5^17-schisma
125-schisma
5-schisma
                    sqrt(3^53/2^84) ~1.8 c
5-schismina
5^15-schismina
5^17-schismina
5^18-schismina
5^31-schismina
5^16-schismina
5^33-schismina
5^51-schismina
25-schismina
5^14-schismina
5^47-schismina
5^35-schismina
5^37-schismina
5^49-schismina
5^12-schismina
                    0


top of page bottom of page up down


Message: 7443

Date: Sat, 20 Sep 2003 12:29:45

Subject: Re: Please remind me

From: Graham Breed

Paul Erlich wrote:

>what does the second-order diamond have to do with optimizing 
>temperaments?
>  
>
It's the set of intervals that may be tuned perfectly to get the minimax 
when the optimizing set is a subset of a first-order diamond.

For the optimization I'm doing, the minimax has to be a well defined 
point.  For some temperaments, some consonances are exact multiples of 
the period and so any tuning where such an interval has the highest 
error will do as a minimax.  However, I got complaints about the old 
algorithm that worked like this, so I now exclude all such intervals 
from consideration.

In addition, you only need to consider one of each pair of octave 
complements.  The error of 5:4 will always be the same as that for 8:5 
for example.

If the minimax is a single point, then any deviation from it has to 
result in the error of one of the worst tuned consonances increasing.  
If there's a single worst tuned consonance this doesn't make sense.

If the error increases however you change the tuning, then the interval 
must be optimally tuned.  That means it has an error of zero.  But this 
is supposed to be the worst tuned interval!  What we have in this case 
is a form of just intonation, not a temperament.  It can be trivially 
optimized by setting any member of the first or second-order tonality 
diamond to be just.

If the error doesn't change as you change the tuning, then the minimax 
can't be a single point.  This interval should have been removed from 
consideration.

It's impossible for the error to decrease however you change the 
tuning.  But if it did, it would mean you hadn't reached the minimax point.

So there has to be more than one worst tuned consonance.  That means 
that the minimax is always at the point where two consonances (which are 
not octave complements) are equally badly tuned.  If you either add or 
subtract these intervals, the result will be a third interval that is 
perfectly tuned.  The set of all intervals that can be formed by adding 
or subtracting a pair of intervals within a tonality diamond is the 
second order tonality diamond.  Hence the minimax point of the subset of 
a tonality diamond where all intervals depend on the generator must have 
one member of the second order tonality diamond perfectly tuned.

Usually, this means that a member of the first-order tonality diamond 
will be perfectly tuned as well.  I suggest, but can't prove, that it 
will always be the case when all consonances depend on the generator.  
It makes sense if you look at graphs showing the signed error of each 
prime interval as a function of the generator.  The minimax is where the 
distance between the lowest and highest lines (including the origin) is 
its smallest, and has to be where two lines cross.

I'm not sure exactly what goes wrong when a consonance is a multiple of 
the period, but an example is pajara.  The minimax is 109.363 cents.  At 
this point, 7:5 and 10:7 are the worst tuned pair of octave 
complements.  Because they're equal to the period, they're excluded from 
the calculation.  So of the intervals that are left, the worst tuned are 
6:5 and 8:7 (and octave complements).  Because of this, the second-order 
interval 35:34 is perfectly tuned.

It happens that there's a tie for the best tuned consonance.  7:6 and 
5:4 are equal, which also follows from 35:34 being perfect.  They're 
related by periods to the worst tuned independent consonances

7:5 / 7:6 = 6:5
10:7 / 5:4 = 8:7

 From all this, it also happens that if you set each independent 
consonance in turn to be perfectly tuned, then you get two equally good 
minimax candidates, with either 7:6 or 6:5 perfect.  So that's how my 
program goes on to find the true minimax.  I don't know if it always 
works like that, which is why I suggested trying each member of the 
second order diamond, (which will probably be simpler anyway).


Me:

>>If the 
>>curve approximates minimax, then it'll have more than one local 
>>minimum,
>>    
>>
Paul E:

>not true. why would you think so? minimax can often have a "floor" 
>for a range of values, the approximating curve will then have a very 
>broad, flat local minimum, but still only one . . .
>  
>
The general case of a piecewise linear or polynomal curve is that 
there'll be more than one local minimum.  Why do you think that isn't 
the case for these optimization problems?  If we can count on it, then 
the minimax algorithm can be made more efficient as follows:

1) Guess a point
2) Find the two worst tuned intervals
3) If they're the same, this is the minimax
4) Otherwise, find the point where they have equal absolute error
5) Go to step 2

The higher order polynomials could also be solved numerically, but that 
can hardly be a simpler algorithm.  An algebraic solution of the 
polynomials has to involve considering all stationary points (doesn't 
it?) so again complexity is unlikely to decrease.


                     Graham


top of page bottom of page up down


Message: 7444

Date: Sun, 21 Sep 2003 22:40:46

Subject: Re: Please remind me

From: Graham Breed

Dave Keenan wrote:

>So will it be possible to let the user of your online temperament
>finder choose whether they want to use RMS or minimax and have it used
>for both filtering and output? If so, I suggest it should also say in
>the output, which one was used, at least once near the start, but
>preferably next to every error.
>  
>
It's always been possible.  The whole UI needs an overhaul, pending 
sufficient supplies of tuits, ideally the round ones.  I could switch it 
to always use minimax so that it's consistent as an interim measure.

I'm shy of updating with what I have now because I lost the test cases 
for the unison vector side.  If anybody has canonical lists of unison 
vectors for different limits, that would help.

I'm also trying to get it to do the hard calculations in OCaml.  The 
trouble is that it looks like I need to understand the C interfaces for 
both languages :-(  If I do that, the option to supply your own figure 
of demerit will go, probably replaced by a drop down list of standard 
options.

It'd also be nice if I could remove some of the arbitrary options.  When 
it's fast, the number of equal temperaments can probably be guessed from 
the complexity/accuracy tradeoff.  That leaves the consistency cutoff as 
a free parameter.  Does anybody have ideas for theory behind this?

>I expect you're well aware of this, but I remind you just in case,
>that although when optimising the generator by minimax error you need
>to ignore the intervals that do not depend on the generator, as you
>said, but when filtering temperaments by minimax error, and when
>quoting the minimax error in the output, you need to give the worst
>error over _all_ the diamond intervals.
>  
>
Yes, I forgot that in the update, but it's fixed now.  It has a knock-on 
effect for writetemper.py, so anybody with that needs to download both.

That's also something that's been wrong in the past, and may affect the 
static files.  I think the current CGI's okay.

>Note that ignoring the intervals that don't depend on the generator,
>when optimising the generator for minimum max-absolute error, is fully
>justified by the definition of minimax as the limit of the
>p-th-root-of-the-mean-of-the-p-th-powers as p goes to infinity, not
>merely by the fact that some people complained. :-)
>  
>
It's also useful to get a unique answer for regression testing.  It 
doesn't matter for the search, but it turns out that even the dumb 
set-each-consonance-just method is slower than this new algorithm, now 
that I've tuned it.  The new algorithm's still horribly complicated, though.


                          Graham


top of page bottom of page up down


Message: 7445

Date: Sun, 21 Sep 2003 23:40:20

Subject: Re: Please remind me

From: Paul Erlich

--- In tuning-math@xxxxxxxxxxx.xxxx Graham Breed <graham@m...> wrote:
> Paul Erlich wrote:
> 
> >what does the second-order diamond have to do with optimizing 
> >temperaments?

> So there has to be more than one worst tuned consonance.  That 
means 
> that the minimax is always at the point where two consonances 
(which are 
> not octave complements) are equally badly tuned.  If you either add 
or 
> subtract these intervals, the result will be a third interval that 
is 
> perfectly tuned.

>  The set of all intervals that can be formed by adding 
> or subtracting a pair of intervals within a tonality diamond is the 
> second order tonality diamond.  Hence the minimax point of the 
subset of 
> a tonality diamond where all intervals depend on the generator must 
have 
> one member of the second order tonality diamond perfectly tuned.
> 
> Usually, this means that a member of the first-order tonality 
diamond 
> will be perfectly tuned as well.  I suggest, but can't prove, that 
it 
> will always be the case when all consonances depend on the 
generator.  
> It makes sense if you look at graphs showing the signed error of 
each 
> prime interval as a function of the generator.  The minimax is 
where the 
> distance between the lowest and highest lines (including the 
origin) is 
> its smallest, and has to be where two lines cross.
> 
> I'm not sure exactly what goes wrong when a consonance is a 
multiple of 
> the period, but an example is pajara.  The minimax is 109.363 
cents.  At 
> this point, 7:5 and 10:7 are the worst tuned pair of octave 
> complements.  Because they're equal to the period, they're excluded 
from 
> the calculation.  So of the intervals that are left, the worst 
tuned are 
> 6:5 and 8:7 (and octave complements).  Because of this, the second-
order 
> interval 35:34 is perfectly tuned.

you must mean 35:36?

> Me:
> 
> >>If the 
> >>curve approximates minimax, then it'll have more than one local 
> >>minimum,
> >>    
> >>
> Paul E:
> 
> >not true. why would you think so? minimax can often have a "floor" 
> >for a range of values, the approximating curve will then have a 
very 
> >broad, flat local minimum, but still only one . . .
> >  
> >
> The general case of a piecewise linear or polynomal curve is that 
> there'll be more than one local minimum.  Why do you think that 
isn't 
> the case for these optimization problems?

i guess it's just a conjecture at this point . . . based on 
experience with the matlab optimization toolbox doing the heavy 
lifting for me.


top of page bottom of page up down


Message: 7446

Date: Sun, 21 Sep 2003 04:20:14

Subject: Re: names for 5-limit commas

From: Gene Ward Smith

--- In tuning-math@xxxxxxxxxxx.xxxx "Dave Keenan" <d.keenan@b...> 
wrote:

> > You've given the names, but not the commas.
> 
> And I suppose you want me to fetch your pipe and slippers too. ;-)

No, but if you list names for commas, it hardly makes sense not to 
list the commas.


top of page bottom of page up down


Message: 7447

Date: Sun, 21 Sep 2003 05:37:01

Subject: Re: names for 5-limit commas

From: Dave Keenan

This scheme is of course _very_ similar to the one by Joe Monzo in
Onelist Tuning Digest # 483 message 26, (c)200... * [with cont.]  (Wayb.)

The differences are:
(a) it uses 5, 25, 125, 625, 5^5, 5^6, etc. instead of pental,
bipental, tripental, tetrapental, pentapental, hexapental, etc. By the
way, it seems reasonable to me, to expand the power when the result is
3 digits or less.
Hellenising the numbers as Monz did, gets a bit unwieldy when we go
beyond the 5-limit and have 5:7 kommas and 35 kommas and 7:25 kommas
and 11:35 kommas and so on.
(b) our choice of size-category boundaries allows us to ignore the
sign of the power of 5 relative to the powers of 2 and 3, and so we
don't need the "super" or "sub" prefixes.
(c) in addition to small movements of the boundaries, we find no need
for a boundary near 25 cents, and so Monz's small-dieses and commas
all become our commas. Also, his great dieses become our small and
medium dieses; his small-semitones become our large dieses and small
semitones, and his limmas become our limmas and semitones.

By the way, I should have shown the small-semitone/limma boundary as
tentative too (with a question-mark). It's still unclear to me whether
it is best set at 
 sqrt(3^31/2^49) ~80.3 c
or 
 sqrt(2^35/3^22) ~78.5 c


top of page bottom of page up down


Message: 7449

Date: Mon, 22 Sep 2003 17:26:04

Subject: Re: Please remind me

From: Graham Breed

Paul G Hjelmstad wrote:

>How do I run optimizeMinimax and optimizeRMS in Python?
>  
>
First get the latest code.  I've speeded them up again (and updated the 
CGI).  They're methods called on LinearTemperament objects.  When you 
generate the list of linear temperaments, optimizeMinimax gets called 
for each one unless you call it with useRMS=1, in which case optimizeRMS 
gets called instead.  Here's the basic example for one temperament:


 >>> import temper
 >>> meantone = temper.Temperament(12,19,temper.limit7)
 >>> meantone.optimizeMinimax()
 >>> meantone.getWorstError()
0.0044804769993158633
 >>> meantone.getRMSError()
0.0033700062279259104
 >>> meantone.optimizeRMS()
 >>> meantone.getWorstError()
0.004654327295457783
 >>> meantone.getRMSError()
0.0033457036298405727
 >>>


top of page bottom of page up

Previous Next

7000 7050 7100 7150 7200 7250 7300 7350 7400 7450 7500 7550 7600 7650 7700 7750 7800 7850 7900 7950

7400 - 7425 -

top of page