]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond
authorReinhold Kainhofer <reinhold@kainhofer.com>
Mon, 11 Feb 2008 16:46:29 +0000 (17:46 +0100)
committerReinhold Kainhofer <reinhold@kainhofer.com>
Mon, 11 Feb 2008 16:46:29 +0000 (17:46 +0100)
1  2 
scripts/musicxml2ly.py

diff --combined scripts/musicxml2ly.py
index b982633348b341a7e247aed874666647e9ed5ba2,5fe8ee52c2ea2616eee12e97e030383a43cb6615..1b8c568b5a588cb0622b0f121842fd357831f32c
@@@ -190,9 -190,9 +190,9 @@@ class PartGroupInfo
      def add_end (self, g):
          self.end[getattr (g, 'number', "1")] = g
      def print_ly (self, printer):
 -        error_message ("Unprocessed PartGroupInfo %s encountered" % self)
 +        error_message (_ ("Unprocessed PartGroupInfo %s encountered") % self)
      def ly_expression (self):
 -        error_message ("Unprocessed PartGroupInfo %s encountered" % self)
 +        error_message (_ ("Unprocessed PartGroupInfo %s encountered") % self)
          return ''
  
  def staff_attributes_to_string_tunings (mxl_attr):
@@@ -606,7 -606,7 +606,7 @@@ def musicxml_key_to_lily (attributes)
          start_pitch.step = n
          start_pitch.alteration = a
      except  KeyError:
 -        error_message ('unknown mode %s' % mode)
 +        error_message (_ ("unknown mode %s, expecting 'major' or 'minor'") % mode)
  
      fifth = musicexp.Pitch()
      fifth.step = 4
@@@ -711,7 -711,6 +711,7 @@@ spanner_event_dict = 
      'glissando' : musicexp.GlissandoEvent,
      'octave-shift' : musicexp.OctaveShiftEvent,
      'pedal' : musicexp.PedalEvent,
 +    'slide' : musicexp.GlissandoEvent,
      'slur' : musicexp.SlurEvent,
      'wavy-line' : musicexp.TrillSpanEvent,
      'wedge' : musicexp.HairpinEvent
