| < Ground's Split-Prime/DR Rank-2 Temperament Optimization Algorithm | |||
| Generator Table | DR Table | ||
| Period: | Min +1 ¢: | ||
| Generator: | Max +1 ¢: | ||
| Min Generators: | Step ¢: | ||
| Max Generators: | Elements: | ||
| Submit | Submit | ||
Temperament Optimization | |||
| Eracs (error accidentals) < and > indicate how much a prime is flat or sharp proportional to others. 1:1 split-prime systems will only use one in either direction, while 1:2 and 2:1 systems will use two, tending in the direction of the less accurate prime. | |||
| To use the temperament string, separate the four arguments by bars or semicolons: period, subgroup, additional delta-rational "primes", and generator mapping of both. DR primes are notated in the format +X [periods and generators of the interval mapped to +X] +Y. Additional parameters may be added after the period, separated by spaces, in the order: period min_gen max_gen min_erac max_erac | to constrain the search if it returns an unexpected result. | |||
| Temperament string: | |||
| Submit | |||
Split-prime temperaments show promise to replace exotemperaments because they systematize error that would otherwise be pathological, allowing for optimization of error cancelation, thus making them more useful. The eracs may also prove useful for optimizing temperaments that are not split-prime, but still require heavier tempering to work.
Only integer primes are supported. Slashes should not be necessary because the eracs allow errors to cancel out.
GTO is fundamentally a least-squares algorithm; if there's no reason to use something more complicated, then don't. Values for the generator and erac are initially tested from unison to the size of the period, or a different range if specified. The resolution is then increased and this process is repeated on a range larger than one previous division wide for redundancy, due to the fact that the value of an erac is an additional variable.
For primes with eracs, the value of the erac is added or subtracted the appropriate number of times when the least-squares error is calculated. The ideal value of the erac is considered to be unison, so it's treated like a prime error in the least-squares calculation. After the optimal generator is found, the calculation is then run again without the erac present to determine its ideal value.
DR intervals do not involve erac values; some start interval defined by its mapping of periods and generators is plugged into the DR equation and the result contributes to the least-squares error the same way as any other prime. Currently the algorithm doesn't work with only DR expressions because it requires target primes to calculate a rough generator.
The optimal ET sequence is calculated the same way the optimal generator is, by going through various ET approximations of the generator and calculating the least-squares error based on the mappings. This is done instead of just finding good approximations of the generator to ensure that intervals are still optimal when stacked.
| Example Temperaments | |
| Septimal Meantone | 1200 | 2 3 5 7 || 0 1 4 10 |
| 1:1 sharp-3 +1+1+1 flat-3 +2+1 "DR 18" | 1200 | 2 3< 3> | +1[4 -6]+1 +1[4 -6]+2 +2[1 -1]+1| 0 -4 1 1 3 -4 |
| 1:2 split-3 "Suproneiro" | 1200 | 2 3< 3>> 5> 7> 11 13 | +1[7 -11]+1 | 0 -4 1 -11 3 9 16 1 |
| +1+2 hard antidiatonic "Simbis-Dravila" | 1200 | 2 3 5< 7< 11< 13< | +1[-2 4]+2 | 0 -8 6 -4 -1 -6 1 |
| 47&57 compressed 4:5:6 stretched 6:7:9 | 1200 | 3< 3> 5 7 11> 13 17 37 | +1[3 -9]+1 +1[5 -16]+2 | 12 2 -9 -4 15 -1 7 -6 12 2 |
| 47&57 DR-only | 1200 300 400 || +1[3 -9]+1 +1[5 -16]+2 | 12 2 |
| 5n-edo Septagoth | 240 | 2 3< 3> 5 7 11< 13< || 0 -1 0 -2 0 1 2 |
| Note that the 1:1 eracs would make 11> 13> possible, but it makes more sense to have the lowest-complexity option for 11, 13, and 13/11 that gives both primes the same erac. Putting 11 and 13 in the subgroup twice is overkill just to get 13/11. | |