]> git.donarmstrong.com Git - lilypond.git/blobdiff - python/musicxml.py
resolve merge
[lilypond.git] / python / musicxml.py
index 431bcd695d69949e500d533c1fb2b23d5e4ebb50..be3c61ca8f99a9bc4cf0ba8d7d0c992826359eba 100644 (file)
@@ -35,6 +35,8 @@ def musicxml_duration_to_log (dur):
              'longa': -2,
              'long': -2}.get (dur, 0)
 
+
+
 def interpret_alter_element (alter_elm):
     alter = 0
     if alter_elm:
@@ -253,9 +255,8 @@ class Pitch (Music_xml_node):
        return step
     def get_octave (self):
        ch = self.get_unique_typed_child (get_class (u'octave'))
-
-       step = ch.get_text ().strip ()
-       return int (step)
+       octave = ch.get_text ().strip ()
+       return int (octave)
 
     def get_alteration (self):
        ch = self.get_maybe_exist_typed_child (get_class (u'alter'))
@@ -417,7 +418,7 @@ class Attributes (Measure_element):
             current_step = 0
             for i in key.get_all_children ():
                 if isinstance (i, KeyStep):
-                    current_step = int (i.get_text ())
+                    current_step = i.get_text ().strip ()
                 elif isinstance (i, KeyAlter):
                     alterations.append ([current_step, interpret_alter_element (i)])
                 elif isinstance (i, KeyOctave):
@@ -828,7 +829,7 @@ class Part (Music_xml_node):
            if not (isinstance (n, Note) or isinstance (n, Attributes) or
                     isinstance (n, Direction) or isinstance (n, Partial) or
                     isinstance (n, Barline) or isinstance (n, Harmony) or
-                    isinstance (n, FiguredBass) ):
+                    isinstance (n, FiguredBass) or isinstance (n, Print)):
                continue
 
            if isinstance (n, Attributes) and not start_attr:
@@ -844,7 +845,7 @@ class Part (Music_xml_node):
                             voices[v].add_element (staff_attributes)
                 continue
 
-            if isinstance (n, Partial) or isinstance (n, Barline):
+            if isinstance (n, Partial) or isinstance (n, Barline) or isinstance (n, Print):
                 for v in voices.keys ():
                     voices[v].add_element (n)
                 continue
@@ -997,7 +998,10 @@ class Beam (Music_xml_spanner):
     def get_type (self):
        return self.get_text ()
     def is_primary (self):
-        return self.number == "1"
+        if hasattr (self, 'number'):
+            return self.number == "1"
+        else:
+            return True
 
 class Wavy_line (Music_xml_spanner):
     pass
@@ -1036,15 +1040,14 @@ class Rest (Music_xml_node):
     def get_step (self):
         ch = self.get_maybe_exist_typed_child (get_class (u'display-step'))
         if ch:
-            step = ch.get_text ().strip ()
-            return step
+            return ch.get_text ().strip ()
         else:
             return None
     def get_octave (self):
         ch = self.get_maybe_exist_typed_child (get_class (u'display-octave'))
         if ch:
-            step = ch.get_text ().strip ()
-            return int (step)
+            oct = ch.get_text ().strip ()
+            return int (oct)
         else:
             return None
 
@@ -1147,6 +1150,9 @@ class BeatUnitDot (Music_xml_node):
 class PerMinute (Music_xml_node):
     pass
 
+class Print (Music_xml_node):
+    pass
+
 
 
 ## need this, not all classes are instantiated
@@ -1197,6 +1203,7 @@ class_dict = {
         'pedal': Pedal,
         'per-minute': PerMinute,
        'pitch': Pitch,
+        'print': Print,
        'rest': Rest,
         'root': Root,
         'score-part': Score_part,