使用python中的mingus和两个同时的乐器编写midi文件

时间:2016-12-11 16:35:39

标签: python instruments midi

我正在尝试使用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文件只播放最后一首曲目/乐器。

我如何同时使用不同乐器演奏两首曲目?

0 个答案:

没有答案