str = re.sub (r'molecule-callback', 'print-function', str)
str = re.sub (r'brew_molecule', 'print', str)
str = re.sub (r'brew-new-markup-molecule', 'Text_item::print', str)
+ str = re.sub (r'LyricsVoice', 'Lyrics', str)
+ str = re.sub (r'tupletInvisible',
+ r"TupletBracket \\set #'transparent", str)
+# str = re.sub (r'molecule', 'collage', str)
+#molecule -> collage
+ str = re.sub (r"\\property\s+[a-zA-Z]+\s*\.\s*[a-zA-Z]+\s*"
+ + r"\\set\s*#'X-extent-callback\s*=\s*#Grob::preset_extent",
+ "", str)
+
return str
conversions.append (((2,1,21), conv, """molecule-callback -> print-function,
brew_molecule -> print
+brew-new-markup-molecule -> Text_item::print
+LyricsVoice -> Lyrics
+tupletInvisible -> TupletBracket \set #'transparent
+Grob::preset_extent removed.
""" ))
+def conv (str):
+ str = re.sub (r'\\property\s+([^.]+)\s*\.\s*([^\\=]+)\s*\\(set|override)',
+ r"\\overrid@ \1.\2 ", str)
+ str = re.sub (r'\\property\s+([^. ]+)\s*\.\s*([^\\= ]+)\s*=',
+ r'\\s@t \1.\2 = ', str)
+ str = re.sub (r'\\property\s+([^. ]+)\s*\.\s*([^\\= ]+)\s*\\unset',
+ r'\\uns@t \1.\2 ', str)
+ str = re.sub (r'\\property\s+([^. ]+)\s*\.\s*([^\\= ]+)\s*\\revert'
+ + r"\s*#'([-a-z0-9_]+)",
+ r"\\rev@rt \1.\2 #'\3", str)
+ str = re.sub (r'Voice\.', '', str)
+ str = re.sub (r'Lyrics\.', '', str)
+ str = re.sub (r'ChordNames\.', '', str)
+
+ str = re.sub ('rev@rt', 'revert',str)
+ str = re.sub ('s@t', 'set',str)
+ str = re.sub ('overrid@', 'override',str)
+
+ str = re.sub ('molecule', 'stencil', str)
+ str = re.sub ('Molecule', 'Stencil', str)
+ return str
+
+conversions.append (((2,1,22), conv, """new syntax for property settings:
+ \set A.B = #C , \unset A.B
+ \override A.B #C = #D, \revert A.B #C
+
+"""))
################################