]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/convertrules.py
Incorporate musicxml2ly_conversion.py into musicxml2ly.py.
[lilypond.git] / python / convertrules.py
index 03670e02cc304b221be5a5730a412b948ca7a4a2..3c9caad397a8e72d65b80279172b71fcc8b691ee 100644 (file)
@@ -3824,7 +3824,16 @@ def conv(str):
                       r'(?=\s|[()]))(' + paren_matcher (20) + ")"
                       r"(?:\s+parser(?=\s|[()])|\s*\(\*parser\*\))", repl, str)
         return str
-    return inner (str)
+    str = inner (str)
+    # This is the simplest case, resulting from one music function
+    # trying to call another one via Scheme.  The caller is supposed
+    # to have its uses of parser/location converted to
+    # (*parser*)/(*location*) already.  Other uses of
+    # ly:music-function-extract are harder to convert but unlikely.
+    str = re.sub (r'(\(\s*\(ly:music-function-extract\s+' + wordsyntax +
+                  r'\s*\)\s+)\(\*parser\*\)\s*\(\*location\*\)', r'\1',
+                  str)
+    return str
 
 @rule ((2, 19, 24), r"""music-has-type -> music-is-of-type?
 \applyOutput #'Context -> \applyOutput Context""")
@@ -3834,6 +3843,34 @@ def conv (str):
     str = re.sub (r"(\\applyOutput\s+)#'([a-zA-Z])", r"\1\2", str)
     return str
 
+@rule ((2, 19, 28), r"c:5.x, c:5^x, c:sus -> c:3.5.x, c:3.5^x, c:5")
+def conv (str):
+    str = re.sub (r":5([.^][1-9])", r":3.5\1", str)
+    # row back for self-defeating forms
+    str = re.sub (r":3\.5((?:\.[0-9]+)*\^(?:[0-9]+\.)*)3\.", r":5\1", str)
+    str = re.sub (r":3\.5((?:\.[0-9]+)*\^?:[0-9]+(?:\.[0-9]+)*)\.3(?![.0-9])", r":5\1", str)
+    str = re.sub (r":3\.5((?:\.[0-9]+)*)\^3(?=\s|\})", r":5\1", str)
+    str = re.sub (r":sus(?=\s|\})", ":5", str)
+    str = re.sub (r":1\.5(?=\s|[.^}])", r":5", str)
+    return str
+
+@rule ((2, 19, 29), r"partcombine*Once -> \once \partcombine*")
+def conv(str):
+    str = re.sub (r"(\\partcombine(?:Apart|Chords|Unisono|SoloII?|Automatic))Once\b",
+                  r"\\once \1", str)
+    str = re.sub (r"(\\partcombineForce" + matcharg + r")\s*##f(\s)",
+                  r"\1\2", str)
+    str = re.sub (r"(\\partcombineForce" + matcharg + r")\s*##t(\s)",
+                  r"\\once \1\2", str)
+    return str
+
+@rule ((2, 19, 32), r"whiteout-box -> whiteout")
+def conv(str):
+    str = re.sub (r"\\whiteout-box(?![a-z_-])", r"\\whiteout", str)
+    str = re.sub (r"\b\.whiteout-box(?![a-z_-])\b", r".whiteout", str)
+    str = re.sub (r"#'whiteout-box(?![a-z_-])\b", r"#'whiteout", str)
+    return str
+
 # Guidelines to write rules (please keep this at the end of this file)
 #
 # - keep at most one rule per version; if several conversions should be done,