Diamond tradeoff: Difference between revisions

Cmloegcmluin (talk | contribs)
consolidate categories
Cmloegcmluin (talk | contribs)
Example: remove confusing and possibly wrong reference to pseudoinverse here, simplify MathJax format, and clarify cancelation step
Line 27: Line 27:
Here we will demonstrate the calculation of the diamond tradeoff tuning range for meantone.
Here we will demonstrate the calculation of the diamond tradeoff tuning range for meantone.


Here is the mapping, <span><math>M</math></span>:
Here is the mapping, <math>M</math>:


<math>
<math>
Line 40: Line 40:
For each of these three diamond consonances, we want to find what generator is required in order that this pitch remains pure after tempering, or in other words, that it is an unchanged interval (sometimes called an [[eigenmonzo]]). And we want to know this for the situation where octaves are pure.  
For each of these three diamond consonances, we want to find what generator is required in order that this pitch remains pure after tempering, or in other words, that it is an unchanged interval (sometimes called an [[eigenmonzo]]). And we want to know this for the situation where octaves are pure.  


Let's do it for 4/3 first. So, we prepare a matrix out of these two unchanged intervals, 2/1 and 4/3, and call it <span><math>U</math></span>:
Let's do it for 4/3 first. So, we prepare a matrix out of these two unchanged intervals, 2/1 and 4/3, and call it <math>U</math>:


<math>
<math>
Line 50: Line 50:
</math>
</math>


