开发者

python synthesize midi with fluidsynth

I can't import fluidsynth. [Maybe there's an better module?]

I'm trying to synthesize midi from python or pygame. I can send midi events from pygame. I'm using mingus, and it seemed pyfluidsynth would be good / easiest.

I think this means pyfluidsynth is installed, but a seperate fluidsynth was not. I don't know if it requires a 'fluidsynth' installer to work?

test.py:

import fluidsynth
print ":("

error:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import fluidsynth
  File "C:\Use开发者_JAVA技巧rs\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.

using: python 2.7-win32


The python fluidsynth module is looking for the FluidSynth binary library file (ie fluidsynth.dll).

To get this you can download, compile and install http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.3/

OR

you may be able to find projects using fluidsynth (ie QSynth) which include precompiled copies of the .dll file.


Yes you need the FuildSynth lib also (dll for windows).

To make it works with:

  • fluid synthsynth 1.1.6
  • python26 (32bits)
  • pyFluidSynth 1.1.4
  • Windows

I've put everythings in the same directory (fluidsynth dll, PyFluidSynth Module, python script).

and changes the following lines in the pyFluidSynth modules (from line 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

It works fine with this setup.


Looking at fluidsynth.py, your guess is probably right. You should try putting fluidsynth.dll somewhere in your system's library search path (the easiest would probably be the same directory as your script or fluidsynth.py).

I think this archive (found via google) contains the necessary win32 binary: http://svn.drdteam.org/zdoom/fluidsynth.7z

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