]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/convertrules.py
* Unify fetaDynamic and fetaNumber into one fetaText encoding
[lilypond.git] / python / convertrules.py
index 80e13b6c0a44606c0ffccd7743fe8cde3bd8605a..2f0409eb3c03d63d575242938a535d7d082b6de2 100644 (file)
@@ -9,7 +9,7 @@ import lilylib
 _ = lilylib._
 
 
-NOT_SMART = _ ("Not smart enough to convert %s")
+NOT_SMART = "\n" + _ ("Not smart enough to convert %s")
 UPDATE_MANUALLY = _ ("Please refer to the manual for details, and update manually.")
 FROM_TO = _ ( "%s has been replaced by %s")
 
@@ -2655,7 +2655,8 @@ def conv (str):
     return str
 
 
-@rule ((2, 11, 15), "TextSpanner #'edge-height -> #'bound-details #'right/left #'text = ...")
+@rule ((2, 11, 15), "TextSpanner #'edge-height -> #'bound-details #'right/left #'text = ...\n\
+Remove 'forced-distance for fixed spacing between staves in a PianoStaff.")
 def conv (str):
     def sub_edge_height (m):
         s = ''
@@ -2679,6 +2680,11 @@ def conv (str):
 
 
     str = re.sub (r"(\\once)?\s*\\override\s*([a-zA-Z]+\s*[.]\s*)?TextSpanner\s*#'edge-height\s*=\s*#'\(\s*([0-9.-]+)\s+[.]\s+([0-9.-]+)\s*\)", sub_edge_height, str)
+    if re.search (r"#'forced-distance", str):
+        stderr_write (NOT_SMART % ("VerticalAlignment #'forced-distance.\n"))
+        stderr_write (_ ("Use the `alignment-offsets' sub-property of\n"))
+        stderr_write (_ ("NonMusicalPaperColumn #'line-break-system-details\n"))
+        stderr_write (_ ("to set fixed distances between staves.\n"))
     return str
 
 
@@ -2910,12 +2916,14 @@ def conv(str):
 @rule ((2, 13, 4),
        _ ("Autobeaming rules have changed.  override-auto-beam-setting and\n\
 revert-auto-beam-setting have been eliminated.  \\overrideBeamSettings has been\n\
-added.  BeatGrouping has been eliminated.\n\
+added.  beatGrouping has been eliminated.\n\
 Different settings for vertical layout.\n\
 ly:system-start-text::print -> system-start-text::print\n\
 Beam #'thickness -> Beam #'beam-thickness\n\
 ly:note-head::brew-ez-stencil -> note-head::brew-ez-stencil\n\
-ly:ambitus::print -> ambitus::print"))
+ly:ambitus::print -> ambitus::print\n\
+Explicit dynamics context definition from `Piano centered dynamics'\n\
+template replaced by new `Dynamics' context."))
 def conv(str):
     if re.search("override-auto-beam-setting", str):
         stderr_write ("\n")
@@ -2941,8 +2949,45 @@ you must now specify the distances between staves rather than the offset of stav
     str = re.sub ('ly:(system-start-text::print|note-head::brew-ez-stencil|ambitus::print)',
                   '\\1', str)
     str = re.sub ('(\\bBeam\\s+#\')(?=thickness\\b)', '\\1beam-', str)
+    str = re.sub (r'(\\context\s*\{{1}[^\}]+\\name\s+"*Dynamics"*[^\}]*\}{1})',
+                  '', str)
     return str
 
+@rule ((2, 13, 10),
+       _ ("Remove obsolete engravers/translators: Note_swallow_translator,\n\
+Rest_swallow_translator, Skip_event_swallow_translator, Swallow_engraver,\n\
+Swallow_performer and String_number_engraver.\n\
+New vertical spacing variables."))
+def conv(str):
+    str = re.sub (r'\\(consists|remove)\s+"*(Swallow_(engraver|performer)|'
+                  '(Note|Rest|Skip_event)_swallow_translator|String_number_engraver)"*',
+                  '', str)
+
+    str = re.sub (r"page-top-space\s*=\s*#([0-9.]+)",
+                  r"top-system-spacing #'space = #\1",
+                  str)
+    str = re.sub (r"between-system-space\s*=\s*#([0-9.]+)",
+                  r"between-system-spacing #'space = #\1\nbetween-scores-system-spacing #'space = #\1",
+                  str)
+    str = re.sub (r"between-system-padding\s*=\s*#([0-9.]+)",
+                  r"between-system-spacing #'padding = #\1\nbetween-scores-system-spacing #'padding = #\1",
+                  str)
+    str = re.sub (r"(after|between|before)-title-space\s*=\s*#([0-9.]+)",
+                  r"\1-title-spacing #'space = #\2",
+                  str)
+
+    if re.search(r'minimum-Y-extent', str):
+        stderr_write("\n")
+        stderr_write(NOT_SMART % _("vertical spacing has been changed; minimum-Y-extent is obsolete.\n"))
+        stderr_write(UPDATE_MANUALLY)
+
+    return str
+
+@rule ((2, 13, 16),
+       _ ("Unify fetaNumber and fetaDynamic encodings"))
+def conv(str):
+    return re.sub(r'\bfeta(Number|Dynamic)', 'fetaText', 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,