使用Telnet和Python的FluidSync:没有声音
我一直在与FluidSync合作开发运行Raspian的Raspberry Pi B(不是绝对最新的图像,因为FluidSync不会在最新版本上运行,但至少从2014年4月开始) 我通过运行使用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-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的预期工作。