Tp tuning: Difference between revisions

Wikispaces>genewardsmith
**Imported revision 347567292 - Original comment: **
One more round of cleanup & update on terminology
 
(99 intermediate revisions by 12 users not shown)
Line 1: Line 1:
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
{{DISPLAYTITLE:T<sub>''p''</sub> tuning}}{{texmap}}{{texops}}
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
'''T<sub>''p''</sub> tuning''' is a generalization of [[TOP tuning|TOP]] and [[Tenney-Euclidean tuning|TE]] tuning. (In this article ''p'' denotes a parameter, {{nowrap| ''p'' > 1 }}; it does not denote a prime.)
: This revision was by author [[User:genewardsmith|genewardsmith]] and made on <tt>2012-06-23 23:24:26 UTC</tt>.<br>
: The original revision id was <tt>347567292</tt>.<br>
: The revision comment was: <tt></tt><br>
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br>
<h4>Original Wikitext content:</h4>
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;white-space: pre-wrap ! important" class="old-revision-html">**Lp tuning** is a generalzation of [[TOP tuning|TOP]] and [[Tenney-Euclidean tuning|TE]] tuning. If p ≥ 1, define the Lp norm, which we may also call the Lp complexity, of any monzo in weighted coordinates b as
[[math]]
|| |b_2 \ b_3 \ ... \ b_k&gt; ||_p = (|b_2|^p + |b_3|^p + ... + |b_k|^p)^{1/p}
[[math]]
where 2, 3, ... k are the primes up to k in order. In unweighted coordinates, this would be, for unweighted monzo m,
[[math]]
|| |m_2 \ m_3 \ ... \ m_k&gt; ||_p = (|\log_2(2) m_2|^p + |\log_2(3)m_3|^p + ... + |\log_2(k) b_k|^p)^{1/p}
[[math]]
If q is any positive rational number, ||q||_p is the Lp norm defined by the monzo.


For some just intonation group G, which is to say some finitely generated group of positive rational numbers which can be either a full prime-limit group or some subgroup of such a group, a regular temperament tuning T is defined by a linear map from monzos belonging to G to a value in cents, such that T(c) = 0 for any comma c of the temperament. We derfine the error of the tuning on q, Err(q), as |T(q) - cents(q)}, and if q ≠ 1, the //Lp proportional error// as PEp(q) = Err(q)/||q||_p. </pre></div>
For a subgroup temperament over a general [[JI subgroup]], and for a given choice of ''p'' (most commonly {{nowrap| ''p'' {{=}} 2 }}), there are two notions of T<sub>''p''</sub> tuning:
<h4>Original HTML content:</h4>
* The first is called '''inharmonic T<sub>''p''</sub>''', or '''L<sub>''p''</sub>''' in earlier materials. This is where the basis entries are treated as if they were primes, reminiscent of using an inharmonic timbre. Inharmonic T<sub>''p''</sub> depends on the basis used for the subgroup. In non-octave temperaments, inharmonic T<sub>''p''</sub> could be used when optimizing a specific voicing of a tempered JI chord. For example in 3/2.7/4.5/2 semiwolf temperament which tempers out 245/243, the 3/2.7/4.5/2 inharmonic T<sub>''p''</sub> optimizes the 4:6:7:10 chord.
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;width:200%;white-space: pre-wrap ! important" class="old-revision-html">&lt;html&gt;&lt;head&gt;&lt;title&gt;Tp tuning&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;strong&gt;Lp tuning&lt;/strong&gt; is a generalzation of &lt;a class="wiki_link" href="/TOP%20tuning"&gt;TOP&lt;/a&gt; and &lt;a class="wiki_link" href="/Tenney-Euclidean%20tuning"&gt;TE&lt;/a&gt; tuning. If p 1, define the Lp norm, which we may also call the Lp complexity, of any monzo in weighted coordinates b as &lt;br /&gt;
* The second is called '''subgroup T<sub>''p''</sub>''', because it treats the temperament as a restriction of a full prime-limit temperament to a subgroup of the prime-limit. Subgroup T<sub>''p''</sub> does not depend on the basis used for the subgroup, and as stated, extends naturally to the T<sub>''p''</sub> tuning of the full prime-limit temperament.
&lt;!-- ws:start:WikiTextMathRule:0:
 