@@@ -759,7 -758,7 +759,7 @@@ def musicxml_spanner_to_lily_event (mxl
      return ev
  
  def musicxml_direction_to_indicator (direction):
 -    return { "above": 1, "upright": 1, "up":1, "below": -1, "downright": -1, "down": -1, "inverted": -1 }.get (direction, 0)
 +    return { "above": 1, "upright": 1, "up": 1, "below": -1, "downright": -1, "down": -1, "inverted": -1 }.get (direction, 0)
  
  def musicxml_fermata_to_lily_event (mxl_event):
      ev = musicexp.ArticulationEvent ()
@@@ -777,12 -776,6 +777,12 @@@ def musicxml_arpeggiate_to_lily_event (
      ev.direction = musicxml_direction_to_indicator (getattr (mxl_event, 'direction', None))
      return ev
  
 +def musicxml_nonarpeggiate_to_lily_event (mxl_event):
 +    ev = musicexp.ArpeggioEvent ()
 +    ev.non_arpeggiate = True
 +    ev.direction = musicxml_direction_to_indicator (getattr (mxl_event, 'direction', None))
 +    return ev
 +
  def musicxml_tremolo_to_lily_event (mxl_event):
      ev = musicexp.TremoloEvent ()
      txt = mxl_event.get_text ()
@@@ -1049,6 -1042,8 +1049,8 @@@ def musicxml_accordion_to_markup (mxl_e
            """
      middle = mxl_event.get_maybe_exist_named_child ('accordion-middle')
      if middle:
+         # By default, use one dot (when no or invalid content is given). The 
+         # MusicXML spec is quiet about this case...
          txt = 1
          try:
            txt = string.atoi (middle.get_text ())
  
      command += "\musicglyph #\"accordion.accDiscant\""
      command = "\\markup { \\normalsize %s }" % command
+     # Define the newly built command \accReg[H][MMM][L]
      additional_definitions[commandname] = "%s = %s" % (commandname, command)
-     print additional_definitions
      needed_additional_definitions.append (commandname)
      return "\\%s" % commandname
  
@@@ -1341,7 -1336,7 +1343,7 @@@ class LilyPondVoiceBuilder
          diff = moment - current_end
          
          if diff < Rational (0):
 -            error_message ('Negative skip %s' % diff)
 +            error_message (_ ('Negative skip %s') % diff)
              diff = Rational (0)
  
          if diff > Rational (0) and not (self.ignore_skips and moment == 0):
@@@ -1608,14 -1603,7 +1610,14 @@@ def musicxml_voice_to_lily_voice (voice
                  if ev:
                      ev_chord.append (ev)
  
 +            arpeggiate = notations.get_named_children ('non-arpeggiate')
 +            for a in arpeggiate:
 +                ev = musicxml_nonarpeggiate_to_lily_event (a)
 +                if ev:
 +                    ev_chord.append (ev)
 +
              glissandos = notations.get_named_children ('glissando')
 +            glissandos += notations.get_named_children ('slide')
              for a in glissandos:
                  ev = musicxml_spanner_to_lily_event (a)
                  if ev:
@@@ -1797,30 -1785,30 +1799,30 @@@ def get_all_voices (parts)
  
  
  def option_parser ():
-     p = ly.get_option_parser(usage=_ ("musicxml2ly [options] FILE.xml"),
-                              version=('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
+     p = ly.get_option_parser (usage = _ ("musicxml2ly [options] FILE.xml"),
+                              version = ('''%prog (LilyPond) @TOPLEVEL_VERSION@\n\n'''
                                        +
  _ ("""This program is free software.  It is covered by the GNU General Public
  License and you are welcome to change it and/or distribute copies of it
  under certain conditions.  Invoke as `%s --warranty' for more
  information.""") % 'lilypond'
  + """
- Copyright (c) 2005--2007 by
+ Copyright (c) 2005--2008 by
      Han-Wen Nienhuys <hanwen@xs4all.nl>,
      Jan Nieuwenhuizen <janneke@gnu.org> and
      Reinhold Kainhofer <reinhold@kainhofer.com>
  """),
-                              description=_ ("Convert %s to LilyPond input.") % 'MusicXML' + "\n")
+                              description = _ ("Convert %s to LilyPond input.") % 'MusicXML' + "\n")
      p.add_option ('-v', '--verbose',
-                   action="store_true",
-                   dest='verbose',
-                   help=_ ("be verbose"))
+                   action = "store_true",
+                   dest = 'verbose',
+                   help = _ ("be verbose"))
  
      p.add_option ('', '--lxml',
-                   action="store_true",
-                   default=False,
-                   dest="use_lxml",
-                   help=_ ("Use lxml.etree; uses less memory and cpu time."))
+                   action = "store_true",
+                   default = False,
+                   dest = "use_lxml",
+                   help = _ ("Use lxml.etree; uses less memory and cpu time."))
  
      p.add_option ('-z', '--compressed',
                    action = "store_true",
  
      p.add_option ('-r', '--relative',
                    action = "store_true",
+                   default = True,
                    dest = "relative",
-                   help = _ ("Convert pitches in relative mode."))
+                   help = _ ("Convert pitches in relative mode. (Default)"))
+     p.add_option ('-a', '--absolute',
+                   action = "store_false",
+                   dest = "relative",
+                   help = _ ("Convert pitches in absolute mode."))
  
      p.add_option ('-l', '--language',
+                   metavar = _ ("LANG"),
                    action = "store",
-                   help = _ ("Use a different language file, e.g. 'deutsch' for deutsch.ly."))
+                   help = _ ("Use a different language file 'LANG.ly' and corresponding pitch names, e.g. 'deutsch' for deutsch.ly."))
  
-     p.add_option ('--no-articulation-directions', '--nd',
+     p.add_option ('--nd', '--no-articulation-directions', 
                    action = "store_false",
                    default = True,
                    dest = "convert_directions",
-                   help = _ ("Do not convert directions (^, _ or -) for articulations."))
+                   help = _ ("Do not convert directions (^, _ or -) for articulations, dynamics, etc."))
  
      p.add_option ('-o', '--output',
-                   metavar=_ ("FILE"),
-                   action="store",
-                   default=None,
-                   type='string',
-                   dest='output_name',
-                   help=_ ("set output filename to FILE"))
-     p.add_option_group ( _('Bugs'),
-                         description=(_ ("Report bugs via")
+                   metavar = _ ("FILE"),
+                   action = "store",
+                   default = None,
+                   type = 'string',
+                   dest = 'output_name',
+                   help = _ ("set output filename to FILE"))
+     p.add_option_group ( _ ('Bugs'),
+                         description = ( _ ("Report bugs via")
                                       + ''' http://post.gmane.org/post.php'''
                                       '''?group=gmane.comp.gnu.lilypond.bugs\n'''))
      return p
@@@ -1907,7 -1902,7 +1916,7 @@@ def update_score_setup (score_structure
          part_id = part_definition.id
          nv_dict = voices.get (part_id)
          if not nv_dict:
 -            error_message ('unknown part in part-list: %s' % part_id)
 +            error_message (_ ('unknown part in part-list: %s') % part_id)
              continue
  
          staves = reduce (lambda x,y: x+ y,