From 503a553ab5a1ace4a4f03a321d2d353f253bf5f4 Mon Sep 17 00:00:00 2001 From: Vincent Le Ligeour Date: Wed, 7 Dec 2016 13:10:32 +0000 Subject: [PATCH] XML:Fix reg tests that have both lyrics and chords (for example 61e) As commented in the patch I did not find any documentation if a chord element can contain multiple lyrics, so I just assumed that the first note of the chord contained the Lyrics (consistant with Finale and Muscore exports). --- scripts/musicxml2ly.py | 8 ++++++++ 1 file changed, 8 insertions(+) mode change 100644 => 100755 scripts/musicxml2ly.py diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py old mode 100644 new mode 100755 index 766214bd76..4d6b149ef1 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -2127,6 +2127,9 @@ def extract_lyrics(voice, lyric_key, lyrics_dict): def is_rest(elem): return elem.get_typed_children(musicxml.Rest) + def is_chord(elem): + return elem.get_typed_children(musicxml.Chord) + def is_note_and_not_rest(elem): return is_note(elem) and not is_rest(elem) @@ -2153,6 +2156,11 @@ def extract_lyrics(voice, lyric_key, lyrics_dict): not note_has_lyric_belonging_to_lyric_part: result.append('\skip1 ') # Note does not have any lyric attached to it. + elif is_chord(elem): + # note without lyrics part of a chord. MusicXML format is + # unclear if a chord element could contain a lyric, lets + # asume that we do not want to put a skip here. + continue elif is_note_and_not_rest(elem): result.append('\skip1 ') -- 2.39.2