[[math]]&amp;lt;br/&amp;gt;
The two notions agree exactly when the temperament is defined on a JI subgroup with a basis consisting of prime and prime power members (examples: 2.3.5 and 2.9.5; nonexample: 2.9.5.21 and 2.3.13/5).
|| |b_2 \ b_3 \ ... \ b_k&amp;gt; ||_p = (|b_2|^p + |b_3|^p + ... + |b_k|^p)^{1/p}&amp;lt;br/&amp;gt;[[math]]
 
--&gt;&lt;script type="math/tex"&gt;|| |b_2 \ b_3 \ ... \ b_k&gt; ||_p = (|b_2|^p + |b_3|^p + ... + |b_k|^p)^{1/p}&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:0 --&gt;&lt;br /&gt;
== Definition ==
where 2, 3, ... k are the primes up to k in order. In unweighted coordinates, this would be, for unweighted monzo m, &lt;br /&gt;
If {{nowrap| ''p'' > 1 }}, define the [[Generalized Tenney norms and Tp interval space|T<sub>''p''</sub> norm]], which we may also call the T<sub>''p''</sub> complexity, of any monzo in weighted coordinates '''m''' as
&lt;!-- ws:start:WikiTextMathRule:1:
 
[[math]]&amp;lt;br/&amp;gt;
<math>\norm{\monzo{m_2 & m_3 & \ldots & m_k }}_p = \left(\abs{m_2}^p + \abs{m_3}^p + \ldots + \abs{m_k}^p\right)^{1/p}</math>
|| |m_2 \ m_3 \ ... \ m_k&amp;gt; ||_p = (|\log_2(2) m_2|^p + |\log_2(3)m_3|^p + ... + |\log_2(k) b_k|^p)^{1/p}&amp;lt;br/&amp;gt;[[math]]
 
--&gt;&lt;script type="math/tex"&gt;|| |m_2 \ m_3 \ ... \ m_k&gt; ||_p = (|\log_2(2) m_2|^p + |\log_2(3)m_3|^p + ... + |\log_2(k) b_k|^p)^{1/p}&lt;/script&gt;&lt;!-- ws:end:WikiTextMathRule:1 --&gt;&lt;br /&gt;
where 2, 3, … , ''k'' are the primes up to ''k'' in order. In unweighted coordinates, this would be, for unweighted monzo '''b''',
If q is any positive rational number, ||q||_p is the Lp norm defined by the monzo. &lt;br /&gt;
 
&lt;br /&gt;
<math>\norm{\monzo{b_2 & b_3 & \ldots & b_k }}_p = \left(\abs{b_2 \log_2 2}^p + \abs{b_3 \log_2 3}^p + \ldots + \abs{b_k \log_2 k}^p\right)^{1/p}</math>
For some just intonation group G, which is to say some finitely generated group of positive rational numbers which can be either a full prime-limit group or some subgroup of such a group, a regular temperament tuning T is defined by a linear map from monzos belonging to G to a value in cents, such that T(c) = 0 for any comma c of the temperament. We derfine the error of the tuning on q, Err(q), as |T(q) - cents(q)}, and if q ≠ 1, the &lt;em&gt;Lp proportional error&lt;/em&gt; as PEp(q) = Err(q)/||q||_p.&lt;/body&gt;&lt;/html&gt;</pre></div>
 
If ''q'' is any positive rational number, ‖''q''‖<sub>''p''</sub> is the T<sub>''p''</sub> norm defined by its monzo.
 
For some just intonation group ''G'', which is to say some finitely generated group of positive rational numbers which can be either a full prime-limit group or some subgroup of such a group, a regular temperament [[tuning map|tuning]] ''T'' for an abstract temperament ''S'' is defined by a linear map from monzos belonging to ''G'' to a value in an [[interval size unit]] proportional to [[cent]]s, such that {{nowrap| ''T''(''c'') {{=}} 0 }} for any comma ''c'' of the temperament. Let the just value of ''q'' be ''J''(''q''), we define the error of the tuning on ''q'', ''Ɛ''(''q''), as {{nowrap| ''T''(''q'') − ''J''(''q'') }}, and if {{nowrap| ''q'' ≠ 1 }}, the T<sub>''p''</sub> proportional error, or [[damage]], is {{nowrap|''D''<sub>''p''</sub>(''q'') {{=}} {{!}}''Ɛ''(''q''){{!}}/‖''q''‖<sub>''p''</sub>}}. For any tuning ''T'' of the temperament, the set of ''D''<sub>''p''</sub>(''q'') for all {{nowrap| ''q'' ≠ 1 }} in ''G'' is bounded, and hence has a least upper bound, the {{w|infimum and supremum|supremum}} sup (''D''<sub>''p''</sub>(''T'')). The set of values sup (''D''<sub>''p''</sub>(''T'')) is bounded below, and by continuity achieves its minimum value, which is the T<sub>''p''</sub> error ''E''<sub>''p''</sub>(''S'') of the abstract temperament ''S'' in the same unit as we have defined above. Any tuning achieving this minimum, so that {{nowrap| sup (''D''<sub>''p''</sub>(''T'')) {{=}} ''E''<sub>''p''</sub>(''S'') }}, is a T<sub>''p''</sub> tuning. Usually this tuning is unique, but in the case {{nowrap| ''p'' {{=}} 1 }}, called the [[TOP tuning]], it may not be. In this case we can choose a TOP tuning canonically by setting it to the limit as ''p'' tends to 1 of the T<sub>''p''</sub> tuning, thereby defining a unique tuning ''T''<sub>''p''</sub>(''S'') for any abstract temperament ''S'' on any group ''G''.
 
