Generator form manipulation: Difference between revisions

Cmloegcmluin (talk | contribs)
use Defactored Hermite form
Cmloegcmluin (talk | contribs)
simplify inline math
Line 25: Line 25:
=== first trick: change one generator by the size of another generator ===
=== first trick: change one generator by the size of another generator ===


The most basic trick is this: for a rank <span><math>r</math></span> temperament whose mapping has rows <span><math>R_1, R_2 ... R_r</math></span>, and corresponding generators with cents <span><math>G_1, G_2 ... G_r</math></span>, if we want to increase <span><math>G_a</math></span> by <span><math>G_b</math></span>, then replace <span><math>R_b</math></span> with <span><math>R_b' = R_b - R_a</math></span>.
The most basic trick is this: for a rank <math>r</math> temperament whose mapping has rows <math>R_1, R_2 ... R_r</math>, and corresponding generators with cents <math>G_1, G_2 ... G_r</math>, if we want to increase <math>G_a</math> by <math>G_b</math>, then replace <math>R_b</math> with <math>R_b' = R_b - R_a</math>.


Let's demonstrate this trick on the most recent example we looked at: meantone as generated by an octave and a tritave. If we begin with meantone in canonical form, {{ket|{{map|1 1 0}} {{map|0 1 4}}}}, where the generators are an octave and a perfect fifth, then we know we need to increase the second generator by the size of the first generator, because a tritave is equal to a perfect fifth plus an octave. So in terms of our variables, we must change <span><math>G_2</math></span> so that it's <span><math>G_2 + G_1</math></span>. According to our trick, then, we must replace <span><math>R_1</math></span> with <span><math>R_1' = R_1 - R_2</math></span>. And so <span><math>R_1'</math></span> is found like this:
Let's demonstrate this trick on the most recent example we looked at: meantone as generated by an octave and a tritave. If we begin with meantone in canonical form, {{ket|{{map|1 1 0}} {{map|0 1 4}}}}, where the generators are an octave and a perfect fifth, then we know we need to increase the second generator by the size of the first generator, because a tritave is equal to a perfect fifth plus an octave. So in terms of our variables, we must change <math>G_2</math> so that it's <math>G_2 + G_1</math>. According to our trick, then, we must replace <math>R_1</math> with <math>R_1' = R_1 - R_2</math>. And so <math>R_1'</math> is found like this:


<math>
<math>
Line 47: Line 47:
</math>
</math>


And then simply replace <span><math>R_1</math></span> = {{map|1 1 0}} with <span><math>R_1'</math></span> =  {{map|1 0 -4}} in the mapping, changing {{ket|{{map|1 1 0}} {{map|0 1 4}}}} to {{ket|{{map|1 0 -4}} {{map|0 1 4}}}}.
And then simply replace <math>R_1</math> = {{map|1 1 0}} with <math>R_1'</math> =  {{map|1 0 -4}} in the mapping, changing {{ket|{{map|1 1 0}} {{map|0 1 4}}}} to {{ket|{{map|1 0 -4}} {{map|0 1 4}}}}.


It may be counterintuitive at first that in order to change the size of a generator we must make a change to a mapping row ''other than the one which corresponds to that generator'' (in this example, we changed the size of of the ''second'' generator by changing the ''first'' row). But there is a way to train our intuition on this effect. Think of it like transferring jobs. Remember that in order to know the size in cents of a generator, we cannot look exclusively at that generator's mapping row out of context; we need to know the entire mapping, because the mapping rows all work together to determine how the temperament works. So we can think of every mapping row like a workforce that outsources some of its work to the other rows; they're an interconnected system of workforces. And so when we subtract one row from another, we're in effect saying that the row being subtracted from is going to do less of the row being subtracted's work. So when we subtract <span><math>R_2</math></span> from <span><math>R_1</math></span>, what we're saying is that whatever work the first generator was doing for the second generator, it will no longer do that work anymore, so the second generator will need to take care of that work itself; and that's why <span><math>G_2</math></span> becomes the size of <span><math>G_2</math></span> plus <span><math>G_1</math></span>.
It may be counterintuitive at first that in order to change the size of a generator we must make a change to a mapping row ''other than the one which corresponds to that generator'' (in this example, we changed the size of of the ''second'' generator by changing the ''first'' row). But there is a way to train our intuition on this effect. Think of it like transferring jobs. Remember that in order to know the size in cents of a generator, we cannot look exclusively at that generator's mapping row out of context; we need to know the entire mapping, because the mapping rows all work together to determine how the temperament works. So we can think of every mapping row like a workforce that outsources some of its work to the other rows; they're an interconnected system of workforces. And so when we subtract one row from another, we're in effect saying that the row being subtracted from is going to do less of the row being subtracted's work. So when we subtract <math>R_2</math> from <math>R_1</math>, what we're saying is that whatever work the first generator was doing for the second generator, it will no longer do that work anymore, so the second generator will need to take care of that work itself; and that's why <math>G_2</math> becomes the size of <math>G_2</math> plus <math>G_1</math>.


