def element_lyric(self, lyric, time_spine, events, meta_events, state): # NOTE: Lyric syllables from MusicXML -> MidiXML are pretty weak for obvious reasons syllable = lyric.findtext("./text") syllabic = lyric.findtext("./syllabic") if syllabic in ("begin", "middle"): syllable += "-" output = Element("Lyric") output.text = syllable events.append(make_event(output, time_spine, state.ticks_per_beat))
def element_midi_instrument(self, midi_inst, time_spine, events, meta_events, state): state.channel = midi_inst.findtext("./midi-channel") or state.channel name = midi_inst.findtext("./midi-name") if name != None: program_name = Element("ProgramName") program_name.text = name events.append(make_event(program_name, time_spine, state.ticks_per_beat)) bank = midi_inst.findtext("./midi-bank") if bank != None: self.make_control_change14(bank, BANK_SELECT_MSB, time_spine, state) program = midi_inst.findtext("./midi-program") if program != None: program_change = Element("ProgramChange", Channel = str(state.channel), Number = program) events.append(make_event(program_change, time_spine, state.ticks_per_beat))
def __call__(self, input, time_spine, events, meta_events, state): output = Element(self._name) output.text = input.text[:] events.append(make_event(output, time_spine, state.ticks_per_beat))
def element_creator(self, input, time_spine, events, meta_events, state): output = Element("TextEvent") output.text = input.get("type") + ": " + input.text meta_events.append(make_event(output, time_spine, state.ticks_per_beat))