== Dual norm ==
We can extend the T<sub>''p''</sub> norm on monzos to a {{w|normed vector space|vector space norm}} on [[monzos and interval space|interval space]], thereby defining the real normed interval space ''T''<sub>''p''</sub>. This space has a normed subspace generated by monzos belonging to the just intonation group ''G'', which in the case where ''G'' is a full ''p''-limit will be the whole of ''T''<sub>''p''</sub> but otherwise might not be; this we call ''G''-interval space. The dual space to ''G''-interval space is ''G''-tuning space, and on this we may define a {{w|dual norm}}. If ''r''<sub>1</sub>, ''r''<sub>2</sub>, … , ''r''<sub>''n''</sub> are a set of generators for ''G'', which in particular could be a normal list and so define [[subgroup monzo]]s for ''G'', then corresponding generators for the dual space can in particular be the [[subgroup val]] generators. On this standard basis for ''G''-tuning space we can express the dual norm canonically as the ''G''-subgroup-val norm. If [''r''<sub>1</sub> ''r''<sub>2</sub> … ''r''<sub>''n''</sub>] is the normal ''G'' generator list, then {{val| J(''r''<sub>1</sub>) J(''r''<sub>2</sub>) … J(''r''<sub>''n''</sub>) }} is a point, in unweighted coordinates, in ''G''-tuning space, and the nearest point to it under the ''G''-subgroup-val norm on the subspace of tunings of some abstract ''G''-temperament ''S'', meaning svals in the null space of its commas, is precisely the L<sub>''p''</sub> tuning, ''L''<sub>''p''</sub>(''S'').
 
