我想要一个乐器库的python实现(例如,一个钢琴对象),我可以使用它来将音符列表和持续时间转换为声音。例如,像:
import Piano
pn = Piano()
pn.play([note, note, ..., note], duration)
python 2.7是否存在类似的内容?如果没有,我想实施它。我目前有一些使用audiere的东西,但它只是正弦波,所以听起来很可怕。有没有办法挂进midi钢琴或类似的东西 - 我正在使用Windows 7?是否有任何我可能不期望的实施步骤?
答案 0 :(得分:17)
我的一个学生刚刚开始使用mingus这样做,所以这里有关于如何开始使用linux(ubuntu)的快速指南:
如果您还没有,请安装fluidsynth和mingus:
$
sudo apt-get install fluidsynth
$
sudo easy_install mingus
现在你应该能够打开python并输入:
>>> from mingus.midi import fluidsynth
>>> fluidsynth.init('/usr/share/sounds/sf2/FluidR3_GM.sf2',"alsa")
这会从mingus导入必要的东西并初始化fluidynth以通过alsa(而不是默认的jack)播放。然后:
>>> fluidsynth.play_Note(64,0,100)
...你应该听到钢琴上弹奏的音符(参数是:音符编号,频道编号和速度)。
欲了解更多信息,请访问:
答案 1 :(得分:10)
@Marcelos的一个子集回答:http://code.google.com/p/mingus/
mingus是程序员,音乐家,作曲家和研究人员用来制作和研究音乐的Python软件包。 mingus的核心是音乐理论,其中包括间隔,和弦,音阶和进步等主题。
MIDI包可以保存和加载MIDI文件,并且 - 但并非最不重要 - 为所有容器和FluidSynth音序器子类提供通用音序器。 这使您可以直接从Python中播放所有数据结构。大多数icky时序和MIDI代码已经被抽象出来,留下了一个干净,相对简单的API。