Mathematics of MOS: Difference between revisions

Inthar (talk | contribs)
ArrowHead294 (talk | contribs)
m De-escape as <nowiki/> works
 
(5 intermediate revisions by 2 users not shown)
Line 5: Line 5:
A MOS scale consists of:
A MOS scale consists of:


# A period ''P'' (of any size but most commonly the octave or a 1/N fraction of an octave)
# A period ''P'' (of any size but most commonly the octave or a 1/''N'' fraction of an octave)
# A generator ''g'' (of any size, for example 700{{cent}} in 12edo) which is added repeatedly to make a chain of scale steps, starting from the unison or 0{{cent}} scale step, and then reducing to within the period
# A generator ''g'' (of any size, for example 700{{cent}} in 12edo) which is added repeatedly to make a chain of scale steps, starting from the unison or 0{{cent}} scale step, and then reducing to within the period
# No more than two sizes of scale steps (Large and small, often written "L" and "s")
# No more than two sizes of scale steps (Large and small, often written "L" and "s")
Line 11: Line 11:
# The unison or starting point of the scale is then allowed to be transferred to any scale degree—all the modes of an MOS are legal.
# The unison or starting point of the scale is then allowed to be transferred to any scale degree—all the modes of an MOS are legal.


Condition 4 is {{w|Myhill's property}}, where, as a [[periodic scale]], the scale has every generic interval aside from the initial unison interval and intervals some number of periods from it having exactly two specific intervals. Another characterization of when a generated scale is a MOS is that the number of scale steps is the denominator of a {{w|Continued fraction|convergent or semiconvergent}} of the ratio ''g''/''P'' of the generator and the period.
Condition 4 is {{w|Myhill's property}}, where, as a [[periodic scale]], the scale has every generic interval aside from the initial unison interval and intervals some number of periods from it having exactly two specific intervals. Another characterization of when a generated scale is a MOS is that the number of scale steps is the denominator of a convergent or semiconvergent to the {{w|continued fraction}} of ''g''/''P'', the ratio of the generator to the period.


These conditions entail that the generated scale has exactly two sizes of steps when sorted into ascending order of size, and usually that latter condition suffices to define a MOS. However, when the generator is a rational fraction of the period and the number of steps is more than half of the total possible, a generated scale can have only two sizes of steps and fail to be a MOS, meaning that not all non-unison classes have only two specific intervals.
These conditions entail that the generated scale has exactly two sizes of steps when sorted into ascending order of size, and usually that latter condition suffices to define a MOS. However, when the generator is a rational fraction of the period and the number of steps is more than half of the total possible, a generated scale can have only two sizes of steps and fail to be a MOS, meaning that not all non-unison classes have only two specific intervals.
Line 21: Line 21:
# Binary and [[distributionally even]]
# Binary and [[distributionally even]]
# Binary and balanced (for any ''k'', any two ''k''-steps ''u'' and ''v'' differ by either 0 or {{nowrap|L − s {{=}} c}})
# Binary and balanced (for any ''k'', any two ''k''-steps ''u'' and ''v'' differ by either 0 or {{nowrap|L − s {{=}} c}})
# Mode of a Christoffel word. (If gcd(''p'',&nbsp;''q'') = 1, a ''Christoffel word with rational slope'' ''p''/''q'' is the unique path from (0,&nbsp;0) and (''p'',&nbsp;''q'') in the 2-dimensional integer lattice graph above the ''x''-axis and below the line {{nowrap|''y'' {{=}} (''p''/''q'')''x''}} that stays as close to the line as possible without crossing it.)
# Mode of a Christoffel word. (If {{nowrap|gcd(''p'', ''q'') {{=}} 1}}, a ''Christoffel word with rational slope'' ''p''/''q'' is the unique path from (0,&nbsp;0) and (''p'',&nbsp;''q'') in the 2-dimensional integer lattice graph above the ''x''-axis and below the line {{nowrap|''y'' {{=}} (''p''/''q'')''x''}} that stays as close to the line as possible without crossing it.)


While each characterization has a generalization to scale structures with more step sizes, the generalizations are no longer equivalent:
While each characterization has a generalization to scale structures with more step sizes, the generalizations are no longer equivalent:
# [[Maximum variety]] n
# [[Maximum variety]] ''n''
# [[Generator-offset property]], [[generator sequence]]
# [[Generator-offset property]], [[generator sequence]]
# [[Distributional evenness]]
# [[Distributional evenness]]
Line 33: Line 33:
Let us represent the period as 1. This would be the logarithm base 2 of 2 if the period is an octave, or in general we can measure intervals by the log base ''P'' when ''P'' is the period.
Let us represent the period as 1. This would be the logarithm base 2 of 2 if the period is an octave, or in general we can measure intervals by the log base ''P'' when ''P'' is the period.


Suppose the fractions {{frac|''a''|''b''}} and {{frac|''c''|''d''}} are a [[Wikipedia:Farey sequence#Farey neighbours|Farey pair]], meaning that {{nowrap|{{frac|''a''|''b''}} &lt; {{frac|''c''|''d''}}}} and {{nowrap|''bc'' − ''ad'' {{=}} 1}}. If {{nowrap|''g'' {{=}} (1 − ''t'')&#x200A;{{frac|''a''|''b''}} + (''t'')&#x200A;{{frac|''c''|''d''}}}} for {{nowrap|0 &le; ''t'' &le; 1}}, then when {{nowrap|''t'' {{=}} 0}}, the scale generated by ''g'' will consist of an equal division of 1 (representing P) into steps of size {{frac|1|''b''}}, and when {{nowrap|''t'' {{=}} 1}} into steps of size {{frac|1|''d''}}. In between, when {{nowrap|''t'' {{=}} {{sfrac|''b''|''b'' + ''d''}}}}, we obtain a generator equal to the [[Wikipedia:Mediant_%28mathematics%29|mediant]] {{nowrap|''m'' {{=}} {{sfrac|''a'' + ''c''|''b'' + ''d''}}}} and which will divide the period into {{nowrap|''b'' + ''d''}} equal steps. For all other values {{nowrap|{{frac|''a''|''b''}} &lt; ''g'' &lt; {{frac|''c''|''d''}}}} we obtain two different sizes of steps, the small steps ''s'', and the large steps ''L'', with the total number of steps {{nowrap|''b'' + ''d''}}, and these scales are the MOS associated to the Farey pair. When ''g'' is between {{frac|''a''|''b''}} and ''m'', there will be ''b'' large steps and ''d'' small steps, and when it is between ''m'' and {{frac|''c''|''d''}}, ''d'' large steps and ''b'' small ones.
Suppose the fractions {{frac|''a''|''b''}} and {{frac|''c''|''d''}} are a [[Wikipedia:Farey sequence#Farey neighbours|Farey pair]], meaning that {{nowrap|{{frac|''a''|''b''}} &lt; {{frac|''c''|''d''}}}} and {{nowrap|''bc'' − ''ad'' {{=}} 1}}. If {{nowrap|''g'' {{=}} (1 − ''t'')&#x200A;{{frac|''a''|''b''}} + (''t'')&#x200A;{{frac|''c''|''d''}}}} for {{nowrap|0 &le; ''t'' &le; 1}}, then when {{nowrap|''t'' {{=}} 0}}, the scale generated by ''g'' will consist of an equal division of 1 (representing P) into steps of size {{frac|1|''b''}}, and when {{nowrap|''t'' {{=}} 1}} into steps of size {{frac|1|''d''}}. In between, when {{nowrap|''t'' {{=}} {{sfrac|''b''|''b'' + ''d''}}}}, we obtain a generator equal to the {{w|mediant (mathematics)|mediant}} {{nowrap|''m'' {{=}} {{sfrac|''a'' + ''c''|''b'' + ''d''}}}} and which will divide the period into {{nowrap|''b'' + ''d''}} equal steps. For all other values {{nowrap|{{frac|''a''|''b''}} &lt; ''g'' &lt; {{frac|''c''|''d''}}}} we obtain two different sizes of steps, the small steps ''s'', and the large steps ''L'', with the total number of steps {{nowrap|''b'' + ''d''}}, and these scales are the MOS associated to the Farey pair. When ''g'' is between {{frac|''a''|''b''}} and ''m'', there will be ''b'' large steps and ''d'' small steps, and when it is between ''m'' and {{frac|''c''|''d''}}, ''d'' large steps and ''b'' small ones.


While all the scales constructed by generators ''g'' with {{nowrap|{{frac|''a''|''b''}} &lt; ''g'' &lt; {{frac|''c''|''d''}}}} with the exception of the mediant which gives an equal tuning are MOS, not all the scales are [[Wikipedia:Rothenberg_propriety|proper]] in the sense of Rothenberg. The ''range of propriety'' for MOS is {{nowrap|{{sfrac|2''a'' + ''c''|2''b'' + ''d''}} &le; ''g''}} &le;&nbsp;{{sfrac|''a'' + 2''c''|''b'' + 2''d''}}, where MOS coming from a Farey pair ({{frac|''a''|''b''}}, {{frac|''c''|''d''}}) are proper when in this range, and improper (unless the MOS has only one small step) when out of it. If {{nowrap|{{sfrac|2''a'' + ''c''|2''b'' + ''d''}} &lt; ''g''}} &lt;&nbsp;{{sfrac|''a'' + 2''c''|''b'' + 2''d''}}, then the scales are strictly proper. Hence, the diatonic scale in 12et, with generator 7/12, is proper but not strictly proper since starting from the pair ({{frac|1|2}},&nbsp;{{frac|3|5}}) we find the range of propriety for these seven-note MOS to be [{{frac|5|9}},&nbsp;{{frac|7|12}}].
While all the scales constructed by generators ''g'' with {{nowrap|{{frac|''a''|''b''}} &lt; ''g'' &lt; {{frac|''c''|''d''}}}} with the exception of the mediant which gives an equal tuning are MOS, not all the scales are [[Wikipedia:Rothenberg_propriety|proper]] in the sense of Rothenberg. The ''range of propriety'' for MOS is {{nowrap|{{sfrac|2''a'' + ''c''|2''b'' + ''d''}} &le; ''g''}} &le;&nbsp;{{sfrac|''a'' + 2''c''|''b'' + 2''d''}}, where MOS coming from a Farey pair ({{frac|''a''|''b''}}, {{frac|''c''|''d''}}) are proper when in this range, and improper (unless the MOS has only one small step) when out of it. If {{nowrap|{{sfrac|2''a'' + ''c''|2''b'' + ''d''}} &lt; ''g''}} &lt;&nbsp;{{sfrac|''a'' + 2''c''|''b'' + 2''d''}}, then the scales are strictly proper. Hence, the diatonic scale in 12et, with generator 7/12, is proper but not strictly proper since starting from the pair ({{frac|1|2}},&nbsp;{{frac|3|5}}) we find the range of propriety for these seven-note MOS to be [{{frac|5|9}},&nbsp;{{frac|7|12}}].
Line 74: Line 74:
Yet another way of classifying MOS is via {{w|Minkowski's question-mark function}}. Here ?(''x''), {{nowrap|? : ℝ &rarr; ℝ}} is a continuously increasing function which has some peculiar properties, one being that it sends rational numbers to {{w|dyadic rational}}s. Hence if ''q'' is a rational number {{nowrap|0 &lt; ''q'' &lt; 1}} in use in the mediant system of classifying MOS scales, {{nowrap|''r'' {{=}} ?(''q'')}} =&nbsp;{{sfrac|''A''|2<sup>''n''</sup>}} will be a dyadic rational number which can also be used. Note that the ? function is invertible, and it and its inverse function, the Box function, have code given for them in the algorithms section at the bottom of the article.
Yet another way of classifying MOS is via {{w|Minkowski's question-mark function}}. Here ?(''x''), {{nowrap|? : ℝ &rarr; ℝ}} is a continuously increasing function which has some peculiar properties, one being that it sends rational numbers to {{w|dyadic rational}}s. Hence if ''q'' is a rational number {{nowrap|0 &lt; ''q'' &lt; 1}} in use in the mediant system of classifying MOS scales, {{nowrap|''r'' {{=}} ?(''q'')}} =&nbsp;{{sfrac|''A''|2<sup>''n''</sup>}} will be a dyadic rational number which can also be used. Note that the ? function is invertible, and it and its inverse function, the Box function, have code given for them in the algorithms section at the bottom of the article.


The integer ''n'' in the denominator of ''r'' (with ''A'' assumed to be odd) is the order (or {{nowrap|''n'' + 1}} is, according to some sources) of ''q'' in the {{w|Stern–Brocot tree}}. The two neighboring numbers of order {{nowrap|''n'' + 1}}, which define the range of propriety, can also be expressed in terms of the ? and Box functions as {{nowrap|Box(''r'' &#177; 2<sup>−''n'' − 1</sup>)}}. If ''r'' represents a MOS, the range of possible values for a generator of the MOS will be {{nowrap|Box(''r'') &lt; ''g''}} {{nowrap|&lt; Box(''r'' + 2<sup>−''n''</sup>)}}, and the proper generators will be {{nowrap|Box(''r'') &lt; ''g'' &lt; Box(''r'' + 2<sup>−''n'' − 1</sup>)}}. So, for example, the MOS denoted by 3/2048 will be between Box(3/2048) and Box(4/2048), which means that {{nowrap|{{frac|2|21}} &lt; ''g'' &lt; {{frac|1|10}}}}, and will be proper if {{nowrap|{{frac|2|21}} &lt; ''g''}} &lt;&nbsp;{{frac|3|31}}. Hence 7/72, a generator for miracle temperament, will define a MOS but it will not be proper since {{nowrap|{{frac|7|72}} &gt; {{frac|3|31}}}} {{nowrap|{{=}} Box({{frac|3|2048}} + {{frac|1|4096}})}}.
The integer ''n'' in the denominator of ''r'' (with ''A'' assumed to be odd) is the order (or {{nowrap|''n'' + 1}} is, according to some sources) of ''q'' in the {{w|Stern–Brocot tree}}. The two neighboring numbers of order {{nowrap|''n'' + 1}}, which define the range of propriety, can also be expressed in terms of the ? and Box functions as {{nowrap|Box(''r'' &#177; 2<sup>−''n'' − 1</sup>)}}. If ''r'' represents a MOS, the range of possible values for a generator of the MOS will be {{nowrap|Box(''r'') &lt; ''g''}} {{nowrap|&lt; Box(''r'' + 2<sup>−''n''</sup>)}}, and the proper generators will be {{nowrap|Box(''r'') &lt; ''g''}} {{nowrap|&lt; Box(''r'' + 2<sup>−''n'' − 1</sup>)}}. So, for example, the MOS denoted by 3/2048 will be between Box(3/2048) and Box(4/2048), which means that {{nowrap|{{frac|2|21}} &lt; ''g''}} {{nowrap|&lt; {{frac|1|10}}}}, and will be proper if {{nowrap|{{frac|2|21}} &lt; ''g''}} &lt;&nbsp;{{frac|3|31}}. Hence 7/72, a generator for miracle temperament, will define a MOS but it will not be proper since {{nowrap|{{frac|7|72}} &gt; {{frac|3|31}}}} {{nowrap|{{=}} Box({{frac|3|2048}} + {{frac|1|4096}})}}.


== MOS in equal tunings ==
== MOS in equal tunings ==
Line 89: Line 89:
Note that some procedures below depend on others. Special procedure names (i.e. not built into Maple) are shown in <code>'''bold type'''</code>.
Note that some procedures below depend on others. Special procedure names (i.e. not built into Maple) are shown in <code>'''bold type'''</code>.


<pre<includeonly />>
<pre<includeonly/>>
'''log2''' := proc(x)
'''log2''' := proc(x)
<nowiki /># logarithm base 2
<nowiki/># logarithm base 2
evalf(ln(x)/ln(2)) end:
evalf(ln(x)/ln(2)) end:


'''nextfarey''' := proc(q, n)
'''nextfarey''' := proc(q, n)
<nowiki /># next in row n of Farey sequence from q, 0 <= q <= 1
<nowiki/># next in row n of Farey sequence from q, 0 <= q <= 1
local a, b, r, s;
local a, b, r, s;
if q >= (n-1)/n then RETURN(1) fi;
if q >= (n-1)/n then RETURN(1) fi;
Line 105: Line 105:


'''prevfarey''' := proc(q, n)
'''prevfarey''' := proc(q, n)
<nowiki /># previous in row n of Farey sequence from q, 0 <= q <= 1
<nowiki/># previous in row n of Farey sequence from q, 0 <= q <= 1
local a, b, r, s;
local a, b, r, s;
if q=0 then RETURN(0) fi;
if q=0 then RETURN(0) fi;
Line 116: Line 116:


'''fareypair''' := proc(q)
'''fareypair''' := proc(q)
<nowiki /># Farey pair with q as its mediant
<nowiki/># Farey pair with q as its mediant
local n;
local n;
n := denom(q);
n := denom(q);
Line 122: Line 122:


'''mediant''' := proc(u, v)
'''mediant''' := proc(u, v)
<nowiki /># mediant of two rational numbers u and v
<nowiki/># mediant of two rational numbers u and v
(numer(u) + numer(v))/(denom(u) + denom(v)) end:
(numer(u) + numer(v))/(denom(u) + denom(v)) end:


'''convergents''' := proc(z)
'''convergents''' := proc(z)
<nowiki /># convergent list for z
<nowiki/># convergent list for z
local q;
local q;
convert(z,confrac,'q');
convert(z,confrac,'q');
Line 132: Line 132:


'''exlist''' := proc(l)
'''exlist''' := proc(l)
<nowiki /># expansion of a convergent list to semiconvergents
<nowiki/># expansion of a convergent list to semiconvergents
local i, j, s, d;
local i, j, s, d;
if nops(l)<3 then RETURN(l) fi;
if nops(l)<3 then RETURN(l) fi;
Line 146: Line 146:


'''semiconvergents''' := proc(z)
'''semiconvergents''' := proc(z)
<nowiki /># semiconvergent list for z
<nowiki/># semiconvergent list for z
'''exlist'''('''convergents'''(z)) end:
'''exlist'''('''convergents'''(z)) end:


'''penult''' := proc(q)
'''penult''' := proc(q)
<nowiki /># penultimate convergent to q
<nowiki/># penultimate convergent to q
local i, u;
local i, u;
u := '''convergents'''(q);
u := '''convergents'''(q);
Line 159: Line 159:


'''Ls''' := proc(q)
'''Ls''' := proc(q)
<nowiki /># large-small steps from mediant q
<nowiki/># large-small steps from mediant q
local u;
local u;
u := '''fareypair'''(q);
u := '''fareypair'''(q);
Line 165: Line 165:


'''medi''' := proc(u)
'''medi''' := proc(u)
<nowiki /># mediant from Large-small steps
<nowiki/># mediant from Large-small steps
local q, r;
local q, r;
if u[2]=1 then RETURN(1/(u[1]+1)) fi;
if u[2]=1 then RETURN(1/(u[1]+1)) fi;
Line 175: Line 175:


'''Lsgen''' := proc(g, n)
'''Lsgen''' := proc(g, n)
<nowiki /># given generator g and scale size n determines large-small steps
<nowiki/># given generator g and scale size n determines large-small steps
local q, u, w;
local q, u, w;
q := round(n*g)/n;
q := round(n*g)/n;
Line 185: Line 185:


'''revlist''' := proc(l)
'''revlist''' := proc(l)
<nowiki /># reverse of list
<nowiki/># reverse of list
local i, v, e;
local i, v, e;
e := nops(l);
e := nops(l);
Line 193: Line 193:


'''invcon''' := proc(l)
'''invcon''' := proc(l)
<nowiki /># inverse continued fraction
<nowiki/># inverse continued fraction
local d, i, h, k;
local d, i, h, k;
h[-2] := 0;
h[-2] := 0;
Line 206: Line 206:


'''quest''' := proc(x)
'''quest''' := proc(x)
<nowiki /># Minkowski ? function
<nowiki/># Minkowski ? function
local i, j, d, l, s, t;
local i, j, d, l, s, t;
l := convert(x, confrac);
l := convert(x, confrac);
Line 220: Line 220:


'''Box''' := proc(x)
'''Box''' := proc(x)
<nowiki /># inverse ? function
<nowiki/># inverse ? function
local d, e, i, n, w, y;
local d, e, i, n, w, y;
if type(x, integer) then RETURN(x) fi;
if type(x, integer) then RETURN(x) fi;
Line 255: Line 255:
See [[Recursive structure of MOS scales#Proofs]].
See [[Recursive structure of MOS scales#Proofs]].


=== MOS scales ''aL''&nbsp;''bs'' with gcd(a,&nbsp;b) > 1 reduce to single-period MOS scales on a smaller period ===
=== MOS scales ''aL''&nbsp;''bs'' with {{nowrap|gcd(a, b) &gt; 1}} reduce to single-period MOS scales on a smaller period ===
Assume that {{nowrap|gcd(''m'', ''n'') &gt; 1}} and assume that ({{frac|''n''|''d''}})-steps came in 2 sizes, {{nowrap|''pa'' + ''qb''}} and {{nowrap|''ra'' + ''sb''}}. Then at least one size, say {{nowrap|''pa'' + ''qb''}}, must differ from {{nowrap|{{frac|''a''|''d''}}&#x200A;L + {{frac|''b''|''d''}}&#x200A;s}}. WLOG {{nowrap|''p'' &gt; {{frac|''a''|''d''}}}} and {{nowrap|''pa'' + ''qb''}} occurs on degree 0. Since the equave is equal to {{nowrap|''aL'' + ''bs''}}, on a degree ''k''({{frac|''n''|''d''}}) for some integer {{nowrap|''k'' &gt; 0}}, there must be another ({{frac|''n''|''d''}})-step with fewer L's than {{frac|''a''|''d''}}. This involves more than two changes from ''L'' to ''s''. Scooting an ({{frac|''n''|''d''}})-step one step at a time from degree 0 to ''k''({{frac|''n''|''d''}}) changes its size one step size substitution at a time, showing that intermediate ({{frac|''n''|''d''}})-steps also exist. This violates the MOS property, whence ({{frac|''n''|''d''}})-steps have only one size, which must be the period.
Assume that {{nowrap|gcd(''m'', ''n'') &gt; 1}} and assume that ({{frac|''n''|''d''}})-steps came in 2 sizes, {{nowrap|''pa'' + ''qb''}} and {{nowrap|''ra'' + ''sb''}}. Then at least one size, say {{nowrap|''pa'' + ''qb''}}, must differ from {{nowrap|{{frac|''a''|''d''}}&#x200A;L + {{frac|''b''|''d''}}&#x200A;s}}. WLOG {{nowrap|''p'' &gt; {{frac|''a''|''d''}}}} and {{nowrap|''pa'' + ''qb''}} occurs on degree 0. Since the equave is equal to {{nowrap|''aL'' + ''bs''}}, on a degree ''k''({{frac|''n''|''d''}}) for some integer {{nowrap|''k'' &gt; 0}}, there must be another ({{frac|''n''|''d''}})-step with fewer L's than {{frac|''a''|''d''}}. This involves more than two changes from ''L'' to ''s''. Scooting an ({{frac|''n''|''d''}})-step one step at a time from degree 0 to ''k''({{frac|''n''|''d''}}) changes its size one step size substitution at a time, showing that intermediate ({{frac|''n''|''d''}})-steps also exist. This violates the MOS property, whence ({{frac|''n''|''d''}})-steps have only one size, which must be the period.


=== Maximally even scales are MOS ===
=== Maximally even scales are MOS ===
Let {{nowrap|1 &gt; ''m'' &gt; ''n''|gcd(''m'', ''n'') {{=}} d}}, and ME(''m'',&nbsp;''n'') be as in [[Maximal evenness]]. An arbitrary ''k''-step in ME(''m'',&nbsp;''n'') has size {{nowrap|''u'' {{=}} &lfloor;(''i'' + ''k'')&#x200A;{{frac|''n''|''m''}}&rfloor; − &lfloor;{{frac|''in''|''m''}}&rfloor;}}, and
Let {{nowrap|''n'' &gt; ''m'' &gt; 1|gcd(''m'', ''n'') {{=}} d}}, and ME(''m'',&nbsp;''n'') be as in [[Maximal evenness]]. An arbitrary ''k''-step in ME(''m'',&nbsp;''n'') has size {{nowrap|''u'' {{=}} &lfloor;(''i'' + ''k'')&#x200A;{{frac|''n''|''m''}}&rfloor; − &lfloor;{{frac|''in''|''m''}}&rfloor;}}, and


<math>\lfloor in/m \rfloor + \lfloor kn/m\rfloor - \lfloor in/m\rfloor = \lfloor kn/m\rfloor \leq u
<math>\lfloor in/m \rfloor + \lfloor kn/m\rfloor - \lfloor in/m\rfloor = \lfloor kn/m\rfloor \leq u
Line 276: Line 276:
Suppose that such a scale ''S'' (with {{nowrap|''n'' &ge; 2}} notes) has ''a'' L steps and ''b'' s steps per period ''p'', and has generator ''g''. Since ''S'' is generated, the interval sizes modulo ''p'' that occur in ''S'' are:
Suppose that such a scale ''S'' (with {{nowrap|''n'' &ge; 2}} notes) has ''a'' L steps and ''b'' s steps per period ''p'', and has generator ''g''. Since ''S'' is generated, the interval sizes modulo ''p'' that occur in ''S'' are:


<nowiki>{</nowiki>{{nowrap|(−''n'' + 1)''g''}}, …, −''g'', 0, ''g'', …, {{nowrap|(''n'' − 1)''g''}}<nowiki>}</nowiki>,
<nowiki>{</nowiki>{{nowrap|(−''n'' + 1)''g''}}, …, −''g'', 0, ''g'', …, {{nowrap|(''n'' − 1)''g''}}<nowiki/>},


and all sizes {0, ''g'', …, {{nowrap|(''n'' − 1)''g''}}<nowiki>}</nowiki> are distinct.
and all sizes {0, ''g'', …, {{nowrap|(''n'' − 1)''g''}}<nowiki/>} are distinct.


We thus have:
We thus have:
Line 286: Line 286:
{{nowrap|s {{=}} ''eg'' + ''fp''}}
{{nowrap|s {{=}} ''eg'' + ''fp''}}


for appropriate integers ''c, d, e, f'', where {{nowrap|{{!}}''c''{{!}}, {{!}}''e''{{!}} &lt; ''n''}}.
for appropriate integers ''c, d, e, f'', where {{nowrap|{{abs|''c''}}, {{abs|''e''}} &lt; ''n''}}.


Now we assume that ''g'' and ''p'' are linearly independent. By assumption {{nowrap|''a''L + ''b''s {{=}} (''ac'' + ''be'')''g'' + (''ad'' + ''bf'')''p''}} =&nbsp;''p''. Since {{nowrap|''a''L + ''b''s}} occurs on the "brightest" mode, from generatedness we have {{nowrap|''ac'' + ''be'' ∈ {{(}}0, …, ''n'' − 1{{)}}}}. Hence we must have {{nowrap|''ac'' + ''be'' {{=}} 0}}, and thus {{nowrap|''c'' {{=}} &#177;''b''}} and {{nowrap|''e'' {{=}} &#x2213;''a''}}, from the assumption that ''a'' and ''b'' are coprime.
Now we assume that ''g'' and ''p'' are linearly independent. By assumption {{nowrap|''a''L + ''b''s {{=}} (''ac'' + ''be'')''g'' + (''ad'' + ''bf'')''p''}} =&nbsp;''p''. Since {{nowrap|''a''L + ''b''s}} occurs on the "brightest" mode, from generatedness we have {{nowrap|''ac'' + ''be'' ∈ {0, …, ''n'' − 1}<nowiki/>}}. Hence we must have {{nowrap|''ac'' + ''be'' {{=}} 0}}, and thus {{nowrap|''c'' {{=}} &#177;''b''}} and {{nowrap|''e'' {{=}} &#x2213;''a''}}, from the assumption that ''a'' and ''b'' are coprime.


In fact, {L,&nbsp;s} is another valid basis for the abelian group with basis {''p'',&nbsp;''g''}, since by binarity we have {{nowrap|''p, g'' ∈ span(L, s)}}. Assume {{nowrap|''c'' {{=}} ''b''}} and {{nowrap|''e'' {{=}} −''a''}} (this corresponds to assuming that ''g'' is the "bright" generator). Let {{nowrap|&chi; {{=}} L − s}} &gt;&nbsp;0; then &chi; is ''p''-equivalent to +''ng''. Now by generatedness and binarity, any interval class that has at least two sizes must have sizes separated by ''ng'' (the separation corresponding to changing an L step to an s step). Since ''g'' and ''p'' are linearly independent, for each {{nowrap|''j'' ∈ {{(}}1, …, ''n'' − 1{{)}}}} there exists at most one {{nowrap|''k'' {{=}} ''k''(''j'') ∈ {{(}}1, …, ''n'' − 1{{)}}}} such that ''jg'' is ''p''-equivalent to one size of ''k''-step. Hence if the class of ''k''-steps has ''at least'' two sizes, the sizes must be ''j''(''k'')''g'' and {{nowrap|(''j''(''k'') − ''n'')''g''}}; any other size must leave the range {{nowrap|(1 − ''n'')''g''}}, …, 0, …, {{nowrap|(''n'' − 1)''g''}}. Thus the class of ''k''-steps has at most two sizes for {{nowrap|1 &le; ''k'' &le; ''n'' − 1}}. Each non-''p''-equivalent class must have ''exactly'' two sizes, since the inverse of the ''k''-step that is equivalent to ''jg'' is an {{nowrap|(''n'' − ''k'')}}-step equivalent to −''jg'', which by linear independence must be distinct from an {{nowrap|(''n'' − ''k'')}}-step equivalent to a positive number of ''g'' generators. (Note that the latter {{nowrap|(''n'' − ''k'')}}-step does occur in the "brightest" mode of ''S'', i.e. the mode with the most ''g'' generators stacked ''up'' rather than ''down'' from the tonic.) This completes the proof.
In fact, {L,&nbsp;s} is another valid basis for the abelian group with basis {''p'',&nbsp;''g''}, since by binarity we have {{nowrap|''p, g'' ∈ span(L, s)}}. Assume {{nowrap|''c'' {{=}} ''b''}} and {{nowrap|''e'' {{=}} −''a''}} (this corresponds to assuming that ''g'' is the "bright" generator). Let {{nowrap|&chi; {{=}} L − s}} &gt;&nbsp;0; then &chi; is ''p''-equivalent to +''ng''. Now by generatedness and binarity, any interval class that has at least two sizes must have sizes separated by ''ng'' (the separation corresponding to changing an L step to an s step). Since ''g'' and ''p'' are linearly independent, for each {{nowrap|''j'' ∈ {1, …, ''n'' − 1}<nowiki/>}} there exists at most one {{nowrap|''k'' {{=}} ''k''(''j'') ∈ {1, …, ''n'' − 1}<nowiki/>}} such that ''jg'' is ''p''-equivalent to one size of ''k''-step. Hence if the class of ''k''-steps has ''at least'' two sizes, the sizes must be ''j''(''k'')''g'' and {{nowrap|(''j''(''k'') − ''n'')''g''}}; any other size must leave the range {{nowrap|(1 − ''n'')''g''}}, …, 0, …, {{nowrap|(''n'' − 1)''g''}}. Thus the class of ''k''-steps has at most two sizes for {{nowrap|1 &le; ''k'' &le; ''n'' − 1}}. Each non-''p''-equivalent class must have ''exactly'' two sizes, since the inverse of the ''k''-step that is equivalent to ''jg'' is an {{nowrap|(''n'' − ''k'')}}-step equivalent to −''jg'', which by linear independence must be distinct from an {{nowrap|(''n'' − ''k'')}}-step equivalent to a positive number of ''g'' generators. (Note that the latter {{nowrap|(''n'' − ''k'')}}-step does occur in the "brightest" mode of ''S'', i.e. the mode with the most ''g'' generators stacked ''up'' rather than ''down'' from the tonic.) This completes the proof.


The previous argument cannot be used for the non-linearly independent case. This is because not all binary generated scales with rational step ratios are limit points of binary generated scales with irrational step ratios. A counterexample is the 13-note scale ssLsLssLsLss ({{nowrap|s {{=}} 1\17|L {{=}} 2\17}}), which is obtained from LsLsLssLsLss (5L&nbsp;7s) by stacking one more 10\17 generator.
The previous argument cannot be used for the non-linearly independent case. This is because not all binary generated scales with rational step ratios are limit points of binary generated scales with irrational step ratios. A counterexample is the 13-note scale ssLsLssLsLss ({{nowrap|s {{=}} 1\17|L {{=}} 2\17}}), which is obtained from LsLsLssLsLss (5L&nbsp;7s) by stacking one more 10\17 generator.