X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=python%2Fmusicxml.py;fp=python%2Fmusicxml.py;h=be3c61ca8f99a9bc4cf0ba8d7d0c992826359eba;hb=941dff9d2a67080e0dd8474f1e70f0c72ace6424;hp=431bcd695d69949e500d533c1fb2b23d5e4ebb50;hpb=5a22d6233a39d3164e1ca043244794c268be4ad0;p=lilypond.git diff --git a/python/musicxml.py b/python/musicxml.py index 431bcd695d..be3c61ca8f 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -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,