Beispiel #1
0
 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))
Beispiel #2
0
 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))
Beispiel #3
0
 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))
Beispiel #4
0
 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))