python用fluidsynth合成midi
Posted
技术标签:
【中文标题】python用fluidsynth合成midi【英文标题】:python synthesize midi with fluidsynth 【发布时间】:2011-04-25 22:21:31 【问题描述】:我无法导入流体合成器。 [也许有更好的模块?]
我正在尝试从 python 或 pygame 合成 midi。我可以从 pygame 发送 midi 事件。 我正在使用 mingus,它似乎 pyfluidsynth 会很好/最简单。
我认为这意味着安装了 pyfluidsynth,但没有安装单独的流体合成器。我不知道它是否需要“fluidsynth”安装程序才能工作?
test.py:
import fluidsynth
print ":("
错误:
Traceback (most recent call last):
File "test.py", line 1, in <module>
import fluidsynth
File "C:\Users\jake\AppData\Roaming\Python\Python27\site-packages\fluidsynth.py", line 34, in <module>
raise ImportError, "Couldn't find the FluidSynth library."
ImportError: Couldn't find the FluidSynth library.
使用:python 2.7-win32
【问题讨论】:
你试过github.com/MostAwesomeDude/pyfluidsynth 吗? 【参考方案1】:python流体合成模块正在寻找FluidSynth二进制库文件(即fluidsynth.dll)。
要获得它,您可以下载、编译和安装http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.3/
或
您可能能够找到使用包含 .dll 文件的预编译副本的流体合成器(即 QSynth)的项目。
【讨论】:
【参考方案2】:是的,您还需要 FuildSynth 库(Windows 的 dll)。
使其适用于:
流体合成器 1.1.6 python26(32 位) pyFluidSynth 1.1.4 窗户我把所有东西都放在同一个目录下(fluidsynth dll、PyFluidSynth Module、python 脚本)。
并更改 pyFluidSynth 模块中的以下行(从第 30 行开始):
# A short circuited or expression to find the FluidSynth library
# (mostly needed for Windows distributions of libfluidsynth supplied with QSynth)
# and Dynamically link the FluidSynth library
lib = find_library('fluidsynth') or find_library('libfluidsynth') or find_library('libfluidsynth-1')
if lib is None:
_fl = ctypes.cdll.LoadLibrary("./libfluidsynth")
lib = "ok";
else:
_fl = CDLL(lib)
if lib is None:
raise ImportError, "Couldn't find the FluidSynth library."
# Helper function for declaring function prototypes
这个设置很好用。
【讨论】:
【参考方案3】:看看fluidsynth.py
,你的猜测可能是对的。
您应该尝试将fluidsynth.dll
放在系统库搜索路径中的某个位置(最简单的可能是与您的脚本相同的目录或fluidsynth.py
)。
我认为这个存档(通过 google 找到)包含必要的 win32 二进制文件:http://svn.drdteam.org/zdoom/fluidsynth.7z
【讨论】:
以上是关于python用fluidsynth合成midi的主要内容,如果未能解决你的问题,请参考以下文章
用于 MIDI 到乐谱(注释)和/或音频翻译的纯 python 库
如何在 Windows 10 上安装流体合成器或 pyfluidsynth? AttributeError:模块“fluidsynth”没有属性“Synth”