複数の出力(16)を持つジャックを使用して音楽ソフトウェアを作成しています。私のプログラム (多くのシンセ、サンプラーなど) で完全な dsp プロセスを実行すると、CPU 負荷は少し高くなりますが、問題にはなりません。これは、ジャック クライアントの出力が接続されていないか、サウンド カードの出力に直接接続されている場合です。
そのため、Ardour を起動して空のテンプレート (プラグインなどなし) を開くと、プログラムの出力を Ardour 入力に接続するまで、CPU 負荷は 5% (トップで監視) のままです。その後、Ardour の CPU 使用率が 80 ~ 95% に跳ね上がり、プログラムがほとんど何も処理していない場合でも、すべてが遅くなり、使用できなくなります。同じ量またはそれ以上の量のジャック出力を持つ puredata インスタンスは、同様の CPU 負荷を発生させない (プラグインで空またはいっぱいになる) ため、これは意味がありません。
私のプログラムでは、すべての出力が同じ jack コールバック関数で処理されますが、これは multiout に対して正しい方法ですか? この CPU ピークの原因は何ですか? Linux テスト マシンで rt カーネルを使用しており、プログラムの GUI は SDL で描画されています。
非常にクールなプログラムになりつつありますが、この問題により使用できなくなります。