Subgroup basis matrix: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Wikispaces>genewardsmith
**Imported revision 356334468 - Original comment: **
Sintel (talk | contribs)
Fix the absolutely ridiculous notation
 
(31 intermediate revisions by 10 users not shown)
Line 1: Line 1:
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
{{Expert}}
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
A '''subgroup basis matrix''' is a matrix consisting of columns of [[monzo]]s which is a generic representation for a basis of a [[just intonation subgroup]], as its integer column spans span the subgroup. Each column represents an entry in the basis, e.g. {{monzo list| 1 0 0 0 | 0 1 0 0 | 0 0 1 0 }} represents the 2.3.5 subgroup of 2.3.5.7.  
: This revision was by author [[User:genewardsmith|genewardsmith]] and made on <tt>2012-08-04 13:05:05 UTC</tt>.<br>
: The original revision id was <tt>356334468</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>
<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">=&lt;span style="background-color: #ffffff;"&gt;Basics&lt;/span&gt;=
&lt;span style="background-color: #ffffff;"&gt;A [[Temperament Mapping Matrices (M-maps)|temperament mapping matrix]], or M-map, is a Z-module homomorphism (aka abelian group homomorphism) &lt;/span&gt;**&lt;span style="background-color: #ffffff;"&gt;T&lt;/span&gt;**&lt;span style="background-color: #ffffff;"&gt;: J → K from the free Z-module (abelian group) J of JI ratios to a new free Z-module K, where K then comes to represent tempered intervals, that is to say, intervals of an [[abstract regular temperament]]. We can also consider Z-module homomorphisms **S:** J* → L*, where J* is the Z-module of linear functionals (elements of Hom(J, Z)) on J, and where we map directly from J* to another Z-module of linear functionals L*; this Z-module is unrelated to K above. A bit of analysis will reveal that these homomorphisms restrict vals to [[xenharmonic/Smonzos and Svals|svals]] on a certain subgroup, and that the Z-module L which the elements of L* act on are [[xenharmonic/Smonzos and Svals|smonzos]]. Hence, since these new homomorphisms can also be represented by integer matrices, we will call such matrices **subgroup mapping matrices**, or "val-maps" or **V-maps** when context demands they be distinguished from their temperamental counterparts, the [[Temperament Mapping Matrices (M-maps)|M-maps]].&lt;/span&gt;


&lt;span style="background-color: #ffffff;"&gt;If we use the convention that row matrices represent vals and column matrices represent monzos, then a matrix V is said to be a mapping matrix for a subgroup G of a JI module J if and only if the column module of V spans G and if V is of full column rank. Note that, unlike with M-maps, we drop the restriction that G must be saturated, so that we specifically allow for subgroups with prime powers and the like.&lt;/span&gt;
Subgroup basis matrices are dual to [[temperament mapping matrix|temperament mapping matrices]]. Temperament mapping matrices are matrices that represent [[regular temperament]]s; they are {{w|linear map|linear maps}} that send monzos to [[tempered monzos and vals|tempered monzos]]. The integer row span of any mapping matrix is the set of all [[vals and tuning space|vals]] that [[support]] the temperament, which form a sublattice within the lattice of vals. Subgroup basis matrices are also linear maps, but they take [[subgroup monzos and vals|subgroup monzos]] and map them to regular monzos on the parent JI group. And, dual to temperament mapping matrices, subgroup basis matrices can also be left-multiplied by vals and thus thought of as linear maps or {{w|group homomorphism|group homomorphisms}} on vals. They send vals to subgroup vals on the basis represented by the matrix, sometimes called ''restricting'' (or more rarely, ''co-tempering'') the vals. These are dual to how temperament mapping matrices send [[tempered monzos and vals|tempered vals]] back to regular vals. Note the duality here – subgroup vals are a ''{{w|quotient group}}'' of regular vals, whereas subgroup monzos are a ''subgroup'' of regular monzos.


&lt;span style="background-color: #ffffff;"&gt;The column module of any subgroup mapping matrix is the submodule of J corresponding to the subgroup G. The row module of any subgroup mapping matrix V is the module of &lt;/span&gt;[[xenharmonic/Smonzos and Svals|svals]] which take coefficients representing, in order, the mappings for the intervals specified by the columns of V. &lt;span style="background-color: #ffffff;"&gt;Note that, much like with M-maps, there is not a unique mapping matrix for any subgroup: any matrix V of full-column rank which has columns that form a basis for G will also send vals to svals on that subgroup, but the coefficients of the svals will change to reflect the basis of V.&lt;/span&gt;
Since the kernel of any temperament is a subgroup of JI, subgroup basis matrices can thus be used to represent kernels. They can also be used to compute the subgroup restriction of a val or mapping matrix to a smaller subgroup.


