MOS scale: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Wikispaces>genewardsmith
**Imported revision 143015127 - Original comment: **
Wikispaces>genewardsmith
**Imported revision 143015589 - Original comment: **
Line 1: Line 1:
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
: This revision was by author [[User:genewardsmith|genewardsmith]] and made on <tt>2010-05-18 20:15:36 UTC</tt>.<br>
: This revision was by author [[User:genewardsmith|genewardsmith]] and made on <tt>2010-05-18 20:17:44 UTC</tt>.<br>
: The original revision id was <tt>143015127</tt>.<br>
: The original revision id was <tt>143015589</tt>.<br>
: The revision comment was: <tt></tt><br>
: The revision comment was: <tt></tt><br>
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br>
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br>
Line 22: Line 22:


==Classification of MOS==  
==Classification of MOS==  
A classification of MOS scales can also be given by the number of elements of the scale - the number of large intervals "L" and the number of small intervals "s", together with the period, assumed to be minimal (which entails that L and s are relatively prime.) E.g., the diatonic scale can be described as [5L 2s] (5 large steps and 2 small steps) or simply [5, 2] with period an octave. Alternatively, we could give a mediant for a Farey pair associated to the MOS, where this mediant is less than any generator for the MOS. In other words, we use the right hand part of the Farey pair interval, which means we must replace g with 1-g and use the complementary pair if g is in the left hand side.
A classification of MOS scales can be given by the number of elements of the scale of each size - the number of large intervals "L" and the number of small intervals "s", together with the period, assumed to be minimal (which entails that L and s are relatively prime.) E.g., the diatonic scale can be described as [5L 2s] (5 large steps and 2 small steps) or simply [5, 2] with period an octave. Alternatively, we could give a mediant for a Farey pair associated to the MOS, where this mediant is less than any generator for the MOS. In other words, we use the right hand part of the Farey pair interval, which means we must replace g with 1-g and use the complementary pair if g is in the left hand side.


