Constrained tuning/Analytical solution to constrained Euclidean tunings: Difference between revisions

Created page with "== 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 m..."
 
No edit summary
Line 16: Line 16:
<math>\displaystyle PB = O</math>
<math>\displaystyle PB = O</math>


For any Euclidean aka L<sub>2</sub> tunings, the weighted projection map is
For any Euclidean aka ''L''<sub>2</sub> tunings, the weighted projection map is


<math>\displaystyle P_W = V^+V</math>
<math>\displaystyle P_W = V^+V</math>
Line 24: Line 24:
<math>\displaystyle P = WV^+VW^{-1} = W(AW)^+A</math>
<math>\displaystyle P = WV^+VW^{-1} = W(AW)^+A</math>


== CFE tuning ==
== Trivially constrained tuning ==
Let us start with CFE tuning (<u>c</u>onstrained <u>F</u>rob<u>e</u>nius tuning) since its weighter is the identity matrix and the constraint is simply the octave.  
Let us start with CFE tuning (<u>c</u>onstrained <u>F</u>rob<u>e</u>nius tuning) since its weighter is the identity matrix and the constraint is simply the octave.  


Line 124: Line 124:
P_{\rm C} =  
P_{\rm C} =  
\begin{bmatrix}  
\begin{bmatrix}  
PB_{\rm C} & \begin{matrix} O \\ A_{\rm M}^+A_{\rm M} \end{matrix}
A^+AB_{\rm C} & \begin{matrix} O \\ A_{\rm M}^+A_{\rm M} \end{matrix}
\end{bmatrix}^+
\end{bmatrix}^+
</math>
</math>


== Nontrivial constraint and/or weight ==
If there is a weight, such as CTE tuning, the weight should be applied to the map and the constraint:
 
<math>\displaystyle
V = AW \\
M_{\rm C} = W^{-1}B_{\rm C}
</math>
 
Working from here, we find the weighted projection map (P<sub>C</sub>)<sub>W</sub>:
 
<math>\displaystyle
(P_{\rm C})_W =  
\begin{bmatrix}
V^+VM_{\rm C} & \begin{matrix} O \\ V_{\rm M}^+V_{\rm M} \end{matrix}
\end{bmatrix}^+
</math>
 
To reconstruct the original projection map, apply
 
<math>\displaystyle P_{\rm C} = W (P_{\rm C})_W W^{-1}</math>
 
== 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 is formed by the constraint and its orthonormal complement.  
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 is formed by the constraint and its orthonormal complement.  


Line 138: Line 158:


<math>\displaystyle  
<math>\displaystyle  
S = [B_{\rm C} \vert B_{\rm C}^\perp] =  
S = [\begin{matrix} B_{\rm C} & B_{\rm C}^\perp \end{matrix}] =  
\begin{bmatrix}
\begin{bmatrix}
1 & 0 & 0 & 0 \\
1 & 0 & 0 & 0 \\
0 & -1 & 1/\sqrt{2} & 0 \\
0 & -1 & 1/\sqrt{2} & 0 \\
0 & 1 & -1/\sqrt{2} & 0 \\
0 & 1 & 1/\sqrt{2} & 0 \\
0 & 0 & 0 & 1
0 & 0 & 0 & 1
\end{bmatrix}
\end{bmatrix}
Line 154: Line 174:
</math>
</math>


The projection map found this way will be also in the working basis. To convert it back, apply
Proceed as before. The projection map found this way will be in the working basis. To reconstruct the original projection map, apply
 
<math>\displaystyle P_{\rm C} = S (P_{\rm C})_S S^{-1}</math>
 
Similarly, if there is a weight, it should be applied to the map and the constraint first:
 
<math>\displaystyle
V = AW \\
M_{\rm C} = W^{-1}B_{\rm C}
</math>
 
and then the basis transformation matrix should be found out in this weighted space:
 
<math>\displaystyle
S_W = [\begin{matrix} M_{\rm C} & M_{\rm C}^\perp \end{matrix}]
</math>
 
We should apply this S<sub>W</sub> to the weighted map and the weighted constraint to convert them into the working basis:
 
<math>\displaystyle
V_S = VS_W \\
(M_{\rm C})_S = S_W^{-1}M_{\rm C}
</math>


<math>\displaystyle P = S P_S S^{-1}</math>
Proceed as before. The projection map found this way will be weighted and in the working basis. To reconstruct the original projection map, apply


<math>\displaystyle P_{\rm C} = WS (P_{\rm C})_{WS} S^{-1} W^{-1}</math>