Inverse-complexity-prescaled complexity: Difference between revisions

Cmloegcmluin (talk | contribs)
remove Dave from the authorial "we"
Cmloegcmluin (talk | contribs)
simplicity prescaler → inverse of complexity prescaler
Line 1: Line 1:
This article is a cautionary tale for anyone who (as I, [[Douglas Blumeyer]], did) got temporarily seduced and totally confused about: using a [[simplicity prescaler|''simplicity'' prescaler]] inside a [[interval complexity|''complexity'']] function (that is, one that is [[Dave_Keenan_%26_Douglas_Blumeyer%27s_guide_to_RTT:_all-interval_tuning_schemes#Normifying_complexities|in (prescaled) norm form]]), ''even if'' the resultant complexity values are being reciprocated to be used for [[simplicity-weight]] [[damage]]. Simplicity-prescaled complexity functions: don't use them! Now that I have good enough terminology for the constituent parts, the name itself seems as self-contradictory as the concept.
This article is a cautionary tale for anyone who (as I, [[Douglas Blumeyer]], did) got temporarily seduced and totally confused about: using the inverse of a complexity prescaler with a [[interval complexity|''complexity'']] function (that is, one that is [[Dave_Keenan_%26_Douglas_Blumeyer%27s_guide_to_RTT:_all-interval_tuning_schemes#Normifying_complexities|in (prescaled) norm form]]), ''even if'' the resultant complexity values are going to be reciprocated to be used for [[simplicity-weight]] [[damage]]. Inverse-complexity-prescaled complexity functions: don't use them! Now that I have good enough terminology for the constituent parts, the name itself seems as self-contradictory as the concept.


So why would someone ever want to try this? Well, I had looked into it because I was curious about the limitation of all-interval tuning schemes whereby they only work with simplicity-weight damage. I'd wondered if there was nonetheless a way to achieve complexity-weight-like effects anyway. As you will see from this article, the answer is a very slight "sort of", but at such a cost of reasonableness that there's no way it could be worth it.
So why would someone ever want to try this? Well, I had looked into it because I was curious about the limitation of [[all-interval tuning scheme]]s whereby they only work with simplicity-weight damage. I'd wondered if there was nonetheless a way to achieve complexity-weight-like effects anyway. As you will see from this article, the answer is a very slight "sort of", but at such a cost of reasonableness that there's no way it could be worth it.


For our control case, here's what normal reasonable [[complexity-weight|complexity-weighting]] looks like, i.e. where our [[target-interval weight matrix|weight matrix]] <math>W</math> increases weight with complexity, and so we call it <math>C</math>. Again, we're using a prescaled <math>q</math>-norm as the complexity, where <math>C_{\text{p}}</math> is the prescaler. We've gone ahead and somewhat arbitrarily picked a demo list of [[target-interval]]s <math>[\frac21, \frac32, \frac54, \frac53]</math>, but at this time we want to demonstrate the general relationships here and so haven't specified the actual complexity or its prescaler yet:
For our control case, here's what normal reasonable [[complexity-weight|complexity-weighting]] looks like, i.e. where our [[target-interval weight matrix|weight matrix]] <math>W</math> increases weight with complexity, and so we call it <math>C</math>. Again, we're using a prescaled <math>q</math>-norm as the complexity, where <math>X</math> is the prescaler. We've gone ahead and somewhat arbitrarily picked a demo list of [[target-interval]]s <math>[\frac21, \frac32, \frac54, \frac53]</math>, but at this time we want to demonstrate the general relationships here and so haven't specified the actual complexity or its prescaler yet:




Line 19: Line 19:
C \\
C \\
\left[ \begin{array} {c}
\left[ \begin{array} {c}
‖C_{\text{p}}[1 \; 0 \; 0 \; ⟩‖_q & 0 & 0 & 0 \\
‖X[1 \; 0 \; 0 \; ⟩‖_q & 0 & 0 & 0 \\
0 & ‖C_{\text{p}}[{-1} \; 1 \; 0 \; ⟩‖_q & 0 & 0 \\
0 & ‖X[{-1} \; 1 \; 0 \; ⟩‖_q & 0 & 0 \\
0 & 0 & ‖C_{\text{p}}[{-2} \; 0 \; 1 \; ⟩‖_q & 0 \\
0 & 0 & ‖X[{-2} \; 0 \; 1 \; ⟩‖_q & 0 \\
0 & 0 & 0 & ‖C_{\text{p}}[0 \; {-1} \; 1 \; ⟩‖_q \\
0 & 0 & 0 & ‖X[0 \; {-1} \; 1 \; ⟩‖_q \\
\end{array} \right]
\end{array} \right]
\end{array}
\end{array}
Line 28: Line 28:




And here's ''simplicity''-weighting (the inverse slope of complexity-weighting, where weight is meant to ''decrease'' with complexity, and so <math>W = S</math> instead; these changes indicated in blue) but while using a ''simplicity'' prescaler (<math>S_{\text{p}}</math>, which is the inverse of the complexity prescaler; these changes indicated in red):
And here's ''simplicity''-weighting (the inverse slope of complexity-weighting, where weight is meant to ''decrease'' with complexity, and so <math>W = S</math> instead; these changes indicated in blue) but while using the inverse of a complexity prescaler (<math>X^{-1}</math>); these changes indicated in red):




Line 44: Line 44:
{\color{blue}S} \\
{\color{blue}S} \\
\left[ \begin{array} {c}
\left[ \begin{array} {c}
{\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}S_{\text{p}}}{\color{black}[1 \; 0 \; 0 \; ⟩‖_q}}} & 0 & 0 & 0 \\
{\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}X^{-1}}{\color{black}[1 \; 0 \; 0 \; ⟩‖_q}}} & 0 & 0 & 0 \\
0 & {\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}S_{\text{p}}}{\color{black}[{-1} \; 1 \; 0 \; ⟩‖_q}}} & 0 & 0 \\
0 & {\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}X^{-1}}{\color{black}[{-1} \; 1 \; 0 \; ⟩‖_q}}} & 0 & 0 \\
0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}S_{\text{p}}}{\color{black}[{-2} \; 0 \; 1 \; ⟩‖_q}}} & 0 \\
0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}X^{-1}}{\color{black}[{-2} \; 0 \; 1 \; ⟩‖_q}}} & 0 \\
0 & 0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}S_{\text{p}}}{\color{black}[0 \; {-1} \; 1 \; ⟩‖_q}}} \\
0 & 0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖}{\color{red}X^{-1}}{\color{black}[0 \; {-1} \; 1 \; ⟩‖_q}}} \\
\end{array} \right]
\end{array} \right]
\end{array}
\end{array}
Line 57: Line 57:
Let's see what we'd get if we chose our default complexity, [[log-product complexity|log-product]] <math>\text{lp-C}()</math> in this case. This means substitute in:
Let's see what we'd get if we chose our default complexity, [[log-product complexity|log-product]] <math>\text{lp-C}()</math> in this case. This means substitute in:
* <math>1</math> in place of our [[Dave_Keenan_%26_Douglas_Blumeyer%27s_guide_to_RTT:_all-interval_tuning_schemes#Power_norms|norm power]] <math>q</math>,  
* <math>1</math> in place of our [[Dave_Keenan_%26_Douglas_Blumeyer%27s_guide_to_RTT:_all-interval_tuning_schemes#Power_norms|norm power]] <math>q</math>,  
* the log-prime matrix <math>L</math> in place of <math>C_{\text{p}}</math>, and  
* the log-prime matrix <math>L</math> in place of <math>X</math>, and  
* its inverse <math>L^{-1}</math> in place of <math>S_{\text{p}}</math>.  
* its inverse <math>L^{-1}</math> in place of <math>X^{-1}</math>.  


Working that out, we find for our complexity-weight case:
Working that out, we find for our complexity-weight case:
Line 136: Line 136:
{\color{blue}S} \\
{\color{blue}S} \\
\left[ \begin{array} {c}
\left[ \begin{array} {c}
{\color{blue}\dfrac{1}{{\color{black}‖C_{\text{p}}[1 \; 0 \; 0 \; ⟩‖_q}}} & 0 & 0 & 0 \\
{\color{blue}\dfrac{1}{{\color{black}‖X[1 \; 0 \; 0 \; ⟩‖_q}}} & 0 & 0 & 0 \\
0 & {\color{blue}\dfrac{1}{{\color{black}‖C_{\text{p}}[{-1} \; 1 \; 0 \; ⟩‖_q}}} & 0 & 0 \\
0 & {\color{blue}\dfrac{1}{{\color{black}‖X[{-1} \; 1 \; 0 \; ⟩‖_q}}} & 0 & 0 \\
0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖C_{\text{p}}[{-2} \; 0 \; 1 \; ⟩‖_q}}} & 0 \\
0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖X[{-2} \; 0 \; 1 \; ⟩‖_q}}} & 0 \\
0 & 0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖C_{\text{p}}[0 \; {-1} \; 1 \; ⟩‖_q}}} \\
0 & 0 & 0 & {\color{blue}\dfrac{1}{{\color{black}‖X[0 \; {-1} \; 1 \; ⟩‖_q}}} \\
\end{array} \right]
\end{array} \right]
\end{array}
\end{array}
Line 163: Line 163:
C \\
C \\
\left[ \begin{array} {c}
\left[ \begin{array} {c}
‖{\color{red}S_{\text{p}}}[1 \; 0 \; 0 \; ⟩‖_q & 0 & 0 & 0 \\
‖{\color{red}X^{-1}}[1 \; 0 \; 0 \; ⟩‖_q & 0 & 0 & 0 \\
0 & ‖{\color{red}S_{\text{p}}}[{-1} \; 1 \; 0 \; ⟩‖_q & 0 & 0 \\
0 & ‖{\color{red}X^{-1}}[{-1} \; 1 \; 0 \; ⟩‖_q & 0 & 0 \\
0 & 0 & ‖{\color{red}S_{\text{p}}}[{-2} \; 0 \; 1 \; ⟩‖_q & 0 \\
0 & 0 & ‖{\color{red}X^{-1}}[{-2} \; 0 \; 1 \; ⟩‖_q & 0 \\
0 & 0 & 0 & ‖{\color{red}S_{\text{p}}}[0 \; {-1} \; 1 \; ⟩‖_q \\
0 & 0 & 0 & ‖{\color{red}X^{-1}}[0 \; {-1} \; 1 \; ⟩‖_q \\
\end{array} \right]
\end{array} \right]
\end{array}
\end{array}
Line 174: Line 174:
So those values are 1, 1/1.631 = 0.613, 1/2.431 = 0.411, and 1/1.062 = 0.942 by the way. So this is now our scare-quoted "complexity-weight" matrix, because our weights are generally going down as complexity goes up, but also there's the chaotic noise effect where — given that — <math>\frac53</math> is found on the wrong side of <math>\frac32</math>.
So those values are 1, 1/1.631 = 0.613, 1/2.431 = 0.411, and 1/1.062 = 0.942 by the way. So this is now our scare-quoted "complexity-weight" matrix, because our weights are generally going down as complexity goes up, but also there's the chaotic noise effect where — given that — <math>\frac53</math> is found on the wrong side of <math>\frac32</math>.


So in conclusion, this should really be a red flag; it should never make sense to use a ''simplicity'' prescaler inside a ''complexity'' function. I do recognize that it can be confusing to realize that we ''do'', however, use ''complexity'' functions in simplicity-weight matrices, as we did just a moment ago. Now, there is an alternative way to think of it as calling <math>\text{lp-S}()</math> there, but I expect for most readers it is still more comfortable to think of this is as <math>\frac{1}{\text{lp-S}()}</math>. So we do use complexity prescalers outside of the context of all-interval tunings; they may occur in any complexity-weight or simplicity-weight damage that defines its complexity as a prescaled norm of the interval's PC-vector (and in this case, then, the 'p' subscript of <math>C_{\text{p}}</math> stands only for "pretransform", not also for "prime" as it does with all-interval tuning schemes), but we ''never'' use simplicity prescalers except as inverse prescalers in the dual retuning magnitude norm for all-interval tuning schemes.
So in conclusion, this should really be a red flag; it should never make sense to use the inverse of a complexity prescaler inside a ''complexity'' function. I do recognize that it can be confusing to realize that we ''do'', however, use ''complexity'' functions in simplicity-weight matrices, as we did just a moment ago. Now, there is an alternative way to think of it as calling <math>\text{lp-S}()</math> there, but I expect for most readers it is still more comfortable to think of this is as <math>\frac{1}{\text{lp-S}()}</math>. So we do use complexity prescalers outside of the context of all-interval tunings; they may occur in any complexity-weight or simplicity-weight damage that defines its complexity as a prescaled norm of the interval's prime-count vector, but we ''never'' use inverses of complexity prescalers except in the [[retuning magnitude]], the dual norm to the interval complexity norm, for all-interval tuning schemes.


[[Category:Regular temperament theory]]
[[Category:Regular temperament theory]]
[[Category:Tuning]]
[[Category:Tuning]]