Of note is that, much like temperament homomorphisms, these new subgroup homomorphisms also have a kernel, but this kernel is now a subspace of vals rather than monzos. For any V-map V and associated subgroup G defined by the columns of V, the kernel of V consists of those vals tempering out G. These vals have the property that, for any val k in the kernel and any other val v, (k+v)∙V = k∙V + v∙V = 0 + v∙V = v∙V. In other words, any two vals differing by an element in the left null module will restrict to the same sval. Rather than saying that these null vals are "tempered out," we instead say that they are **restricted away**, as their subgroup restriction under V is the zero sval.
== Mathematical definition ==
As a preliminary, a temperament mapping matrix represents some particular basis of a temperament. In mathematical terms, it represents a group homomorphism '''T''': ''J'' → ''K'' from the {{w|free abelian group}} ''J'' of JI ratios to a group of tempered intervals, which is isomorphic as a group to <math>\mathbb Z^n</math>. Using the usual convention, we have that column vectors are monzos and row vectors are vals, so that the rows of these matrices are vals, and typically we will have more rows than columns. The integer row span of these matrices represent all the vals which support the temperament; typically we require the matrix to not be [[contorted]] (meaning the subgroup of supporting vals is [[saturated]]) and of full row rank (i.e. it is {{w|surjective function|surjective}}).


As a final note, we can easily see if two V-maps represent the same subgroup by checking to see if they form the same [[Normal lists|normal interval list]], or if they have the same Hermite normal form.
We can similarly look at the matrices formed by monzos, in which the column vectors are monzos, which we call a '''subgroup basis matrix'''. In mathematical terms, these represent group homomorphisms '''S''': ''G'' → ''J'', where ''G'' is some subgroup of ''J'', being injected back into the parent JI group ''J''. We can view this matrix as mapping the subgroup monzos back into the parent basis, and thus translating the coordinate system from the subgroup basis to the parent basis. The integer column span of these matrices represents all the monzos within the subgroup.  


=Dual Transformation=
Typically, for a matrix ''S'', with column vectors as monzos, to represent a true subgroup basis matrix, it must also be of full column rank, much like a temperament matrix must be of full row rank. Another way to look at this requirement is that it is {{w|injective function|injective}} into the parent group, dual to how we want mapping matrices to be surjective. However, we typically drop the restriction that this column span be [[saturated]], so that we can represent, for instance, the 2.9.5 subgroup, unlike with temperament mapping matrices, where unsaturated matrices have [[contorsion]] and are viewed as pathological.
Much like with temperament mapping matrices, subgroup mapping matrices also have an associated dual transformation. Since the V-map represents a linear transformation **S:** J* → L*, the associated dual transformation is **S*:** L → J. Since L is the module that the module L* of svals acts on, we can identify L with smonzos, and since J is the module of JI monzos, **S*** maps from smonzos back to monzos. As with the dual transformation on a mapping matrix sending tvals → vals, this mapping is generally injective but not surjective. No two smonzos will map to the same monzo, and the only monzos in the image of this transformation are those lying in the submodule of J denoted by G.


The main transformation of any V-map V can be applied by matrix multiplication with the V-map on the right and a matrix with vals as rows on the left. Conversely, the dual transformation of V can be applied by matrix multiplication with the V-map on the left and a matrix with smonzos as columns on the right.
Note that, much like with temperament mapping matrices, there is not a unique basis matrix corresponding to any subgroup: for instance, the two subgroup bases "3.2.5" and "2.3.5" represent the same subgroup, but will be represented by different matrices. Similarly, these two matrices will send vals to subgroup vals on the "2.3.5" and "3.2.5" bases respectively.


=Example=
We can easily see if two subgroup basis matrices represent the same subgroup by reducing them to a normal form, such as those in the [[normal lists|normal interval list]] page. The normal forms for mapping matrices can easily be transposed and used for these matrices, such as the Hermite normal form. (Note that it typically makes more sense, when converting a normal form for use on monzos, to apply the form on a "vertically flipped and then transposed" version of the matrix, and then un-flipping and un-transposing.)
Say that our JI module J is in the 7-limit, and we want to look at temperaments on the 2.9/7.5/3 subgroup. We can create the V-map by forming a matrix in which the columns are the monzo representation of these intervals:


[[math]]
The integer column span of any subgroup basis matrix is said to ''generate'' the subgroup ''G''. The integer row span of any subgroup basis matrix generates the dual subgroup of subgroup vals in which the coefficients represent, in order, the mappings for the intervals specified by the columns of ''S''.
\[ \left[ \begin{array}{rrr}
1 &amp; 0 &amp; 0\\
0 &amp; 2 &amp; -1\\
0 &amp; 0 &amp; 1\\
0 &amp; -1 &amp; 0
\end{array} \right] \]
[[math]]


We can also write this matrix notationally as follows:
== Dual transformation ==


[[math]]
We can also multiply a subgroup basis matrix with another matrix on the left, one in which the rows are vals. This gives the dual transformation of that subgroup basis. Since multiplication from the right represents a linear transformation '''S''': ''G'' → ''J'', mapping from subgroup monzos to monzos, the associated dual transformation is '''S'''*: ''J''* → ''G''*. A bit of analysis will reveal that these homomorphisms are maps which restrict vals to subgroup vals on a certain subgroup, and that the subgroup ''L'' which the elements of ''G''* act on are subgroup monzos. Put another way, subgroup vals are thus quotients of vals, similarly to how tempered monzos are quotients of monzos; we call this ''restricting'' (or sometimes ''co-tempering'') the vals.
\[ \left[ \begin{array}{rrrrrl}
| &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; \rangle\\
| &amp; 0 &amp; 2 &amp; 0 &amp; -1 &amp; \rangle\\
| &amp; 0 &amp; -1 &amp; 1 &amp; 0 &amp; \rangle
\end{array} \right] \]
[[math]]


