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')