Fluidsynth с Telnet и Python: нет звука

Я работал с Fluidsynth на Raspberry Pi B под управлением Raspian (не самое последнее изображение, потому что Fluidsynth не будет работать на последней версии, но как минимум с апреля 2014 года).

Я запускаю Fluidsynth fluidsynth -a alsa -g 1 -s -o "shell.port=9800" /path/to/FluidR3_GM.sf2

Я могу получить ожидаемый аудиовыход с помощью собственной оболочки Fluidsynth с такими командами, как noteon 1 54 100, и я также могу получить звук для воспроизведения с помощью сервера telnet из отдельной командной строки, используя:

telnet localhost 9800 а затем набрав стандартный noteon Команды в подоболочку это порождает.

Однако моя конечная цель - отправить эти команды telnet из python.

Я пробовал следующий код, который не возвращает ошибок:

>>> from telnet lib import Telnet
>>> fluidsynth = Telnet("localhost","9800")
>>> fluidsynth.write('noteon 1 25 127')

Но это не дает никакого звука.

В этот момент я столкнулся с проблемой, и я не знаю, почему операторы python не будут работать, а операторы в командной оболочке будут работать. Разве они не будут делать то же самое? Мне не хватает тонкости протокола telnet?

1 ответ

Добавьте символ новой строки в конец строки, которую вы передаете write:

fluidsynth.write('noteon 1 25 127\n')
Другие вопросы по тегам