Python синтезирует миди с Fluidsynth - PullRequest
6 голосов
/ 26 апреля 2011

Я не могу импортировать Fluidsynth.[Может быть, есть лучший модуль?]

Я пытаюсь синтезировать миди из python или pygame.Я могу отправить миди-события из Pygame.Я использую mingus, и кажется, что pyfluidsynth будет хорошим / простым.

Я думаю, это означает, что pyfluidsynth установлен, но отдельного fluidsynth нет.Я не знаю, нужен ли для работы установщик '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

Ответы [ 3 ]

3 голосов
/ 26 апреля 2011

Модуль python fluidsynth ищет файл двоичной библиотеки FluidSynth (например, fluidsynth.dll).

Чтобы получить его, вы можете скачать, скомпилировать и установить http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.3/

ИЛИ

вы можете найти проекты, использующие fluidsynth (т.е. QSynth), которые включают в себя предварительно скомпилированные копии файла .dll.

3 голосов
/ 22 мая 2013

Да, вам также нужна библиотека FuildSynth (dll для Windows).

Чтобы она работала с:

  • Fluid Syntsynth 1.1.6
  • python26 (32bits)
  • pyFluidSynth 1.1.4
  • Windows

Я поместил все в один каталог (fluidsynth dll, модуль PyFluidSynth, скрипт на 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

С этой настройкой работает нормально.

0 голосов
/ 26 апреля 2011

Глядя на fluidsynth.py, ваше предположение, вероятно, верно.Вы должны попытаться поместить fluidsynth.dll где-нибудь в пути поиска библиотеки вашей системы (возможно, самым простым будет тот же каталог, что и ваш скрипт или fluidsynth.py).

Я думаю, что этот архив (найденный через google) содержит необходимыедвоичный файл win32: http://svn.drdteam.org/zdoom/fluidsynth.7z

...