<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.xen.wiki/index.php?action=history&amp;feed=atom&amp;title=Target_tuning</id>
	<title>Target tuning - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.xen.wiki/index.php?action=history&amp;feed=atom&amp;title=Target_tuning"/>
	<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;action=history"/>
	<updated>2026-06-15T20:51:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=226419&amp;oldid=prev</id>
		<title>FloraC: + link to my (half-usable) script</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=226419&amp;oldid=prev"/>
		<updated>2026-03-19T17:42:04Z</updated>

		<summary type="html">&lt;p&gt;+ link to my (half-usable) script&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:42, 19 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot;&gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 44:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting from the same six intervals of the 5-odd-limit diamond and adding 2, we find after computing the normal interval lists that the three subgroups are [2,&amp;amp;nbsp;3], [2,&amp;amp;nbsp;5], and [2,&amp;amp;nbsp;5/3]. Computing the projection matrix and from thence the tuning in each case, we find that the minimax tuning is [{{monzo| 1 0 0 }}, {{monzo| 1 0 1/4 }}, {{monzo| 0 0 1 }}], the projection matrix for 1/4-comma meantone.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting from the same six intervals of the 5-odd-limit diamond and adding 2, we find after computing the normal interval lists that the three subgroups are [2,&amp;amp;nbsp;3], [2,&amp;amp;nbsp;5], and [2,&amp;amp;nbsp;5/3]. Computing the projection matrix and from thence the tuning in each case, we find that the minimax tuning is [{{monzo| 1 0 0 }}, {{monzo| 1 0 1/4 }}, {{monzo| 0 0 1 }}], the projection matrix for 1/4-comma meantone.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== External links ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://github.com/FloraCanou/temperament_evaluator/wiki/Target-tuning Github | &#039;&#039;Target tuning&#039;&#039; · FloraCanou/temperament_evaluator Wiki] – includes Python script to compute target tunings. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Notes ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Notes ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FloraC</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=226410&amp;oldid=prev</id>
		<title>FloraC: + general formulation (including the requested link to D&amp;D&#039;s guide). Mention minimean tuning (no contents yet)</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=226410&amp;oldid=prev"/>
		<updated>2026-03-19T09:38:18Z</updated>

		<summary type="html">&lt;p&gt;+ general formulation (including the requested link to D&amp;amp;D&amp;#039;s guide). Mention minimean tuning (no contents yet)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:38, 19 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;By a &lt;/del&gt;&#039;&#039;&#039;target tuning&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is meant a tuning &lt;/del&gt;for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A &lt;/ins&gt;&#039;&#039;&#039;target tuning&#039;&#039;&#039; for a [[regular &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;temperament|&lt;/ins&gt;temperament]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is a tuning &lt;/ins&gt;which has been optimized with respect to a set of target [[interval]]s.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tunings &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The generic formulation for any target tuning is as follows. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$$&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\begin{align}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp; \text{find} &amp;amp;&amp;amp; G \\&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp; \text{that minimizes} &amp;amp;&amp;amp; \lVert (GV - J) M_T \rVert_q \\&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp; \text{subject to} &amp;amp;&amp;amp; (GV - J)M_C = O&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\end{align}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$$&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;for a [[generator tuning map]] &#039;&#039;G&#039;&#039;, a [[temperament mapping matrix]] &#039;&#039;V&#039;&#039;, a [[just tuning map]] &#039;&#039;J&#039;&#039;, a target [[monzo]] list &#039;&#039;M&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sub&amp;gt;, a &#039;&#039;q&#039;&#039;-norm, and optionally a constrained monzo list &#039;&#039;M&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;C&#039;&#039;&amp;lt;/sub&amp;gt;. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is very similar to all-interval tunings shown in [[Optimization #General formulation]], except for the introduction of a target interval set represented by the monzo list &#039;&#039;M&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;T&#039;&#039;&amp;lt;/sub&amp;gt;, which transforms the [[error map]] on the subgroup basis elements (&#039;&#039;GV&#039;&#039; - &#039;&#039;J&#039;&#039;) to an error map on the target intervals. A more detailed explanation on this topic is provided by [[Dave Keenan &amp;amp; Douglas Blumeyer&#039;s guide to RTT/Tuning fundamentals]]. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Usually, the set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&#039;s. Below we will make all of these assumptions, and will discuss the most important target tunings, minimax, least squares, and minimean.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tuning &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining [[interval class]]es, which we may take to be [[octave reduction|octave-reduced]] intervals, expressed logarithmically in terms of [[binary logarithm]]. The least squares tuning, &amp;#039;&amp;#039;T&amp;#039;&amp;#039;, is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; ({{nowrap|&amp;#039;&amp;#039;T&amp;#039;&amp;#039;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) − log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}, where &amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; are the rational intervals of the target set.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining [[interval class]]es, which we may take to be [[octave reduction|octave-reduced]] intervals, expressed logarithmically in terms of [[binary logarithm]]. The least squares tuning, &amp;#039;&amp;#039;T&amp;#039;&amp;#039;, is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; ({{nowrap|&amp;#039;&amp;#039;T&amp;#039;&amp;#039;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) − log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}, where &amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039; are the rational intervals of the target set.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot;&gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&amp;#039;&amp;#039;r&amp;#039;&amp;#039; temperament, we can form a list of candidate sets of eigenmonzos by taking {{nowrap|&amp;#039;&amp;#039;r&amp;#039;&amp;#039; − 1}} elements from the list of target intervals, and adding 2 to the set, leading to an &amp;#039;&amp;#039;r&amp;#039;&amp;#039;-element set. To avoid duplications and sets with rank less than &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, we can take the [[normal forms|normal interval list]] defined by each of these &amp;#039;&amp;#039;r&amp;#039;&amp;#039;-element sets, discarding any with less than &amp;#039;&amp;#039;r&amp;#039;&amp;#039; elements. This means we are compiling a list of rank-&amp;#039;&amp;#039;r&amp;#039;&amp;#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &amp;#039;&amp;#039;r&amp;#039;&amp;#039; 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 discarding the bounding intervals and repeat minimax on the rest of the intervals until a unique tuning is found. This is the same tuning achieved by minimizing the &amp;#039;&amp;#039;p&amp;#039;&amp;#039;-norm error as &amp;#039;&amp;#039;p&amp;#039;&amp;#039; approaches infinity&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;See [[Dave Keenan &amp;amp; Douglas Blumeyer&amp;#039;s guide to RTT/Tuning computation #Tie breaking: power limit method]] for details.&amp;lt;/ref&amp;gt;&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Historically, [[Gene Ward Smith]] proposed breaking the tie by falling back to least squares tuning in the set of minimax tunings.&amp;lt;/ref&amp;gt;.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&amp;#039;&amp;#039;r&amp;#039;&amp;#039; temperament, we can form a list of candidate sets of eigenmonzos by taking {{nowrap|&amp;#039;&amp;#039;r&amp;#039;&amp;#039; − 1}} elements from the list of target intervals, and adding 2 to the set, leading to an &amp;#039;&amp;#039;r&amp;#039;&amp;#039;-element set. To avoid duplications and sets with rank less than &amp;#039;&amp;#039;r&amp;#039;&amp;#039;, we can take the [[normal forms|normal interval list]] defined by each of these &amp;#039;&amp;#039;r&amp;#039;&amp;#039;-element sets, discarding any with less than &amp;#039;&amp;#039;r&amp;#039;&amp;#039; elements. This means we are compiling a list of rank-&amp;#039;&amp;#039;r&amp;#039;&amp;#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &amp;#039;&amp;#039;r&amp;#039;&amp;#039; 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 discarding the bounding intervals and repeat minimax on the rest of the intervals until a unique tuning is found. This is the same tuning achieved by minimizing the &amp;#039;&amp;#039;p&amp;#039;&amp;#039;-norm error as &amp;#039;&amp;#039;p&amp;#039;&amp;#039; approaches infinity&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;See [[Dave Keenan &amp;amp; Douglas Blumeyer&amp;#039;s guide to RTT/Tuning computation #Tie breaking: power limit method]] for details.&amp;lt;/ref&amp;gt;&amp;lt;ref group=&amp;quot;note&amp;quot;&amp;gt;Historically, [[Gene Ward Smith]] proposed breaking the tie by falling back to least squares tuning in the set of minimax tunings.&amp;lt;/ref&amp;gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Minimean tuning ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Todo|inline=1|complete section}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FloraC</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=226348&amp;oldid=prev</id>
		<title>FloraC: Replace Gene&#039;s tie-breaking method in favor of a more reasonable one. Misc. clarification/cleanup</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=226348&amp;oldid=prev"/>
		<updated>2026-03-18T13:21:21Z</updated>

		<summary type="html">&lt;p&gt;Replace Gene&amp;#039;s tie-breaking method in favor of a more reasonable one. Misc. clarification/cleanup&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:21, 18 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;classes&lt;/del&gt;, which we may take to be octave reduced &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;to {{nowrap|0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1}}&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;where the intervals are &lt;/del&gt;expressed logarithmically in terms of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;log base two&lt;/del&gt;. The least squares tuning, &#039;&#039;T&#039;&#039;, is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; ({{nowrap|&#039;&#039;T&#039;&#039;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) − log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Note that most commonly, the target set is a [[tonality diamond]] (reduced to lowest terms and duplicates removed), since these are the intervals in a [[harmonic series]] up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the [[consonance]]s of the &#039;&#039;d&#039;&#039;-odd-limit&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;interval &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;class]]es&lt;/ins&gt;, which we may take to be &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;octave &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reduction|octave-&lt;/ins&gt;reduced&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] intervals&lt;/ins&gt;, expressed logarithmically in terms of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[binary logarithm]]&lt;/ins&gt;. The least squares tuning, &#039;&#039;T&#039;&#039;, is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; ({{nowrap|&#039;&#039;T&#039;&#039;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) − log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix &#039;&#039;&#039;R&#039;&#039;&#039; whose rows are the monzos of the target set, and a matrix &#039;&#039;&#039;U&#039;&#039;&#039; whose rows are [[val]]s spanning the temperament. From &#039;&#039;&#039;U&#039;&#039;&#039; we form the matrix &#039;&#039;&#039;V&#039;&#039;&#039; by taking the [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Normal lists&lt;/del&gt;|normal val list]] for &#039;&#039;&#039;U&#039;&#039;&#039; and removing the first (&quot;period&quot;) row. A list of [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Eigenmonzo&lt;/del&gt;|eigenmonzos (unchanged-intervals)]] {{nowrap|&#039;&#039;&#039;E&#039;&#039;&#039;&#039; {{=}} &#039;&#039;&#039;VR&#039;&#039;&#039;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;&#039;&#039;&#039;R&#039;&#039;&#039;}}, where the &amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Fractional monzos|&lt;/del&gt;projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of &#039;&#039;&#039;E&#039;&#039;&#039;, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Most commonly, the target set is a [[tonality diamond]], since these are the intervals in a [[harmonic series]] up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the [[consonance]]s of the &#039;&#039;d&#039;&#039;-odd-limit. By convention, intervals of the tonality diamond are reduced to lowest terms and have duplicates removed. If duplicates are not removed, the results are usually different. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix &#039;&#039;&#039;R&#039;&#039;&#039; whose rows are the monzos of the target set, and a matrix &#039;&#039;&#039;U&#039;&#039;&#039; whose rows are [[val]]s spanning the temperament. From &#039;&#039;&#039;U&#039;&#039;&#039; we form the matrix &#039;&#039;&#039;V&#039;&#039;&#039; by taking the [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;normal forms&lt;/ins&gt;|normal val list]] for &#039;&#039;&#039;U&#039;&#039;&#039; and removing the first (&quot;period&quot;) row. A list of [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eigenmonzo&lt;/ins&gt;|eigenmonzos (unchanged-intervals)]] {{nowrap|&#039;&#039;&#039;E&#039;&#039;&#039;&#039; {{=}} &#039;&#039;&#039;VR&#039;&#039;&#039;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;&#039;&#039;&#039;R&#039;&#039;&#039;}}, where the &amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of &#039;&#039;&#039;E&#039;&#039;&#039;, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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 {{nowrap|max&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;{{!}}&amp;#039;&amp;#039;T&amp;#039;&amp;#039;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) − log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;){{!}} }}, the maximum error over all the target intervals. This can be solved by setting the minimization up as a {{w|linear programming}} problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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 {{nowrap|max&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt;{{!}}&amp;#039;&amp;#039;T&amp;#039;&amp;#039;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) − log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;){{!}} }}, the maximum error over all the target intervals. This can be solved by setting the minimization up as a {{w|linear programming}} problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of eigenmonzos by taking {{nowrap|&#039;&#039;r&#039;&#039; − 1}} elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;-element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Normal lists&lt;/del&gt;|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;-element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank-&#039;&#039;r&#039;&#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;choosing &lt;/del&gt;the tuning, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;among &lt;/del&gt;the set of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;least maximum error &lt;/del&gt;tunings&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, with the smallest sum of errors squared&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of eigenmonzos by taking {{nowrap|&#039;&#039;r&#039;&#039; − 1}} elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;-element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;normal forms&lt;/ins&gt;|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;-element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank-&#039;&#039;r&#039;&#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;discarding the bounding intervals and repeat minimax on the rest of the intervals until a unique tuning is found. This is &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;same &lt;/ins&gt;tuning &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;achieved by minimizing the &#039;&#039;p&#039;&#039;-norm error as &#039;&#039;p&#039;&#039; approaches infinity&amp;lt;ref group=&quot;note&quot;&amp;gt;See [[Dave Keenan &amp;amp; Douglas Blumeyer&#039;s guide to RTT/Tuning computation #Tie breaking: power limit method]] for details.&amp;lt;/ref&amp;gt;&amp;lt;ref group=&quot;note&quot;&amp;gt;Historically&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Gene Ward Smith]] proposed breaking the tie by falling back to least squares tuning in &lt;/ins&gt;the set of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;minimax &lt;/ins&gt;tunings&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&amp;lt;/ref&amp;gt;&lt;/ins&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting from the same six intervals of the 5-odd-limit diamond and adding 2, we find after computing the normal interval lists that the three subgroups are [2,&amp;amp;nbsp;3], [2,&amp;amp;nbsp;5], and [2,&amp;amp;nbsp;5/3]. Computing the projection matrix and from thence the tuning in each case, we find that the minimax tuning is [{{monzo| 1 0 0 }}, {{monzo| 1 0 1/4 }}, {{monzo| 0 0 1 }}], the projection matrix for 1/4-comma meantone.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting from the same six intervals of the 5-odd-limit diamond and adding 2, we find after computing the normal interval lists that the three subgroups are [2,&amp;amp;nbsp;3], [2,&amp;amp;nbsp;5], and [2,&amp;amp;nbsp;5/3]. Computing the projection matrix and from thence the tuning in each case, we find that the minimax tuning is [{{monzo| 1 0 0 }}, {{monzo| 1 0 1/4 }}, {{monzo| 0 0 1 }}], the projection matrix for 1/4-comma meantone.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Notes ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;references group=&quot;note&quot;/&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Math]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Math]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Regular temperament tuning]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Regular temperament tuning]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FloraC</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=203730&amp;oldid=prev</id>
		<title>ArrowHead294: Formatting</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=203730&amp;oldid=prev"/>
		<updated>2025-06-27T19:21:02Z</updated>

		<summary type="html">&lt;p&gt;Formatting&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:21, 27 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval classes, which we may take to be octave reduced to 0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1, where the intervals are expressed logarithmically in terms of log base two. The least squares tuning T is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; (T (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set. Note that most commonly, the target set is a [[tonality diamond]] (reduced to lowest terms and duplicates removed), since these are the intervals in a [[harmonic series]] up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the [[consonance]]s of the &#039;&#039;d&#039;&#039;-odd-limit.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval classes, which we may take to be octave reduced to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&lt;/ins&gt;0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;, where the intervals are expressed logarithmically in terms of log base two. The least squares tuning&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, &#039;&#039;&lt;/ins&gt;T&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;, &lt;/ins&gt;is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&#039;&#039;&lt;/ins&gt;T&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;− &lt;/ins&gt;log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set. Note that most commonly, the target set is a [[tonality diamond]] (reduced to lowest terms and duplicates removed), since these are the intervals in a [[harmonic series]] up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the [[consonance]]s of the &#039;&#039;d&#039;&#039;-odd-limit.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix R whose rows are the monzos of the target set, and a matrix U whose rows are [[val]]s spanning the temperament. From U we form the matrix V by taking the [[Normal lists|normal val list]] for U and removing the first (&quot;period&quot;) row. A list of [[Eigenmonzo|eigenmonzos (unchanged-intervals)]] E = VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R, where the &amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[Fractional monzos|projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of E, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;R&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;whose rows are the monzos of the target set, and a matrix &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;U&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;whose rows are [[val]]s spanning the temperament. From &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;U&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;we form the matrix &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;V&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;by taking the [[Normal lists|normal val list]] for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;U&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;and removing the first (&quot;period&quot;) row. A list of [[Eigenmonzo|eigenmonzos (unchanged-intervals)]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&#039;&#039;&#039;&lt;/ins&gt;E&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&#039; {{&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}} &#039;&#039;&#039;&lt;/ins&gt;VR&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;R&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;}}&lt;/ins&gt;, where the &amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[Fractional monzos|projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;E&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/del&gt;T (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;)&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/del&gt;, the maximum error over all the target intervals. This can be solved by setting the minimization up as a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Wikipedia: Linear programming&lt;/del&gt;|linear programming&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/del&gt;problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&lt;/ins&gt;max&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}}&#039;&#039;&lt;/ins&gt;T&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;− &lt;/ins&gt;log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{!}} }}&lt;/ins&gt;, the maximum error over all the target intervals. This can be solved by setting the minimization up as a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{w&lt;/ins&gt;|linear programming&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}} &lt;/ins&gt;problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of eigenmonzos by taking &#039;&#039;r&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;- &lt;/del&gt;1 elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;-element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[Normal lists|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;-element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank-&#039;&#039;r&#039;&#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of eigenmonzos by taking &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&lt;/ins&gt;&#039;&#039;r&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;− &lt;/ins&gt;1&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}} &lt;/ins&gt;elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;-element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[Normal lists|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;-element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank-&#039;&#039;r&#039;&#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Suppose our set of target intervals is the 5-odd-limit diamond {6/5, 5/4, 4/3, 3/2, 8/5, 5/3}. The corresponding matrix is&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Suppose our set of target intervals is the 5-odd-limit diamond &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&lt;/ins&gt;{6/5, 5/4, 4/3, 3/2, 8/5, 5/3&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}&amp;lt;nowiki /&amp;gt;}&lt;/ins&gt;}. The corresponding matrix is&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;R = [{{monzo| 1 1 -1 }}, {{monzo| -2 0 1 }}, {{monzo| 2 -1 0 }}, {{monzo| -1 1 0 }}, {{monzo| 3 0 -1 }}, {{monzo| 0 -1 1 }}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;R&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; &lt;/ins&gt;= [{{monzo| 1 1 -1 }}, {{monzo| -2 0 1 }}, {{monzo| 2 -1 0 }}, {{monzo| -1 1 0 }}, {{monzo| 3 0 -1 }}, {{monzo| 0 -1 1 }}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then R&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R = [[19 -2 -6], [-2 4 -2], [-6 -2 4]], a positive-definite symmetric matrix. If U = [{{val| 1 0 -4 }}, {{val| 0 1 4 }}], we may remove the top row and obtain V = [{{val| 0 1 4 }}]; then VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is &lt;/del&gt;[{{monzo| -26 -4 14 }}]; using this along with {{monzo| 1 0 0 }} as eigenmonzos, and using {{monzo| -4 4 -1 }} as a commatic eigenvector with eigenvalue zero, we obtain&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&#039;&#039;&#039;&lt;/ins&gt;R&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;R&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; {{&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}} &lt;/ins&gt;[[19 -2 -6], [-2 4 -2], [-6 -2 4]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;, a positive-definite symmetric matrix. If &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&#039;&#039;&#039;&lt;/ins&gt;U&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; {{&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}} &lt;/ins&gt;[{{val| 1 0 -4 }}, {{val| 0 1 4 }}]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;nowiki /&amp;gt;}}&lt;/ins&gt;, we may remove the top row and obtain &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&#039;&#039;&#039;&lt;/ins&gt;V&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; {{&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}} &lt;/ins&gt;[{{val| 0 1 4 }}]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;nowiki /&amp;gt;}}&lt;/ins&gt;; then &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{nowrap|&#039;&#039;&#039;&lt;/ins&gt;VR&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/ins&gt;R&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039; {{=}} &lt;/ins&gt;[{{monzo| -26 -4 14 }}]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;nowiki /&amp;gt;}}&lt;/ins&gt;; using this along with {{monzo| 1 0 0 }} as eigenmonzos, and using {{monzo| -4 4 -1 }} as a commatic eigenvector with eigenvalue zero, we obtain&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{monzo| 1 0 0 }}, {{monzo| 14/13 -1/13 7/26 }}, {{monzo| 4/13 -4/13 14/13 }}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{monzo| 1 0 0 }}, {{monzo| 14/13 -1/13 7/26 }}, {{monzo| 4/13 -4/13 14/13 }}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;which is the projection matrix for the Woolhouse 7/26-comma meantone, the 5-limit least squares tuning.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;which is the projection matrix for the Woolhouse 7/26-comma meantone, the 5-limit least squares tuning.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting from the same six intervals of the 5-odd-limit diamond and adding 2, we find after computing the normal interval lists that the three subgroups are [2, 3], [2, 5], and [2, 5/3]. Computing the projection matrix and from thence the tuning in each case, we find that the minimax tuning is [{{monzo| 1 0 0 }}, {{monzo| 1 0 1/4 }}, {{monzo| 0 0 1 }}], the projection matrix for 1/4-comma meantone.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Starting from the same six intervals of the 5-odd-limit diamond and adding 2, we find after computing the normal interval lists that the three subgroups are [2,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp;&lt;/ins&gt;3], [2,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp;&lt;/ins&gt;5], and [2,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp;&lt;/ins&gt;5/3]. Computing the projection matrix and from thence the tuning in each case, we find that the minimax tuning is [{{monzo| 1 0 0 }}, {{monzo| 1 0 1/4 }}, {{monzo| 0 0 1 }}], the projection matrix for 1/4-comma meantone.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Math]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Math]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Regular temperament tuning]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Regular temperament tuning]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ArrowHead294</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=188826&amp;oldid=prev</id>
		<title>Sintel: -legacy</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=188826&amp;oldid=prev"/>
		<updated>2025-03-29T18:11:36Z</updated>

		<summary type="html">&lt;p&gt;-legacy&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:11, 29 March 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Legacy}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &amp;#039;&amp;#039;&amp;#039;target tuning&amp;#039;&amp;#039;&amp;#039; is meant a tuning for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&amp;#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &amp;#039;&amp;#039;&amp;#039;target tuning&amp;#039;&amp;#039;&amp;#039; is meant a tuning for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&amp;#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sintel</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=181116&amp;oldid=prev</id>
		<title>Lériendil at 16:52, 17 February 2025</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=181116&amp;oldid=prev"/>
		<updated>2025-02-17T16:52:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:52, 17 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Legacy&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Target_tuning&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Legacy}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &amp;#039;&amp;#039;&amp;#039;target tuning&amp;#039;&amp;#039;&amp;#039; is meant a tuning for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&amp;#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &amp;#039;&amp;#039;&amp;#039;target tuning&amp;#039;&amp;#039;&amp;#039; is meant a tuning for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&amp;#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lériendil</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=181078&amp;oldid=prev</id>
		<title>Lériendil: deploying new cat</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=181078&amp;oldid=prev"/>
		<updated>2025-02-17T16:15:13Z</updated>

		<summary type="html">&lt;p&gt;deploying new cat&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:15, 17 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Legacy|Target_tuning}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &amp;#039;&amp;#039;&amp;#039;target tuning&amp;#039;&amp;#039;&amp;#039; is meant a tuning for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&amp;#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &amp;#039;&amp;#039;&amp;#039;target tuning&amp;#039;&amp;#039;&amp;#039; is meant a tuning for a [[regular temperament]] which has been optimized with respect to a set of target [[interval]]s. Usually this set of intervals is derived from a finite set of [[pitch class|octave-equivalence classes]], and octaves are taken to be pure 2&amp;#039;s. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lériendil</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=181033&amp;oldid=prev</id>
		<title>Lériendil: Changed protection level for &quot;Target tuning&quot; ([Edit=Allow only administrators] (expires 17:02, 17 February 2025 (UTC)) [Move=Allow only administrators] (expires 17:02, 17 February 2025 (UTC)))</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=181033&amp;oldid=prev"/>
		<updated>2025-02-17T16:02:26Z</updated>

		<summary type="html">&lt;p&gt;Changed protection level for &amp;quot;&lt;a href=&quot;/w/Target_tuning&quot; title=&quot;Target tuning&quot;&gt;Target tuning&lt;/a&gt;&amp;quot; ([Edit=Allow only administrators] (expires 17:02, 17 February 2025 (UTC)) [Move=Allow only administrators] (expires 17:02, 17 February 2025 (UTC)))&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:02, 17 February 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Lériendil</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=124820&amp;oldid=prev</id>
		<title>FloraC: Clarify about the &quot;tonality diamond&quot;; re-link &quot;eigenmonzo&quot;; -typo</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=124820&amp;oldid=prev"/>
		<updated>2023-09-25T14:41:12Z</updated>

		<summary type="html">&lt;p&gt;Clarify about the &amp;quot;tonality diamond&amp;quot;; re-link &amp;quot;eigenmonzo&amp;quot;; -typo&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:41, 25 September 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval classes, which we may take to be octave reduced to 0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1, where the intervals are expressed logarithmically in terms of log base two. The least squares tuning T is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; (T (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set. Note that most commonly, the target set is a [[tonality diamond]], since these are the intervals in a [[harmonic series]] up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the [[consonance]]s of the &#039;&#039;d&#039;&#039;-odd-limit.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval classes, which we may take to be octave reduced to 0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1, where the intervals are expressed logarithmically in terms of log base two. The least squares tuning T is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; (T (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set. Note that most commonly, the target set is a [[tonality diamond]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(reduced to lowest terms and duplicates removed)&lt;/ins&gt;, since these are the intervals in a [[harmonic series]] up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the [[consonance]]s of the &#039;&#039;d&#039;&#039;-odd-limit.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix R whose rows are the monzos of the target set, and a matrix U whose rows are [[val]]s spanning the temperament. From U we form the matrix V by taking the [[Normal lists|normal val list]] for U and removing the first (&quot;period&quot;) row. A list of [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;eigenmonzo&lt;/del&gt;]]&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s &lt;/del&gt;E = VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R, where the &amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[Fractional monzos|projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of E, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix R whose rows are the monzos of the target set, and a matrix U whose rows are [[val]]s spanning the temperament. From U we form the matrix V by taking the [[Normal lists|normal val list]] for U and removing the first (&quot;period&quot;) row. A list of [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Eigenmonzo|eigenmonzos (unchanged-intervals)&lt;/ins&gt;]] E = VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R, where the &amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt; denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[Fractional monzos|projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of E, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; |T (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a [[Wikipedia: Linear programming|linear programming]] problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; |T (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a [[Wikipedia: Linear programming|linear programming]] problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Eigenmonzo|&lt;/del&gt;eigenmonzos &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unchanged-intervals)]] &lt;/del&gt;by taking &#039;&#039;r&#039;&#039; - 1 elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;-element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[Normal lists|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;-element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank-&#039;&#039;r&#039;&#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank-&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of eigenmonzos by taking &#039;&#039;r&#039;&#039; - 1 elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;-element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[Normal lists|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;-element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank-&#039;&#039;r&#039;&#039; [[just intonation subgroup]]s, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;R = [{{monzo| 1 1 -1 }}, {{monzo| -2 0 1 }}, {{monzo| 2 -1 0 }}, {{monzo| -1 1 0 }}, {{monzo| 3 0 -1 }}, {{monzo| 0 -1 1 }}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;R = [{{monzo| 1 1 -1 }}, {{monzo| -2 0 1 }}, {{monzo| 2 -1 0 }}, {{monzo| -1 1 0 }}, {{monzo| 3 0 -1 }}, {{monzo| 0 -1 1 }}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then R&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R = [[19 -2 -6], [-2 4 -2], [-6 -2 4]], a positive-definite symmetric matrix. If U = [{{val| 1 0 -4 }}, {{val| 0 1 4 }}], we may remove the top row and obtain V = [{{val| 0 1 4 }}]; then VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R is [{{monzo| -26 -4 14 }}]; using this along with {{monzo| 1 0 0 }} as eigenmonzos, and using {{monzo| -4 4 -1 }} &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;an &lt;/del&gt;a commatic eigenvector with eigenvalue zero, we obtain&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then R&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R = [[19 -2 -6], [-2 4 -2], [-6 -2 4]], a positive-definite symmetric matrix. If U = [{{val| 1 0 -4 }}, {{val| 0 1 4 }}], we may remove the top row and obtain V = [{{val| 0 1 4 }}]; then VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R is [{{monzo| -26 -4 14 }}]; using this along with {{monzo| 1 0 0 }} as eigenmonzos, and using {{monzo| -4 4 -1 }} &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;as &lt;/ins&gt;a commatic eigenvector with eigenvalue zero, we obtain&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{monzo| 1 0 0 }}, {{monzo| 14/13 -1/13 7/26 }}, {{monzo| 4/13 -4/13 14/13 }}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{monzo| 1 0 0 }}, {{monzo| 14/13 -1/13 7/26 }}, {{monzo| 4/13 -4/13 14/13 }}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FloraC</name></author>
	</entry>
	<entry>
		<id>https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=124818&amp;oldid=prev</id>
		<title>FloraC: Fix some &quot;bugs&quot;; linking; recategorize</title>
		<link rel="alternate" type="text/html" href="https://en.xen.wiki/index.php?title=Target_tuning&amp;diff=124818&amp;oldid=prev"/>
		<updated>2023-09-25T14:24:21Z</updated>

		<summary type="html">&lt;p&gt;Fix some &amp;quot;bugs&amp;quot;; linking; recategorize&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:24, 25 September 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &#039;&#039;&#039;target tuning&#039;&#039;&#039; is meant a tuning for a regular temperament which has been optimized with respect to a set of target &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;intervals&lt;/del&gt;. Usually this set of intervals is derived from a finite set of octave equivalence classes, and octaves are taken to be pure &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2s&lt;/del&gt;. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By a &#039;&#039;&#039;target tuning&#039;&#039;&#039; is meant a tuning for a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;regular temperament&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;which has been optimized with respect to a set of target &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[interval]]s&lt;/ins&gt;. Usually this set of intervals is derived from a finite set of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[pitch class|&lt;/ins&gt;octave&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;equivalence classes&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;, and octaves are taken to be pure &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&#039;s&lt;/ins&gt;. Moreover, normally the intervals in question are rational numbers. Below we will make all of these assumptions, and will discuss the two most important target tunings, minimax and least squares.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Least squares tunings ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval classes, which we may take to be octave reduced to 0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1, where the intervals are expressed logarithmically in terms of log base two. The least squares tuning T is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; (T (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set. Note that most commonly, the target set is a tonality diamond, since these are the intervals in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;an overtone &lt;/del&gt;series up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;consonances &lt;/del&gt;of the &#039;&#039;d&#039;&#039;-odd-limit.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;By assumption we have a finite set of rational intervals defining interval classes, which we may take to be octave reduced to 0 &amp;amp;lt; &#039;&#039;r&#039;&#039; &amp;amp;lt; 1, where the intervals are expressed logarithmically in terms of log base two. The least squares tuning T is the tuning for a particular regular temperament which minimizes the sum of the squares of the errors, ∑&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; (T (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039;))&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, where &#039;&#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&#039;&#039; are the rational intervals of the target set. Note that most commonly, the target set is a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;tonality diamond&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;, since these are the intervals in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a [[harmonic &lt;/ins&gt;series&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;up to some odd integer &#039;&#039;d&#039;&#039;, and hence may be considered the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[consonance]]s &lt;/ins&gt;of the &#039;&#039;d&#039;&#039;-odd-limit.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix R whose rows are the monzos of the target set, and a matrix U whose rows are &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vals &lt;/del&gt;spanning the temperament. From U we form the matrix V by taking the [[Normal lists|normal val list]] for U and removing the first (&quot;period&quot;) row. A list of [[eigenmonzo]]s E = VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R, where the T denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[Fractional monzos|projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of E, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We may find the least squares tuning in various ways, one of which is to start from a matrix R whose rows are the monzos of the target set, and a matrix U whose rows are &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[val]]s &lt;/ins&gt;spanning the temperament. From U we form the matrix V by taking the [[Normal lists|normal val list]] for U and removing the first (&quot;period&quot;) row. A list of [[eigenmonzo]]s E = VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R, where the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;sup&amp;gt;&lt;/ins&gt;T&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/sup&amp;gt; &lt;/ins&gt;denotes the matrix transpose, can now be obtained by matrix multiplication, and to this we add a row for the monzo of 2. The [[Fractional monzos|projection matrix]] for the least squares tuning is then the square matrix with fractional monzo rows, the rows of E, including 2, as eigenmonzos, that is left eigenvectors with eigenvalue one, and any basis for the commas of the temperament as left eigenvectors with eigenvalues zero.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Minimax tuning ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; |T (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a [[Wikipedia: Linear programming|linear programming]] problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&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&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;i&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; |T (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;) - log&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; (&amp;#039;&amp;#039;q&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&amp;#039;&amp;#039;)|, the maximum error over all the target intervals. This can be solved by setting the minimization up as a [[Wikipedia: Linear programming|linear programming]] problem, but another approach leads as before to a projection matrix with fractional monzo rows.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank &#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of eigenmonzos by taking &#039;&#039;r&#039;&#039; - 1 elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039; element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[Normal lists|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039; element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank &#039;&#039;r&#039;&#039; [[just intonation &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;subgroups&lt;/del&gt;]], which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For a rank&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;&#039;&#039;r&#039;&#039; temperament, we can form a list of candidate sets of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Eigenmonzo|&lt;/ins&gt;eigenmonzos &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(unchanged-intervals)]] &lt;/ins&gt;by taking &#039;&#039;r&#039;&#039; - 1 elements from the list of target intervals, and adding 2 to the set, leading to an &#039;&#039;r&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;element set. To avoid duplications and sets with rank less than &#039;&#039;r&#039;&#039;, we can take the [[Normal lists|normal interval list]] defined by each of these &#039;&#039;r&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;element sets, discarding any with less than &#039;&#039;r&#039;&#039; elements. This means we are compiling a list of rank&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;&#039;&#039;r&#039;&#039; [[just intonation &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;subgroup&lt;/ins&gt;]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s&lt;/ins&gt;, which are [[eigenmonzo subgroup]]s for the corresponding tuning. For each of these these subgroups, we may find a corresponding projection matrix as the matrix with the &#039;&#039;r&#039;&#039; 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;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Example ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;R = [{{monzo| 1 1 -1 }}, {{monzo| -2 0 1 }}, {{monzo| 2 -1 0 }}, {{monzo| -1 1 0 }}, {{monzo| 3 0 -1 }}, {{monzo| 0 -1 1 }}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;R = [{{monzo| 1 1 -1 }}, {{monzo| -2 0 1 }}, {{monzo| 2 -1 0 }}, {{monzo| -1 1 0 }}, {{monzo| 3 0 -1 }}, {{monzo| 0 -1 1 }}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then R&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R = [[19 -2 -6], [-2 4 -2], [-6 -2 4]], a positive-definite symmetric matrix. If U = [{{val| 1 0 -&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;9 &lt;/del&gt;}}, {{val| 0 1 4 }}], we may remove the top row and obtain V = [{{val| 0 1 4 }}]; then VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R is [{{monzo| -26 -4 14 }}]; using this along with {{monzo| 1 0 0 }} as eigenmonzos, and using {{monzo| -4 4 -1 }} an a commatic eigenvector with eigenvalue zero, we obtain&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Then R&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R = [[19 -2 -6], [-2 4 -2], [-6 -2 4]], a positive-definite symmetric matrix. If U = [{{val| 1 0 -&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4 &lt;/ins&gt;}}, {{val| 0 1 4 }}], we may remove the top row and obtain V = [{{val| 0 1 4 }}]; then VR&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;R is [{{monzo| -26 -4 14 }}]; using this along with {{monzo| 1 0 0 }} as eigenmonzos, and using {{monzo| -4 4 -1 }} an a commatic eigenvector with eigenvalue zero, we obtain&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{monzo| 1 0 0 }}, {{monzo| 14/13 -1/13 7/26 }}, {{monzo| 4/13 -4/13 14/13 }}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[{{monzo| 1 0 0 }}, {{monzo| 14/13 -1/13 7/26 }}, {{monzo| 4/13 -4/13 14/13 }}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot;&gt;Line 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Math]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Math]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tuning&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Regular temperament tuning&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>FloraC</name></author>
	</entry>
</feed>