Generator complexity: Difference between revisions

m Improve wiki markup (1/2)
m Improve wiki markup (2/2)
Line 1: Line 1:
__FORCETOC__
__FORCETOC__
== Definition ==
== Definition ==
Suppose ''A'' = {{val| 0 A₃ A₅ A₇ A<sub>''p''</sub> }} is the generator mapping val for a rank two temperament with ''P'' periods to the octave, and ''B'' = {{val| 0 B₃ B₅ B₇ B<sub>''p''</sub> }} is the same val in weighted coordinates. For instance, {{val| 0 1 -2 -2 }} is the generator mapping val for seven limit [[pajara]], and {{val| 0 1/log2(3) -2/log2(5) -2/log2(7) }} ≅ {{val| 0 0.631 -0.831 -0.712 }} is the val in weighted coordinates. For any vector V, let max(V) - min(V) = span(V). The '''generator complexity''' of the temperament is ''P'' span(''B''). In the case of pajara, which has two periods to the octave, this would be (0.631 - (-0.861)) = 2.984. This can also be described in terms of the wedgie W of the temperament, as span(2∨W), which is the span of 0 followed by the first ''n'' - 1 elements of W, where ''n'' is the number of primes in the ''p''-limit.  
Suppose ''A'' = {{val| 0 ''a''<sub>3</sub> ''a''<sub>5</sub> ''a''<sub>7</sub> ''a''<sub>''p''</sub> }} is the generator mapping val for a rank two temperament with ''P'' periods to the octave, and ''B'' = {{val| 0 ''b''<sub>3</sub> ''b''<sub>5</sub> ''b''<sub>7</sub> ''b''<sub>''p''</sub> }} is the same val in weighted coordinates. For instance, {{val| 0 1 -2 -2 }} is the generator mapping val for seven limit [[pajara]], and {{val| 0 1/log<sub>2</sub>(3) -2/log<sub>2</sub>(5) -2/log<sub>2</sub>(7) }} ≅ {{val| 0 0.631 -0.831 -0.712 }} is the val in weighted coordinates. For any vector '''v''', let span('''v''') = max('''v''') - min('''v'''). The '''generator complexity''' of the temperament is ''P''⋅span(''B''). In the case of pajara, which has two periods to the octave, this would be 2⋅(0.631 - (-0.861)) = 2.984. This can also be described in terms of the wedgie ''W'' of the temperament, as span(2∨''W''), which is the span of 0 followed by the first ''n'' - 1 elements of W, where ''n'' is the number of primes in the ''p''-limit.  


Generator complexity satisfies the inequality, for any ''p''-limit interval ''I'', G(''I'') ≤ ''C'' KE(''I''), where ''C'' is the generator complexity of the temperament, G(''I'') is the number of generator steps, times ''P'', required to reach the tempered version of ''I'', and KE(''I'') is the [[Kees semi-height|Kees expressibility]] of ''I''. So for instance, in meantone G(5/4) = 4, since it requires four generator steps to get to 5/4, and KE(5/4) = log2(5). In pajara, G(5/4) = 4 also, since two generator steps are required to get to 5/4 (5/4 = (4/3)<sup>2</sup> · 45/64), and ''P'' = 2, so that G(5/4) = 2×2.
Generator complexity satisfies the inequality, for any ''p''-limit interval ''I'', G(''I'') ≤ ''C'' KE(''I''), where ''C'' is the generator complexity of the temperament, G(''I'') is the number of generator steps, times ''P'', required to reach the tempered version of ''I'', and KE(''I'') is the [[Kees semi-height|Kees expressibility]] of ''I''. So for instance, in meantone G(5/4) = 4, since it requires four generator steps to get to 5/4, and KE(5/4) = log<sub>2</sub>(5). In pajara, G(5/4) = 4 also, since two generator steps are required to get to 5/4 (5/4 = (4/3)<sup>2</sup> 45/64), and ''P'' = 2, so that G(5/4) = 2×2.