== Applying the Hahn–Banach theorem ==
Suppose {{nowrap| ''T'' {{=}} ''T''<sub>''p''</sub>(''S'') }} is a T<sub>''p''</sub> tuning for the temperament ''S'', and ''J'' is the JI tuning. These are both elements of ''G''-tuning space, which are linear functionals on ''G''-interval space, and hence the [[error map]] {{nowrap|''Ɛ'' {{=}} ''T'' − ''J''}} is also. The norm ‖''Ɛ''‖ of ''Ɛ'' is minimal among all error maps for tunings of ''S'' since ''T'' is the T<sub>''p''</sub> tuning. By the {{w|Hahn–Banach theorem}}, ''Ɛ'' can be extended to an element ''Ƹ'' in the space of full ''p''-limit tuning maps with the same norm; that is, so that {{nowrap| ‖''Ɛ''‖ {{=}} ‖''Ƹ''‖ }}. Additionally, due to a [http://www.math.unl.edu/%7Es-bbockel1/928/node25.html corollary of Hahn–Banach], the set of such error maps valid for ''S'' can be extended to a larger set which is valid for an extended temperament ''S''*; this temperament ''S''* will be of rank greater than or equal to ''S'', and will share the same kernel. ‖''Ƹ''‖, the norm of the full ''p''-limit error map, must also be minimal among all valid error maps for ''S''*, or the restriction of ''Ƹ'' to ''G'' would improve on ''Ɛ''. Hence, as ‖''Ƹ''‖ is minimal, {{nowrap| ''J''* + ''Ƹ'' }}, where ''J''* is the full ''p''-limit [[JIP]], must equal the T<sub>''p''</sub> tuning for ''S''*. Thus to find the T<sub>''p''</sub> tuning of ''S'' for the group ''G'', we may first find the T<sub>''p''</sub> tuning ''T''* for ''S''*, and then apply it to the normal interval list giving the standard form of generators for ''G''.
 
Note that while the Hahn–Banach theorem is usually proven using {{w|Zorn's lemma}} and does not guarantee any kind of uniqueness, in most cases there is only one L<sub>''p''</sub> tuning and the extension of ''Ɛ'' to ''Ƹ'' is in that case unique. It is also easy to see that this can only be non-unique if {{nowrap| ''p'' {{=}} 1 }} or {{nowrap| ''p'' {{=}} ∞ }}, so that we may get a unique L<sub>''p''</sub> tuning (called the "TIPTOP" tuning for {{nowrap| ''p'' {{=}} ∞ }}) by simply taking the limit as ''p'' approaches our value.
 
== T<sub>2</sub> tuning ==
In the special case where {{nowrap| ''p'' {{=}} 2 }}, the T<sub>''p''</sub> norm for the full prime limit becomes the T<sub>2</sub> norm, which when divided by the square root of the number ''n'' of primes in the prime limit, is the [[Tenney-Euclidean metrics|Tenney-Euclidean norm]], giving TE complexity. Associated to this norm is T<sub>2</sub> tuning extended to arbitrary JI groups, and [[Tenney-Euclidean temperament measures #TE error|RMS error]], which for a tuning map ''T'' is {{nowrap| ‖(''T'' − ''J'')/''n''‖<sub>2</sub> {{=}} ‖''T'' − ''J''‖<sub>RMS</sub> }}.
 
== Example ==
Consider the [[indium]] temperament, with group 2.5/3.7/3.11/3 and [[comma basis]] 3025/3024 and 3125/3087. To find the inharmonic TE tuning, start by constructing the weight matrix with the inverses of the sizes of each subgroup basis element. In this case our weight matrix is given by diag([1/log<sub>2</sub>(2), 1/log<sub>2</sub>(5/3), 1/log<sub>2</sub>(7/3), 1/log<sub>2</sub>(11/3)]). Next, we apply this weight to the subgroup val mapping {{mapping| 1 0 0 2 | 0 6 10 -1 }} as well as the just tuning map {{val| log<sub>2</sub>(2) log<sub>2</sub>(5/3) log<sub>2</sub>(7/3) log<sub>2</sub>(11/3) }}, which turns the weighted just tuning map to all-ones. Using the [[Tenney–Euclidean tuning|usual methods]], in particular the pseudoinverse, we find that the inharmonic TE generator tuning map is {{val| 1199.043 147.042 }} in cents, and the tuning map is {{val| 1199.043 882.252 1470.420 2251.044 }} in cents. This tuning may be regarded as optimized for the 3:5:6:7:11 chord in the temperament.
 
To find the subgroup TE tuning instead, we need to first find the TE tuning of the corresponding full 11-limit temperament. This temperament is of rank 3, with mapping {{mapping| 1 0 0 0 2 | 0 1 1 1 1 | 0 0 6 10 -1 }}. Here we find that the subgroup TE tuning map is {{val| 1199.552 1901.846 2783.579 3371.401 4153.996 }} in cents. Applying that to 12/11 gives a generator of 146.995{{c}}, so that the generator tuning map is {{val| 1199.552 146.995 }} in cents. Multiplying that by 1200.000/1199.552 gives the subgroup POTE tuning, of 147.010{{c}}. Converting the tuning map to weighted coordinates and subtracting {{val| 1200 1200 1200 1200 1200 }} gives {{val| -0.4475 -0.0685 -1.1778 0.9172 0.7741 }}. The ordinary Euclidean norm of this, i.e. the square root of the dot product, is 1.7414, and dividing by sqrt (5) gives the RMS error, 0.77879{{c}}.
 
== See also ==
* [[Dave Keenan & Douglas Blumeyer's guide to RTT/Tuning in nonstandard domains]] – for a generalization of the inharmonic and subgroup approaches to all regular temperament tuning schemes, beyond only T<sub>''p''</sub> tuning schemes as are discussed here (minimax-''q''-(lp-)S tuning schemes, in D&D's naming system), and done in a more in-depth textbook tutorial style. This also includes an additional neutral approach which is not discussed here, a discussion of why one might choose one approach over the others, and demonstrations of how to compute tunings using each of the approaches, with examples.
 
[[Category:Math]]
[[Category:Regular temperament tuning]]