# Tp tuning

# Definition

**Tp tuning** is a generalzation of TOP and TE tuning. If p ≥ 1, define the Tp norm, which we may also call the Tp 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) m_k|^p)^{1/p}[/math]

If q is any positive rational number, ||q||_p 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* is PEp(q) = Err(q)/||q||_p. For any tuning T of the temperament, the set of PEp(q) for all q ≠ 1 in G is bounded, and hence has a least upper bound, the supremum PEps(T). The set of values PEps(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've defined above, Ep(S) has units of cents. Any tuning achieving this minimum, so that PEps(T) = Ep(S), is an 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 chose 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 coresponding pure-octaves tuning POLp(S) by dividing by the tuning of 2: POLp(S) = 1200 Tp(S)/Tp(S)(2). 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 r2 ... rn] 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).

# Applying the Hahn-Banach theorem

Suppose T = Tp(S) is an 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 Ɛ = T - J 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.

# 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 ||(T - J)/n ||_2 = ||T - J||.

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.0/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 -.0685 -1.1778 0.9172 0.7741|. The ordinary Euclidean norm of this, ie the square root of the dot product, is 1.7414, and dividing by sqrt(5) gives the RMS error, 0.77879 cents.