通过Telnet和Python使用Fluidsynth:无音效
我在一台运行Raspian系统的树莓派B上使用Fluidsynth(不是最新的版本,因为Fluidsynth在最新版本上无法运行,我用的是至少2014年4月的版本)。
我通过运行 fluidsynth -a alsa -g 1 -s -o "shell.port=9800" /path/to/FluidR3_GM.sf2
来启动Fluidsynth。
我可以通过Fluidsynth自己的命令行界面,使用像 noteon 1 54 100
这样的命令来获得预期的音频输出。我也可以通过在另一个命令行中使用telnet服务器来播放音频,方法是:
telnet localhost 9800
,然后在它打开的子命令行中输入标准的 noteon
命令。
不过,我最终的目标是想通过Python发送这些telnet命令。
我尝试了以下代码,没有返回错误:
>>> from telnet lib import Telnet
>>> fluidsynth = Telnet("localhost","9800")
>>> fluidsynth.write('noteon 1 25 127')
但是这并没有发出任何声音。
到目前为止,我遇到了瓶颈,不知道为什么Python的语句不工作,而命令行中的语句却可以。难道它们不是在做同样的事情吗?我是不是遗漏了telnet协议中的某些细节?
1 个回答
0
在你传给 write
的字符串末尾加上一个换行符:
fluidsynth.write('noteon 1 25 127\n')