Temperament mapping matrix: Difference between revisions

Wikispaces>mbattaglia1
**Imported revision 355667144 - Original comment: **
Wikispaces>mbattaglia1
**Imported revision 355676710 - Original comment: **
Line 1: Line 1:
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
: This revision was by author [[User:mbattaglia1|mbattaglia1]] and made on <tt>2012-07-31 07:36:02 UTC</tt>.<br>
: This revision was by author [[User:mbattaglia1|mbattaglia1]] and made on <tt>2012-07-31 09:02:25 UTC</tt>.<br>
: The original revision id was <tt>355667144</tt>.<br>
: The original revision id was <tt>355676710</tt>.<br>
: The revision comment was: <tt></tt><br>
: The revision comment was: <tt></tt><br>
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br>
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br>
<h4>Original Wikitext content:</h4>
<h4>Original Wikitext content:</h4>
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;white-space: pre-wrap ! important" class="old-revision-html">=Basics=  
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;white-space: pre-wrap ! important" class="old-revision-html">=Basics=  
The multiplicative group of p-limit rational numbers, which is an r-rank free abelian group, also naturally has the structure of being a Z-module. If one wants to admit the existence of monzos with [[Fractional monzos|fractional or real coefficients]], then this module becomes a vector space. Temperaments, which
The multiplicative group of any set of rational numbers, which is an r-rank free abelian group, also naturally has the structure of being a Z-module. Thus, a [[Regular Temperaments|regular temperament]], which is a group homomorphism **T**: J -&gt; K from the group J of JI rationals to a group K of tempered intervals, also has the structure of being a module homomorphism between Z-modules. This homomorphism can also be represented by a integer matrix, called a **mapping matrix** or **mapping** for the temperament. Since there is more than one type of mapping matrix which appears in music theory, it has also more rarely been called a "monzo-map" or **M-map** when context demands, as opposed to the [[Subgroup Mapping Matrices (V-maps)|V-map]] which is a mapping on vals.


can be embedded into an r-dimensional vector space or Z-module can be embedded into a vector space or
Assuming we use the convention that row matrices represent vals and column matrices represent monzos, then a matrix M is said to be a mapping matrix for a temperament T if and only if the null module of M consists of the kernel of T, M is of full row rank, and the rows of M generate a submodule which is [[Saturation|saturated]]. There is generally not a unique matrix M satisfying this definition for arbitrary temperament T, as for any M which is a valid mapping for T, any matrix U*M where U is unimodular will also be a valid mapping for T. The different mapping matrices obtainable in this way still temper out the same commas, but differ in the choice of basis for the tempered interval module.


[[Regular Temperaments|regular temperament]] can be represented</pre></div>
The column module of any mapping matrix is the module of T-tempered intervals, also known as the module of [[tmonzos and tvals|tmonzos]] for T. The row module of any mapping matrix for a temperament T is the submodule of all vals supporting T. Note also that this means that if T is of rank r, then a rank-r matrix in which the rows are r linearly independent vals supporting T and which form a saturated submodule of the module of vals will be a valid mapping for T.
 
Note also that since all mapping matrices for T will have the same row module, we can easily check to see if two matrices represent the same temperament by checking to see if they generate the same [[Normal lists#x-Normal%20val%20lists|normal val list]], or more generally if they have the same Hermite normal form.
 
=Dual Transformation=
Any mapping matrix can be said to represent a linear map **M:** J -&gt; K, where J is a module of JI intervals and K is a module of tempered intervals. There is thus an associated dual transformation **M*:** K* -&gt; J*, where J* and K* are the dual modules to J and K, respectively. J* is the module of vals on J, and K* is the module of [[xenharmonic/tmonzos and tvals|tvals]] on K, so **M*** represents a linear transformation mapping from tvals to vals. This mapping will generally be injective but not surjective; its image is the submodule of vals supporting the associated temperament, and no two tvals map to the same val.
 
These two transformations correspond to different types of matrix multiplication: the ordinary transformation **M** corresponds to multiplication with the mapping on the left and a matrix whose columns are monzos on the right, and the dual transformation **M*** corresponds to multiplication with the mapping on the right and a matrix whose rows are tvals on the left.
 
=Example=
11-limit porcupine tempers out 55/54, 64/63, and 100/99, and is supported by the patent vals for [[15-EDO]] and [[22-EDO]]. Since these two vals form a saturated submodule of the module of 11-limit vals, then the matrix formed by setting the rows to these vals is a valid mapping matrix for porcupine:
 
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&lt;15 24 35 42 52|]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&lt;22 35 51 62 76|]&lt;/span&gt;**
 
