last_str = ''
while last_str <> str:
last_str = str
+ def sub_tremolos (m):
+ tr = m.group (2)
+ if tr not in slur_strs:
+ slur_strs.append (tr)
+ return m.group (1)
+
+ str = re.sub (r"([a-z]+[',!? ]*)(:[0-9]+)", sub_tremolos, str)
+
def sub_dyn_end (m):
dyns.append (' \!')
return ' ' + m.group(2)
str = re.sub ('accacciatura',
'acciaccatura', str)
- if re.search ("context-spec-music"):
- sys.stderr.write ("context-spec-music takes a symbol for the context now. Update by hand."
+ if re.search ("context-spec-music", str):
+ sys.stderr.write ("context-spec-music takes a symbol for the context now. Update by hand.")
+
raise FatalConversionError()
-
+
str = re.sub ('fingerHorizontalDirection *= *#(LEFT|-1)',
"fingeringOrientations = #'(up down left)", str)
str = re.sub ('fingerHorizontalDirection *= *#(RIGHT|1)',
"""\acciaccatura misspelling, fingerHorizontalDirection -> fingeringOrientations"""))
-
+def conv (str):
+ if re.search ('\\figures', str):
+ sys.stderr.write ("Warning: attempting automatic \\figures conversion. Check results!");
+
+
+ def figures_replace (m):
+ s = m.group (1)
+ s = re.sub ('<', '@FIGOPEN@',s)
+ s = re.sub ('>', '@FIGCLOSE@',s)
+ return '\\figures { %s }' % s
+
+ str = re.sub (r'\\figures[ \t\n]*{([^}]+)}', figures_replace, str)
+ str = re.sub (r'\\<', '@STARTCRESC@', str)
+ str = re.sub (r'\\>', '@STARTDECRESC@', str)
+ str = re.sub (r'([-^_])>', r'\1@ACCENT@', str)
+ str = re.sub (r'<<', '@STARTCHORD@', str)
+ str = re.sub (r'>>', '@ENDCHORD@', str)
+ str = re.sub (r'>', '@ENDSIMUL@', str)
+ str = re.sub (r'<', '@STARTSIMUL@', str)
+ str = re.sub ('@STARTDECRESC@', '\\>', str)
+ str = re.sub ('@STARTCRESC@', '\\<', str)
+ str = re.sub ('@ACCENT@', '>', str)
+ str = re.sub ('@ENDCHORD@', '>', str)
+ str = re.sub ('@STARTCHORD@', '<', str)
+ str = re.sub ('@STARTSIMUL@', '<<', str)
+ str = re.sub ('@ENDSIMUL@', '>>', str)
+ str = re.sub ('@FIGOPEN@', '<', str)
+ str = re.sub ('@FIGCLOSE@', '>', str)
+
+ return str
+
+conversions.append (((1,9,4), conv, 'Swap < > and << >>'))
+
+
+def conv (str):
+ str = re.sub ('HaraKiriVerticalGroup', 'RemoveEmptyVerticalGroup', str)
+
+ return str
+
+conversions.append (((1,9,5), conv, 'HaraKiriVerticalGroup -> RemoveEmptyVerticalGroup'))
+
+def conv (str):
+ if re.search ("ly:get-font", str) :
+ sys.stderr.write (r"(ly:get-font foo ..) has been replaced by" + \
+ " (ly:paper-get-font (ly:grob-get-paper foo) .. ).\n" +\
+ "please update manually.")
+
+ raise FatalConversionError()
+
+ if re.search ("\\pitch *#", str) :
+ sys.stderr.write (r"\\pitch has been deprecated. " +\
+ " Use Scheme code to construct arbitrary note events.")
+
+ raise FatalConversionError()
+
+ return str
+
+
+conversions.append (((1,9,6), conv, 'ly:get-font deprecated.'))
+
+def conv (str):
+ def sub_alteration (m):
+ alt = m.group (3)
+ alt = {
+ '-1': 'FLAT',
+ '-2': 'DOUBLE-FLAT',
+ '0': 'NATURAL',
+ '1': 'SHARP',
+ '2': 'DOUBLE-SHARP',
+ }[alt]
+
+ return '(ly:make-pitch %s %s %s)' % (m.group(1), m.group (2), alt)
+
+ str =re.sub ("\\(ly:make-pitch *([0-9-]+) *([0-9-]+) *([0-9-]+) *\\)", sub_alteration, str)
+ return str
+conversions.append (((1,9,7), conv, 'use symbolic constants for alterations.'))
+
+
################################
# END OF CONVERSIONS