Projection: Difference between revisions

Cmloegcmluin (talk | contribs)
Cmloegcmluin (talk | contribs)
Line 1,070: Line 1,070:
===The generator embedding===
===The generator embedding===


To obtain (some form of) a generator embedding for a projection, find the unchanged-interval basis per the above, and then use <math>G = \textrm{U}(M\textrm{U})^{-1}</math>. For more information, see [[Dave Keenan & Douglas Blumeyer's guide to RTT: tuning computation#Solving for the generators]].
To obtain (some form of) a generator embedding for a projection, find the unchanged-interval basis per the above, and then use <math>G = \textrm{U}(M\textrm{U})^{-1}</math>. Let's unpack why this is so.
 
If the projection matrix is <math>P</math>, and a matrix whose columns are prime-count vectors representing the unchanged-intervals of a tuning is <math>\mathrm{U}</math>, then by this definition of unrotated (only-scaled) vectors:
 
 
<math>
P\mathrm{U} = λ\mathrm{U}
</math>
 
 
Again, this is because the intervals in <math>\mathrm{U}</math> are merely scaled, so we can represent their change with something simpler than a matrix like <math>P</math>, namely, a mere scalar like <math>λ</math>.
 
Furthermore, if <math>λ = 1</math>, then we have:
 
 
<math>
P\mathrm{U} = (1)\mathrm{U}
</math>
 
 
Or even more simply:
 
 
<math>
P\mathrm{U} = \mathrm{U}
</math>
 
 
Again, this shows how the projection matrix maps — or more specifically, we can say it ''projects'' — the interval onto itself, or in other words, that it is unchanged by the tuning.
 
Because we know what <math>\mathrm{U}</math> is — we've specifically decided which intervals we wish to be unchanged here — we could solve for <math>P</math> now. But we don't actually care about <math>P</math> directly; what we want to find are the generators.
 
Fortunately, <math>P</math> is defined ''in terms of'' our desired generators, specifically our generator embedding <math>G</math>, as well as our mapping, <math>M</math>. The formula is this:
 
 
<math>
P = GM
</math>
 
 
So we can substitute <math>GM</math> in for <math>P</math>, and our equation will now be:
 
 
<math>
(GM)\mathrm{U} = \mathrm{U}
</math>
 
 
Since we're solving for our generators <math>G</math>, we right multiply both sides by the inverse of <math>M\mathrm{U}</math>, in order to cancel out the <math>M\mathrm{U}</math> on the left-hand side, and thereby isolate <math>G</math>:
 
 
<math>
GM\mathrm{U}(M\mathrm{U})^{-1} = \mathrm{U}(M\mathrm{U})^{-1} \\
G\cancel{M\mathrm{U}}\cancel{(M\mathrm{U})^{-1}} = \mathrm{U}(M\mathrm{U})^{-1} \\
G = \mathrm{U}(M\mathrm{U})^{-1}
</math>
 
 
For a simpler take on this idea which doesn't involve the projection matrix, see [[Dave Keenan & Douglas Blumeyer's guide to RTT: tuning computation#Solving for the generators]].


===The unrotated vectors and scaling factors===
===The unrotated vectors and scaling factors===