如何通过Python和Mingus设置多个乐器?

时间:2014-02-12 19:05:45

标签: python audio mpmusicplayercontroller fluidsynth

在下面的示例中,A和B具有setados乐器,但A和B都只使用最后一个对象进行设置,就像重写一样。

from mingus.midi import fluidsynth as a
from mingus.midi import fluidsynth as b
from mingus.containers import Note

a.init('/usr/share/sounds/sf2/FluidR3_GM.sf2',"alsa")
a.set_instrument(0, 34, 0)
b.set_instrument(0, 35, 0)

a.play_Note(26, 0, 127)
a.sleep(0.5)
b.play_Note(26, 0, 127)
b.sleep(0.5)

如何在同一个脚本中以其他方式将A和B工具设置为其他乐器?

1 个答案:

答案 0 :(得分:1)

首先,如果你写:

from mingus.midi import fluidsynth as a
from mingus.midi import fluidsynth as b

然后ab作为相同的对象。因此,撰写b.set_instrument(0, 35, 0)a.set_instrument(0, 35, 0)相同。据我了解fluidsynth,您应该为每种乐器使用两种不同的通道:

a.set_instrument(0, 34)
a.set_instrument(1, 35)

a.play_Note(26, 0, 127)
a.sleep(0.5)
a.play_Note(26, 1, 127)
a.sleep(0.5)