MOS substitution: Difference between revisions

Inthar (talk | contribs)
No edit summary
Tags: Mobile edit Mobile web edit
Inthar (talk | contribs)
Add a section about how to denote modes of a MOS substitution scale
Line 1: Line 1:
'''MOS substitution'''{{idiosyncratic}} is a procedure for obtaining a ternary (3 step sizes) scale from two [[MOS]] patterns. It consists of substituting the step pattern of one MOS pattern (called the filling MOS), scale step for scale step, for all occurrences of a chosen step size of another MOS pattern (called the template MOS). Unlike MV3 scales, a MOS substitution scale may have any combination of step sizes.
'''MOS substitution'''{{idiosyncratic}} is a procedure for obtaining a ternary (3 step sizes) scale from two [[MOS]] patterns. It consists of substituting the step pattern of one MOS pattern (called the filling MOS), scale step for scale step, for all occurrences of a chosen step size of another MOS pattern (called the template MOS). Unlike MV3 scales, a MOS substitution scale may have any combination of step sizes.


For example, if the template MOS is '''LXLXX''', and the filling MOS is '''mss''', then the resulting MOS substitution scales are '''LmLss''', '''LsLms''', and '''LsLsm'''. The first scale is denoted "subst 2L(1m2s) 2|0", using [[UDP]] notation for the filling MOS, and is said to be a "subst 2L(1m2s)". We always substitute into the brightest mode of the template MOS, where X is treated as the smaller step.
For example, if the template MOS is '''LXLXX''', and the filling MOS is '''mss''', then the resulting MOS substitution scales are '''LmLss''', '''LsLms''', and '''LsLsm'''. The first scale is denoted "subst 2L(1m2s 2|0)", using [[UDP]] notation for the filling MOS, and is said to be a "subst 2L(1m2s)". We always substitute into the brightest mode of the template MOS, where X is treated as the smaller step.


