我一直在与Fluidsynth合作开发运行Raspian的Raspberry Pi B(不是绝对最新的版本,因为Fluidsynth不会在最新版本上运行,但至少从2014年4月开始)。
我通过运行fluidsynth -a alsa -g 1 -s -o "shell.port=9800" /path/to/FluidR3_GM.sf2启动Fluidsynth
我可以使用Fluidsynth自己的shell和noteon 1 54 100等命令获得预期的音频输出,还可以使用telnet服务器从单独的命令行获得要播放的音频:
telnet localhost 9800,然后在它产生的子subshell中键入标准的noteon命令。
不过,我的最终目标是从python发送这些telnet命令。
我尝试了以下代码,它不返回任何错误:
>>> from telnet lib import Telnet
>>> fluidsynth = Telnet("localhost","9800")
>>> fluidsynth.write('noteon 1 25 127')但这并不能产生任何声音。
在这一点上,我遇到了困难,我不知道为什么python语句不能工作,但命令shell中的语句可以工作。他们不是也在做同样的事情吗?我是否遗漏了telnet协议的一些微妙之处?
发布于 2014-07-27 05:40:42
在传递给write的字符串末尾添加换行符
fluidsynth.write('noteon 1 25 127\n')https://stackoverflow.com/questions/24975584
复制相似问题