Defactoring: Difference between revisions

Cmloegcmluin (talk | contribs)
minor tweaks
Cmloegcmluin (talk | contribs)
revisions and corrections suggested by Dave
Line 17: Line 17:
== defactoring ==
== defactoring ==


Defactoring a matrix means to perform an operation on it which ensures that it is not "enfactored". And a matrix is considered to be "enfactored" if linear combinations of its rows can produce another row whose elements have a common factor (other than 1). This definition includes matrices whose rows already include a common factor, such as {{map|24 38 56}} which has a common factor of 2. Being enfactored is a bad thing. Enfactored matrices — those in the RTT domain, at least — are sick, in a way<ref>According to [[saturation]], "...if [an RTT matrix] isn't saturated the supposed temperament it defines may be regarded as pathological..." </ref>; it's no accident that "enfactored" sounds sort of like "infected". We'll discuss this pathology in detail in [[canonical_form#the_pathology_of_enfactoredness|a later section of this article]]. Fortunately, the remedy is simple: all one has to do is "defactor" it — identify and divide out the common factor — to produce a healthy mapping.
Defactoring a matrix means to perform an operation on it which ensures that it is not "enfactored". And a matrix is considered to be "enfactored" if linear combinations of its rows can produce another row whose elements have a common factor (other than 1)<ref>(and of course the counts of rows that are being linearly combined do not share a common factor)</ref>. This definition includes matrices whose rows already include a common factor, such as {{map|24 38 56}} which has a common factor of 2. Being enfactored is a bad thing. Enfactored matrices — those in the RTT domain, at least — are sick, in a way<ref>According to [[saturation]], "...if [an RTT matrix] isn't saturated the supposed temperament it defines may be regarded as pathological..." </ref>; it's no accident that "enfactored" sounds sort of like "infected". We'll discuss this pathology in detail in [[canonical_form#the_pathology_of_enfactoredness|a later section of this article]]. Fortunately, the remedy is simple: all one has to do is "defactor" it — identify and divide out the common factor — to produce a healthy mapping.


Due to complications associated with enfactored mappings which we'll get into later in this article, we discourage treating them as representations of true temperaments.<ref>As Graham Breed writes [http://x31eq.com/temper/method.html here], "Whether temperaments with contorsion should even be thought of as temperaments is a matter of debate."</ref> Instead we recommend that they be considered to represent mere "temperoids": temperament-like structures.
Due to complications associated with enfactored mappings which we'll get into later in this article, we discourage treating them as representations of true temperaments.<ref>As Graham Breed writes [http://x31eq.com/temper/method.html here], "Whether temperaments with contorsion should even be thought of as temperaments is a matter of debate."</ref> Instead we recommend that they be considered to represent mere "temperoids": temperament-like structures.
Line 83: Line 83:
In this section, we will use lattices to visualize enfactored temperaments, to demonstrate the musical implications of mappings with common factors, and the lack of musical implications of comma-bases with common factors.
In this section, we will use lattices to visualize enfactored temperaments, to demonstrate the musical implications of mappings with common factors, and the lack of musical implications of comma-bases with common factors.


== unenfactored case ==
== defactored case ==


[[File:Unenfactored mapping.png|365px|thumb|right|A 3-limit tempered lattice, superimposed on the JI lattice]]
[[File:Unenfactored mapping.png|365px|thumb|right|A 3-limit tempered lattice, superimposed on the JI lattice]]


First, let's look at an unenfactored mapping. This example temperament is so simple that it is not of practical musical interest. It was chosen because it's basically the numerically simplest possible example, where this type of simplicity empowers us to visualize the problem at a practical scale as clearly as possible. Please consider the diagram at right.  
First, let's look at an defactored mapping. This example temperament is so simple that it is not of practical musical interest. It was chosen because it's basically the numerically simplest possible example, where this type of simplicity empowers us to visualize the problem at a practical scale as clearly as possible. Please consider the diagram at right.  


This is a representation of 2-ET, a 3-limit, rank-1 (equal) temperament, with mapping {{vector|{{map|2 3}}}}, meaning it has a single generator which takes two steps to reach the octave, and three steps to reach the tritave. This temperament tempers out a single comma, whose vector representation looks similar to the mapping: {{vector|-3 2}}, AKA 9/8. And so the comma-basis for this temperament is {{map|{{vector|-3 2}}}}.
This is a representation of 2-ET, a 3-limit, rank-1 (equal) temperament, with mapping {{vector|{{map|2 3}}}}, meaning it has a single generator which takes two steps to reach the octave, and three steps to reach the tritave. This temperament tempers out a single comma, whose vector representation looks similar to the mapping: {{vector|-3 2}}, AKA 9/8. And so the comma-basis for this temperament is {{map|{{vector|-3 2}}}}.
Line 115: Line 115:
We are now comparing the previous diagram, which had the mapping {{vector|{{map|2 3}}}}, with the 2-enfactored version of it, i.e. the mapping 2×{{vector|{{map|2 3}}}} = {{vector|{{map|4 6}}}}, AKA 4-ET.
We are now comparing the previous diagram, which had the mapping {{vector|{{map|2 3}}}}, with the 2-enfactored version of it, i.e. the mapping 2×{{vector|{{map|2 3}}}} = {{vector|{{map|4 6}}}}, AKA 4-ET.


If you compare this lattice of an enfactored mapping with the previous lattice for a healthy, unenfactored mapping, they should look almost the same. They have the same comma and tube circumference. And the generator follows the same path through that tube/swath. The key difference is how far the generator moves with each step along that path.  
If you compare this lattice of an enfactored mapping with the previous lattice for a healthy, defactored mapping, they should look almost the same. They have the same comma and tube circumference. And the generator follows the same path through that tube/swath. The key difference is how far the generator moves with each step along that path.  


Starting from the origin, we can see that it takes us 2 moves of the generator to reach the approximation of {{vector|-1 1}}, AKA 3/2, where before we made that step in one go. Then another 2 moves to reach the approximation of {{vector|-2 2}}, AKA 9/4, for a total of 4 moves, where before it only took us 2 steps. As you keep going, you'll see that each node it has taken us 2x as many steps as before to reach it.
Starting from the origin, we can see that it takes us 2 moves of the generator to reach the approximation of {{vector|-1 1}}, AKA 3/2, where before we made that step in one go. Then another 2 moves to reach the approximation of {{vector|-2 2}}, AKA 9/4, for a total of 4 moves, where before it only took us 2 steps. As you keep going, you'll see that each node it has taken us 2x as many steps as before to reach it.
Line 127: Line 127:
[[File:2-enfactored comma-basis.png|365px|thumb|left|enfactored comma-bases are garbage]]
[[File:2-enfactored comma-basis.png|365px|thumb|left|enfactored comma-bases are garbage]]


Here's where things get kind of nuts. Most recently we experimented with enfactoring our healthy temperament's mapping. Now let's experiment with enfactoring its comma-basis. In the unenfactored situation, if our comma-basis was {{map|{{vector|-3 2}}}}, then 2-enfactoring it produces 2×{{map|{{vector|-3 2}}}} = {{map|{{vector|-6 4}}}}.
Here's where things get kind of nuts. Most recently we experimented with enfactoring our healthy temperament's mapping. Now let's experiment with enfactoring its comma-basis. In the defactored situation, if our comma-basis was {{map|{{vector|-3 2}}}}, then 2-enfactoring it produces 2×{{map|{{vector|-3 2}}}} = {{map|{{vector|-6 4}}}}.


We know that in the original diagram, the large-labelled {{vector|-3 2}} represented our comma, and this was the point that our dotted line ran through, the one that represented our boundary of warp/wrap. So our first thought should be: we must alter our diagram so that now {{vector|-6 4}} is that point instead. Fine.  
We know that in the original diagram, the large-labelled {{vector|-3 2}} represented our comma, and this was the point that our dotted line ran through, the one that represented our boundary of warp/wrap. So our first thought should be: we must alter our diagram so that now {{vector|-6 4}} is that point instead. Fine.  
Line 133: Line 133:
But here's the problem. It simply doesn't make sense to double the width of our swath/tube! If {{vector|-6 4}} is tempered out, then so is {{vector|-3 2}}. That is, while nothing would stop you from drawing a diagram with a double-width swath/tube, the musical reality is that it is impossible to temper out {{vector|-6 4}} without also tempering out {{vector|-3 2}}. And so there is no meaning or purpose to the comma-basis {{vector|-6 4}}, whether RTT-wise or musically in general. It is garbage.  
But here's the problem. It simply doesn't make sense to double the width of our swath/tube! If {{vector|-6 4}} is tempered out, then so is {{vector|-3 2}}. That is, while nothing would stop you from drawing a diagram with a double-width swath/tube, the musical reality is that it is impossible to temper out {{vector|-6 4}} without also tempering out {{vector|-3 2}}. And so there is no meaning or purpose to the comma-basis {{vector|-6 4}}, whether RTT-wise or musically in general. It is garbage.  


And so our lattice for an enfactored comma-basis looks almost identical to the original unenfactored lattice. The only difference here is that we've drawn a "supposed (but false)" tube circumference out to {{vector|-6 4}}, while the half of this length which is real is now labelled the "true" circumference.
And so our lattice for an enfactored comma-basis looks almost identical to the original defactored lattice. The only difference here is that we've drawn a "supposed (but false)" tube circumference out to {{vector|-6 4}}, while the half of this length which is real is now labelled the "true" circumference.


== enfactored comma-bases vs. periodicity blocks with torsion ==
== enfactored comma-bases vs. periodicity blocks with torsion ==
Line 157: Line 157:
One may pose the question: what is the relationship between an enfactored mapping and an enfactored comma-basis? Can you have one but not the other? Must you? Or must you not? Or does the question even make sense? Certainly at least some have suggested these cases are meaningfully independent<ref>such as the page [[Color_notation/Temperament_Names|color notation]], which reads "it's possible that there is both torsion and contorsion"</ref>.  
One may pose the question: what is the relationship between an enfactored mapping and an enfactored comma-basis? Can you have one but not the other? Must you? Or must you not? Or does the question even make sense? Certainly at least some have suggested these cases are meaningfully independent<ref>such as the page [[Color_notation/Temperament_Names|color notation]], which reads "it's possible that there is both torsion and contorsion"</ref>.  


The conclusion we arrive at here is that because enfactored comma-bases don't make any sense, or at least don't represent any legitimately new musical information of any kind that their unenfactored version doesn't already represent, it is not generally useful to think of enfactored mappings and enfactored comma-bases as independent phenomena. It only makes sense to speak of enfactored temperaments. Of course, one will often use the term "enfactored mapping" because enfactored mappings are the kind which do have some musical purpose, and often the enfactored mapping will be being used to represent the enfactored temperament — or temperoid, that is.
The conclusion we arrive at here is that because enfactored comma-bases don't make any sense, or at least don't represent any legitimately new musical information of any kind that their defactored version doesn't already represent, it is not generally useful to think of enfactored mappings and enfactored comma-bases as independent phenomena. It only makes sense to speak of enfactored temperaments. Of course, one will often use the term "enfactored mapping" because enfactored mappings are the kind which do have some musical purpose, and often the enfactored mapping will be being used to represent the enfactored temperament — or temperoid, that is.


== conclusion ==
== conclusion ==
Line 1,161: Line 1,161:
And there are three corresponding cases when a temperament is enfactored. In all three cases, the key difference is that HNF is no longer the same as DCF, with the only difference being that the common factor is not removed. In all cases below, the examples are shown with a common factor of 2 introduced in their second row, which stays behind in the second row of the HNF:
And there are three corresponding cases when a temperament is enfactored. In all three cases, the key difference is that HNF is no longer the same as DCF, with the only difference being that the common factor is not removed. In all cases below, the examples are shown with a common factor of 2 introduced in their second row, which stays behind in the second row of the HNF:
# Now ''all four'' are different. Example: enfactored porcupine, e.g. {{vector|{{map|15 24 35}} {{map|14 22 32}}}} causes the HNF to be {{vector|{{map|1 2 3}} {{map|0 6 10}}}}.
# Now ''all four'' are different. Example: enfactored porcupine, e.g. {{vector|{{map|15 24 35}} {{map|14 22 32}}}} causes the HNF to be {{vector|{{map|1 2 3}} {{map|0 6 10}}}}.
# Everything is still the same now, ''except HNF''. Example: enfactored meantone, e.g. {{vector|{{map|5 8 12}} {{map|14 22 32}}}} causes the HNF to be {{vector|{{map|1 0 -4}} {{map|0 2 8}}}}. This case, like the corresponding unenfactored state, is also quite rare.
# Everything is still the same now, ''except HNF''. Example: enfactored meantone, e.g. {{vector|{{map|5 8 12}} {{map|14 22 32}}}} causes the HNF to be {{vector|{{map|1 0 -4}} {{map|0 2 8}}}}. This case, like the corresponding defactored state, is also quite rare.
# The ''only match'' now is between IRREF and DCF. In other words, the HNF and DCF diverged, and it was the DCF which remained the same as IRREF. Example: enfactored hanson, e.g. {{vector|{{map|15 24 35}} {{map|38 60 88}}}} causes the HNF to be {{vector|{{map|1 0 1}} {{map|0 12 10}}}}.
# The ''only match'' now is between IRREF and DCF. In other words, the HNF and DCF diverged, and it was the DCF which remained the same as IRREF. Example: enfactored hanson, e.g. {{vector|{{map|15 24 35}} {{map|38 60 88}}}} causes the HNF to be {{vector|{{map|1 0 1}} {{map|0 12 10}}}}.


Line 1,209: Line 1,209:


SAD defactoring was found to fail in the case of [[canonical_form#well-hidden_enfactoring|well-hidden common factor]]s, i.e.  
SAD defactoring was found to fail in the case of [[canonical_form#well-hidden_enfactoring|well-hidden common factor]]s, i.e.  
ones where there are no common factors to be found in sums or differences of the rows, but are to be found in sums or differences of ''multiples of'' these rows. In order to solve this problem, SAD defactoring would need to be reworked to check every possible combination of integer multiples of each row, potentially up to the largest absolute value of integer in the given mapping, which would cause it to become intractably slow to compute.
ones where there are no common factors to be found in sums or differences of the rows, but are to be found in sums or differences of ''multiples of'' these rows (what is described above as [[Canonical_form#well-hidden_enfactoring|"well-hidden" enfactoring]]). In order to solve this problem, SAD defactoring would need to be reworked to check every possible combination of integer multiples of each row, potentially up to the largest absolute value of integer in the given mapping, which would cause it to become intractably slow to compute.


Fortunately this did not turn out to be necessary. The solution here was to do one pass of HNF before doing the defactoring (and still do the HNF pass at the end too, when going for a canonical form). This pre-pass of HNF doesn't manage to remove the common factor, but it does at least reveal it. For example, in the case of {{vector|{{map|6 5 -4}} {{map|4 -4 1}}}}, the HNF is {{vector|{{map|2 9 -5}} {{map|0 22 -11}}}}, so that hidden common factor of 11 has now been revealed, put in a form where SAD is capable of removing it.  
Fortunately this did not turn out to be necessary. The solution here was to do one pass of HNF before doing the defactoring (and still do the HNF pass at the end too, when going for a canonical form). This pre-pass of HNF doesn't manage to remove the common factor, but it does at least unearth it from the well-hidden state into at least the [[Canonical_form#hidden_enfactoring|merely "hidden" state]], and possibly the [[Canonical_form#immediately_apparent_enfactoring|revealed state]]. For example, in the case of {{vector|{{map|6 5 -4}} {{map|4 -4 1}}}}, the HNF is {{vector|{{map|2 9 -5}} {{map|0 22 -11}}}}, so that hidden common factor of 11 has now been completely revealed to humans, but more importantly put in a form where SAD defactoring is capable of removing it.  


So this is better than initially thought. But still not great to have to add another HNF pass at the onset.
So this is better than initially thought. But still not great to have to add another HNF pass at the onset.