From: Reinhold Kainhofer Date: Sat, 1 Nov 2008 21:26:46 +0000 (+0100) Subject: MusicXML: Print out a \score around the contents X-Git-Tag: release/2.11.64-1~100^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d0f868bc919d342009e0f67dc4fb78ce0aed6add;p=lilypond.git MusicXML: Print out a \score around the contents Implemented a dedicated Score class in musicexp.py for this... It now prints \score { [Contents] \layout {} % To create MIDI output, uncomment the following line: % \midi {} } --- diff --git a/python/musicexp.py b/python/musicexp.py index 01cd446f48..1b1f3d9183 100644 --- a/python/musicexp.py +++ b/python/musicexp.py @@ -1617,6 +1617,34 @@ class DrumStaff (Staff): class RhythmicStaff (Staff): def __init__ (self, command = "RhythmicStaff"): Staff.__init__ (self, command) + +class Score (): + def __init__ (self): + self.contents = None + self.create_midi = False + + def set_contents (self, contents): + self.contents = contents + + def set_part_information (self, part_id, staves_info): + if self.contents: + self.contents.set_part_information (part_id, staves_info) + + def print_ly (self, printer): + printer.dump ("\\score {"); + printer.newline () + if self.contents: + self.contents.print_ly (printer); + printer.dump ("\\layout {}"); + printer.newline () + if not self.create_midi: + printer.dump ("% To create MIDI output, uncomment the following line:"); + printer.newline (); + printer.dump ("% "); + printer.dump ("\\midi {}"); + printer.newline () + printer.dump ("}"); + printer.newline () def test_pitch (): diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py index 6cdd72e430..113552939c 100644 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -308,7 +308,10 @@ def staff_attributes_to_lily_staff (mxl_attr): def extract_score_structure (part_list, staffinfo): + score = musicexp.Score () structure = musicexp.StaffGroup (None) + score.set_contents (structure) + if not part_list: return structure @@ -436,7 +439,7 @@ def extract_score_structure (part_list, staffinfo): return staves[0] for i in staves: structure.append_staff (i) - return structure + return score def musicxml_duration_to_lily (mxl_note): @@ -2423,14 +2426,14 @@ def convert (filename, options): parts = tree.get_typed_children (musicxml.Part) (voices, staff_info) = get_all_voices (parts) - score_structure = None + score = None mxl_pl = tree.get_maybe_exist_typed_child (musicxml.Part_list) if mxl_pl: - score_structure = extract_score_structure (mxl_pl, staff_info) + score = extract_score_structure (mxl_pl, staff_info) part_list = mxl_pl.get_named_children ("score-part") # score information is contained in the , or tags - update_score_setup (score_structure, part_list, voices) + update_score_setup (score, part_list, voices) # After the conversion, update the list of settings for the \layout block update_layout_information () @@ -2467,7 +2470,7 @@ def convert (filename, options): printer.newline () printer.dump ("% The score definition") printer.newline () - score_structure.print_ly (printer) + score.print_ly (printer) printer.newline () return voices