我正在尝试使用python中的mingus库编写包含多个乐器的合成。我首先使用以下代码测试mingus命令:
from mingus.containers import Note
from mingus.containers import NoteContainer
from mingus.containers import Bar
from mingus.containers import Track
from mingus.containers import Composition
from mingus.containers.instrument import MidiInstrument
from mingus.midi import midi_file_out
a=Bar()
a.place_notes("E-4",4)
a.place_notes("G#-3",4)
a.place_notes("A-4",4)
a.place_notes("B-2",4)
i1=MidiInstrument()
i1.instrument_nr=9
i2=MidiInstrument()
i2.instrument_nr=71
t1=Track(i1)
t1.add_bar(a)
t2=Track(i2)
t2.add_bar(a)
midi_file_out.write_Track("t1.mid",t1)
midi_file_out.write_Track("t2.mid",t2)
这会创建2个midi文件,每个文件播放不同的乐器。然后我尝试使用:
c=Composition()
c.add_track(t1)
c.add_track(t2)
midi_file_out.write_Composition("c.mid",c)
当我打印c时,我得到这个列表:
[ ['C-0' - 'B-8'], [[[0.0, 4, ['E-4']], [0.25, 4, ['G#-3']], [0.5, 4, ['A-4']], [0.75, 4, ['B-2']]]]][ ['C-0' - 'B-8'], [[[0.0, 4, ['E-4']], [0.25, 4, ['G#-3']], [0.5, 4, ['A-4']], [0.75, 4, ['B-2']]]]]
但是midi文件只播放最后一首曲目/乐器。
我如何同时使用不同乐器演奏两首曲目?