Optimal ET sequence: Difference between revisions
m Oops |
Update to reflect how you're supposed to use this script since v1.14.0 |
||
| Line 7: | Line 7: | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
import numpy as np | import numpy as np | ||
from lib.te_common import Subgroup | |||
from lib.te_equal import et_sequence | |||
et_sequence(np.column_stack([[7, -1, -1, -1, 1], [-4, 1, -1, 0, 1]]), subgroup= | et_sequence(np.column_stack([[7, -1, -1, -1, 1], [-4, 1, -1, 0, 1]]), subgroup=Subgroup ([2, 11, 13, 17, 19])) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 09:01, 10 October 2025
Many regular temperaments documented on the wiki are accompanied with an optimal ET sequence, which suggests some useful equal tunings to tune the temperament as well as mos scales available. Technically, it gives generalized patent vals (GPVs) for equal temperaments which support the temperament, where each subsequent GPV included improves upon the TE error of the previous GPV, though no standard beginning cutoff to the list has been specified.
Computation
Optimal ET sequences can be computed by iterating through all GPVs, finding the error of each and comparing it with the last best error value.
Below is an example using Flora Canou's Temperament Evaluator, using the et_sequence function from te_equal.py. Here is how the optimal ET sequence for Yer temperament was determined, by providing its comma basis and subgroup:
import numpy as np
from lib.te_common import Subgroup
from lib.te_equal import et_sequence
et_sequence(np.column_stack([[7, -1, -1, -1, 1], [-4, 1, -1, 0, 1]]), subgroup=Subgroup ([2, 11, 13, 17, 19]))
Which produces the list: 11, 13, 24, 33, 37, 46, 57, 70, 127, 197eh.