User:Ganaram inukshuk/TAMNAMS Extension: Difference between revisions
Tags: Mobile edit Mobile web edit Advanced mobile edit |
|||
Line 70: | Line 70: | ||
=== Finding the ancestor of a descendant mos ''x''L ''y''s === | === Finding the ancestor of a descendant mos ''x''L ''y''s === | ||
For a mos ''x''L ''y''s, perform the following algorithm to find a familiar | For a mos ''x''L ''y''s, perform the following algorithm to find a familiar ancestor with target note count ''n'' or less: | ||
#Let ''z'' and ''w'' be the number of large and small steps of the parent mos to be found. Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively. | #Let ''z'' and ''w'' be the number of large and small steps of the parent mos to be found. Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively. | ||
#Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w''). | #Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w''). | ||
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''. | #Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''. | ||
#If ''z''+''w'' is less than or equal to ''n'', then the | #If ''z''+''w'' is less than or equal to ''n'', then the ancestor mos is ''z''L ''w''s. If not, repeat the process starting at step 2. | ||
=== Finding an ancestor's step ratio that produces a descandant mos ''x''L ''y''s === | === Finding an ancestor's step ratio that produces a descandant mos ''x''L ''y''s === | ||
For a mos xL ys, perform the following algorithm to find the step ratio for a descendant mos zL ws with target note count n or less: | |||
#Let ''z'' and ''w'' be the number of large and small steps of the parent mos to be found. Let ''U'' and ''V'' be two chunks, that is the number of L's and s's from the descendant that make up the large and small step sizes of the ancestor. | |||
##Assign to ''z'' and ''w'' the values ''x'' and ''y'' respectively. | |||
##Assign to U the vector { uL, us } = { 1, 0 } and V to the vector { vL, vs } = { 0, 1 }. | |||
#Let ''m1'' be assigned the value of max(''z'', ''w'') and ''m2'' the value of min(''z'', ''w''). | |||
##If w > z, then add V to U. Otherwise, assign to a temporary vector Utemp the value of U, add V to U, and assign to V the value of Utemp. | |||
#Assign to ''z'' the value ''m2'' and ''w'' the value ''m1''-''m2''. | |||
#If ''z''+''w'' is less than or equal to ''n'', then the ancestor mos is ''z''L ''w''s. The step ratio range for the ancestor mos ranges from (uL+ us):(vL+ vs) to uL:vL. If z+w is not less than or equal to n, repeat the process starting at step 2. | |||
== Names for mosses with more than 10 notes == | == Names for mosses with more than 10 notes == |