+
+@rule ((2, 11, 46), "\\set hairpinToBarline -> \\override Hairpin #'to-barline")
+def conv (str):
+ str = re.sub (r"\\set\s+([a-zA-Z]+)\s*.\s*hairpinToBarline\s*=\s*##([tf]+)",
+ r"\\override \1.Hairpin #'to-barline = ##\2", str)
+ str = re.sub (r"\\set\s+hairpinToBarline\s*=\s*##([tf]+)",
+ r"\\override Hairpin #'to-barline = ##\1", str)
+ str = re.sub (r"\\unset\s+([a-zA-Z]+)\s*.\s*hairpinToBarline",
+ r"\\revert \1.Hairpin #'to-barline", str)
+ str = re.sub (r"\\unset\s+hairpinToBarline",
+ r"\\revert Hairpin #'to-barline", str)
+ str = re.sub (r"hairpinToBarline\s*=\s*##([tf]+)",
+ r"\\override Hairpin #'to-barline = ##\1", str)
+ str = re.sub (r"\\set (de|)crescendoSpanner = #'dashed-line",
+ r"\\set \1crescendoSpanner = #'text", str)
+ return str
+
+
+@rule ((2, 11, 48), "\\compressMusic -> \\scaleDurations")
+def conv (str):
+ str = re.sub (r"compressMusic", r"scaleDurations", str)
+ return str
+
+
+@rule ((2, 11, 50), _ ("metronomeMarkFormatter uses text markup as second argument,\n\
+fret diagram properties moved to fret-diagram-details."))
+def conv (str):
+ ## warning 1/2: metronomeMarkFormatter uses text markup as second argument
+ if re.search ('metronomeMarkFormatter', str):
+ stderr_write (NOT_SMART % _ ("metronomeMarkFormatter got an additional text argument.\n"))
+ stderr_write (_ ("The function assigned to Score.metronomeMarkFunction now uses the signature\n%s") %
+ "\t(format-metronome-markup text dur count context)\n")
+
+ ## warning 2/2: fret diagram properties moved to fret-diagram-details
+ fret_props = ['barre-type',
+ 'dot-color',
+ 'dot-radius',
+ 'finger-code',
+ 'fret-count',
+ 'label-dir',
+ 'number-type',
+ 'string-count',
+ 'xo-font-magnification',
+ 'mute-string',
+ 'open-string',
+ 'orientation']
+ for prop in fret_props:
+ if re.search (prop, str):
+ stderr_write (NOT_SMART %
+ prop + " in fret-diagram properties. Use fret-diagram-details.")
+ stderr_write ('\n')
+ return str
+
+@rule ((2, 11, 51), "\\octave -> \\octaveCheck, \\arpeggioUp -> \\arpeggioArrowUp,\n\
+\\arpeggioDown -> \\arpeggioArrowDown, \\arpeggioNeutral -> \\arpeggioNormal,\n\
+\\setTextCresc -> \\crescTextCresc, \\setTextDecresc -> \\dimTextDecresc,\n\
+\\setTextDecr -> \\dimTextDecr, \\setTextDim -> \\dimTextDim,\n\
+\\setHairpinCresc -> \\crescHairpin, \\setHairpinDecresc -> \\dimHairpin,\n\
+\\sustainUp -> \\sustainOff, \\sustainDown -> \\sustainOn\n\
+\\sostenutoDown -> \\sostenutoOn, \\sostenutoUp -> \\sostenutoOff")
+def conv (str):
+ str = re.sub (r"\\octave", r"\\octaveCheck", str)
+ str = re.sub (r"arpeggioUp", r"arpeggioArrowUp", str)
+ str = re.sub (r"arpeggioDown", r"arpeggioArrowDown", str)
+ str = re.sub (r"arpeggioNeutral", r"arpeggioNormal", str)
+ str = re.sub (r"setTextCresc", r"crescTextCresc", str)
+ str = re.sub (r"setTextDecresc", r"dimTextDecresc", str)
+ str = re.sub (r"setTextDecr", r"dimTextDecr", str)
+ str = re.sub (r"setTextDim", r"dimTextDim", str)
+ str = re.sub (r"setHairpinCresc", r"crescHairpin", str)
+ str = re.sub (r"setHairpinDecresc", r"dimHairpin", str)
+ str = re.sub (r"sustainUp", r"sustainOff", str)
+ str = re.sub (r"sustainDown", r"sustainOn", str)
+ str = re.sub (r"sostenutoDown", r"sostenutoOn", str)
+ str = re.sub (r"sostenutoUp", r"sostenutoOff", str)
+ return str
+
+@rule ((2, 11, 52), "\\setHairpinDim -> \\dimHairpin")
+def conv (str):
+ str = str.replace ("setHairpinDim", "dimHairpin")
+ return str
+
+@rule ((2, 11, 53), "infinite-spacing-height -> extra-spacing-height, \
+#(set-octavation oct) -> \\ottava #oct")
+def conv (str):
+ str = re.sub (r"infinite-spacing-height\s+=\s+##t", r"extra-spacing-height = #'(-inf.0 . +inf.0)", str)
+ str = re.sub (r"infinite-spacing-height\s+=\s+##f", r"extra-spacing-height = #'(0 . 0)", str)
+ str = re.sub (r"#\(set-octavation (-*[0-9]+)\)", r"\\ottava #\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,
+# concatenate them into a single "conv" function;
+#
+# - enclose strings to be localized with `_(' and `)';
+#
+# - write rule for bumping major stable version with
+#
+# _ ("bump version for release")
+#
+# as exact description.