# Constrained tuning/Analytical solution to constrained Euclidean tunings

## Preliminaries

The projection map is useful in a lot of ways. We will work extensively with the projection map in the course of solving constrained tunings.

First, it manifests itself as a form of tuning map. Its columns represent tunings of formal primes in terms of monzos. The tuning map in the logarithmic scale can be obtained by multiplying the projection map by the JIP on the left.

$\displaystyle T = JP$

where T is the tuning map, J the JIP, and P the projection map.

The projection map multipled by a temperament map on the left yields its tempered monzos. In particular, if V is the temperament map of P, then

$\displaystyle VP = V$

Second, the projection map multipled by a monzo list on the right yields the tunings of the list in terms of monzos. In particular, if M is the comma list of P, then

$\displaystyle PM = O$

For any Euclidean aka L2 tuning without constraints, the weight-skewed projection map is

$\displaystyle P_{WX} = V_{WX}^+ V_{WX}$

where + is the pseudoinverse, and VWX = VWX is the weight-skewed val list of the temperament. Removing the transformation, it is

$\displaystyle P = WXV_{WX}^+ V_{WX}(WX)^+ = WX(VWX)^+V$

## CEE tuning

Let us start with CEE tuning (constrained equilateral-Euclidean tuning): both weight and skew are identity matrices, which will be omitted below, and the constraint is the octave.

Denote the constraint by MC. In the case of CEE, it is the octave:

$\displaystyle M_{\rm C} = [ \begin{matrix} 1 & 0 & \ldots & 0 \end{matrix} \rangle$

but it works as long as it is the first r elements of the subgroup basis.

We will denote the projection map by P. The goal is to work out the constrained projection map PC, which also satisfies

$\displaystyle VP_{\rm C} = V \\ P_{\rm C}M = O$

$\displaystyle P_{\rm C} M_{\rm C} = M_{\rm C}$

Since P is characteristic of the temperament and is independent of the specific tuning, notice

$\displaystyle P = P_{\rm C}^+P_{\rm C}$

That makes the pseudoinverse of PC easier to work with than PC itself, as

$\displaystyle P_{\rm C}^+ M_{\rm C} = P_{\rm C}^+P_{\rm C} M_{\rm C} = P M_{\rm C}$

Both PC+MC and PMC are the same slice of the first r columns of P.

With the first r rows and columns removed, the remaining part in the mapping will be dubbed the minor matrix, denoted VM. The minor matrix of the projection map

$\displaystyle P_{\rm M} = V_{\rm M}^+ V_{\rm M}$

forms an orthogonal projection map filling the bottom-right section of PC+.

In general, if MC is the first r elements of the subgroup basis, then PC is of the form

$\displaystyle P_{\rm C} = \begin{bmatrix} V^+VM_{\rm C} & \begin{matrix} O \\ V_{\rm M}^+V_{\rm M} \end{matrix} \end{bmatrix}^+$

## Otherwise normed tuning

If there is a weight W and/or a skew X, such as CTWE tuning, the weight-skew should be applied to the map and the constraint first:

\displaystyle \begin{align} V_{WX} &= VWX \\ (M_{\rm C})_{WX} &= (WX)^+ M_{\rm C} \end{align}

Working from here, we find the weighted projection map (PC)WX:

$\displaystyle (P_{\rm C})_{WX} = \begin{bmatrix} V_{WX}^+ V_{WX} (M_{\rm C})_{WX} & \begin{matrix} O \\ (V_{WX})_{\rm M}^+ (V_{WX})_{\rm M} \end{matrix} \end{bmatrix}^+$

To reconstruct the original projection map, apply

$\displaystyle P_{\rm C} = WX (P_{\rm C})_{WX} (WX)^+$

## Nontrivially constrained tuning

What if the constraint is something more complex, especially when it is not the first r elements of the subgroup basis? It turns out we can always transform the subgroup basis to encapsulate the constraint. Such a subgroup S is formed by the constraint and its orthonormal complement.

$\displaystyle S = [\begin{matrix} M_{\rm C} & M_{\rm C}^\perp \end{matrix}]$

For example, if the temperament is in the subgroup basis of 2.3.5.7, and if the constraint is 2.5/3, then

$\displaystyle M_{\rm C} = \begin{bmatrix} 1 & 0 \\ 0 & -1 \\ 0 & 1 \\ 0 & 0 \end{bmatrix}, M_{\rm C}^\perp = \begin{bmatrix} 0 & 0 \\ 1/\sqrt{2} & 0 \\ 1/\sqrt{2} & 0 \\ 0 & 1 \end{bmatrix}, S = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & -1 & 1/\sqrt{2} & 0 \\ 0 & 1 & 1/\sqrt{2} & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}$

