Generator complexity: Difference between revisions
m Protected "Generator complexity" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) |
m Improve wiki markup (1/2) |
||
Line 1: | Line 1: | ||
__FORCETOC__ | __FORCETOC__ | ||
=Definition= | == Definition == | ||
Suppose A = | 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 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 [[ | 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. | ||
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)>0. A related definition can be extended to higher ranks: since the [[Tenney- | 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'') > 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''). | ||
Generator complexity has the nice property that for any | Generator complexity has the nice property that for any mos of size ''N'', floor(''N''/(''C'' KE(''I''))) intervals with pitch class corresponding to ''I'' are guaranteed to exist in the mos. Generator complexity is also useful in making complete searches using the [[wedgie]] for temperaments below a certain complexity and badness bounds, allowing for a more efficient search. | ||
=Generator complexity and Kees expressibility= | == Generator complexity and Kees expressibility == | ||
The following proof is due to Mike Battaglia. | The following proof is due to Mike Battaglia. | ||
If m = |m2 m3 m5 ... mp | 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> ‖/2. | ||
For any vector space X with a subspace A, we may define a quotient space X/A as the equivalence classes of | 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], | 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 | 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. | ||
=STD complexity= | == STD complexity == | ||
If B = | 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). | ||
Associated to STD complexity is STD error. If S = ₱( | 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)). | ||
[[Category: | |||
[[Category: | [[Category:Generator]] | ||
[[Category: | [[Category:Math]] | ||
[[Category:todo: | [[Category:Theory]] | ||
[[Category:todo:add examples]] |
Revision as of 10:11, 27 November 2023
Definition
Suppose A = ⟨0 A₃ A₅ A₇ … Ap] is the generator mapping val for a rank two temperament with P periods to the octave, and B = ⟨0 B₃ B₅ B₇ … Bp] is the same val in weighted coordinates. For instance, ⟨0 1 -2 -2] is the generator mapping val for seven limit pajara, and ⟨0 1/log2(3) -2/log2(5) -2/log2(7)] ≅ ⟨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 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 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)2 · 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) > 0. A related definition can be extended to higher ranks: since the 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).
Generator complexity has the nice property that for any mos of size N, floor(N/(C KE(I))) intervals with pitch class corresponding to I are guaranteed to exist in the mos. Generator complexity is also useful in making complete searches using the wedgie for temperaments below a certain complexity and badness bounds, allowing for a more efficient search.
Generator complexity and Kees expressibility
The following proof is due to Mike Battaglia.
If m = [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 L1 norm, as ‖ |-e3-e5-…-ep e3 e5 … ep> ‖/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 <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 <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 L1 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 L1 norm, and hence X* has a norm of twice the L∞ 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‖L∞ = 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
If B = ⟨0 B₃ B₅ B₇ ... Bp] 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 ⟨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 = [M0, M1] is the mapping matrix in weighted coordinates in the standard normal val list form, then we may express STD complexity as STDcom(M) = M0[1] STD(M1).
Associated to STD complexity is STD error. If S = ₱(M0) ∧ ₱(M1), then STDerr(M) = √(S ∙ S / dim(M1)*₱(M1) ∙ ₱(M1)).