{| class="wikitable"
{| class="wikitable"
Line 17: Line 17:
|style="text-align:right;"| <code>mss</code>  
|style="text-align:right;"| <code>mss</code>  
|colspan=2 style="text-align:right;"| <code>LmLss</code>  
|colspan=2 style="text-align:right;"| <code>LmLss</code>  
| subst 2L(1m2s) 2&#124;0
| subst 2L(1m2s 2&#124;0)
|-
|-
|| 1&#124;1
|| 1&#124;1
|style="text-align:right;"| <code>sms</code>
|style="text-align:right;"| <code>sms</code>
|colspan=2 style="text-align:right;"| <code>LsLms</code>  
|colspan=2 style="text-align:right;"| <code>LsLms</code>  
| subst 2L(1m1s) 1&#124;1
| subst 2L(1m1s 1&#124;1)
|-
|-
|| 0&#124;2  
|| 0&#124;2  
|style="text-align:right;"| <code>ssm</code>
|style="text-align:right;"| <code>ssm</code>
|colspan=2 style="text-align:right;"| <code>LsLsm</code>
|colspan=2 style="text-align:right;"| <code>LsLsm</code>
| subst 2L(1m1s) 0&#124;2
| subst 2L(1m1s 0&#124;2)
|}
|}


Line 50: Line 50:
* ''a'''''X'''''b'''''Y'''(''k'') denotes the mode of ''a'''''X'''''b'''''Y''' which would have [[UDP]] notation <math>dk|d(a/d+b/d-1-k)\ (d), \ d = \gcd(a,b)</math> under the assumption '''X''' > '''Y''' > '''0'''.
* ''a'''''X'''''b'''''Y'''(''k'') denotes the mode of ''a'''''X'''''b'''''Y''' which would have [[UDP]] notation <math>dk|d(a/d+b/d-1-k)\ (d), \ d = \gcd(a,b)</math> under the assumption '''X''' > '''Y''' > '''0'''.


== Motivation ==
== Original derivation ==
Originally developed by Inthar for the purpose of adding [[aberrisma]] steps in an orderly manner to a MOS pattern <math>a\mathbf{L}b\mathbf{m}</math> (which we write in place of <math>a\mathbf{L}b\mathbf{s}</math> for convenience's sake, since <math>\mathbf{s}</math> denotes the new aberrisma steps added to the MOS) in the context of groundfault's [[aberrismic theory]], MOS substitution is intended to take advantage of extra potential symmetry when <math>a, c</math> or <math>b, c</math> is not a coprime pair and mildly generalize the congruence substitution procedure for building [[balanced]] words to obtain non-balanced but still more "even" scales with simple [[generator sequence]] expressions (in the sense of being binary, i.e. using only two distinct generators). The idea is that modifying the input scales in a sufficiently controlled fashion from the nicest case of MOS template scales and MOS filling scales whose period divides the count of unknown letters in the template will result in a scale that retains some degree of elegance in its lattice structure. However, this condition is not necessary for MOS substitution to result in a binary generator sequence (with two distinct generators), though the generator sequence necessary to generate the scale will be longer.
Originally developed by Inthar for the purpose of adding [[aberrisma]] steps in an orderly manner to a MOS pattern <math>a\mathbf{L}b\mathbf{m}</math> (which we write in place of <math>a\mathbf{L}b\mathbf{s}</math> for convenience's sake, since <math>\mathbf{s}</math> denotes the new aberrisma steps added to the MOS) in the context of groundfault's [[aberrismic theory]], MOS substitution is intended to take advantage of extra potential symmetry when <math>a, c</math> or <math>b, c</math> is not a coprime pair and mildly generalize the congruence substitution procedure for building [[balanced]] words to obtain non-balanced but still more "even" scales with simple [[generator sequence]] expressions (in the sense of being binary, i.e. using only two distinct generators). The idea is that modifying the input scales in a sufficiently controlled fashion from the nicest case of MOS template scales and MOS filling scales whose period divides the count of unknown letters in the template will result in a scale that retains some degree of elegance in its lattice structure. However, this condition is not necessary for MOS substitution to result in a binary generator sequence (with two distinct generators), though the generator sequence necessary to generate the scale will be longer.


Line 59: Line 59:
For brevity, this should usually be written:
For brevity, this should usually be written:


<math>\mathsf{subst} \ a\mathbf{x}(b\mathbf{y}c\mathbf{z}) \ k|b+c-1-k\ (p),</math>
<math>\mathsf{subst} \ a\mathbf{x}(b\mathbf{y}c\mathbf{z} \ k|b+c-1-k\ (p)),</math>


using [[UDP]] for the filling MOS.
using [[UDP]] for the filling MOS.


Here <math>\mathbf{z}</math> is the new step size inserted, <math>\mathbf{y}</math> is the step size in the starting MOS identified with <math>\mathbf{z}</math> by the template MOS, and <math>k</math> is the brightness of the mode of the filling MOS used (<math>k = 0</math> corresponds to the darkest mode; the conventional understanding of "brightness" makes sense as <math>\mathbf{L}</math> (resp. <math>\mathbf{m}</math>) > <math>\mathbf{s}</math>).
Here <math>\mathbf{z}</math> is the new step size inserted, <math>\mathbf{y}</math> is the step size in the starting MOS identified with <math>\mathbf{z}</math> by the template MOS, and <math>k</math> is the brightness of the mode of the filling MOS used (<math>k = 0</math> corresponds to the darkest mode; the conventional understanding of "brightness" makes sense as <math>\mathbf{L}</math> (resp. <math>\mathbf{m}</math>) > <math>\mathbf{s}</math>).
== Denoting modes of a MOS substitution scale ==
Just as rotating the filling MOS while fixing the mode of the template MOS serves to distinguish different MOS substitution scales, we take the UDP of the template MOS (treating the slot letter as the smaller step) to indicate the mode of a given MOS substitution scale.


==Examples==
For example: Taking the 5|5 mode of the template MOS in subst 5'''L'''(2'''m'''4'''s''' 4&#124;0(2)) (LmLsLsLmLss) yields the mode sLmLsLsLmLs, denoted "subst 5'''L'''(2'''m'''4'''s''' 4&#124;0(2)) 5|5".
== Examples ==
In the following tables, the interval class of the generators stacked in the generator sequence is such that the perfect generator has fewer <math>\mathbf{X}</math> steps than the imperfect counterpart.
In the following tables, the interval class of the generators stacked in the generator sequence is such that the perfect generator has fewer <math>\mathbf{X}</math> steps than the imperfect counterpart.
=== 5L2m4s ===
=== 5L2m4s ===
Line 226: Line 229:
   
   
# in UDP, brightness = number of generators up * gcd of the step counts
# in UDP, brightness = number of generators up * gcd of the step counts
# function returns subst nX X (nY Y nZ Z) (brightness_of_filling_mos) | (nY + nZ - gcd(nY, nZ) - brightness_of_filling_mos)
# function returns subst nX X (nY Y nZ Z (brightness_of_filling_mos) | (nY + nZ - gcd(nY, nZ) - brightness_of_filling_mos))
def mos_subst(nX, nY, nZ, sizeX, sizeY, sizeZ, brightness_of_filling_mos):
def mos_subst(nX, nY, nZ, sizeX, sizeY, sizeZ, brightness_of_filling_mos):
     template_mos = mos_word(nX, nY + nZ, "X", "W", brightness=nX + nY + nZ - gcd(nX, nY + nZ)) # MOS word with nX X's and nY + nZ W's; X is treated as L and W as s for purposes of brightness
     template_mos = mos_word(nX, nY + nZ, "X", "W", brightness=nX + nY + nZ - gcd(nX, nY + nZ)) # MOS word with nX X's and nY + nZ W's; X is treated as L and W as s for purposes of brightness