Generator form manipulation: Difference between revisions
Cmloegcmluin (talk | contribs) →mingen form: could be minimal-generator too I suppose |
Cmloegcmluin (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
A [[User:Cmloegcmluin/Defactored_canonical_form|canonical mapping form]] is an important standard to have as community for uniquely identifying [[temperaments]], but it is not the only mapping form one should ever need, because one may wish to use differently-sized [[generators]]. | A [[User:Cmloegcmluin/Defactored_canonical_form|canonical mapping form]] is an important standard to have as community for uniquely identifying [[temperaments]], but it is not the only mapping form one should ever need, because one may wish to use differently-sized [[generators]]. Several such forms with different generator sizes have been presented, such as [[Normal_lists#Positive_generator_form|positive generator form]], [[Normal_lists#Equave-reduced_generator_form|equave-reduced generator form]], and [[Normal_lists#Minimal_generator_form|minimal-generator form]]. | ||
If two mappings are equivalent, i.e. they have the same canonical form and therefore represent the same temperament, then their corresponding generators are equivalent too. That doesn't mean their generators are the same sizes; it only means that in combination with each other, their generators reach the same set of pitches. | If two mappings are equivalent, i.e. they have the same canonical form and therefore represent the same temperament, then their corresponding generators are equivalent too. That doesn't mean their generators are the same sizes; it only means that in combination with each other, their generators reach the same set of pitches. | ||
Line 19: | Line 19: | ||
|} | |} | ||
Now clearly all three of these mapping forms look related, and they are indeed, but the exact relationships between them may not be immediately apparent, or how those relationships correspond to the relationships between their generator sizes. The purpose of this | Now clearly all three of these mapping forms look related, and they are indeed, but the exact relationships between them may not be immediately apparent, or how those relationships correspond to the relationships between their generator sizes. The purpose of this article is to demonstrate tricks for transforming from one matrix form to another so that we can make the generators the sizes we want, and along the way we'll look at how the tricks work in order to explain these relationships. | ||
== generator size manipulation tricks == | == generator size manipulation tricks == | ||
Line 105: | Line 105: | ||
Using these two tricks, you do not have to worry about enfactoring the mapping, i.e. introducing a common factor in one of the rows. This is because neither of these tricks ever involve replacing a row with a multiple of that row; we always replace a row with a combination of at least one each of two different rows, as in trick 1, or with the row negated, as in trick 2. | Using these two tricks, you do not have to worry about enfactoring the mapping, i.e. introducing a common factor in one of the rows. This is because neither of these tricks ever involve replacing a row with a multiple of that row; we always replace a row with a combination of at least one each of two different rows, as in trick 1, or with the row negated, as in trick 2. | ||
== tuning strategy == | |||
In order to define the size of the generators, you need to specify a tuning strategy. Though if you have two generators that are close enough that their size ranking depends on the tuning, then you probably have other problems. In any case, the tuning strategy that we'll be using here is T2, because it's decent enough and easy to compute. | In order to define the size of the generators, you need to specify a tuning strategy. Though if you have two generators that are close enough that their size ranking depends on the tuning, then you probably have other problems. In any case, the tuning strategy that we'll be using here is T2, because it's decent enough and easy to compute. | ||
== | == easy instructions table to achieve mingen form for rank-2 mapping == | ||
The following table shows how to obtain minimal-generator form from various starting positions, by synthesizing the two generator size manipulation tricks explained in the previous section. In this table, the period <span><math>p</math></span> is the first mapping row <span><math>r_1</math></span> in cents and the generator <span><math>g</math></span> is the second mapping row <span><math>r_2</math></span> in cents. It uses the simple example of 5-limit meantone. | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 187: | Line 179: | ||
|} | |} | ||
=== Wolfram Language implementation === | === Wolfram Language implementation of mingen form instructions above === | ||
The below code essentially works through the input matrix M two rows at a time, beginning with the first two rows. Each pair of rows is "fixed" so that the second row is less than half of the first row. The same set of changes and potential recursions as described in the table in the previous section is used for each pair of rows. When the sizes of the generators is computed, a weighted Frobenius tuning is used for its computational frugality and reasonableness. | The below code essentially works through the input matrix M two rows at a time, beginning with the first two rows. Each pair of rows is "fixed" so that the second row is less than half of the first row. The same set of changes and potential recursions as described in the table in the previous section is used for each pair of rows. When the sizes of the generators is computed, a weighted Frobenius tuning is used for its computational frugality and reasonableness. | ||
Line 270: | Line 262: | ||
tester[randomM] | tester[randomM] | ||
</nowiki> | </nowiki> | ||
== References == | == References == |