2014-07-26 78 views
0

我一直與Fluidsynth在樹莓派B上運行Raspian(不是因爲Fluidsynth不會對最新的版本,但至少從2014年4月運行的絕對是最新的圖像)。Fluidsynth使用Telnet和Python:沒有聲音

我開始Fluidsynth運行fluidsynth -a alsa -g 1 -s -o "shell.port=9800" /path/to/FluidR3_GM.sf2

我能夠得到使用Fluidsynth自己的外殼,像noteon 1 54 100命令的預期音頻輸出,並且我還可以得到音頻使用Telnet服務器從一個單獨的命令行中使用打:

telnet localhost 9800然後在其生成的子shell中輸入標準noteon命令。

我的最終目標,不過,是從蟒蛇發送這些Telnet命令。

我嘗試下面的代碼,它返回沒有錯誤:

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

但這未能產生任何一種聲音。

在這一點上,我碰了壁,我不知道爲什麼Python的語句將不會工作,但在命令shell會的聲明。他們會不會做同樣的事情?我錯過了telnet協議的一些微妙之處嗎?

回答

0

添加一個換行符到字符串的末尾,你傳遞給write

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

真棒!現在一切正如Python所期望的那樣。 – user3814475