Target tuning: Difference between revisions

Wikispaces>genewardsmith
**Imported revision 230119240 - Original comment: **
Wikispaces>genewardsmith
**Imported revision 230119444 - 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:genewardsmith|genewardsmith]] and made on <tt>2011-05-19 16:20:53 UTC</tt>.<br>
: This revision was by author [[User:genewardsmith|genewardsmith]] and made on <tt>2011-05-19 16:21:32 UTC</tt>.<br>
: The original revision id was <tt>230119240</tt>.<br>
: The original revision id was <tt>230119444</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>
Line 16: Line 16:
Starting with the same assumptions as with least squares tuning, minimax tuning works similarly, except instead of minimizing the squares of the errors, we minimize max_i |T(q_i) - log2(q_i)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a [[http://en.wikipedia.org/wiki/Linear_programming|linear programming]] problem, but another approach leads as before to a projection matrix with fractional monzo rows.
Starting with the same assumptions as with least squares tuning, minimax tuning works similarly, except instead of minimizing the squares of the errors, we minimize max_i |T(q_i) - log2(q_i)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a [[http://en.wikipedia.org/wiki/Linear_programming|linear programming]] problem, but another approach leads as before to a projection matrix with fractional monzo rows.


For a rank r temperament, we can form a list of candidate sets of eigenmonzos by taking r-1 elements from the list of target intervals, and adding 2 to the set, leading to an r element set. To avoid duplications and sets with rank less than r, we can take the [[normal lists|normal interval list]] defined by each of these r element sets, discarding any with less than r elements. This means we are compiling a list of rank r [[just intonation subgroups]], which are [[Egenmonzo subgroup|eigenmonzo subgroups]] for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the r generators of the subgroup as eigenmonzos and a basis for the commas as left eigenvectors with eigenvalue zero. These projection matrices define tunings, and the tuning, if unique, with the least maximum error is the minimax tuning. However, this tuning may not be unique, in which case we may break the tie by choosing the tuning, among the set of least maximum error tunings, with the smallest sum of errors squared.
For a rank r temperament, we can form a list of candidate sets of eigenmonzos by taking r-1 elements from the list of target intervals, and adding 2 to the set, leading to an r element set. To avoid duplications and sets with rank less than r, we can take the [[normal lists|normal interval list]] defined by each of these r element sets, discarding any with less than r elements. This means we are compiling a list of rank r [[just intonation subgroups]], which are [[Eigenmonzo subgroup|eigenmonzo subgroups]] for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the r generators of the subgroup as eigenmonzos and a basis for the commas as left eigenvectors with eigenvalue zero. These projection matrices define tunings, and the tuning, if unique, with the least maximum error is the minimax tuning. However, this tuning may not be unique, in which case we may break the tie by choosing the tuning, among the set of least maximum error tunings, with the smallest sum of errors squared.


==Example==
==Example==
Line 43: Line 43:
Starting with the same assumptions as with least squares tuning, minimax tuning works similarly, except instead of minimizing the squares of the errors, we minimize max_i |T(q_i) - log2(q_i)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a &lt;a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Linear_programming" rel="nofollow"&gt;linear programming&lt;/a&gt; problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;br /&gt;
Starting with the same assumptions as with least squares tuning, minimax tuning works similarly, except instead of minimizing the squares of the errors, we minimize max_i |T(q_i) - log2(q_i)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a &lt;a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Linear_programming" rel="nofollow"&gt;linear programming&lt;/a&gt; problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For a rank r temperament, we can form a list of candidate sets of eigenmonzos by taking r-1 elements from the list of target intervals, and adding 2 to the set, leading to an r element set. To avoid duplications and sets with rank less than r, we can take the &lt;a class="wiki_link" href="/normal%20lists"&gt;normal interval list&lt;/a&gt; defined by each of these r element sets, discarding any with less than r elements. This means we are compiling a list of rank r &lt;a class="wiki_link" href="/just%20intonation%20subgroups"&gt;just intonation subgroups&lt;/a&gt;, which are &lt;a class="wiki_link" href="/Egenmonzo%20subgroup"&gt;eigenmonzo subgroups&lt;/a&gt; for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the r generators of the subgroup as eigenmonzos and a basis for the commas as left eigenvectors with eigenvalue zero. These projection matrices define tunings, and the tuning, if unique, with the least maximum error is the minimax tuning. However, this tuning may not be unique, in which case we may break the tie by choosing the tuning, among the set of least maximum error tunings, with the smallest sum of errors squared.&lt;br /&gt;
For a rank r temperament, we can form a list of candidate sets of eigenmonzos by taking r-1 elements from the list of target intervals, and adding 2 to the set, leading to an r element set. To avoid duplications and sets with rank less than r, we can take the &lt;a class="wiki_link" href="/normal%20lists"&gt;normal interval list&lt;/a&gt; defined by each of these r element sets, discarding any with less than r elements. This means we are compiling a list of rank r &lt;a class="wiki_link" href="/just%20intonation%20subgroups"&gt;just intonation subgroups&lt;/a&gt;, which are &lt;a class="wiki_link" href="/Eigenmonzo%20subgroup"&gt;eigenmonzo subgroups&lt;/a&gt; for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the r generators of the subgroup as eigenmonzos and a basis for the commas as left eigenvectors with eigenvalue zero. These projection matrices define tunings, and the tuning, if unique, with the least maximum error is the minimax tuning. However, this tuning may not be unique, in which case we may break the tie by choosing the tuning, among the set of least maximum error tunings, with the smallest sum of errors squared.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextHeadingRule:4:&amp;lt;h2&amp;gt; --&gt;&lt;h2 id="toc2"&gt;&lt;a name="x-Example"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:4 --&gt;Example&lt;/h2&gt;
&lt;!-- ws:start:WikiTextHeadingRule:4:&amp;lt;h2&amp;gt; --&gt;&lt;h2 id="toc2"&gt;&lt;a name="x-Example"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:4 --&gt;Example&lt;/h2&gt;