The two systems are equivalent; in the Algorithms section you will find code for routines starting from the mediant and going to the Ls pair (the "Ls" routine) and for starting from an Ls pair and going to the mediant (the "medi" routine.) The Ls routine uses [[http://en.wikipedia.org/wiki/Modular_multiplicative_inverse|modular inverses]], whereas the medi routine uses continued fractions.
The two systems are equivalent; in the Algorithms section you will find code for routines starting from the mediant and going to the Ls pair (the "Ls" routine) and for starting from an Ls pair and going to the mediant (the "medi" routine.) The Ls routine uses [[http://en.wikipedia.org/wiki/Modular_multiplicative_inverse|modular inverses]], whereas the medi routine uses continued fractions.
Line 157: Line 157:
&lt;br /&gt;
&lt;br /&gt;
&lt;!-- ws:start:WikiTextHeadingRule:4:&amp;lt;h2&amp;gt; --&gt;&lt;h2 id="toc2"&gt;&lt;a name="MOS scales-Classification of MOS"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:4 --&gt;Classification of MOS&lt;/h2&gt;
&lt;!-- ws:start:WikiTextHeadingRule:4:&amp;lt;h2&amp;gt; --&gt;&lt;h2 id="toc2"&gt;&lt;a name="MOS scales-Classification of MOS"&gt;&lt;/a&gt;&lt;!-- ws:end:WikiTextHeadingRule:4 --&gt;Classification of MOS&lt;/h2&gt;
  A classification of MOS scales can also be given by the number of elements of the scale - the number of large intervals &amp;quot;L&amp;quot; and the number of small intervals &amp;quot;s&amp;quot;, together with the period, assumed to be minimal (which entails that L and s are relatively prime.) E.g., the diatonic scale can be described as [5L 2s] (5 large steps and 2 small steps) or simply [5, 2] with period an octave. Alternatively, we could give a mediant for a Farey pair associated to the MOS, where this mediant is less than any generator for the MOS. In other words, we use the right hand part of the Farey pair interval, which means we must replace g with 1-g and use the complementary pair if g is in the left hand side.&lt;br /&gt;
  A classification of MOS scales can be given by the number of elements of the scale of each size - the number of large intervals &amp;quot;L&amp;quot; and the number of small intervals &amp;quot;s&amp;quot;, together with the period, assumed to be minimal (which entails that L and s are relatively prime.) E.g., the diatonic scale can be described as [5L 2s] (5 large steps and 2 small steps) or simply [5, 2] with period an octave. Alternatively, we could give a mediant for a Farey pair associated to the MOS, where this mediant is less than any generator for the MOS. In other words, we use the right hand part of the Farey pair interval, which means we must replace g with 1-g and use the complementary pair if g is in the left hand side.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two systems are equivalent; in the Algorithms section you will find code for routines starting from the mediant and going to the Ls pair (the &amp;quot;Ls&amp;quot; routine) and for starting from an Ls pair and going to the mediant (the &amp;quot;medi&amp;quot; routine.) The Ls routine uses &lt;a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Modular_multiplicative_inverse" rel="nofollow"&gt;modular inverses&lt;/a&gt;, whereas the medi routine uses continued fractions.&lt;br /&gt;
The two systems are equivalent; in the Algorithms section you will find code for routines starting from the mediant and going to the Ls pair (the &amp;quot;Ls&amp;quot; routine) and for starting from an Ls pair and going to the mediant (the &amp;quot;medi&amp;quot; routine.) The Ls routine uses &lt;a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Modular_multiplicative_inverse" rel="nofollow"&gt;modular inverses&lt;/a&gt;, whereas the medi routine uses continued fractions.&lt;br /&gt;

Revision as of 20:17, 18 May 2010

IMPORTED REVISION FROM WIKISPACES

This is an imported revision from Wikispaces. The revision metadata is included below for reference:

This revision was by author genewardsmith and made on 2010-05-18 20:17:44 UTC.
The original revision id was 143015589.
The revision comment was:

The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.

Original Wikitext content:

=MOS scales= 

An important class of scales are MOS scales (the acronym MOS coming from "Moment Of Symmetry"). These are derived by iterating an interval g, called the generator, inside a larger interval, called the period, and reducing to the period when the iterates become larger than the period. Usually the period is an octave or an nth root of 2, but it can in theory be any positive number. The resulting scale is called a MOS when it has exactly two sizes of steps when sorted into ascending order of size.

The term and scale construction method were invented by Erv Wilson. His original paper can be found here [[http://anaphoria.com/mos.PDF]]. There is also an introduction [[http://anaphoria.com/wilsonintroMOS.html]]. It generalizes the classical diatonic and pentatonic scales.

==Theory of MOS==
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 a/b and c/d are a [[http://en.wikipedia.org/wiki/Farey_sequence#Farey_neighbours|Farey pair]], meaning that a/b < c/d and bc - ad = 1. If g = (1-t)(a/b) + t(c/d) for 0 <= t <= 1, then when t = 0, the scale generated by g will consist of an equal division of 1 (representing P) into steps of size 1/b, and when t = 1 into steps of size 1/d. In between, when t = b/(b + d), we obtain a generator equal to the [[http://en.wikipedia.org/wiki/Mediant_%28mathematics%29|mediant]] (a + c)/(b + d) and which will divide the period into b+d equal steps. For all other values a/b < g < c/d we obtain two different sizes of steps, the small steps s, and the large steps L, with the total number of steps b+d, and these scales are the MOS associated to the Farey pair. When g is between a/b and (a + c)/(b + d) there will be b large steps and d small steps, and when it is between (a + c)/(b + d) and c/d, d large steps and b small ones.

While all the scales constructed by generators g with a/b < g < c/d with the exception of the mediant which gives an equal temperament are MOS, not all the scales are [[http://en.wikipedia.org/wiki/Rothenberg_propriety|proper]] in the sense of Rothenberg. The //range of propriety// for MOS is (2a + c)/(2b + d) <= g <= (a + 2c)/(b + 2d), where MOS coming from a Farey pair (a/b, c/d) are proper when in this range, and improper when out of it. If (2a + c)/(2b + d) < g < (a + 2c)/(b + 2d), 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 (1/2, 3/5) we find the range of propriety for these seven-note MOS to be [5/9, 7/12].

Given a generator g, we can find MOS for g with period 1 by means of the [[http://en.wikipedia.org/wiki/Continued_fraction#Semiconvergents|semiconvergents]] to g. A pair of successive semiconvergents have the property that they define a Farey pair, and when g is contained in the pair, that is, a/b < g < c/d, we have defined a MOS for g with b+d as the number of notes in the MOS, with b notes of one size and d of the other.

For example, suppose we want MOS for 1/4-comma meantone. The generator will then be log2(5)/4, which has semiconvergents 1/2, 2/3, 3/5, 4/7, 7/12, 11/19, 18/31, 29/50, 47/81, 65/112... If we settle on 31 as a good size for our MOS, we see 18/31 is the mediant between the Farey pair 11/19  and 7/12, for which the range of strict propriety is 29/50 < x < 25/43. Since g is in that range and not equal to 18/31, we will get a strictly proper MOS. 

==Classification of MOS== 
A classification of MOS scales can be given by the number of elements of the scale of each size - the number of large intervals "L" and the number of small intervals "s", together with the period, assumed to be minimal (which entails that L and s are relatively prime.) E.g., the diatonic scale can be described as [5L 2s] (5 large steps and 2 small steps) or simply [5, 2] with period an octave. Alternatively, we could give a mediant for a Farey pair associated to the MOS, where this mediant is less than any generator for the MOS. In other words, we use the right hand part of the Farey pair interval, which means we must replace g with 1-g and use the complementary pair if g is in the left hand side.

The two systems are equivalent; in the Algorithms section you will find code for routines starting from the mediant and going to the Ls pair (the "Ls" routine) and for starting from an Ls pair and going to the mediant (the "medi" routine.) The Ls routine uses [[http://en.wikipedia.org/wiki/Modular_multiplicative_inverse|modular inverses]], whereas the medi routine uses continued fractions.

Since numbers tend to be dry, Graham Breed has proposed a [[MOSNamingScheme|naming scheme for MOS scales]].

===MOS in equal temperaments=== 
In an equal temperament, all intervals are integer multiples of a smallest unit. If the equal temperament is N-EDO and the period is an octave, the sizes of the large and small steps will be p/N and q/N, with p > q. We then have L(p/N) + s(q/N) = 1, which on multiplying through by N gives us

Lp + sq = N.

which is a linear diophantine equation. Solving this by standard methods, and requiring L and s to be positive, gives us the [L, s] pair for the MOS. If some other quantity of equal steps gives the period, we may make the appropriate adjustment.

===Blackwood R constant===
In the context of the "recognizable diatonic" scales deriving from the Farey pair (1/2, 3/5) [[http://en.wikipedia.org/wiki/Easley_Blackwood,_Jr.|Easley Blackwood Jr.]] defined a characterizing constant R which we may generalize to any MOS as follows. If a/b < g < c/d is a generator with the given Farey pair, take the ratio of relative errors R = (bg - a)/(c - dg). Since this is a ratio of positive numbers, it is positive. As g tends towards a/b it tends to zero, and as g goes to c/d R goes to infinity. When g equals (a + c)/(b + d) it takes the value 1, and the range of propriety is 1/2 <= R <= 2.

When R is less than 1, it represents the ratio in (logarithmic) size between the smaller and the larger step. When it is greater than 1, it is larger/smaller. By replacing g with 1 - g if necessary, we can reduce always to the case where R>1 (or R<1 if we prefer.)

==Catalog of MOS==
Below is a list of MOS with number of elements from 5 to 10.
Not all mathematical possibilities are listed - solutions of the equation that would yield too "exotic" scale steps (too small/too big diffference between s and L) are excluded. (The concrete - sort of arbitrary - restrictions applied were: a solution appears if 7/6 < L/s < 5.)

|| [[PentatonicMOS|Pentatonic MOS]] ||   ||   ||   ||   ||   || [[1L 4s]] ||   || [[2L 3s]] ||   || [[3L 2s]] ||   || [[4L 1s]] ||   ||   ||   ||   ||   ||
|| [[HexatonicMOS|Hexatonic MOS]] ||   ||   ||   ||   || [[1L 5s]] ||   || [[2L 4s]] ||   || [[3L 3s]] ||   || [[4L 2s]] ||   || [[5L 1s]] ||   ||   ||   ||   ||
|| [[HeptatonicMOS|Heptatonic MOS]] ||   ||   ||   || [[1L 6s]] ||   || [[2L 5s]] ||   || [[3L 4s]] ||   || [[4L 3s]] ||   || [[5L 2s]] ||   || [[6L 1s]] ||   ||   ||   ||
|| [[OctatonicMOS|Octatonic MOS]] ||   ||   || [[1L 7s]] ||   || [[2L 6s]] ||   || [[3L 5s]] ||   || [[4L 4s]] ||   || [[5L 3s]] ||   || [[6L 2s]] ||   || [[7L 1s]] ||   ||   ||
|| [[NonatonicMOS|Nonatonic MOS]] ||   || [[1L 8s]] ||   || [[2L 7s]] ||   || [[3L 6s]] ||   || [[4L 5s]] ||   || [[5L 4s]] ||   || [[6L 3s]] ||   || [[7L 2s]] ||   || [[8L 1s]] ||   ||
|| [[DecatonicMOS|Decatonic MOS]] || [[1L 9s]] ||   || [[2L 8s]] ||   || [[3L 7s]] ||   || [[4L 6s]] ||   || [[5L 5s]] ||   || [[6L 4s]] ||   || [[7L 3s]] ||   || [[8L 2s]] ||   || [[9L 1s]] ||
<span style="color: #0000ee;"> </span>

==MOS As Applied To Rhythms== 
David Canright was the first to suggest Fibonacci Rhythms in 1/1. This lead to Kraig Grady to be the first to apply MOS patterns to rhythms. Two papers on the subject can be found here [[http://anaphoria.com/hora.PDF]] and [[http://anaphoria.com/horo2.PDF]]
MOS structures and thinking can be applied to the design of rhythms as well. See [[MOS Rhythm Tutorial]]

==Algorithms==
Below is some Maple code for various mathematical routines having to do with MOS. If you have access to Maple, you can of course copy and run these programs. Even if you do not, since Maple code makes better pseudocode than most languages or computer algebra packages afford, it can be used as pseudocode. For that purpose, it will be helpful to know that "modp(x, n)" means reducing x mod the integer n to 0, 1, ..., n-1 not only when x is an integer, but also when it is a rational number with denominator prime to n. In that case, p/q mod n = r means p = qr mod n.

nextfarey := proc(q, n)
 # next in row n of Farey sequence from q, 0 <= q <= 1
local a, b, r, s;
if q >= (n-1)/n then RETURN(1) fi;
a := numer(q);
b := denom(q);
s := n - modp(n + 1/a, b);
r := modp(1/b, s);
r/s end:

prevfarey := proc(q, n)
 # previous in row n of Farey sequence from q, 0 <= q <= 1
local a, b, r, s;
if q=0 then RETURN(0) fi;
if n=0 then RETURN(0) fi;
a := numer(q);
b := denom(q);
s := n - modp(n - 1/a, b);
r := modp(-1/b, s);
r/s end:

fareypair := proc(q)
 # Farey pair with q as its mediant
local n;
n := denom(q);
[prevfarey(q, n), nextfarey(q, n)] end:

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

convergents := proc(z)
 # convergent list for z 
local q; 
convert(z,confrac,'q'); 
q end:

exlist := proc(l)
 # expansion of a convergent list to semiconvergents
local i, j, s, d;
if nops(l)<3 then RETURN(l) fi;
d[1] := l[1];
d[2] := l[2];
s := 3;
for i from 3 to nops(l)-1 do
for j from 1 to (numer(l[i])-numer(l[i-2]))/numer(l[i-1]) do
d[s] := 
(j*numer(l[i-1])+numer(l[i-2]))/(j*denom(l[i-1])+denom(l[i-2]));
s := s+1 od od;
convert(convert(d, array), list) end:

semiconvergents := proc(z)
 # semiconvergent list for z
exlist(convergents(z)) end:

penult := proc(q)
 # penultimate convergent to q
local i, u;
u := convergents(q);
if nops(u)=1 then RETURN(u[1]) fi;
for i from 1 to nops(u) do
if u[i]=q then RETURN(u[i-1]) fi od;
end:

Ls := proc(q)
 # large-small steps from mediant q
local u;
u := fareypair(q);
[denom(u[2]), denom(u[1])] end:

medi := proc(u)
 # mediant from Large-small steps
local q;
if u[2]=1 then RETURN(1/(u[1]+1)) fi;
if igcd(u[1], u[2])>1 then RETURN("not relatively prime") fi;
q := penult(u[1]/u[2]);
if q > u[1]/u[2] then RETURN((numer(q)+denom(q))/(u[1]+u[2])) fi;
(u[1]+u[2]-numer(q)-denom(q))/(u[1]+u[2]) end:


==[[MOSDiagrams]]== 

Original HTML content:

<html><head><title>MOSScales</title></head><body><!-- ws:start:WikiTextHeadingRule:0:&lt;h1&gt; --><h1 id="toc0"><a name="MOS scales"></a><!-- ws:end:WikiTextHeadingRule:0 -->MOS scales</h1>
 <br />
An important class of scales are MOS scales (the acronym MOS coming from &quot;Moment Of Symmetry&quot;). These are derived by iterating an interval g, called the generator, inside a larger interval, called the period, and reducing to the period when the iterates become larger than the period. Usually the period is an octave or an nth root of 2, but it can in theory be any positive number. The resulting scale is called a MOS when it has exactly two sizes of steps when sorted into ascending order of size.<br />
<br />
The term and scale construction method were invented by Erv Wilson. His original paper can be found here <a class="wiki_link_ext" href="http://anaphoria.com/mos.PDF" rel="nofollow">http://anaphoria.com/mos.PDF</a>. There is also an introduction <a class="wiki_link_ext" href="http://anaphoria.com/wilsonintroMOS.html" rel="nofollow">http://anaphoria.com/wilsonintroMOS.html</a>. It generalizes the classical diatonic and pentatonic scales.<br />
<br />
<!-- ws:start:WikiTextHeadingRule:2:&lt;h2&gt; --><h2 id="toc1"><a name="MOS scales-Theory of MOS"></a><!-- ws:end:WikiTextHeadingRule:2 -->Theory of MOS</h2>
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 a/b and c/d are a <a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Farey_sequence#Farey_neighbours" rel="nofollow">Farey pair</a>, meaning that a/b &lt; c/d and bc - ad = 1. If g = (1-t)(a/b) + t(c/d) for 0 &lt;= t &lt;= 1, then when t = 0, the scale generated by g will consist of an equal division of 1 (representing P) into steps of size 1/b, and when t = 1 into steps of size 1/d. In between, when t = b/(b + d), we obtain a generator equal to the <a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Mediant_%28mathematics%29" rel="nofollow">mediant</a> (a + c)/(b + d) and which will divide the period into b+d equal steps. For all other values a/b &lt; g &lt; c/d we obtain two different sizes of steps, the small steps s, and the large steps L, with the total number of steps b+d, and these scales are the MOS associated to the Farey pair. When g is between a/b and (a + c)/(b + d) there will be b large steps and d small steps, and when it is between (a + c)/(b + d) and c/d, d large steps and b small ones.<br />
<br />
While all the scales constructed by generators g with a/b &lt; g &lt; c/d with the exception of the mediant which gives an equal temperament are MOS, not all the scales are <a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Rothenberg_propriety" rel="nofollow">proper</a> in the sense of Rothenberg. The <em>range of propriety</em> for MOS is (2a + c)/(2b + d) &lt;= g &lt;= (a + 2c)/(b + 2d), where MOS coming from a Farey pair (a/b, c/d) are proper when in this range, and improper when out of it. If (2a + c)/(2b + d) &lt; g &lt; (a + 2c)/(b + 2d), 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 (1/2, 3/5) we find the range of propriety for these seven-note MOS to be [5/9, 7/12].<br />
<br />
Given a generator g, we can find MOS for g with period 1 by means of the <a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Continued_fraction#Semiconvergents" rel="nofollow">semiconvergents</a> to g. A pair of successive semiconvergents have the property that they define a Farey pair, and when g is contained in the pair, that is, a/b &lt; g &lt; c/d, we have defined a MOS for g with b+d as the number of notes in the MOS, with b notes of one size and d of the other.<br />
<br />
For example, suppose we want MOS for 1/4-comma meantone. The generator will then be log2(5)/4, which has semiconvergents 1/2, 2/3, 3/5, 4/7, 7/12, 11/19, 18/31, 29/50, 47/81, 65/112... If we settle on 31 as a good size for our MOS, we see 18/31 is the mediant between the Farey pair 11/19  and 7/12, for which the range of strict propriety is 29/50 &lt; x &lt; 25/43. Since g is in that range and not equal to 18/31, we will get a strictly proper MOS. <br />
<br />
<!-- ws:start:WikiTextHeadingRule:4:&lt;h2&gt; --><h2 id="toc2"><a name="MOS scales-Classification of MOS"></a><!-- ws:end:WikiTextHeadingRule:4 -->Classification of MOS</h2>
 A classification of MOS scales can be given by the number of elements of the scale of each size - the number of large intervals &quot;L&quot; and the number of small intervals &quot;s&quot;, together with the period, assumed to be minimal (which entails that L and s are relatively prime.) E.g., the diatonic scale can be described as [5L 2s] (5 large steps and 2 small steps) or simply [5, 2] with period an octave. Alternatively, we could give a mediant for a Farey pair associated to the MOS, where this mediant is less than any generator for the MOS. In other words, we use the right hand part of the Farey pair interval, which means we must replace g with 1-g and use the complementary pair if g is in the left hand side.<br />
<br />
The two systems are equivalent; in the Algorithms section you will find code for routines starting from the mediant and going to the Ls pair (the &quot;Ls&quot; routine) and for starting from an Ls pair and going to the mediant (the &quot;medi&quot; routine.) The Ls routine uses <a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Modular_multiplicative_inverse" rel="nofollow">modular inverses</a>, whereas the medi routine uses continued fractions.<br />
<br />
Since numbers tend to be dry, Graham Breed has proposed a <a class="wiki_link" href="/MOSNamingScheme">naming scheme for MOS scales</a>.<br />
<br />
<!-- ws:start:WikiTextHeadingRule:6:&lt;h3&gt; --><h3 id="toc3"><a name="MOS scales-Classification of MOS-MOS in equal temperaments"></a><!-- ws:end:WikiTextHeadingRule:6 -->MOS in equal temperaments</h3>
 In an equal temperament, all intervals are integer multiples of a smallest unit. If the equal temperament is N-EDO and the period is an octave, the sizes of the large and small steps will be p/N and q/N, with p &gt; q. We then have L(p/N) + s(q/N) = 1, which on multiplying through by N gives us<br />
<br />
Lp + sq = N.<br />
<br />
which is a linear diophantine equation. Solving this by standard methods, and requiring L and s to be positive, gives us the [L, s] pair for the MOS. If some other quantity of equal steps gives the period, we may make the appropriate adjustment.<br />
<br />
<!-- ws:start:WikiTextHeadingRule:8:&lt;h3&gt; --><h3 id="toc4"><a name="MOS scales-Classification of MOS-Blackwood R constant"></a><!-- ws:end:WikiTextHeadingRule:8 -->Blackwood R constant</h3>
In the context of the &quot;recognizable diatonic&quot; scales deriving from the Farey pair (1/2, 3/5) <a class="wiki_link_ext" href="http://en.wikipedia.org/wiki/Easley_Blackwood,_Jr." rel="nofollow">Easley Blackwood Jr.</a> defined a characterizing constant R which we may generalize to any MOS as follows. If a/b &lt; g &lt; c/d is a generator with the given Farey pair, take the ratio of relative errors R = (bg - a)/(c - dg). Since this is a ratio of positive numbers, it is positive. As g tends towards a/b it tends to zero, and as g goes to c/d R goes to infinity. When g equals (a + c)/(b + d) it takes the value 1, and the range of propriety is 1/2 &lt;= R &lt;= 2.<br />
<br />
When R is less than 1, it represents the ratio in (logarithmic) size between the smaller and the larger step. When it is greater than 1, it is larger/smaller. By replacing g with 1 - g if necessary, we can reduce always to the case where R&gt;1 (or R&lt;1 if we prefer.)<br />
<br />
<!-- ws:start:WikiTextHeadingRule:10:&lt;h2&gt; --><h2 id="toc5"><a name="MOS scales-Catalog of MOS"></a><!-- ws:end:WikiTextHeadingRule:10 -->Catalog of MOS</h2>
Below is a list of MOS with number of elements from 5 to 10.<br />
Not all mathematical possibilities are listed - solutions of the equation that would yield too &quot;exotic&quot; scale steps (too small/too big diffference between s and L) are excluded. (The concrete - sort of arbitrary - restrictions applied were: a solution appears if 7/6 &lt; L/s &lt; 5.)<br />
<br />


<table class="wiki_table">
    <tr>
        <td><a class="wiki_link" href="/PentatonicMOS">Pentatonic MOS</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/1L%204s">1L 4s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/2L%203s">2L 3s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/3L%202s">3L 2s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/4L%201s">4L 1s</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
    </tr>
    <tr>
        <td><a class="wiki_link" href="/HexatonicMOS">Hexatonic MOS</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/1L%205s">1L 5s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/2L%204s">2L 4s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/3L%203s">3L 3s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/4L%202s">4L 2s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/5L%201s">5L 1s</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
    </tr>
    <tr>
        <td><a class="wiki_link" href="/HeptatonicMOS">Heptatonic MOS</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/1L%206s">1L 6s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/2L%205s">2L 5s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/3L%204s">3L 4s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/4L%203s">4L 3s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/5L%202s">5L 2s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/6L%201s">6L 1s</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
    </tr>
    <tr>
        <td><a class="wiki_link" href="/OctatonicMOS">Octatonic MOS</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/1L%207s">1L 7s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/2L%206s">2L 6s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/3L%205s">3L 5s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/4L%204s">4L 4s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/5L%203s">5L 3s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/6L%202s">6L 2s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/7L%201s">7L 1s</a><br />
</td>
        <td><br />
</td>
        <td><br />
</td>
    </tr>
    <tr>
        <td><a class="wiki_link" href="/NonatonicMOS">Nonatonic MOS</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/1L%208s">1L 8s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/2L%207s">2L 7s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/3L%206s">3L 6s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/4L%205s">4L 5s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/5L%204s">5L 4s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/6L%203s">6L 3s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/7L%202s">7L 2s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/8L%201s">8L 1s</a><br />
</td>
        <td><br />
</td>
    </tr>
    <tr>
        <td><a class="wiki_link" href="/DecatonicMOS">Decatonic MOS</a><br />
</td>
        <td><a class="wiki_link" href="/1L%209s">1L 9s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/2L%208s">2L 8s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/3L%207s">3L 7s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/4L%206s">4L 6s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/5L%205s">5L 5s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/6L%204s">6L 4s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/7L%203s">7L 3s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/8L%202s">8L 2s</a><br />
</td>
        <td><br />
</td>
        <td><a class="wiki_link" href="/9L%201s">9L 1s</a><br />
</td>
    </tr>
</table>

<span style="color: #0000ee;"> </span><br />
<br />
<!-- ws:start:WikiTextHeadingRule:12:&lt;h2&gt; --><h2 id="toc6"><a name="MOS scales-MOS As Applied To Rhythms"></a><!-- ws:end:WikiTextHeadingRule:12 -->MOS As Applied To Rhythms</h2>
 David Canright was the first to suggest Fibonacci Rhythms in 1/1. This lead to Kraig Grady to be the first to apply MOS patterns to rhythms. Two papers on the subject can be found here <a class="wiki_link_ext" href="http://anaphoria.com/hora.PDF" rel="nofollow">http://anaphoria.com/hora.PDF</a> and <a class="wiki_link_ext" href="http://anaphoria.com/horo2.PDF" rel="nofollow">http://anaphoria.com/horo2.PDF</a><br />
MOS structures and thinking can be applied to the design of rhythms as well. See <a class="wiki_link" href="/MOS%20Rhythm%20Tutorial">MOS Rhythm Tutorial</a><br />
<br />
<!-- ws:start:WikiTextHeadingRule:14:&lt;h2&gt; --><h2 id="toc7"><a name="MOS scales-Algorithms"></a><!-- ws:end:WikiTextHeadingRule:14 -->Algorithms</h2>
Below is some Maple code for various mathematical routines having to do with MOS. If you have access to Maple, you can of course copy and run these programs. Even if you do not, since Maple code makes better pseudocode than most languages or computer algebra packages afford, it can be used as pseudocode. For that purpose, it will be helpful to know that &quot;modp(x, n)&quot; means reducing x mod the integer n to 0, 1, ..., n-1 not only when x is an integer, but also when it is a rational number with denominator prime to n. In that case, p/q mod n = r means p = qr mod n.<br />
<br />
nextfarey := proc(q, n)<br />
 # next in row n of Farey sequence from q, 0 &lt;= q &lt;= 1<br />
local a, b, r, s;<br />
if q &gt;= (n-1)/n then RETURN(1) fi;<br />
a := numer(q);<br />
b := denom(q);<br />
s := n - modp(n + 1/a, b);<br />
r := modp(1/b, s);<br />
r/s end:<br />
<br />
prevfarey := proc(q, n)<br />
 # previous in row n of Farey sequence from q, 0 &lt;= q &lt;= 1<br />
local a, b, r, s;<br />
if q=0 then RETURN(0) fi;<br />
if n=0 then RETURN(0) fi;<br />
a := numer(q);<br />
b := denom(q);<br />
s := n - modp(n - 1/a, b);<br />
r := modp(-1/b, s);<br />
r/s end:<br />
<br />
fareypair := proc(q)<br />
 # Farey pair with q as its mediant<br />
local n;<br />
n := denom(q);<br />
[prevfarey(q, n), nextfarey(q, n)] end:<br />
<br />
mediant := proc(u, v)<br />
 # mediant of two rational numbers u and v<br />
(numer(u) + numer(v))/(denom(u) + denom(v)) end:<br />
<br />
convergents := proc(z)<br />
 # convergent list for z <br />
local q; <br />
convert(z,confrac,'q'); <br />
q end:<br />
<br />
exlist := proc(l)<br />
 # expansion of a convergent list to semiconvergents<br />
local i, j, s, d;<br />
if nops(l)&lt;3 then RETURN(l) fi;<br />
d[1] := l[1];<br />
d[2] := l[2];<br />
s := 3;<br />
for i from 3 to nops(l)-1 do<br />
for j from 1 to (numer(l[i])-numer(l[i-2]))/numer(l[i-1]) do<br />
d[s] := <br />
(j*numer(l[i-1])+numer(l[i-2]))/(j*denom(l[i-1])+denom(l[i-2]));<br />
s := s+1 od od;<br />
convert(convert(d, array), list) end:<br />
<br />
semiconvergents := proc(z)<br />
 # semiconvergent list for z<br />
exlist(convergents(z)) end:<br />
<br />
penult := proc(q)<br />
 # penultimate convergent to q<br />
local i, u;<br />
u := convergents(q);<br />
if nops(u)=1 then RETURN(u[1]) fi;<br />
for i from 1 to nops(u) do<br />
if u[i]=q then RETURN(u[i-1]) fi od;<br />
end:<br />
<br />
Ls := proc(q)<br />
 # large-small steps from mediant q<br />
local u;<br />
u := fareypair(q);<br />
[denom(u[2]), denom(u[1])] end:<br />
<br />
medi := proc(u)<br />
 # mediant from Large-small steps<br />
local q;<br />
if u[2]=1 then RETURN(1/(u[1]+1)) fi;<br />
if igcd(u[1], u[2])&gt;1 then RETURN(&quot;not relatively prime&quot;) fi;<br />
q := penult(u[1]/u[2]);<br />
if q &gt; u[1]/u[2] then RETURN((numer(q)+denom(q))/(u[1]+u[2])) fi;<br />
(u[1]+u[2]-numer(q)-denom(q))/(u[1]+u[2]) end:<br />
<br />
<br />
<!-- ws:start:WikiTextHeadingRule:16:&lt;h2&gt; --><h2 id="toc8"><a name="MOS scales-MOSDiagrams"></a><!-- ws:end:WikiTextHeadingRule:16 --><a class="wiki_link" href="/MOSDiagrams">MOSDiagrams</a></h2>
</body></html>