This inequality can be used to give an alternative definition of generator complexity: ''C'' = sup G(''I'')/KE(''I'') over non-octave intervals, where KE(''I'') &gt; 0. A related definition can be extended to higher ranks: since the [[Tenney-Euclidean metrics #Octave equivalent TE seminorm|OETES]] in the case of a rank two temperament is proportional (albeit with a different proportionality factor for each temperament) to G(''I''), we can define a complexity measure for any rank of temperament by ''C'' = sup OETES(''I'')/KE(''I'').
This inequality can be used to give an alternative definition of generator complexity: ''C'' = sup G(''I'')/KE(''I'') over non-octave intervals, where KE(''I'') &gt; 0. A related definition can be extended to higher ranks: since the [[Tenney-Euclidean metrics #Octave equivalent TE seminorm|OETES]] in the case of a rank two temperament is proportional (albeit with a different proportionality factor for each temperament) to G(''I''), we can define a complexity measure for any rank of temperament by ''C'' = sup OETES(''I'')/KE(''I'').
Line 12: Line 12:
The following proof is due to Mike Battaglia.
The following proof is due to Mike Battaglia.


If '''m''' = {{monzo| m2 m3 m5 ... mp }} is a vector with weighted coordinates in interval space, then KE('''m'''), the Kees expressibility of '''m''', is (|m3 + m5 + … + mp| + |m3| + |m5| + ... + |mp|)/2. The "2" coordinate, m2, plays no role in Kees expressibility, so we may replace it with anything we choose. If we replace it with -e3 -e5-…-ep, we may define expressibility in terms of the ''L''<sub>1</sub> norm, as ‖ |-e3-e5-…-ep e3 e5 ep&gt;  ‖/2.
If '''m''' = {{monzo| ''m''<sub>2</sub> ''m''<sub>3</sub> ''m''<sub>5</sub> … ''m''<sub>''p''</sub> }} is a vector with weighted coordinates in interval space, then KE('''m'''), the Kees expressibility of '''m''', is (|''m''<sub>3</sub> + ''m''<sub>5</sub> + … + ''m''<sub>''p''</sub>| + |''m''<sub>3</sub>| + |''m''<sub>5</sub>| + + |''m''<sub>''p''</sub>|)/2. The "2" coordinate, ''m''<sub>2</sub>, plays no role in Kees expressibility, so we may replace it with anything we choose. If we replace it with -''e''<sub>3</sub> - ''e''<sub>5</sub> - … - ''e''<sub>''p''</sub>, we may define expressibility in terms of the ''L''<sub>1</sub> norm, as ‖ {{monzo| -''e''<sub>3</sub>-''e''<sub>5</sub>-…-''e''<sub>''p''</sub> ''e''<sub>3</sub> ''e''<sub>5</sub> ''e''<sub>''p''</sub> }} ‖/2.


For any vector space X with a subspace A, we may define a quotient space X/A as the equivalence classes of vectors in X where two vectors are equivalent iff their difference lies in A. Then we have a short exact sequence 0 → A → X → X/A → 0. Taking the duals of this gives us 0 → (X/A)* → X* → A* → 0. The annihilator of A is the subspace A⁀ of X* consisting of those functionals ''f'' such that &lt;''f''|A&gt; equals 0; that is, it is the subspace of all the functionals ''f'' such that &lt;''f''|'''a'''&gt; equals 0 for every '''a''' in A. There is a natural isomorphism between the annihilator A⁀ of A and the dual of the quotient (X/A)*, and also between X*/A⁀ and A*.
For any vector space X with a subspace A, we may define a quotient space X/A as the equivalence classes of vectors in X where two vectors are equivalent iff their difference lies in A. Then we have a short exact sequence 0 → A → X → X/A → 0. Taking the duals of this gives us 0 → (X/A)* → X* → A* → 0. The annihilator of A is the subspace A⁀ of X* consisting of those functionals ''f'' such that ''f''|A⟩ equals 0; that is, it is the subspace of all the functionals ''f'' such that ''f''|'''a'''equals 0 for every '''a''' in A. There is a natural isomorphism between the annihilator A⁀ of A and the dual of the quotient (X/A)*, and also between X*/A⁀ and A*.


Now suppose X is a finite dimensional real normed vector space. A is then also a finite dimensional real normed vector space, inheriting its norm from X, and X/A is a finite dimensional real normed vector space, with a norm given by, for an equivalence class ['''x'''], ‖['''x''']‖ equals inf {‖'''x''' + '''a'''‖, '''a''' ∈ A}. Algebraically X is (noncanonically) isomorphic to X*, but in general they are no longer isomorphic as normed spaces. Instead, we have the [[dual norm]] on X*, defined by setting, over all nonzero '''x''' ∈ X, ‖''f''‖* = sup &lt;''f''|'''x'''&gt;/‖'''x'''‖. Under the dual norm X* is also a finite dimensional normed vector space, A⁀ is isometrically isomorphic to (X/A)*, and X*/A⁀ is isometrically isomorphic to A*.
Now suppose X is a finite dimensional real normed vector space. A is then also a finite dimensional real normed vector space, inheriting its norm from X, and X/A is a finite dimensional real normed vector space, with a norm given by, for an equivalence class ['''x'''], ‖['''x''']‖ equals inf {‖'''x''' + '''a'''‖, '''a''' ∈ A}. Algebraically X is (noncanonically) isomorphic to X*, but in general they are no longer isomorphic as normed spaces. Instead, we have the [[dual norm]] on X*, defined by setting, over all nonzero '''x''' ∈ X, ‖''f''‖* = sup ''f''|'''x'''/‖'''x'''‖. Under the dual norm X* is also a finite dimensional normed vector space, A⁀ is isometrically isomorphic to (X/A)*, and X*/A⁀ is isometrically isomorphic to A*.


In the situation which concerns us, X is the ''p''-limit interval space of dimension ''n'' under a norm of one half times the ''L''<sub>1</sub> norm, A is a subspace of dimension ''n'' - 1, whose coordinates sum to 0; hence A can be described as having the one-dimensional subspace A⁀ = {''kJ''}, where ''J'' is the [[JIP]], as its annihilator. X has a norm of half the ''L''<sub>1</sub> norm, and hence X* has a norm of twice the ''L''<sub>∞</sub> norm. The norm on A* is defined by its isomorphism with X*/A⁀; the minimum defining inf {‖''f'' + ''kJ''‖}  occurs for the value of ''k'' where the maximum of ''f'' + ''kJ'' and minus the minimum of ''f'' + ''kj'' are the same. In that case, 2‖''f'' + ''kJ''‖<sub>''L''∞</sub> = span(''f''), which is the generator complexity of ''f''. Hence generator complexity is the dual norm for Kees expressibility as a norm on pitch classes.
In the situation which concerns us, X is the ''p''-limit interval space of dimension ''n'' under a norm of one half times the ''L''<sub>1</sub> norm, A is a subspace of dimension ''n'' - 1, whose coordinates sum to 0; hence A can be described as having the one-dimensional subspace A⁀ = {''kJ''}, where ''J'' is the [[JIP]], as its annihilator. X has a norm of half the ''L''<sub>1</sub> norm, and hence X* has a norm of twice the ''L''<sub>∞</sub> norm. The norm on A* is defined by its isomorphism with X*/A⁀; the minimum defining inf {‖''f'' + ''kJ''‖}  occurs for the value of ''k'' where the maximum of ''f'' + ''kJ'' and minus the minimum of ''f'' + ''kj'' are the same. In that case, 2‖''f'' + ''kJ''‖<sub>∞</sub> = span(''f''), which is the generator complexity of ''f''. Hence generator complexity is the dual norm for Kees expressibility as a norm on pitch classes.


== STD complexity ==
== STD complexity ==
If ''B'' = {{val| 0 B₃ B₅ B₇ ... B<sub>''p''</sub> }} is the generator mapping val in weighted coordinates, and ''P'' is the period, then the '''STD complexity''' (a term due to Graham Breed) is ''P'' STD(''B''), where "STD" means the standard deviation. If ''μ''(''V'') is the mean of the components of the vector ''V'', and ''J'' is the [[JIP]] {{val| 1 1 1 … 1 }}, then  ''₱''(''V'') = ''V'' - ''μ''(''V'')''J'' is the projection of ''V'' onto the subspace of vectors with zero mean value. We have STD(''V'') = ( ''₱''(''V'') ∙ ''₱''(''V'') / dim(''V'')), where dim(''V'') is the dimension of ''V'' and the " " denotes the dot product. If ''M'' = [''M''0, ''M''1] is the [[Temperament mapping matrices|mapping matrix]] in weighted coordinates in the standard [[Normal lists #Normal val lists|normal val list]] form, then we may express STD complexity as STDcom(''M'') = M0[1] STD(M1).
If ''B'' = {{val| 0 ''b''<sub>3</sub> ''b''<sub>5</sub> ''b''<sub>7</sub> … ''b''<sub>''p''</sub> }} is the generator mapping val in weighted coordinates, and ''P'' is the period, then the '''STD complexity''' (a term due to Graham Breed) is ''P''⋅STD(''B''), where "STD" means the standard deviation. If ''μ''(''V'') is the mean of the components of the vector ''V'', and ''J'' is the [[JIP]] {{val| 1 1 1 … 1 }}, then  ''₱''(''V'') = ''V'' - ''μ''(''V'')''J'' is the projection of ''V'' onto the subspace of vectors with zero mean value. We have STD(''V'') = sqrt (''₱''(''V'')∙''₱''(''V'') / dim(''V'')), where dim(''V'') is the dimension of ''V'' and the "" denotes the dot product. If ''M'' = [''M''<sub>0</sub>, ''M''<sub>1</sub>]<sup>T</sup> is the [[Temperament mapping matrices|mapping matrix]] in weighted coordinates in the standard [[Normal lists #Normal val lists|normal val list]] form, then we may express STD complexity as STDcom(''M'') = ''M''<sub>0</sub>[1]⋅STD(''M''<sub>1</sub>).


Associated to STD complexity is STD error. If ''S'' = ''₱''(''M''0) ∧ ₱(''M''1), then STDerr(''M'') = (''S'' ∙ ''S'' / dim(''M''1)*₱(''M''1) ∙  ₱(''M''1)).
Associated to STD complexity is STD error. If ''S'' = ''₱''(''M''<sub>0</sub>) ∧ ₱(''M''<sub>1</sub>), then STDerr(''M'') = sqrt(''S''∙''S'' / dim(''M''<sub>1</sub>)⋅''''(''M''<sub>1</sub>)∙₱(''M''<sub>1</sub>)).


[[Category:Generator]]
[[Category:Generator]]