X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=python%2Fconvertrules.py;h=b01e1bbaba46b74f8eed3174911645434a1d3391;hb=c60413574afafd1077f2792a2e2f7a7c55101143;hp=80e13b6c0a44606c0ffccd7743fe8cde3bd8605a;hpb=fe50accb90e596532cd211a314c8a53196686487;p=lilypond.git diff --git a/python/convertrules.py b/python/convertrules.py index 80e13b6c0a..b01e1bbaba 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -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 @@ -2895,7 +2901,7 @@ longer in reversed order.\n")) ly:hairpin::after-line-breaking -> ly:spanner::kill-zero-spanned-time\n\ Dash parameters for slurs and ties are now in dash-definition")) def conv(str): - if re.search(r'\\bar\s*"."', str): + if re.search(r'\\bar\s*"\."', str): stderr_write ("\n") stderr_write (NOT_SMART % _("\\bar \".\" now produces a thick barline.\n")) stderr_write (UPDATE_MANUALLY) @@ -2909,13 +2915,16 @@ 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\ +revert-auto-beam-setting have been eliminated.\n\ +\\overrideBeamSettings has been added.\n\ +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 +2950,172 @@ 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}[^\}]+\\type\s+\"?Engraver_group\"?\s+\\name\s+"*Dynamics"*[^\}]*\}{1})', + '% [Convert-ly] The Dynamics context is now included by default.', 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) + +@rule ((2, 13, 18), + _ ("\\RemoveEmpty*StaffContext -> \\*Staff \\RemoveEmptyStaves")) +def conv(str): + str = re.sub (r"\\RemoveEmpty(|Drum|Rhythmic|Tab)StaffContext", + r"\\\1Staff \\RemoveEmptyStaves", + str); + str = re.sub (r"\\AncientRemoveEmptyStaffContext", + r"\\VaticanaStaff \\RemoveEmptyStaves", + str); + return str + +@rule ((2, 13, 20), + _ ("\\cresc etc. are now postfix operators")) +def conv (str): + str = re.sub (r'\\(cresc|dim|endcresc|enddim)\b', r'\\deprecated\1', str) + return str + +@rule ((2, 13, 29), + _ ("Eliminate beamSettings, beatLength, \\setBeatGrouping, \\overrideBeamSettings and \\revertBeamSettings.\n\ +\"accordion.accEtcbase\" -> \"accordion.etcbass\"")) +def conv(str): + def sub_acc (m): + d = { + 'Dot': 'dot', + 'Discant': 'discant', + 'Bayanbase': 'bayanbass', + 'Stdbase': 'stdbass', + 'Freebase': 'freebass', + 'OldEE': 'oldEE' + } + return '"accordion.%s"' % d[m.group (1)] + + str = re.sub (r'"accordion\.acc([a-zA-Z]+)"', + sub_acc, str) + if re.search(r'overrideBeamSettings', str): + stderr_write("\n") + stderr_write(NOT_SMART % _("\\overrideBeamSettings. Use \\set beamExceptions or \\overrideTimeSignatureSettings.\n")) + stderr_write(UPDATE_MANUALLY) + if re.search(r'revertBeamSettings', str): + stderr_write("\n") + stderr_write(NOT_SMART % _("\\revertBeamSettings. Use \\set beamExceptions or \\revertTimeSignatureSettings.\n")) + stderr_write(UPDATE_MANUALLY) + if re.search(r'beamSettings', str): + stderr_write("\n") + stderr_write(NOT_SMART % _("beamSettings. Use baseMoment, beatStructure, and beamExceptions.\n")) + stderr_write(UPDATE_MANUALLY) + if re.search(r'beatLength', str): + stderr_write("\n") + stderr_write(NOT_SMART % _("beatLength. Use baseMoment and beatStructure.\n")) + stderr_write(UPDATE_MANUALLY) + if re.search(r'setBeatGrouping', str): + stderr_write("\n") + stderr_write(NOT_SMART % _("setbeatGrouping. Use baseMoment and beatStructure.\n")) + stderr_write(UPDATE_MANUALLY) + return str + +@rule ((2, 13, 31), + _ ("Woodwind diagrams: Move size, thickness, and graphic from argument list to properties.\n\ +Deprecate negative dash-period for hidden lines: use #'style = #'none instead.")) +def conv(str): + if re.search(r'woodwind-diagram', str): + stderr_write("\n") + stderr_write(NOT_SMART % _("woodwind-diagrams. Move size, thickness, and graphic to properties. Argument should be just the key list.\n")) + stderr_write(UPDATE_MANUALLY) + str = re.sub (r"dash-period\s+=\s*#\s*-[0-9.]+", + r"style = #'none", + str); + return str + +@rule ((2, 13, 36), + _ ("Rename vertical spacing variables.\n\ +Add fretboard-table argument to savePredefinedFretboard.")) +def conv(str): + str = re.sub ('after-title-spacing', 'markup-system-spacing', str) + str = re.sub ('before-title-spacing', 'score-markup-spacing', str) + str = re.sub ('between-scores-system-spacing', 'score-system-spacing', str) + # this rule also converts page-breaking-between-system-spacing: + str = re.sub ('between-system-spacing', 'system-system-spacing', str) + str = re.sub ('between-title-spacing', 'markup-markup-spacing', str) + str = re.sub ('bottom-system-spacing', 'last-bottom-spacing', str) + str = re.sub ('top-title-spacing', 'top-markup-spacing', str) + + str = re.sub (r"storePredefinedDiagram", + r"storePredefinedDiagram #default-fret-table", + str); + return str + +@rule ((2, 13, 39), + _ ("Rename vertical spacing grob properties.")) +def conv(str): + # this rule also converts default-next-staff-spacing: + str = re.sub ('next-staff-spacing', 'staff-staff-spacing', str) + # this is not a mistake: + # Both 'next- and 'between- become 'staff-staff-spacing. + # There is no conflict since they are in different grobs. + str = re.sub ('between-staff-spacing', 'staff-staff-spacing', str) + str = re.sub ('after-last-staff-spacing', 'staffgroup-staff-spacing', str) + str = re.sub ('inter-staff-spacing', 'nonstaff-relatedstaff-spacing', str) + str = re.sub ('non-affinity-spacing', 'nonstaff-unrelatedstaff-spacing', str) + str = re.sub ('inter-loose-line-spacing', 'nonstaff-nonstaff-spacing', str); + + return str + +@rule ((2, 13, 40), + _ ("Remove \\paper variables head-separation and foot-separation.")) +def conv(str): + if re.search(r'head-separation', str): + stderr_write("\n") + stderr_write(NOT_SMART % ("head-separation.\n")) + stderr_write(_ ("Adjust settings for top-system-spacing instead.\n")) + stderr_write(UPDATE_MANUALLY) + if re.search(r'foot-separation', str): + stderr_write("\n") + stderr_write(NOT_SMART % ("foot-separation.\n")) + stderr_write(_ ("Adjust settings for last-bottom-spacing instead.\n")) + stderr_write(UPDATE_MANUALLY); + + return str + +@rule ((2, 13, 42), + _ ("Rename space to basic-distance in various spacing alists.")) +def conv(str): + str = re.sub (r'\(space\s+\.\s+([0-9]*\.?[0-9]*)\)', r'(basic-distance . \1)', str) + str = re.sub (r"#'space\s+=\s+#?([0-9]*\.?[0-9]*)", r"#'basic-distance = #\1", 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,