Mathematics of MOS: Difference between revisions
ArrowHead294 (talk | contribs) mNo edit summary |
ArrowHead294 (talk | contribs) mNo edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 6: | Line 6: | ||
# 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 | # 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") | ||
# Where ''each'' number of scale steps, or generic interval, within the scale occurs in no more than two different sizes, and in exactly two if the interval is not a multiple of the period except in such cases as an ET. | # Where ''each'' number of scale steps, or generic interval, within the scale occurs in no more than two different sizes, and in exactly two if the interval is not a multiple of the period except in such cases as an ET. | ||
# The unison or starting point of the scale is then allowed to be transferred to any scale | # 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 | 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. | ||
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 85: | Line 85: | ||
== Algorithms == | == 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, Maple code makes better pseudocode than most languages or computer algebra packages afford, so it can be used as pseudocode. For that purpose, it will be helpful to know that <code>modp(x, n)</code> means reducing ''x'' mod the integer ''n'' to 0, 1, …, {{nowrap|''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, {{nowrap|{{frac|''p''|''q''}} (mod ''n'') {{=}} ''r''}} means {{nowrap|''p'' {{=}} ''qr'' (mod ''n'')}}. | Below is some {{w|maple (software)|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, Maple code makes better pseudocode than most languages or computer algebra packages afford, so it can be used as pseudocode. For that purpose, it will be helpful to know that <code>modp(x, n)</code> means reducing ''x'' mod the integer ''n'' to 0, 1, …, {{nowrap|''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, {{nowrap|{{frac|''p''|''q''}} (mod ''n'') {{=}} ''r''}} means {{nowrap|''p'' {{=}} ''qr'' (mod ''n'')}}. | ||
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>. |