Conversely, if we want to ''decrease'' <span><math>G_a</math></span> by <span><math>G_b</math></span>, then we replace <span><math>R_b</math></span> with <span><math>R_b' = R_b</math></span> ''plus'' <span><math>R_a</math></span>.
Conversely, if we want to ''decrease'' <math>G_a</math> by <math>G_b</math>, then we replace <math>R_b</math> with <math>R_b' = R_b</math> ''plus'' <math>R_a</math>.


=== second trick: negating a generator ===
=== second trick: negating a generator ===
Line 65: Line 65:
We can't accomplish this using the one trick we've already learned. How could we? That first trick relies on the interactions of ''two different'' generators, whereas negating a generator only involves one generator: itself. So here's where our second generator size manipulation trick comes in: negating a generator.
We can't accomplish this using the one trick we've already learned. How could we? That first trick relies on the interactions of ''two different'' generators, whereas negating a generator only involves one generator: itself. So here's where our second generator size manipulation trick comes in: negating a generator.


Fortunately this second trick is very easy. All we need to do in order to negate <span><math>G_a</math></span> (the generator size, e.g. in cents) is to negate each of the terms of the mapping row <span><math>R_a</math></span>. So, we would simply change <span><math>R_2</math> = </span>{{map|0 1 4}} to <span><math>R_2'</math></span> = {{map|0 -1 -4}}, thereby changing the mapping from {{ket|{{map|1 1 0}} {{map|0 1 4}}}} to {{ket|{{map|1 1 0}} {{map|0 -1 -4}}}}<ref>To extend the workplace analogy (if we really like, though I doubt it's helpful here), we could say that we changed R_2's jobs so that they now do the exact opposite of what they used to do, so if we want them to accomplish the same thing as they used to, we have to have them undo their work.</ref>.  
Fortunately this second trick is very easy. All we need to do in order to negate <math>G_a</math> (the generator size, e.g. in cents) is to negate each of the terms of the mapping row <math>R_a</math>. So, we would simply change <math>R_2</math> = </span>{{map|0 1 4}} to <math>R_2'</math> = {{map|0 -1 -4}}, thereby changing the mapping from {{ket|{{map|1 1 0}} {{map|0 1 4}}}} to {{ket|{{map|1 1 0}} {{map|0 -1 -4}}}}<ref>To extend the workplace analogy (if we really like, though I doubt it's helpful here), we could say that we changed R_2's jobs so that they now do the exact opposite of what they used to do, so if we want them to accomplish the same thing as they used to, we have to have them undo their work.</ref>.  


So at this point, the generators are an octave and a negative perfect fifth. It's time for our second step.
So at this point, the generators are an octave and a negative perfect fifth. It's time for our second step.


The second step of achieving a generator with the size of a perfect fourth should be familiar: we need to increase our negative perfect fifth to a perfect fourth, and so we need to add one octave, and therefore we need to change <span><math>R_1</math></span> to be <span><math>R_1 - R_2</math></span>, so we end up with:
The second step of achieving a generator with the size of a perfect fourth should be familiar: we need to increase our negative perfect fifth to a perfect fourth, and so we need to add one octave, and therefore we need to change <math>R_1</math> to be <math>R_1 - R_2</math>, so we end up with:


