XRunとは何ですか?

XRunとは何ですか?

jack私はバッファサイズを小さすぎるか、オーディオアプリケーションをシャットダウンしたときにこれを何度も読んで直接直面しました。しかし、誰もXRunが何であるかを説明していません。誰かがXRunの定義を明確にして提供できますか?それは何であり、どのように発生しますか?

以下はXRunエラーの例です。

Mon Mar 16 12:32:23 2015: ERROR: JackEngine::XRun: client = <AUDIO APPLICATION> was not finished, state = Running
Mon Mar 16 12:32:23 2015: ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error

アプリケーションを次に置き換えました。<AUDIO APPLICATION>

答え1

確かに(Ubuntuフォーラム投稿)

これはバッファアンダーフローまたはオーバーフローであり、Xはアンダーまたはオーバーを表します。これは、システムが一部のバッファをタイムリーに処理しなかったため、一部のデータが失われたことを示します。非常に低いバッファサイズで実行する場合は特にそうです。サウンドカードは着信バッファ(オーバーフロー)を非常に迅速に処理する必要があります。一部のチップは小さいバッファサイズを処理できないため、サウンドチップが実行する作業を軽減するにはバッファ長を長くする必要があります。

答え2

公式文書を追加アルサウィキ:

「xrun」は、バッファアンダーランまたはバッファオーバーフローのいずれかです。どちらの場合も、オーディオアプリケーションはALSAオーディオバッファにデータを転送するのに十分速くないか、ALSAオーディオバッファのデータを処理するのに十分速くはありません。一般的に、xrunの音は、ぽんと鳴る音または硬い音です。

たとえば、Jackのxrunを最小限に抑えるために、さまざまなカーネルパッチと戦略を使用できます。カーネルプリエンプションとリアルタイムLinuxセキュリティモジュール。この記事を書く時点(2004年7月)では、これらの戦略は流動的な状態にあります。http://jackit.sourceforge.net/docs/faq.php#a5最新。

Alsaの最新バージョンは、procツリーを介してxrunを記録してデバッグする方法を提供します。

デバッグxrunsへのリンクが失われましたが、いくつかの情報が見つかりました。ここ

関連情報