One property of an unchanged interval of a tuning is that it is [https://mathworld.wolfram.com/Eigenvector.html eigenvector] of the projection matrix<ref>For now, the best explanation of projection matrices seems to be on the [[fractional monzo]]s page.</ref> for the tuning where the eigenvalue <span><math>λ</math></span> is 1. If the projection matrix is <span><math>P</math></span>, by the definition of eigenvectors, that means <span><math>P⋅U = λ⋅U</math></span>, or <span><math>P⋅U = 1⋅U</math></span>, or simply <span><math>P⋅U = U</math></span>. In other words, the projection matrix maps the interval to itself; it is unchanged by the tuning. Because we know what <span><math>U</math></span> is, we could solve for <span><math>P</math></span> now. But we don't want <span><math>P</math></span>; we want the generators. Fortunately, <span><math>P</math></span> is defined in terms of our desired generators, <span><math>G</math></span>, and our mapping, <span><math>M</math></span>, like this: <span><math>P = GM</math></span>. Now, <span><math>G</math></span> is the [https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse pseudoinverse] of <span><math>M</math></span><ref>we can understand this fact in this context to mean that when you multiply <span><math>M</math></span> and <span><math>G</math></span> the other way around, <span><math>MG</math></span>, you get <span><math>I</math></span>, the identity matrix, and this is because <span><math>G</math></span> represents the generators in terms of the primes, just like any ordinary prime count vector ([[monzo]]), except often using fractional powers, so we map it with a mapping just like any ordinary interval, and if you look at the columns of <span><math>I</math></span> and think of them as generator count vectors, you can see that it represents our targets. In other words, <span><math>G</math></span> is the prime count vectors for which each one gets mapped to a different single one of the temperament's generators.</ref>; we often write the pseudoinverse of <span><math>M</math></span> as <span><math>M⁺</math></span>, so let's write <span><math>G</math></span> instead as <span><math>M⁺</math></span>. So if <span><math>P = M⁺⋅M</math></span>, then we can substitute that in for <span><math>P</math></span>, and our equation will now be <span><math>M⁺⋅M⋅U = U</math></span>. But we want to solve for our generators, so that's <span><math>M⁺</math></span>. So if we right multiply both sides by the inverse of <span><math>(M⋅U)</math></span>, we get <span><math>M⁺ = U(MU)^{-1}</math></span>; the <span><math>MU</math></span> on the left side cancels out. The rest is busywork.
One property of an unchanged interval of a tuning is that it is [https://mathworld.wolfram.com/Eigenvector.html eigenvector] of the projection matrix<ref>For now, the best explanation of projection matrices seems to be on the [[fractional monzo]]s page.</ref> for the tuning where the eigenvalue <math>λ</math> is 1. If the projection matrix is <math>P</math>, by the definition of eigenvectors, that means <math>P⋅U = λ⋅U</math>, or <math>P⋅U = 1⋅U</math>, or simply <math>P⋅U = U</math>. In other words, the projection matrix maps the interval to itself; it is unchanged by the tuning. Because we know what <math>U</math> is, we could solve for <math>P</math> now. But we don't want <math>P</math>; we want the generators. Fortunately, <math>P</math> is defined in terms of our desired generators, <math>G</math>, and our mapping, <math>M</math>, like this: <math>P = GM</math>. So if <math>P = G⋅M</math>, then we can substitute that in for <math>P</math>, and our equation will now be <math>G⋅M⋅U = U</math>. But we want to solve for our generators, so that's <math>G</math>. So if we right multiply both sides by the inverse of <math>(M⋅U)</math>, we get  


We multiply <span><math>M⋅U</math></span>:
<math>
G⋅M⋅U(MU)^{-1} = U(MU)^{-1} \\
G⋅\cancel{M⋅U}\cancel{(MU)^{-1}} = U(MU)^{-1} \\
G = U(MU)^{-1}
</math>
 
So with <math>MU</math> on the left side canceled out, the rest is busywork.
 
We multiply <math>M⋅U</math>:


<math>
<math>
Line 70: Line 78:
</math>
</math>


We take the inverse <span><math>(M⋅U)^{-1}</math></span> (which in this case is the same):
We take the inverse <math>(M⋅U)^{-1}</math> (which in this case is the same):


<math>
<math>
Line 79: Line 87:
</math>
</math>


Then find <span><math>M⁺</math></span> which is <span><math>U⋅(M⋅U)^{-1}</math></span>:
Then find <math>G</math> which is <math>U⋅(M⋅U)^{-1}</math>:


<math>
<math>
Line 98: Line 106:
</math>
</math>


Reading the columns from <span><math>M⁺</math></span>, the first one confirms our period of 2/1, and the second column gives our generator 3/2. Which is unsurprising. In cents, that's 1200¢ × log₂(3/2) ≈ 701.955¢. The next unchanged interval will give a more interesting result.  
Reading the columns from <math>G</math>, the first one confirms our period of 2/1, and the second column gives our generator 3/2. Which is unsurprising. In cents, that's 1200¢ × log₂(3/2) ≈ 701.955¢. The next unchanged interval will give a more interesting result.  


So let's do 5/4 now. We prepare a matrix out of these two unchanged intervals, 2/1 and 5/4, and call it <span><math>U</math></span>:
So let's do 5/4 now. We prepare a matrix out of these two unchanged intervals, 2/1 and 5/4, and call it <math>U</math>:


<math>
<math>
Line 110: Line 118:
</math>
</math>


We multiply <span><math>M⋅U</math></span>:
We multiply <math>M⋅U</math>:


<math>
<math>
Line 128: Line 136:
</math>
</math>


We take the inverse <span><math>(M⋅U)^{-1}</math></span>:
We take the inverse <math>(M⋅U)^{-1}</math>:


<math>
<math>
Line 137: Line 145:
</math>
</math>


Then find <span><math>M⁺</math></span> which is <span><math>U⋅(M⋅U)^{-1}</math></span>:
Then find <math>G</math> which is <math>U⋅(M⋅U)^{-1}</math>:


<math>
<math>
Line 158: Line 166:
This tells us our generator is 5^(1/4). In cents, that's 1200¢ × log₂(5¹⸍⁴) ≈ 696.578¢.  
This tells us our generator is 5^(1/4). In cents, that's 1200¢ × log₂(5¹⸍⁴) ≈ 696.578¢.  


Okay, one more unchanged interval to check: 6/5. We prepare a matrix out of these two unchanged intervals, 2/1 and 6/5, and call it <span><math>U</math></span>:
Okay, one more unchanged interval to check: 6/5. We prepare a matrix out of these two unchanged intervals, 2/1 and 6/5, and call it <math>U</math>:


<math>
<math>
Line 168: Line 176:
</math>
</math>


We multiply <span><math>M⋅U</math></span>:
We multiply <math>M⋅U</math>:


<math>
<math>
Line 186: Line 194:
</math>
</math>


We take the inverse <span><math>(M⋅U)^{-1}</math></span>:
We take the inverse <math>(M⋅U)^{-1}</math>:


<math>
<math>
Line 195: Line 203:
</math>
</math>


Then find <span><math>M⁺</math></span> which is <span><math>U⋅(M⋅U)^{-1}</math></span>:
Then find <math>G</math> which is <math>U⋅(M⋅U)^{-1}</math>:


<math>
<math>