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

时间:2014-07-26 21:12:41

标签: python raspberry-pi telnet telnetlib fluidsynth

我一直在运行Raspian的Raspberry Pi B上使用Fluidsynth(不是绝对最新的图像,因为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然后在它生成的子shell中键入标准noteon命令。

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

我已经尝试了以下代码,它不会返回任何错误:

>>> from telnet lib import Telnet
>>> fluidsynth = Telnet("localhost","9800")
>>> fluidsynth.write('noteon 1 25 127')

但这无法发出任何声音。

此时我已经碰壁了,我不知道为什么python语句不会起作用,但命令shell中的语句会。他们不会做同样的事情吗?我错过了telnet协议的一些微妙之处吗?

1 个答案:

答案 0 :(得分:0)

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

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