]> git.donarmstrong.com Git - lilypond.git/commitdiff
Reimplement issue 4781 for musicxml2ly more literally. Reimplementation
authorJohn Gourlay <john@weathervanefarm.net>
Thu, 23 Jun 2016 19:49:25 +0000 (15:49 -0400)
committerJohn Gourlay <john@weathervanefarm.net>
Thu, 7 Jul 2016 17:31:50 +0000 (13:31 -0400)
was necessary as part of the implementation of issue 4751, but some of
the code changes for 4781 were omitted. This reproduces all the 4781 changes.

python/musicxml.py

index f0b82f1333c7613bcd80f5c418c8f99afb96f35e..ae5ca80a59647dca423d6b374bf6b595b53ee315 100644 (file)
@@ -145,11 +145,11 @@ class Music_xml_spanner(Music_xml_node):
 class Measure_element(Music_xml_node):
 
     def get_voice_id(self):
-        voice_id = self.get_maybe_exist_named_child('voice')
-        if voice_id:
-            return voice_id.get_text()
+        voice = self.get_maybe_exist_named_child('voice')
+        if voice:
+            return voice.get_text()
         else:
-            return None
+            return self.voice_id
 
     def is_first(self):
         # Look at all measure elements(previously we had self.__class__, which
@@ -1558,15 +1558,10 @@ class Part(Music_xml_node):
                 continue
 
             if isinstance(n, Direction):
-                staff_id = n.get_maybe_exist_named_child(u'staff')
-                if staff_id:
-                    staff_id = staff_id.get_text()
-                if staff_id:
-                    dir_voices = staff_to_voice_dict.get(staff_id, voices.keys())
+                if (n.voice_id):
+                    voices[n.voice_id].add_element (n)
                 else:
-                    dir_voices = voices.keys()
-                for v in dir_voices:
-                    voices[v].add_element(n)
+                    assign_to_next_note.append (n)
                 continue
 
             if isinstance(n, Harmony) or isinstance(n, FiguredBass):
@@ -1635,7 +1630,7 @@ class Dashes(Music_xml_spanner):
 class DirType(Music_xml_node):
     pass
 
-class Direction(Music_xml_node):
+class Direction(Measure_element):
     pass
 
 class Dot(Music_xml_node):