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 87000 7050 7100 7150 7200 7250 7300 7350 7400 7450 7500 7550 7600 7650 7700 7750 7800 7850 7900 7950
7400 - 7425 -
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?
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.
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?
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 . . .
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
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.
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
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
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
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. :-)
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"
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.
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.
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.
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.
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
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
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
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
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.
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.
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
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
>>>
7000 7050 7100 7150 7200 7250 7300 7350 7400 7450 7500 7550 7600 7650 7700 7750 7800 7850 7900 7950
7400 - 7425 -