使用Telnet和Python的FluidSync:没有声音

使用Telnet和Python的FluidSync:没有声音,python,raspberry-pi,telnet,telnetlib,fluidsynth,Python,Raspberry Pi,Telnet,Telnetlib,Fluidsynth,我一直在与FluidSync合作开发运行Raspian的Raspberry Pi B(不是绝对最新的图像,因为FluidSync不会在最新版本上运行,但至少从2014年4月开始) 我通过运行fluidSync-a alsa-g 1-s-o“shell.port=9800”/path/to/FluidR3_GM.sf2来启动fluidSync 我可以使用Fluidsynth自己的shell,通过noteon 1 54 100等命令获得预期的音频输出,还可以使用telnet服务器从单独的命令行通过以

我一直在与FluidSync合作开发运行Raspian的Raspberry Pi B(不是绝对最新的图像,因为FluidSync不会在最新版本上运行,但至少从2014年4月开始)

我通过运行
fluidSync-a alsa-g 1-s-o“shell.port=9800”/path/to/FluidR3_GM.sf2来启动fluidSync

我可以使用Fluidsynth自己的shell,通过
noteon 1 54 100
等命令获得预期的音频输出,还可以使用telnet服务器从单独的命令行通过以下方式获得音频播放:

telnet localhost 9800
,然后在生成的子shell中键入标准的
noteon
命令

不过,我的最终目标是从python发送这些telnet命令

我尝试了以下代码,该代码不返回任何错误:

>>> from telnet lib import Telnet
>>> fluidsynth = Telnet("localhost","9800")
>>> fluidsynth.write('noteon 1 25 127')
但这无法产生任何声音


在这一点上,我碰到了一堵墙,我不知道为什么python语句不能工作,但是命令shell中的语句会工作。他们不会做完全相同的事情吗?我是否缺少telnet协议的一些微妙之处?

在传递给
write
的字符串末尾添加一个换行符:

fluidsynth.write('noteon 1 25 127\n')

令人惊叹的现在,一切都完全按照Python的预期工作。