where it's understood that the kets are representing that the rows in this matrix are really column vectors, just written as rows due to an abuse of notation. A shorthand notation of this matrix is [|1 0 0 0&gt;, |0 2 0 -1&gt;, |0 -1 1 0&gt;]. This matrix will be called **V**.
Any subgroup basis matrix also thus has a left kernel, which is typically called the ''left nullspace'' in linear algebra (note the term ''cokernel'' is slightly different, so we do not use it here). The left kernel is a subgroup of vals that temper out everything in the subgroup generated by the subgroup basis matrix. So for instance, if matrix ''S'' generates a subgroup representing the kernel for some temperament, the left nullspace represents all the vals tempering out that kernel (and thus which support the temperament).


**Subgroup Restriction**
''S'' can also represent an arbitrary subgroup of JI, such as ones with monzos we would like to play (rather than just representing the kernel for some temperament). In this situation, it is useful to view ''S'' as a map from vals to subgroup vals on ''S'''s subgroup basis. With this interpretation, ''S'' still has a left kernel of vals, which is the set of vals that are ''restricted away'' (or ''co-tempered out''), as their subgroup restriction under ''S'' is the zero subgroup val. The vals in the left kernel have the property that, for any ''V'' and any other val ''V''<sub>0</sub> in the left kernel, we have (''V'' + ''V''<sub>0</sub>)''S'' = ''VS'' + ''V''<sub>0</sub>''S'' = ''VS'' + 0 = ''VS''. ''In other words, any two vals differing by an element in the left kernel will restrict to the same subgroup val.''
To restrict a val to the subgroup defined by the V-map, we'll left-multiply **V** by a val **W**. In this case, our val **W** will be the 7-limit patent val for [[12-EDO]]:


[[math]]
== Example ==
\[ \left[ \begin{array}{rrrrrl}
Say that our JI parent group ''J'' is in the 7-limit, and we want to look at temperaments on the 2.9/7.5/3 subgroup. We can create the subgroup mapping matrix ''S'' by forming a matrix in which the columns are the monzo representation of these intervals:
| &amp; 12 &amp; 19 &amp; 28 &amp; 34 &amp; \rangle
\end{array} \right] \]
[[math]]


Multiplying **W**∙**V** yields the result
:<math>\displaystyle
S =
\begin{bmatrix}
1 & 0 & 0 \\
0 & 2 & -1 \\
0 & 0 & 1 \\
0 & -1 & 0 \\
\end{bmatrix}
</math>


[[math]]
=== Main transformation: mapping from subgroup monzos to parent group monzos ===
\[ \left[ \begin{array}{rrrrl}
| &amp; 12 &amp; 4 &amp; 9 &amp; \rangle
\end{array} \right] \]
[[math]]


which tells us that the restriction of the 12-EDO patent val to the 2.9/7.5/3 subgroup has a mapping of 12 steps for 2/1, a mapping of 4 steps for 9/7, and a mapping of 9 steps for 5/3.
''S'' can be viewed as a mapping from subgroup monzos to monzos. As an example, we will consider the matrix of subgroup monzos ''M''<sub>''G''</sub> = {{monzo list| 0 1 0 | 0 -2 1 }}, which represent 9/7 and 245/243 on the 2.9/7.5/3 subgroup ''G''.


We can also send temperament mapping matrices into the V-map. For instance, here's 7-limit sensi:
The dual transformation can be found by the multiplication ''M'' = ''SM''<sub>''G''</sub>, which yields


[[math]]
:<math>\displaystyle
\[ \left[ \begin{array}{rrrrrl}
M =
\langle &amp; 1 &amp; -1 &amp; -1 &amp; -2 &amp; |\\
\begin{bmatrix}
\langle &amp; 0 &amp; 7 &amp; 9 &amp; 13 &amp; |\\
0 & 0 \\
\end{array} \right] \]
2 & -5 \\
[[math]]
0 & 1 \\
-1 & 2 \\
\end{bmatrix}
</math>


If we call this matrix **M**, then the matrix multiplication **M∙V** gives us the following result:
The columns form the 7-limit representation of 9/7 and 245/243, respectively, in 2.3.5.7 coordinates.


[[math]]
=== Dual transformation: subgroup restriction ===
\[ \left[ \begin{array}{rrrrrl}
\langle &amp; 1 &amp; 0 &amp; 0 &amp; |\\
\langle &amp; 0 &amp; 1 &amp; 2 &amp; |\\
\end{array} \right] \]
[[math]]


This tells us that the subgroup restriction of sensi to the 2.9/7.5/3 subgroup is a new temperament mapping on the subgroup which sends 2/1 to one generator, 9/7 to the other generator, and 5/3 to two 9/7's. Additionally, since this is the multiplication of an M-map and a V-map, the resulting matrix also has the interpretation of having a set of columns representing the tmonzos that the 7-limit sensi M-map sends 2/1, 9/7, and 5/3 to, respectively.
To restrict a val to the subgroup defined by the subgroup basis matrix, we will left-multiply ''S'' by a val ''V''. In this case, our val ''V'' will be the 7-limit [[patent val]] for [[12edo]]:


We can also look at the kernel of our V-map, which yields the null module spanned by &lt;0 1 1 2|. Any vals which differ by any multiple of this null val will restrict down to the same sval. For instance, &lt;12 19 28 34| restricts to &lt;12 4 9| on the 2.9/7.5/3 subgroup, and &lt;12 19 28 34| + &lt;0 1 1 2| = &lt;12 20 29 36| also restricts down exactly to &lt;12 4 9|.
:<math>\displaystyle
V =
\begin{bmatrix}
12 & 19 & 28 & 34
\end{bmatrix}
</math>


**The Dual Transformation**
The multiplication ''V''<sub>''G''</sub> = ''VS'' yields the result
**V** implies a dual transformation mapping smonzos to monzos. As an example, we'll consider the matrix of smonzos [|0 1 0&gt;, |0 -2 1&gt;|]. If this matrix is X, then the dual transformation can be found by multiplying V∙X, which yields


[[math]]
:<math>\displaystyle
\[ \left[ \begin{array}{rrrrrrl}
V_G =
| 0 &amp; 2 &amp; 0 &amp; -1 &amp; \rangle\\
\begin{bmatrix}
| 0 &amp; -5 &amp; 1 &amp; 2 &amp; \rangle
12 & 4 & 9
\end{array} \right] \]
\end{bmatrix}
[[math]]
</math>


These monzos are the 7-limit representation of 9/7 and 245/243, respectively. Again, the "rows" here are in kets to specify that they're still supposed to be monzos and hence columns.</pre></div>
which tells us that the restriction of the 12edo patent val to the 2.9/7.5/3 subgroup is the subgroup val ''V''<sub>''G''</sub> = {{val| 12 4 9 }}, with a mapping of 12 steps for 2/1, a mapping of 4 steps for 9/7, and a mapping of 9 steps for 5/3.
<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;Subgroup Mapping Matrices (V-maps)&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;!-- ws:start:WikiTextHeadingRule:7:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc0"&gt;&lt;a name="Basics"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:7 --&gt;&lt;span style="background-color: #ffffff;"&gt;Basics&lt;/span&gt;&lt;/h1&gt;
We can also send temperament mapping matrices into the subgroup matrix. For instance, here is the matrix ''V'' for 7-limit [[sensi]]:
&lt;span style="background-color: #ffffff;"&gt;A &lt;a class="wiki_link" href="/Temperament%20Mapping%20Matrices%20%28M-maps%29"&gt;temperament mapping matrix&lt;/a&gt;, or M-map, is a Z-module homomorphism (aka abelian group homomorphism) &lt;/span&gt;&lt;strong&gt;&lt;span style="background-color: #ffffff;"&gt;T&lt;/span&gt;&lt;/strong&gt;&lt;span style="background-color: #ffffff;"&gt;: J → K from the free Z-module (abelian group) J of JI ratios to a new free Z-module K, where K then comes to represent tempered intervals, that is to say, intervals of an &lt;a class="wiki_link" href="/abstract%20regular%20temperament"&gt;abstract regular temperament&lt;/a&gt;. We can also consider Z-module homomorphisms &lt;strong&gt;S:&lt;/strong&gt; J* → L*, where J* is the Z-module of linear functionals (elements of Hom(J, Z)) on J, and where we map directly from J* to another Z-module of linear functionals L*; this Z-module is unrelated to K above. A bit of analysis will reveal that these homomorphisms restrict vals to &lt;a class="wiki_link" href="http://xenharmonic.wikispaces.com/Smonzos%20and%20Svals"&gt;svals&lt;/a&gt; on a certain subgroup, and that the Z-module L which the elements of L* act on are &lt;a class="wiki_link" href="http://xenharmonic.wikispaces.com/Smonzos%20and%20Svals"&gt;smonzos&lt;/a&gt;. Hence, since these new homomorphisms can also be represented by integer matrices, we will call such matrices &lt;strong&gt;subgroup mapping matrices&lt;/strong&gt;, or &amp;quot;val-maps&amp;quot; or &lt;strong&gt;V-maps&lt;/strong&gt; when context demands they be distinguished from their temperamental counterparts, the &lt;a class="wiki_link" href="/Temperament%20Mapping%20Matrices%20%28M-maps%29"&gt;M-maps&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
 
&lt;br /&gt;
:<math>\displaystyle
&lt;span style="background-color: #ffffff;"&gt;If we use the convention that row matrices represent vals and column matrices represent monzos, then a matrix V is said to be a mapping matrix for a subgroup G of a JI module J if and only if the column module of V spans G and if V is of full column rank. Note that, unlike with M-maps, we drop the restriction that G must be saturated, so that we specifically allow for subgroups with prime powers and the like.&lt;/span&gt;&lt;br /&gt;
V =
&lt;br /&gt;
\begin{bmatrix}
&lt;span style="background-color: #ffffff;"&gt;The column module of any subgroup mapping matrix is the submodule of J corresponding to the subgroup G. The row module of any subgroup mapping matrix V is the module of &lt;/span&gt;&lt;a class="wiki_link" href="http://xenharmonic.wikispaces.com/Smonzos%20and%20Svals"&gt;svals&lt;/a&gt; which take coefficients representing, in order, the mappings for the intervals specified by the columns of V. &lt;span style="background-color: #ffffff;"&gt;Note that, much like with M-maps, there is not a unique mapping matrix for any subgroup: any matrix V of full-column rank which has columns that form a basis for G will also send vals to svals on that subgroup, but the coefficients of the svals will change to reflect the basis of V.&lt;/span&gt;&lt;br /&gt;
1 & -1 & -1 & -2 \\
&lt;br /&gt;
0 & 7 & 9 & 13 \\
Of note is that, much like temperament homomorphisms, these new subgroup homomorphisms also have a kernel, but this kernel is now a subspace of vals rather than monzos. For any V-map V and associated subgroup G defined by the columns of V, the kernel of V consists of those vals tempering out G. These vals have the property that, for any val k in the kernel and any other val v, (k+v)∙V = k∙V + v∙V = 0 + v∙V = v∙V. In other words, any two vals differing by an element in the left null module will restrict to the same sval. Rather than saying that these null vals are &amp;quot;tempered out,&amp;quot; we instead say that they are &lt;strong&gt;restricted away&lt;/strong&gt;, as their subgroup restriction under V is the zero sval.&lt;br /&gt;
\end{bmatrix}
&lt;br /&gt;
</math>
As a final note, we can easily see if two V-maps represent the same subgroup by checking to see if they form the same &lt;a class="wiki_link" href="/Normal%20lists"&gt;normal interval list&lt;/a&gt;, or if they have the same Hermite normal form.&lt;br /&gt;
 
&lt;br /&gt;
The matrix multiplication ''V''<sub>''G''</sub> = ''VS'' gives us the following result:
&lt;!-- ws:start:WikiTextHeadingRule:9:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc1"&gt;&lt;a name="Dual Transformation"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:9 --&gt;Dual Transformation&lt;/h1&gt;
 
Much like with temperament mapping matrices, subgroup mapping matrices also have an associated dual transformation. Since the V-map represents a linear transformation &lt;strong&gt;S:&lt;/strong&gt; J* → L*, the associated dual transformation is &lt;strong&gt;S*:&lt;/strong&gt; L → J. Since L is the module that the module L* of svals acts on, we can identify L with smonzos, and since J is the module of JI monzos, &lt;strong&gt;S&lt;/strong&gt;* maps from smonzos back to monzos. As with the dual transformation on a mapping matrix sending tvals → vals, this mapping is generally injective but not surjective. No two smonzos will map to the same monzo, and the only monzos in the image of this transformation are those lying in the submodule of J denoted by G.&lt;br /&gt;
:<math>\displaystyle
&lt;br /&gt;
V_G =
The main transformation of any V-map V can be applied by matrix multiplication with the V-map on the right and a matrix with vals as rows on the left. Conversely, the dual transformation of V can be applied by matrix multiplication with the V-map on the left and a matrix with smonzos as columns on the right.&lt;br /&gt;
\begin{bmatrix}
&lt;br /&gt;
1 & 0 & 0 \\
&lt;!-- ws:start:WikiTextHeadingRule:11:&amp;lt;h1&amp;gt; --&gt;&lt;h1 id="toc2"&gt;&lt;a name="Example"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:11 --&gt;Example&lt;/h1&gt;
0 & 1 & 2 \\
Say that our JI module J is in the 7-limit, and we want to look at temperaments on the 2.9/7.5/3 subgroup. We can create the V-map by forming a matrix in which the columns are the monzo representation of these intervals:&lt;br /&gt;
\end{bmatrix}
&lt;br /&gt;
</math>
&lt;!-- ws:start:WikiTextMathRule:0:
 
[[math]]&amp;lt;br/&amp;gt;
This new matrix tells us that the subgroup restriction of sensi to the 2.9/7.5/3 subgroup is a new temperament mapping on the subgroup which sends 2/1 to one generator, 9/7 to the other generator, and 5/3 to two 9/7's. That is, it is just the subgroup restriction of each row independently.
\[ \left[ \begin{array}{rrr}&amp;lt;br /&amp;gt;
 
1 &amp;amp; 0 &amp;amp; 0\\&amp;lt;br /&amp;gt;
We can also look at the left kernel of our subgroup matrix, which yields the null module spanned by {{val| 0 1 1 2 }}. Any vals which differ by any multiple of this null val will restrict down to the same subgroup val. For instance, {{val| 12 19 28 34 }} restricts to {{val| 12 4 9 }} on the 2.9/7.5/3 subgroup, and {{val| 12 19 28 34 }} + {{val| 0 1 1 2 }} = {{val| 12 20 29 36 }} also restricts down exactly to {{val| 12 4 9 }}.
0 &amp;amp; 2 &amp;amp; -1\\&amp;lt;br /&amp;gt;
 
0 &amp;amp; 0 &amp;amp; 1\\&amp;lt;br /&amp;gt;
[[Category:Regular temperament theory]]
0 &amp;amp; -1 &amp;amp; 0&amp;lt;br /&amp;gt;
[[Category:Math]]
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
[[Category:Subgroup]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrr}
[[Category:Mapping]]
1 &amp; 0 &amp; 0\\
0 &amp; 2 &amp; -1\\
0 &amp; 0 &amp; 1\\
0 &amp; -1 &amp; 0
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:0 --&gt;&lt;br /&gt;
&lt;br /&gt;
We can also write this matrix notationally as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextMathRule:1:
[[math]]&amp;lt;br/&amp;gt;
\[ \left[ \begin{array}{rrrrrl}&amp;lt;br /&amp;gt;
| &amp;amp; 1 &amp;amp; 0 &amp;amp; 0 &amp;amp; 0 &amp;amp; \rangle\\&amp;lt;br /&amp;gt;
| &amp;amp; 0 &amp;amp; 2 &amp;amp; 0 &amp;amp; -1 &amp;amp; \rangle\\&amp;lt;br /&amp;gt;
| &amp;amp; 0 &amp;amp; -1 &amp;amp; 1 &amp;amp; 0 &amp;amp; \rangle&amp;lt;br /&amp;gt;
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrrrrl}
| &amp; 1 &amp; 0 &amp; 0 &amp; 0 &amp; \rangle\\
| &amp; 0 &amp; 2 &amp; 0 &amp; -1 &amp; \rangle\\
| &amp; 0 &amp; -1 &amp; 1 &amp; 0 &amp; \rangle
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:1 --&gt;&lt;br /&gt;
&lt;br /&gt;
where it's understood that the kets are representing that the rows in this matrix are really column vectors, just written as rows due to an abuse of notation. A shorthand notation of this matrix is [|1 0 0 0&amp;gt;, |0 2 0 -1&amp;gt;, |0 -1 1 0&amp;gt;]. This matrix will be called &lt;strong&gt;V&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Subgroup Restriction&lt;/strong&gt;&lt;br /&gt;
To restrict a val to the subgroup defined by the V-map, we'll left-multiply &lt;strong&gt;V&lt;/strong&gt; by a val &lt;strong&gt;W&lt;/strong&gt;. In this case, our val &lt;strong&gt;W&lt;/strong&gt; will be the 7-limit patent val for &lt;a class="wiki_link" href="/12-EDO"&gt;12-EDO&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextMathRule:2:
[[math]]&amp;lt;br/&amp;gt;
\[ \left[ \begin{array}{rrrrrl}&amp;lt;br /&amp;gt;
| &amp;amp; 12 &amp;amp; 19 &amp;amp; 28 &amp;amp; 34 &amp;amp; \rangle&amp;lt;br /&amp;gt;
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrrrrl}
| &amp; 12 &amp; 19 &amp; 28 &amp; 34 &amp; \rangle
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:2 --&gt;&lt;br /&gt;
&lt;br /&gt;
Multiplying &lt;strong&gt;W&lt;/strong&gt;∙&lt;strong&gt;V&lt;/strong&gt; yields the result&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextMathRule:3:
[[math]]&amp;lt;br/&amp;gt;
\[ \left[ \begin{array}{rrrrl}&amp;lt;br /&amp;gt;
| &amp;amp; 12 &amp;amp; 4 &amp;amp; 9 &amp;amp; \rangle&amp;lt;br /&amp;gt;
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrrrl}
| &amp; 12 &amp; 4 &amp; 9 &amp; \rangle
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:3 --&gt;&lt;br /&gt;
&lt;br /&gt;
which tells us that the restriction of the 12-EDO patent val to the 2.9/7.5/3 subgroup has a mapping of 12 steps for 2/1, a mapping of 4 steps for 9/7, and a mapping of 9 steps for 5/3.&lt;br /&gt;
&lt;br /&gt;
We can also send temperament mapping matrices into the V-map. For instance, here's 7-limit sensi:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextMathRule:4:
[[math]]&amp;lt;br/&amp;gt;
\[ \left[ \begin{array}{rrrrrl}&amp;lt;br /&amp;gt;
\langle &amp;amp; 1 &amp;amp; -1 &amp;amp; -1 &amp;amp; -2 &amp;amp; |\\&amp;lt;br /&amp;gt;
\langle &amp;amp; 0 &amp;amp; 7 &amp;amp; 9 &amp;amp; 13 &amp;amp; |\\&amp;lt;br /&amp;gt;
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrrrrl}
\langle &amp; 1 &amp; -1 &amp; -1 &amp; -2 &amp; |\\
\langle &amp; 0 &amp; 7 &amp; 9 &amp; 13 &amp; |\\
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:4 --&gt;&lt;br /&gt;
&lt;br /&gt;
If we call this matrix &lt;strong&gt;M&lt;/strong&gt;, then the matrix multiplication &lt;strong&gt;M∙V&lt;/strong&gt; gives us the following result:&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextMathRule:5:
[[math]]&amp;lt;br/&amp;gt;
\[ \left[ \begin{array}{rrrrrl}&amp;lt;br /&amp;gt;
\langle &amp;amp; 1 &amp;amp; 0 &amp;amp; 0 &amp;amp; |\\&amp;lt;br /&amp;gt;
\langle &amp;amp; 0 &amp;amp; 1 &amp;amp; 2 &amp;amp; |\\&amp;lt;br /&amp;gt;
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrrrrl}
\langle &amp; 1 &amp; 0 &amp; 0 &amp; |\\
\langle &amp; 0 &amp; 1 &amp; 2 &amp; |\\
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:5 --&gt;&lt;br /&gt;
&lt;br /&gt;
This tells us that the subgroup restriction of sensi to the 2.9/7.5/3 subgroup is a new temperament mapping on the subgroup which sends 2/1 to one generator, 9/7 to the other generator, and 5/3 to two 9/7's. Additionally, since this is the multiplication of an M-map and a V-map, the resulting matrix also has the interpretation of having a set of columns representing the tmonzos that the 7-limit sensi M-map sends 2/1, 9/7, and 5/3 to, respectively.&lt;br /&gt;
&lt;br /&gt;
We can also look at the kernel of our V-map, which yields the null module spanned by &amp;lt;0 1 1 2|. Any vals which differ by any multiple of this null val will restrict down to the same sval. For instance, &amp;lt;12 19 28 34| restricts to &amp;lt;12 4 9| on the 2.9/7.5/3 subgroup, and &amp;lt;12 19 28 34| + &amp;lt;0 1 1 2| = &amp;lt;12 20 29 36| also restricts down exactly to &amp;lt;12 4 9|.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;The Dual Transformation&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;V&lt;/strong&gt; implies a dual transformation mapping smonzos to monzos. As an example, we'll consider the matrix of smonzos [|0 1 0&amp;gt;, |0 -2 1&amp;gt;|]. If this matrix is X, then the dual transformation can be found by multiplying V∙X, which yields&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextMathRule:6:
[[math]]&amp;lt;br/&amp;gt;
\[ \left[ \begin{array}{rrrrrrl}&amp;lt;br /&amp;gt;
| 0 &amp;amp; 2 &amp;amp; 0 &amp;amp; -1 &amp;amp; \rangle\\&amp;lt;br /&amp;gt;
| 0 &amp;amp; -5 &amp;amp; 1 &amp;amp; 2 &amp;amp; \rangle&amp;lt;br /&amp;gt;
\end{array} \right] \]&amp;lt;br/&amp;gt;[[math]]
--&gt;&lt;script type="math/tex"&gt;\[ \left[ \begin{array}{rrrrrrl}
| 0 &amp; 2 &amp; 0 &amp; -1 &amp; \rangle\\
| 0 &amp; -5 &amp; 1 &amp; 2 &amp; \rangle
\end{array} \right] \]&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:6 --&gt;&lt;br /&gt;
&lt;br /&gt;
These monzos are the 7-limit representation of 9/7 and 245/243, respectively. Again, the &amp;quot;rows&amp;quot; here are in kets to specify that they're still supposed to be monzos and hence columns.&lt;/body&gt;&lt;/html&gt;</pre></div>

Latest revision as of 15:00, 14 June 2025

This is an expert page. It is written to allow experienced readers to learn more about the advanced elements of the topic.

A subgroup basis matrix is a matrix consisting of columns of monzos which is a generic representation for a basis of a just intonation subgroup, as its integer column spans span the subgroup. Each column represents an entry in the basis, e.g. [[1 0 0 0, [0 1 0 0, [0 0 1 0] represents the 2.3.5 subgroup of 2.3.5.7.

Subgroup basis matrices are dual to temperament mapping matrices. Temperament mapping matrices are matrices that represent regular temperaments; they are linear maps that send monzos to tempered monzos. The integer row span of any mapping matrix is the set of all vals that support the temperament, which form a sublattice within the lattice of vals. Subgroup basis matrices are also linear maps, but they take subgroup monzos and map them to regular monzos on the parent JI group. And, dual to temperament mapping matrices, subgroup basis matrices can also be left-multiplied by vals and thus thought of as linear maps or group homomorphisms on vals. They send vals to subgroup vals on the basis represented by the matrix, sometimes called restricting (or more rarely, co-tempering) the vals. These are dual to how temperament mapping matrices send tempered vals back to regular vals. Note the duality here – subgroup vals are a quotient group of regular vals, whereas subgroup monzos are a subgroup of regular monzos.

Since the kernel of any temperament is a subgroup of JI, subgroup basis matrices can thus be used to represent kernels. They can also be used to compute the subgroup restriction of a val or mapping matrix to a smaller subgroup.

Mathematical definition

As a preliminary, a temperament mapping matrix represents some particular basis of a temperament. In mathematical terms, it represents a group homomorphism T: JK from the free abelian group J of JI ratios to a group of tempered intervals, which is isomorphic as a group to [math]\displaystyle{ \mathbb Z^n }[/math]. Using the usual convention, we have that column vectors are monzos and row vectors are vals, so that the rows of these matrices are vals, and typically we will have more rows than columns. The integer row span of these matrices represent all the vals which support the temperament; typically we require the matrix to not be contorted (meaning the subgroup of supporting vals is saturated) and of full row rank (i.e. it is surjective).

We can similarly look at the matrices formed by monzos, in which the column vectors are monzos, which we call a subgroup basis matrix. In mathematical terms, these represent group homomorphisms S: GJ, where G is some subgroup of J, being injected back into the parent JI group J. We can view this matrix as mapping the subgroup monzos back into the parent basis, and thus translating the coordinate system from the subgroup basis to the parent basis. The integer column span of these matrices represents all the monzos within the subgroup.

Typically, for a matrix S, with column vectors as monzos, to represent a true subgroup basis matrix, it must also be of full column rank, much like a temperament matrix must be of full row rank. Another way to look at this requirement is that it is injective into the parent group, dual to how we want mapping matrices to be surjective. However, we typically drop the restriction that this column span be saturated, so that we can represent, for instance, the 2.9.5 subgroup, unlike with temperament mapping matrices, where unsaturated matrices have contorsion and are viewed as pathological.

Note that, much like with temperament mapping matrices, there is not a unique basis matrix corresponding to any subgroup: for instance, the two subgroup bases "3.2.5" and "2.3.5" represent the same subgroup, but will be represented by different matrices. Similarly, these two matrices will send vals to subgroup vals on the "2.3.5" and "3.2.5" bases respectively.

We can easily see if two subgroup basis matrices represent the same subgroup by reducing them to a normal form, such as those in the normal interval list page. The normal forms for mapping matrices can easily be transposed and used for these matrices, such as the Hermite normal form. (Note that it typically makes more sense, when converting a normal form for use on monzos, to apply the form on a "vertically flipped and then transposed" version of the matrix, and then un-flipping and un-transposing.)

The integer column span of any subgroup basis matrix is said to generate the subgroup G. The integer row span of any subgroup basis matrix generates the dual subgroup of subgroup vals in which the coefficients represent, in order, the mappings for the intervals specified by the columns of S.

Dual transformation

We can also multiply a subgroup basis matrix with another matrix on the left, one in which the rows are vals. This gives the dual transformation of that subgroup basis. Since multiplication from the right represents a linear transformation S: GJ, mapping from subgroup monzos to monzos, the associated dual transformation is S*: J* → G*. A bit of analysis will reveal that these homomorphisms are maps which restrict vals to subgroup vals on a certain subgroup, and that the subgroup L which the elements of G* act on are subgroup monzos. Put another way, subgroup vals are thus quotients of vals, similarly to how tempered monzos are quotients of monzos; we call this restricting (or sometimes co-tempering) the vals.

Any subgroup basis matrix also thus has a left kernel, which is typically called the left nullspace in linear algebra (note the term cokernel is slightly different, so we do not use it here). The left kernel is a subgroup of vals that temper out everything in the subgroup generated by the subgroup basis matrix. So for instance, if matrix S generates a subgroup representing the kernel for some temperament, the left nullspace represents all the vals tempering out that kernel (and thus which support the temperament).

S can also represent an arbitrary subgroup of JI, such as ones with monzos we would like to play (rather than just representing the kernel for some temperament). In this situation, it is useful to view S as a map from vals to subgroup vals on S's subgroup basis. With this interpretation, S still has a left kernel of vals, which is the set of vals that are restricted away (or co-tempered out), as their subgroup restriction under S is the zero subgroup val. The vals in the left kernel have the property that, for any V and any other val V0 in the left kernel, we have (V + V0)S = VS + V0S = VS + 0 = VS. In other words, any two vals differing by an element in the left kernel will restrict to the same subgroup val.

Example

Say that our JI parent group J is in the 7-limit, and we want to look at temperaments on the 2.9/7.5/3 subgroup. We can create the subgroup mapping matrix S by forming a matrix in which the columns are the monzo representation of these intervals:

[math]\displaystyle{ \displaystyle S = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & -1 \\ 0 & 0 & 1 \\ 0 & -1 & 0 \\ \end{bmatrix} }[/math]

Main transformation: mapping from subgroup monzos to parent group monzos

S can be viewed as a mapping from subgroup monzos to monzos. As an example, we will consider the matrix of subgroup monzos MG = [[0 1 0, [0 -2 1], which represent 9/7 and 245/243 on the 2.9/7.5/3 subgroup G.

The dual transformation can be found by the multiplication M = SMG, which yields

[math]\displaystyle{ \displaystyle M = \begin{bmatrix} 0 & 0 \\ 2 & -5 \\ 0 & 1 \\ -1 & 2 \\ \end{bmatrix} }[/math]

The columns form the 7-limit representation of 9/7 and 245/243, respectively, in 2.3.5.7 coordinates.

Dual transformation: subgroup restriction

To restrict a val to the subgroup defined by the subgroup basis matrix, we will left-multiply S by a val V. In this case, our val V will be the 7-limit patent val for 12edo:

[math]\displaystyle{ \displaystyle V = \begin{bmatrix} 12 & 19 & 28 & 34 \end{bmatrix} }[/math]

The multiplication VG = VS yields the result

[math]\displaystyle{ \displaystyle V_G = \begin{bmatrix} 12 & 4 & 9 \end{bmatrix} }[/math]

which tells us that the restriction of the 12edo patent val to the 2.9/7.5/3 subgroup is the subgroup val VG = 12 4 9], with a mapping of 12 steps for 2/1, a mapping of 4 steps for 9/7, and a mapping of 9 steps for 5/3.

We can also send temperament mapping matrices into the subgroup matrix. For instance, here is the matrix V for 7-limit sensi:

[math]\displaystyle{ \displaystyle V = \begin{bmatrix} 1 & -1 & -1 & -2 \\ 0 & 7 & 9 & 13 \\ \end{bmatrix} }[/math]

The matrix multiplication VG = VS gives us the following result:

[math]\displaystyle{ \displaystyle V_G = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 2 \\ \end{bmatrix} }[/math]

This new matrix tells us that the subgroup restriction of sensi to the 2.9/7.5/3 subgroup is a new temperament mapping on the subgroup which sends 2/1 to one generator, 9/7 to the other generator, and 5/3 to two 9/7's. That is, it is just the subgroup restriction of each row independently.

We can also look at the left kernel of our subgroup matrix, which yields the null module spanned by 0 1 1 2]. Any vals which differ by any multiple of this null val will restrict down to the same subgroup val. For instance, 12 19 28 34] restricts to 12 4 9] on the 2.9/7.5/3 subgroup, and 12 19 28 34] + 0 1 1 2] = 12 20 29 36] also restricts down exactly to 12 4 9].