Tp tuning

From Xenharmonic Wiki
(Redirected from Lp tuning)
Jump to navigation Jump to search

[math] \def\hs{\hspace{-3px}} \def\vsp{{}\mkern-5.5mu}{} \def\llangle{\left\langle\vsp\left\langle} \def\lllangle{\left\langle\vsp\left\langle\vsp\left\langle} \def\llllangle{\left\langle\vsp\left\langle\vsp\left\langle\vsp\left\langle} \def\llbrack{\left[\left[} \def\lllbrack{\left[\left[\left[} \def\llllbrack{\left[\left[\left[\left[} \def\llvert{\left\vert\left\vert} \def\lllvert{\left\vert\left\vert\left\vert} \def\llllvert{\left\vert\left\vert\left\vert\left\vert} \def\rrangle{\right\rangle\vsp\right\rangle} \def\rrrangle{\right\rangle\vsp\right\rangle\vsp\right\rangle} \def\rrrrangle{\right\rangle\vsp\right\rangle\vsp\right\rangle\vsp\right\rangle} \def\rrbrack{\right]\right]} \def\rrrbrack{\right]\right]\right]} \def\rrrrbrack{\right]\right]\right]\right]} \def\rrvert{\right\vert\right\vert} \def\rrrvert{\right\vert\right\vert\right\vert} \def\rrrrvert{\right\vert\right\vert\right\vert\right\vert} [/math][math] \def\val#1{\left\langle\begin{matrix}#1\end{matrix}\right]} \def\tval#1{\left\langle\begin{matrix}#1\end{matrix}\right\vert} \def\bival#1{\llangle\begin{matrix}#1\end{matrix}\rrbrack} \def\bitval#1{\llangle\begin{matrix}#1\end{matrix}\rrvert} \def\trival#1{\lllangle\begin{matrix}#1\end{matrix}\rrrbrack} \def\tritval#1{\lllangle\begin{matrix}#1\end{matrix}\rrrvert} \def\quadval#1{\llllangle\begin{matrix}#1\end{matrix}\rrrrbrack} \def\quadtval#1{\llllangle\begin{matrix}#1\end{matrix}\rrrrvert} \def\monzo#1{\left[\begin{matrix}#1\end{matrix}\right\rangle} \def\tmonzo#1{\left\vert\begin{matrix}#1\end{matrix}\right\rangle} \def\bimonzo#1{\llbrack\begin{matrix}#1\end{matrix}\rrangle} \def\bitmonzo#1{\llvert\begin{matrix}#1\end{matrix}\rrangle} \def\trimonzo#1{\lllbrack\begin{matrix}#1\end{matrix}\rrrangle} \def\tritmonzo#1{\lllvert\begin{matrix}#1\end{matrix}\rrrangle} \def\quadmonzo#1{\llllbrack\begin{matrix}#1\end{matrix}\rrrrangle} \def\quadtmonzo#1{\llllvert\begin{matrix}#1\end{matrix}\rrrrangle} \def\rbra#1{\left\{\begin{matrix}#1\end{matrix}\right]} \def\rket#1{\left[\begin{matrix}#1\end{matrix}\right\}} \def\vmp#1#2{\left\langle\begin{matrix}#1\end{matrix}\,\vert\,\begin{matrix}#2\end{matrix}\right\rangle\vsp} \def\wmp#1#2{\llangle\begin{matrix}#1\end{matrix}\,\vert\vert\,\begin{matrix}#2\end{matrix}\rrangle} [/math][math] \def\hs{\hspace{-3px}} \def\vsp{{}\mkern-5.5mu}{} \def\llangle{\left\langle\vsp\left\langle} \def\lllangle{\left\langle\vsp\left\langle\vsp\left\langle} \def\llllangle{\left\langle\vsp\left\langle\vsp\left\langle\vsp\left\langle} \def\llbrack{\left[\left[} \def\lllbrack{\left[\left[\left[} \def\llllbrack{\left[\left[\left[\left[} \def\llvert{\left\vert\left\vert} \def\lllvert{\left\vert\left\vert\left\vert} \def\llllvert{\left\vert\left\vert\left\vert\left\vert} \def\rrangle{\right\rangle\vsp\right\rangle} \def\rrrangle{\right\rangle\vsp\right\rangle\vsp\right\rangle} \def\rrrrangle{\right\rangle\vsp\right\rangle\vsp\right\rangle\vsp\right\rangle} \def\rrbrack{\right]\right]} \def\rrrbrack{\right]\right]\right]} \def\rrrrbrack{\right]\right]\right]\right]} \def\rrvert{\right\vert\right\vert} \def\rrrvert{\right\vert\right\vert\right\vert} \def\rrrrvert{\right\vert\right\vert\right\vert\right\vert} [/math][math] \def\abs#1{\left|{#1}\right|} \def\norm#1{\left\|{#1}\right\|} \def\floor#1{\left\lfloor{#1}\right\rfloor} \def\ceil#1{\left\lceil{#1}\right\rceil} \def\round#1{\left\lceil{#1}\right\rfloor} \def\rround#1{\left\lfloor{#1}\right\rceil} [/math] Tp tuning is a generalization of TOP and TE tuning. (In this article p denotes a parameter, p ≥ 1; it does not denote a prime.)