where the row vectors are still placed in bras as a notational device to signify that these are vals. If we put this in [[xenharmonic/Normal lists#x-Normal%20val%20lists|normal val list]] form, we get
 
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&lt;1 2 3 2 4|]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&lt;0 -3 -5 6 -4|]&lt;/span&gt;**
 
or, in shorthand, [&lt;1 2 3 2 4|, &lt;0 -3 -5 6 -4|]. We'll call this matrix **P**.
 
**Tempering an Interval**
We'll now right-multiply **P** by the following matrix **M** of two monzos, representing 2/1 and 3/2:
 
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[1 -1]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 1]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 0]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 0]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 0]&lt;/span&gt;**
 
we can also write this matrix as
 
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[| 1 0 0 0 0&gt;]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[|-1 1 0 0 0&gt;]&lt;/span&gt;**
 
or, in shorthand, [|1 0 0 0 0&gt;, |-1 1 0 0 0&gt;], where it's understood in both cases that the kets represent columns.
 
The result of **P*****M** is the matrix [|1 0&gt;, |1 -3&gt;], telling us that 2/1 maps to the tmonzo |1 0&gt;, and that 3/2 maps to the tmonzo |1 -3&gt;. This tells us that 2/1 maps to one of the generators for porcupine and that 3/2 is made up of one 2/1 minus three of the other generator. It so happens that the other generator is 10/9, which maps to |0 1&gt;.
 
We can use this technique to indeed confirm that 55/54, 64/63, and 100/99 form a basis for the null module of **P** by putting these intervals in monzo form as columns of a matrix **N**, which works out to be [|-1 -3 1 0 1&gt;, |6 -2 0 -1 0&gt;, |2 -2 2 0 -1&gt;]. If we then evaluate the product **P*N** we get the matrix [|0 0&gt;, |0 0&gt;, |0 0&gt;], meaning that all of these intervals map to the unison tmonzo. This confirms that the kernel of porcupine does indeed lie in the null module of **P**.
 
 
**The Dual Transformation**
To explore the dual transformation implied by **P**, we'll look at the tval matrix [&lt;7 1|, &lt;15 2|], where again the bras signify that the tvals represent matrix rows. The first tval maps the first generator (for which 2/1 is a [[Transversal generators|transversal]]) to 7 steps and the second generator (for which 10/9 is a transversal) to 1 step, and similarly with the second tval. If we call this matrix **V**, then the result of **V*P** is the matrix
 
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&lt; 7 11 16 20 24|]&lt;/span&gt;**
**&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&lt;15 24 35 42 52|]&lt;/span&gt;**
 
for which the rows are the patent vals for [[7-EDO]] and [[15-EDO]], respectively. Since the dual transformation is injective, these vals can be interpreted as the full-limit vals which are implied by the &lt;7 1| and &lt;15 2| tvals. Additionally, since the image of the dual transformation is the set of vals supporting porcupine, and since the above two vals are linearly independent, the resulting matrix **V*P** is another valid mapping matrix for porcupine. We can confirm this by putting the matrix back into normal val list form and getting [&lt;1 2 3 2 4|, &lt;0 -3 -5 6 -4|] as a result again.</pre></div>
<h4>Original HTML content:</h4>
<h4>Original HTML content:</h4>
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;width:200%;white-space: pre-wrap ! important" class="old-revision-html">&lt;html&gt;&lt;head&gt;&lt;title&gt;Temperament Mapping Matrices (M-maps)&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;!-- ws:start:WikiTextHeadingRule:0:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc0"&gt;&lt;a name="Basics"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:0 --&gt;Basics&lt;/h1&gt;
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;width:200%;white-space: pre-wrap ! important" class="old-revision-html">&lt;html&gt;&lt;head&gt;&lt;title&gt;Temperament Mapping Matrices (M-maps)&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;!-- ws:start:WikiTextHeadingRule:0:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc0"&gt;&lt;a name="Basics"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:0 --&gt;Basics&lt;/h1&gt;
  The multiplicative group of p-limit rational numbers, which is an r-rank free abelian group, also naturally has the structure of being a Z-module. If one wants to admit the existence of monzos with &lt;a class="wiki_link" href="/Fractional%20monzos"&gt;fractional or real coefficients&lt;/a&gt;, then this module becomes a vector space. Temperaments, which&lt;br /&gt;
  The multiplicative group of any set of rational numbers, which is an r-rank free abelian group, also naturally has the structure of being a Z-module. Thus, a &lt;a class="wiki_link" href="/Regular%20Temperaments"&gt;regular temperament&lt;/a&gt;, which is a group homomorphism &lt;strong&gt;T&lt;/strong&gt;: J -&amp;gt; K from the group J of JI rationals to a group K of tempered intervals, also has the structure of being a module homomorphism between Z-modules. This homomorphism can also be represented by a integer matrix, called a &lt;strong&gt;mapping matrix&lt;/strong&gt; or &lt;strong&gt;mapping&lt;/strong&gt; for the temperament. Since there is more than one type of mapping matrix which appears in music theory, it has also more rarely been called a &amp;quot;monzo-map&amp;quot; or &lt;strong&gt;M-map&lt;/strong&gt; when context demands, as opposed to the &lt;a class="wiki_link" href="/Subgroup%20Mapping%20Matrices%20%28V-maps%29"&gt;V-map&lt;/a&gt; which is a mapping on vals.&lt;br /&gt;
