0

私は、Raspian を実行している Raspberry Pi B で Fluidsynth を使用してきました (Fluidsynth は最新バージョンでは実行されないため、少なくとも 2014 年 4 月以降は完全に最新のイメージではありません)。

実行して Fluidsynth を起動しますfluidsynth -a alsa -g 1 -s -o "shell.port=9800" /path/to/FluidR3_GM.sf2

のようなコマンドで Fluidsynth 独自のシェルを使用して、期待されるオーディオ出力を取得noteon 1 54 100できます。また、次を使用して、別のコマンド ラインから telnet サーバーを使用して再生するオーディオを取得することもできます。

telnet localhost 9800noteon次に、生成されたサブシェルに標準コマンドを入力します。

ただし、私の最終的な目標は、これらの telnet コマンドを Python から送信することです。

エラーを返さない次のコードを試しました。

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

しかし、これでは何の音も出せません。

この時点で、私は壁にぶつかりました。なぜ python ステートメントは機能しないのに、コマンド シェルのステートメントは機能するのかわかりません。彼らはまったく同じことをしているのではないでしょうか? telnet プロトコルの微妙な点が欠けていますか?

4

1 に答える 1

0

に渡す文字列の末尾に改行文字を追加しますwrite

fluidsynth.write('noteon 1 25 127\n')
于 2014-07-26T21:40:41.893 に答える