rpiでamsynthを実行しようとしています。最新バージョンのRaspbianを新規インストールしてください。
x86デスクトップでamsynthをテストしましたが、遅延なくうまく機能しました。
ただし、rpiではmidiコマンド(vkeybdを使用)を送信した後にビープ音が鳴るまでに約1秒の遅延があります。
より良い親近感を設定することは役に立たないようです。
amsynthを制御するためにmidoライブラリを使用してPythonで小さなスクリプトを作成しましたが、それでもまだ遅延音が聞こえます。
この問題の原因をデバッグするにはどうすればよいですか?私は基本的にエンドユーザーです。
私の考えでは、midiコマンドが遅れたり、amsynth自体が遅れているようです(可能性が低い)。
このテストの間、負荷平均は0.4で、アイドル状態では0.1でした。
上部には、amsynth CPU使用率が12%にとどまっていることがわかります。
これには待ち時間の短いコアは必要ありません。そうですか?たとえば、アプリケーションが待ち時間を50msから10msに減らすと想像しています。
編集:alsaを使用し、他のプログラムはいかなる種類のオーディオ遅延も生成しません。つまり、クロムでリアルタイムでYouTubeのオーディオを再生します。再生と一時停止を押すと、レックも目立たなかった。
答え1
Jack、alsaなどの目的でamsynthとvkeybdを使用していることを確認してください。その後、次のことを試すことができます。
- https://www.alsa-project.org/main/index.php/Low_latency_howto
- https://wiki.linuxaudio.org/wiki/jack_latency_tests
- PREEMPT_RTでパッチされたカーネルを試すことができます(カスタムカーネルを構築する必要があることに注意してください)
使用が難しいです。
- パフォーマンスユーティリティhttps://perf.wiki.kernel.org/index.php/Tutorial
- ストレスhttps://strace.io/
答え2
プロセスにリアルタイム権限があることを確認してください(通常はユーザーごとに実行されます)。
Ivanが述べたように、PREEMPT_RTパッチセットを持つカーネルがより適している可能性があります。
私の経験によると、遅延時間の短いオーディオでは、JACKはALSAよりも優れています。