&lt;br /&gt;
Assuming we use the convention that row matrices represent vals and column matrices represent monzos, then a matrix M is said to be a mapping matrix for a temperament T if and only if the null module of M consists of the kernel of T, M is of full row rank, and the rows of M generate a submodule which is &lt;a class="wiki_link" href="/Saturation"&gt;saturated&lt;/a&gt;. There is generally not a unique matrix M satisfying this definition for arbitrary temperament T, as for any M which is a valid mapping for T, any matrix U*M where U is unimodular will also be a valid mapping for T. The different mapping matrices obtainable in this way still temper out the same commas, but differ in the choice of basis for the tempered interval module.&lt;br /&gt;
&lt;br /&gt;
The column module of any mapping matrix is the module of T-tempered intervals, also known as the module of &lt;a class="wiki_link" href="/tmonzos%20and%20tvals"&gt;tmonzos&lt;/a&gt; for T. The row module of any mapping matrix for a temperament T is the submodule of all vals supporting T. Note also that this means that if T is of rank r, then a rank-r matrix in which the rows are r linearly independent vals supporting T and which form a saturated submodule of the module of vals will be a valid mapping for T.&lt;br /&gt;
&lt;br /&gt;
Note also that since all mapping matrices for T will have the same row module, we can easily check to see if two matrices represent the same temperament by checking to see if they generate the same &lt;a class="wiki_link" href="/Normal%20lists#x-Normal%20val%20lists"&gt;normal val list&lt;/a&gt;, or more generally if they have the same Hermite normal form.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextHeadingRule:2:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc1"&gt;&lt;a name="Dual Transformation"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:2 --&gt;Dual Transformation&lt;/h1&gt;
Any mapping matrix can be said to represent a linear map &lt;strong&gt;M:&lt;/strong&gt; J -&amp;gt; K, where J is a module of JI intervals and K is a module of tempered intervals. There is thus an associated dual transformation &lt;strong&gt;M*:&lt;/strong&gt; K* -&amp;gt; J*, where J* and K* are the dual modules to J and K, respectively. J* is the module of vals on J, and K* is the module of &lt;a class="wiki_link" href="http://xenharmonic.wikispaces.com/tmonzos%20and%20tvals"&gt;tvals&lt;/a&gt; on K, so &lt;strong&gt;M&lt;/strong&gt;* represents a linear transformation mapping from tvals to vals. This mapping will generally be injective but not surjective; its image is the submodule of vals supporting the associated temperament, and no two tvals map to the same val.&lt;br /&gt;
&lt;br /&gt;
These two transformations correspond to different types of matrix multiplication: the ordinary transformation &lt;strong&gt;M&lt;/strong&gt; corresponds to multiplication with the mapping on the left and a matrix whose columns are monzos on the right, and the dual transformation &lt;strong&gt;M&lt;/strong&gt;* corresponds to multiplication with the mapping on the right and a matrix whose rows are tvals on the left.&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextHeadingRule:4:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc2"&gt;&lt;a name="Example"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:4 --&gt;Example&lt;/h1&gt;
11-limit porcupine tempers out 55/54, 64/63, and 100/99, and is supported by the patent vals for &lt;a class="wiki_link" href="/15-EDO"&gt;15-EDO&lt;/a&gt; and &lt;a class="wiki_link" href="/22-EDO"&gt;22-EDO&lt;/a&gt;. Since these two vals form a saturated submodule of the module of 11-limit vals, then the matrix formed by setting the rows to these vals is a valid mapping matrix for porcupine:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&amp;lt;15 24 35 42 52|]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&amp;lt;22 35 51 62 76|]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
where the row vectors are still placed in bras as a notational device to signify that these are vals. If we put this in &lt;a class="wiki_link" href="http://xenharmonic.wikispaces.com/Normal%20lists#x-Normal%20val%20lists"&gt;normal val list&lt;/a&gt; form, we get&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&amp;lt;1 2 3 2 4|]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&amp;lt;0 -3 -5 6 -4|]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
or, in shorthand, [&amp;lt;1 2 3 2 4|, &amp;lt;0 -3 -5 6 -4|]. We'll call this matrix &lt;strong&gt;P&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Tempering an Interval&lt;/strong&gt;&lt;br /&gt;
We'll now right-multiply &lt;strong&gt;P&lt;/strong&gt; by the following matrix &lt;strong&gt;M&lt;/strong&gt; of two monzos, representing 2/1 and 3/2:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[1 -1]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 1]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 0]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 0]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[0 0]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
we can also write this matrix as&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[| 1 0 0 0 0&amp;gt;]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[|-1 1 0 0 0&amp;gt;]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
or, in shorthand, [|1 0 0 0 0&amp;gt;, |-1 1 0 0 0&amp;gt;], where it's understood in both cases that the kets represent columns.&lt;br /&gt;
&lt;br /&gt;
The result of &lt;strong&gt;P&lt;/strong&gt;&lt;strong&gt;*M&lt;/strong&gt; is the matrix [|1 0&amp;gt;, |1 -3&amp;gt;], telling us that 2/1 maps to the tmonzo |1 0&amp;gt;, and that 3/2 maps to the tmonzo |1 -3&amp;gt;. This tells us that 2/1 maps to one of the generators for porcupine and that 3/2 is made up of one 2/1 minus three of the other generator. It so happens that the other generator is 10/9, which maps to |0 1&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We can use this technique to indeed confirm that 55/54, 64/63, and 100/99 form a basis for the null module of &lt;strong&gt;P&lt;/strong&gt; by putting these intervals in monzo form as columns of a matrix &lt;strong&gt;N&lt;/strong&gt;, which works out to be [|-1 -3 1 0 1&amp;gt;, |6 -2 0 -1 0&amp;gt;, |2 -2 2 0 -1&amp;gt;]. If we then evaluate the product &lt;strong&gt;P*N&lt;/strong&gt; we get the matrix [|0 0&amp;gt;, |0 0&amp;gt;, |0 0&amp;gt;], meaning that all of these intervals map to the unison tmonzo. This confirms that the kernel of porcupine does indeed lie in the null module of &lt;strong&gt;P&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The Dual Transformation&lt;/strong&gt;&lt;br /&gt;
To explore the dual transformation implied by &lt;strong&gt;P&lt;/strong&gt;, we'll look at the tval matrix [&amp;lt;7 1|, &amp;lt;15 2|], where again the bras signify that the tvals represent matrix rows. The first tval maps the first generator (for which 2/1 is a &lt;a class="wiki_link" href="/Transversal%20generators"&gt;transversal&lt;/a&gt;) to 7 steps and the second generator (for which 10/9 is a transversal) to 1 step, and similarly with the second tval. If we call this matrix &lt;strong&gt;V&lt;/strong&gt;, then the result of &lt;strong&gt;V*P&lt;/strong&gt; is the matrix&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
can be embedded into an r-dimensional vector space or Z-module can be embedded into a vector space or&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&amp;lt; 7 11 16 20 24|]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-family: 'Courier New',Courier,monospace;"&gt;[&amp;lt;15 24 35 42 52|]&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a class="wiki_link" href="/Regular%20Temperaments"&gt;regular temperament&lt;/a&gt; can be represented&lt;/body&gt;&lt;/html&gt;</pre></div>
for which the rows are the patent vals for &lt;a class="wiki_link" href="/7-EDO"&gt;7-EDO&lt;/a&gt; and &lt;a class="wiki_link" href="/15-EDO"&gt;15-EDO&lt;/a&gt;, respectively. Since the dual transformation is injective, these vals can be interpreted as the full-limit vals which are implied by the &amp;lt;7 1| and &amp;lt;15 2| tvals. Additionally, since the image of the dual transformation is the set of vals supporting porcupine, and since the above two vals are linearly independent, the resulting matrix &lt;strong&gt;V*P&lt;/strong&gt; is another valid mapping matrix for porcupine. We can confirm this by putting the matrix back into normal val list form and getting [&amp;lt;1 2 3 2 4|, &amp;lt;0 -3 -5 6 -4|] as a result again.&lt;/body&gt;&lt;/html&gt;</pre></div>