<math>
<math>
Line 95: Line 95:
[[File:Generator step by step manipulation.png|thumb|600px|A demonstration of how one might transform the size of a generator of a rank-3 temperament.]]
[[File:Generator step by step manipulation.png|thumb|600px|A demonstration of how one might transform the size of a generator of a rank-3 temperament.]]


These two tricks should enable us to attain any valid generator sizes we may wish for a given temperament. And these tricks work for any rank<ref>past 1, anyway; of course, rank 1 temperaments are somewhat inflexible in their single generator's size.</ref>, not only rank 2 like we've looked at thus far with 5-limit meantone examples. To be clear, for a rank <span><math>r</math></span> temperament, adding or subtracting <span><math>R_a</math></span> from another generator will only affect the size of <span><math>G_a</math></span>.  
These two tricks should enable us to attain any valid generator sizes we may wish for a given temperament. And these tricks work for any rank<ref>past 1, anyway; of course, rank 1 temperaments are somewhat inflexible in their single generator's size.</ref>, not only rank 2 like we've looked at thus far with 5-limit meantone examples. To be clear, for a rank <math>r</math> temperament, adding or subtracting <math>R_a</math> from another generator will only affect the size of <math>G_a</math>.  


For example, [[Marvel_family#Marvel|7-limit marvel]]'s canonical form is {{ket|{{map|1 0 0 -5}} {{map|0 1 0 2}} {{map|0 0 1 2}}}}, with generators of an octave, tritave, and [[pentave]] (5/1), in that order. We can change that second generator from a tritave to a perfect fifth by decreasing <span><math>G_2</math></span> by <span><math>G_1</math></span>, which we know by the first trick means we add <span><math>R_2</math></span> to <span><math>R_1</math></span>, producing {{ket|{{map|1 1 0 -3}} {{map|0 1 0 2}} {{map|0 0 1 2}}}}. Helpfully, this trick has no effect on any other generators that were not involved, which in this case is just the size of the pentave, which was the one remaining generator out of the three in this temperament.
For example, [[Marvel_family#Marvel|7-limit marvel]]'s canonical form is {{ket|{{map|1 0 0 -5}} {{map|0 1 0 2}} {{map|0 0 1 2}}}}, with generators of an octave, tritave, and [[pentave]] (5/1), in that order. We can change that second generator from a tritave to a perfect fifth by decreasing <math>G_2</math> by <math>G_1</math>, which we know by the first trick means we add <math>R_2</math> to <math>R_1</math>, producing {{ket|{{map|1 1 0 -3}} {{map|0 1 0 2}} {{map|0 0 1 2}}}}. Helpfully, this trick has no effect on any other generators that were not involved, which in this case is just the size of the pentave, which was the one remaining generator out of the three in this temperament.


The fact that these tricks have isolated effects on the generator sizes like this makes it straightforward to compose sequences of them, applied one after the other, to attain an incredible variety of valid generator sizes, as you can see in the diagram to the right.
The fact that these tricks have isolated effects on the generator sizes like this makes it straightforward to compose sequences of them, applied one after the other, to attain an incredible variety of valid generator sizes, as you can see in the diagram to the right.
Line 111: Line 111:
== easy instructions table to achieve mingen form for rank-2 mapping ==
== 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.  
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 <math>p</math> is the first mapping row <math>r_1</math> in cents and the generator <math>g</math> is the second mapping row <math>r_2</math> in cents. It uses the simple example of 5-limit meantone.  


  {| class="wikitable"
  {| class="wikitable"
|+mapping manipulations
|+mapping manipulations
!mapping
!mapping
!<span><math>p</math></span> (¢)
!<math>p</math> (¢)
!<span><math>g</math></span> (¢)
!<math>g</math> (¢)
!current <span><math>p</math></span> vs. <span><math>g</math></span>
!current <math>p</math> vs. <math>g</math>
!desired new <span><math>g</math></span>
!desired new <math>g</math>
!required <span><math>r_1</math></span> change
!required <math>r_1</math> change
!required <span><math>r_2</math></span> change
!required <math>r_2</math> change
!repeat?
!repeat?
|-
|-