Generator embedding optimization: Difference between revisions
Cmloegcmluin (talk | contribs) →Tie-breaking: misc issues |
Dave Keenan (talk | contribs) →Convert to generators: Changed "generator preimage transversal" to "generator detempering". |
||
| Line 4,189: | Line 4,189: | ||
===Convert to generators=== | ===Convert to generators=== | ||
Now we just need to convert each of these unchanged-interval bases <math>\mathrm{U}_{(i,j)}</math> to a corresponding generator embedding <math>G</math>. To do this, we use the formula <math>G = \mathrm{U}(M\mathrm{U})^{-1}</math>, where <math>M</math> is the temperament mapping (the derivation of this formula, and examples of working through this calculation, are both described later in this article here: [[#Only unchanged-intervals method]]).<ref>Note that this technique for converting zero-damage points to generator tunings is much simpler than the technique described on the [[Target tunings]] page. The Target tunings page uses eigendecomposition, which unnecessarily requires you to find the commas for the temperament, compute a full [[projection matrix]] <math>P</math>, and then when you need to spit a generator tuning map <math>𝒈</math> out at the end, requires the computation of a [[generator | Now we just need to convert each of these unchanged-interval bases <math>\mathrm{U}_{(i,j)}</math> to a corresponding generator embedding <math>G</math>. To do this, we use the formula <math>G = \mathrm{U}(M\mathrm{U})^{-1}</math>, where <math>M</math> is the temperament mapping (the derivation of this formula, and examples of working through this calculation, are both described later in this article here: [[#Only unchanged-intervals method]]).<ref>Note that this technique for converting zero-damage points to generator tunings is much simpler than the technique described on the [[Target tunings]] page. The Target tunings page uses eigendecomposition, which unnecessarily requires you to find the commas for the temperament, compute a full [[projection matrix]] <math>P</math>, and then when you need to spit a generator tuning map <math>𝒈</math> out at the end, requires the computation of a [[generator detempering]] to do so (moreover, it doesn't explain or even mention eigendecomposition; it assumes the reader knows how and when to do them, cutting off at the point of listing the eigenvectors — a big thanks to Sintel for unpacking the thought process in that article for us). The technique described here skips the commas, computing the generator embedding <math>G</math> directly rather than via <math>P = GM</math>, and then when you need to spit a generator tuning map out at the end, it's just <math>𝒈 = 𝒋G</math>, which is much simpler than the generator detempering computation. | ||
<br><br> | <br><br> | ||
The Target tunings approach and this approach are quite similar conceptually. Here's the Target tunings approach: | The Target tunings approach and this approach are quite similar conceptually. Here's the Target tunings approach: | ||