python - 在 Python 中合成音符(带有钢琴声)

标签 python audio midi

我想要一个乐器库(例如,钢琴对象)的 Python 实现,我可以使用它来将音符列表和持续时间转换为声音。例如,像这样的东西:

import Piano

pn = Piano()
pn.play([note, note, ..., note], duration)

Python 2.7 是否存在类似的东西?如果没有,我想实现它。我目前有一些使用 audiere 的东西,但它只是正弦波,所以听起来很糟糕。有什么方法可以连接到 midi 钢琴或类似的东西——我使用的是 Windows 7?是否有任何我可能意想不到的实现步骤?

最佳答案

我的一个学生刚刚开始使用 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 导入必要的东西并初始化 fluidsynth 以通过 alsa(不是默认的 jack)播放。然后:

>>> fluidsynth.play_Note(64,0,100)

...您应该会听到钢琴上弹奏的音符(参数为:音符编号、 channel 编号和力度)。

有关更多信息,请访问此处:

https://code.google.com/p/mingus/wiki/tutorialFluidsynth

关于python - 在 Python 中合成音符(带有钢琴声),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487180/

相关文章:

c# - 如何将计算机音频传递给程序以进行可视化?

ios - 在钢琴应用程序中演奏声音的最佳方式是什么?

支持多流的音频文件格式

swift - 从 C 样式指针访问 self

python - 使用正则表达式查找格式为 '[number]' 的字符串

javascript - 将值从 jquery slider 传递到 Django views.py

ios - 在 IOS 上读取 Midi 文件

linux - 如何在 Linux 中播放 MIDI 输入

python - Arcpy 脚本循环 - 如何循环遍历文件夹中的表并对每个表执行 arcpy join 函数?

python - 在 Python 中,如何自然地对字母数字字符串列表进行排序,使字母字符排在数字字符之前?