We should apply this S to the map and the constraint to convert them into the working basis:

\displaystyle \begin{align} V_S &= VS \\ (M_{\rm C})_S &= S^{-1}M_{\rm C} \end{align}

Proceed as before. The projection map found this way will be in the working basis. To reconstruct the original projection map, apply

$\displaystyle P_{\rm C} = S (P_{\rm C})_S S^{-1}$

Similarly, if there is a weight W and/or a skew X, it should be applied to the map and the constraint first:

\displaystyle \begin{align} V_{WX} &= VWX \\ (M_{\rm C})_{WX} &= (WX)^+ M_{\rm C} \end{align}

and then the basis transformation matrix should be found out in this weight-skewed space:

$\displaystyle S = [\begin{matrix} M_{\rm C} & M_{\rm C}^\perp \end{matrix}]$

We should apply this S to the weight-skewed map and the weight-skewed constraint to convert them into the working basis:

\displaystyle \begin{align} V_{WXS} &= VWXS \\ (M_{\rm C})_{WXS} &= (WXS)^+ M_{\rm C} \end{align}

Proceed as before. The projection map found this way will be weight-skewed and in the working basis. To reconstruct the original projection map, apply

$\displaystyle P_{\rm C} = WXS (P_{\rm C})_{WXS} (WXS)^+$

## Example

Let us try tuning septimal meantone to CEE.

Its mapping is

$\displaystyle V = \begin{bmatrix} 1 & 0 & -4 & -13 \\ 0 & 1 & 4 & 10 \end{bmatrix}$

The projection map is

\displaystyle \begin{align} P &= V^+V \\ &= \frac{1}{446} \begin{bmatrix} 117 & 146 & 116 & -61 \\ 146 & 186 & 160 & -38 \\ 116 & 160 & 176 & 92 \\ -61 & -38 & 92 & 413 \end{bmatrix} \end{align}

The minor matrix of the mapping is

$\displaystyle V_{\rm M} = \begin{bmatrix} 1 & 4 & 10\end{bmatrix}$

and the minor matrix of the projection map is

\displaystyle \begin{align} P_{\rm M} &= V_{\rm M}^+V_{\rm M} \\ &= \frac{1}{117} \begin{bmatrix} 1 & 4 & 10 \\ 4 & 16 & 40 \\ 10 & 40 & 100 \end{bmatrix} \end{align}

In fact,

$\displaystyle P_{\rm C}^+ = \begin{bmatrix} 117/446 & 0 & 0 & 0 \\ 146/446 & 1/117 & 4/117 & 10/117 \\ 116/446 & 4/117 & 16/117 & 40/117 \\ -61/446 & 10/117 & 40/117 & 100/117 \end{bmatrix}$

Hence,

$\displaystyle P_{\rm C} = \frac{1}{117} \begin{bmatrix} 117 & 146 & 116 & -61 \\ 0 & 1 & 4 & 10 \\ 0 & 4 & 16 & 40 \\ 0 & 10 & 40 & 100 \end{bmatrix}$

The tuning map TC is

\displaystyle \begin{align} T_{\rm C} &= JP_{\rm C} \\ &= \langle \begin{matrix} 1200 & 1896.8843 & 2787.5374 & 3368.8435 \end{matrix} ] \end{align}