]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/convert-ly.py
* mf/parmesan-clefs.mf: use # quantities for char_box
[lilypond.git] / scripts / convert-ly.py
index d13fad6140d178c01adbe6a08df4ec2e15ac1e2f..db608b90f4825efc992e8b5b01dbdc0ce36bb77a 100644 (file)
@@ -1285,29 +1285,37 @@ if 1:
                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 (' -\!')
+                         dyns.append (' \!')
                          return ' ' + m.group(2)
 
                  str = re.sub (r'(\\!)\s*([a-z]+)', sub_dyn_end, str)
                  def sub_slurs(m):
                          if '-)' not in slur_strs:
-                                 slur_strs.append ( '-)')
+                                 slur_strs.append ( ')')
                          return m.group(1)
                  def sub_p_slurs(m):
                          if '-\)' not in slur_strs:
-                                 slur_strs.append ( '-\)')
+                                 slur_strs.append ( '\)')
                          return m.group(1)
                  str = re.sub (r"\)[ ]*([a-z]+)", sub_slurs, str)
                  str = re.sub (r"\\\)[ ]*([a-z]+)", sub_p_slurs, str)
                  def sub_begin_slurs(m):
                          if '-(' not in slur_strs:
-                                 slur_strs.append ( '-(')
+                                 slur_strs.append ( '(')
                          return m.group(1)
                  str = re.sub (r"([a-z]+[,'!?0-9 ]*)\(", sub_begin_slurs, str)
                  def sub_begin_p_slurs(m):
                          if '-\(' not in slur_strs:
-                                 slur_strs.append ( '-\(')
+                                 slur_strs.append ( '\(')
                          return m.group(1)
 
                  str = re.sub (r"([a-z]+[,'!?0-9 ]*)\\\(", sub_begin_p_slurs, str)
@@ -1315,11 +1323,11 @@ if 1:
                  def sub_dyns (m):
                          s = m.group(0)
                          if s == '@STARTCRESC@':
-                                 slur_strs.append ("-\\<")
+                                 slur_strs.append ("\\<")
                          elif s == '@STARTDECRESC@':
-                                 slur_strs.append ("-\\>")
+                                 slur_strs.append ("\\>")
                          elif s == r'-?\\!':
-                                 slur_strs.append ('-\\!')
+                                 slur_strs.append ('\\!')
                          return ''
 
                  str = re.sub (r'@STARTCRESC@', sub_dyns, str)
@@ -1336,7 +1344,7 @@ if 1:
                  str = re.sub (r"([_^-][>_.+|^-])", sub_articulations, str)
 
                  def sub_pslurs(m):
-                         slur_strs.append ( ' -\\)')
+                         slur_strs.append ( ' \\)')
                          return m.group(1)
                  str = re.sub (r"\\\)[ ]*([a-z]+)", sub_pslurs, str)
 
@@ -1354,6 +1362,7 @@ if 1:
                simstart = "<" 
                chordstart = '<<'
                chordend = '>>'
+               marker_str = '%% new-chords-done %%'
 
                if re.search (marker_str,str):
                        return str
@@ -1362,11 +1371,11 @@ if 1:
                str= re.sub (r'([_^-])>', r'\1@ACCENT@', str)
                str = re.sub ('<([^<>{}]+)>', sub_chord, str)
 
-               str = re.sub (r'\[ *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]+)',
-                             r'\1-[',
+               str = re.sub (r'\[ *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]*)',
+                             r'\1[',
                              str)
-               str = re.sub (r'\\! *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]+)',
-                             r'\1-\\!',
+               str = re.sub (r'\\! *(@STARTCHORD@[^@]+@ENDCHORD@[0-9.]*)',
+                             r'\1\\!',
                              str)
                str = re.sub ('<([^?])', r'%s\1' % simstart, str)
                str = re.sub ('>([^?])', r'%s\1' % simend,  str)
@@ -1380,11 +1389,11 @@ if 1:
 
        def articulation_substitute (str):
                str = re.sub (r"""([^-])\[ *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
-                             r" \1 \2-[", str)
+                             r" \1 \2[", str)
                str = re.sub (r"""([^-])\) *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
-                             r"\1 \2-)", str)
+                             r"\1 \2)", str)
                str = re.sub (r"""([^-])\\! *([a-z]+[,']*[!?]?[0-9:]*\.*)""",
-                             r"\1 \2-\\!", str)
+                             r"\1 \2\\!", str)
                return str
        
        def conv_relative(str):
@@ -1395,15 +1404,123 @@ if 1:
        
        def conv (str):
                str =  conv_relative (str)
-               if re.search (marker_str, str) == None :
-                       str = sub_chords (str)
+               str = sub_chords (str)
 
                str = articulation_substitute (str)
                
                return str
        
        conversions.append (((1,9,0), conv, """New relative mode,
-Postfix articulations, new chord syntax."))
+Postfix articulations, new chord syntax."""))
+
+if 1:
+       def conv (str):
+               if re.search ("font-style",str):
+                       sys.stderr.write ("font-style is deprecated. Please remove.")
+                       raise FatalConversionError()
+                       
+               str = re.sub (r'-\\markup', r'@\\markup', str)
+               str = re.sub (r'-\\', r'\\', str)
+               str = re.sub (r'-\)', ')', str)
+               str = re.sub (r'-\(', '(', str)
+               str = re.sub ('-\[', '[', str)
+               str = re.sub ('-\]', ']', str)
+               str = re.sub ('-~', '~', str)
+               str = re.sub (r'@\\markup', r'-\\markup', str)
+               return str
+
+       conversions.append (((1,9,1), conv, """Remove - before articulation"""))
+if 1:
+       def conv (str):
+               str = re.sub ('ly:set-context-property',
+                             'ly:set-context-property!', str)
+               str = re.sub ('\\\\newcontext', '\\\\new', str)
+               str = re.sub ('\\\\grace[\t\n ]*([^{ ]+)',
+                             r'\\grace { \1 }', str) 
+               str = re.sub ("\\\\grace[\t\n ]*{([^}]+)}",
+                             r"""\\grace {
+  \\property Voice.Stem \\override #'stroke-style = #"grace"
+  \1
+  \\property Voice.Stem \\revert #'stroke-style }
+""", str)
+               
+               return str
+       
+       conversions.append (((1,9,2), conv, """\newcontext -> \new"""))
+
+if 1:
+       def conv (str):
+               str = re.sub ('accacciatura',
+                             'acciaccatura', str)
+
+               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)',
+                             "fingeringOrientations = #'(up down right)", str)
+
+               return str
+       
+       conversions.append (((1,9,3), conv,
+                            """\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()
+       return str
+               
+
+conversions.append (((1,9,6), conv, 'ly:get-font deprecated.'))
 
 ################################
 #      END OF CONVERSIONS      
@@ -1555,4 +1672,5 @@ for f in files:
                else:
                        sys.stderr.write ("%s: skipping: `%s' " % (program_name,  f))
                pass
+
 sys.stderr.write ('\n')