For a subgroup temperament over a general JI subgroup, and for a given choice of p (most commonly p = 2), there are two notions of Tp tuning:

  • The first is called inharmonic Tp, because the basis entries are treated as if they were primes, reminiscent of some inharmonic timbres. Inharmonic Tp depends on the basis used for the subgroup. In non-octave temperaments, inharmonic Tp 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 Tp optimizes the 4:6:7:10 chord.
  • The second is called subgroup Tp, because it treats the temperament as a restriction of a full prime-limit temperament to a subgroup of the prime-limit. Subgroup Tp does not depend on the basis used for the subgroup, and as stated, extends naturally to the Tp tuning of the full prime-limit temperament.

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).

Definition

If p ≥ 1, define the Tp norm, which we may also call the Tp complexity, of any monzo in weighted coordinates m as

[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)^{\frac{1}{p}}[/math]

where 2, 3, … , k are the primes up to k in order. In unweighted coordinates, this would be, for unweighted monzo b,

[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)^{\frac{1}{p}}[/math]

If q is any positive rational number, ‖qp is the Tp 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 T for an abstract temperament S 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 define the error of the tuning on q, Err (q), as |T(q) − cents (q)|, and if q ≠ 1, the Tp proportional error, or damage, is Dp(q) = Err (q)/‖qp. For any tuning T of the temperament, the set of Dp(q) for all q ≠ 1 in G is bounded, and hence has a least upper bound, the supremum sup (Dp(T)). The set of values sup (Dp(T)) is bounded below, and by continuity achieves its minimum value, which is the Tp error Ep(S) of the abstract temperament S; if we measure in cents as we have defined above, Ep(S) has units of cents. Any tuning achieving this minimum, so that sup (Dp(T)) = Ep(S), is a Tp tuning. Usually this tuning is unique, but in the case 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 Tp tuning, thereby defining a unique tuning Tp(S) for any abstract temperament S on any group G.

Given Tp(S) in a group G containing 2, we may define a corresponding pure-octaves tuning (POLp tuning) by dividing by the tuning of 2: Tp'(S) = 1200 Tp(S)/(Tp(S))1, where (Tp(S))1 is the first entry of Tp(S). When p = 2, POL2 tuning generalizes POTE tuning.

Dual norm

We can extend the Tp norm on monzos to a vector space norm on interval space, thereby defining the real normed interval space Tp. 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 Tp 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 dual norm. If r1, r2, … , rn are a set of generators for G, which in particular could be a normal list and so define smonzos for G, then corresponding generators for the dual space can in particular be the sval generators. On this standard basis for G-tuning space we can express the dual norm canonically as the G-sval norm. If [r1 r2rn] is the normal G generator list, then cents (r1) cents (r2) … cents (rn)] is a point, in unweighted coordinates, in G-tuning space, and the nearest point to it under the G-sval norm on the subspace of tunings of some abstract G-temperament S, meaning svals in the null space of its commas, is precisely the Lp tuning, Lp(S).

In the special case where p = 2, this becomes L2 tuning. This is called inharmonic TE in Graham Breed's temperament finder.

Applying the Hahn-Banach theorem

Suppose T = Tp(S) is a Tp 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 Ɛ = TJ is also. The norm ‖Ɛ‖ of Ɛ is minimal among all error maps for tunings of S since T is the Tp tuning. By the 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 Ɛ‖ = ‖Ƹ. Additionally, due to a 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, J* + Ƹ, where J* is the full p-limit JIP, must equal the Tp tuning for S*. Thus to find the Tp tuning of S for the group G, we may first find the Tp 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 Zorn's lemma and does not guarantee any kind of uniqueness, in most cases there is only one Lp 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 p = 1 or p = ∞, so that we may get a unique Lp tuning (called the "TIPTOP" tuning for p = ∞) by simply taking the limit as p approaches our value.

T2 tuning

In the special case where p = 2, the Tp norm for the full prime limit becomes the T2 norm, which when divided by the square root of the number n of primes in the prime limit, is the Tenney-Euclidean norm, giving TE complexity. Associated to this norm is T2 tuning extended to arbitrary JI groups, and RMS error, which for a tuning map T is ‖(TJ)/n2 = ‖TJRMS.

For an example, consider indium temperament, with group 2.5/3.7/3.11/3 and comma basis 3025/3024 and 3125/3087. The corresponding full 11-limit temperament is of rank three, and using the usual methods, in particular the pseudoinverse, we find that the T2 (TE) tuning map is 1199.552 1901.846 2783.579 3371.401 4153.996]. Applying that to 12/11 gives a generator of 146.995, and multiplying that by 1200.000/1199.552 gives a POT2 tuning, or extended POTE tuning, of 147.010. Converting the tuning map to weighted coordinates and subtracting 1200 1200 1200 1200 1200] gives -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 cents.

This is called subgroup TE in Graham Breed's temperament finder.

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 Tp 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.