JackがPulseより速く、待ち時間が短いという主張をたくさん見ました。どうやってそのようなことが起こりましたか?なぜPulseは自分自身を軽量と呼び、Jackの部下は自分自身を脂肪と呼ぶのですか?誰かがこれら2つのデーモンの内部構造を一般人に説明できますか?
答え1
Jackは、あなた(知識豊富なユーザー)に、可能な限り低い値を決定するようにサーバーを構成するように依頼します。処理遅延あなたの機械のため。 (処理待ち時間は、サーバーがクライアントアプリケーションの内外にデータを移動した後に、システム外でオーディオサンプルの次の「チャンク」を送受信するのにかかる時間です。)Jackはこれらのオーディオデータチャンクをタイムリーに転送します。それ以外の場合は失敗し、バッファ不足(時には「損失」とも呼ばれる)が発生します。残留有機汚染物質そしてクリック数)。 Jackが不足している場合は、他の設定でサーバーを再起動するか、クライアントアプリケーションで何かを変更してオーディオの期限を調整できるように、より効率的にする必要があります。サーバー設定はすべてのクライアントに均一に適用されるため、Jackは複数のオーディオアプリケーション間でオーディオをルーティングしてオーディオを取得するのに役立ちます。予測可能結果。 (つまり、さまざまなオーディオコンポーネントに「ジャック」を接続するのと同じです。)
Pulseは、サーバーがシステム外のオーディオの送信/受信期限を守らないために発生するオーディオ損失の数を最小限に抑えるように設計されています。要求が少ないクライアントアプリケーションに対して大きなバッファを選択してこれを実行したいようです。処理遅延、そしてより早い期限で、クライアントアプリケーションのバッファにサンプルを「注入」します。サンプルをあまりに早く注入しようとし、期限を逃してアンダーランが発生した場合、Pulseはクライアントがサーバーにオーディオ更新を送信するのに必要な最小時間を自動的に増やします。 Pulse ドキュメントには明確に記載されています。極端論者低レイテンシ(例:10ミリ秒未満)処理遅延——デザイン目標ではありません。 Linux自体(およびおそらくあなたのハードウェア)がリアルタイムオーディオ予約用に設計されていないことを考えると、私はそれを信じやすいです。
Pulseは、ユーザー設定の面で「軽さ」です。 (パルスが低いと言うこともできます。遅延構成残念ながら、多くのLinuxオーディオアプリケーションはこれを無視します。 ) 基本的な複雑さの観点から、パルスはジャックに比べて「太っている」。
どちらが速いのかについての確実な答えを得るには、ループバックデバイスを購入して測定します。往復遅延自分のシステムで真実を学びましょう。 往復遅延システムがオーディオを処理し、処理されたコンテンツをシステムに再受信するのにかかる時間。 Linuxでこれを行う方法を説明するオンラインチュートリアルがあります。これにより、あなたが本当に欲しいものが何であるかがわかります。認識された遅延- トリガーイベント(ギターの行など)から最初にサウンドを聞く(ギターコードを聞くなど)までの時間です。
最後に、PulseとJackは、ほとんどのGNU / LinuxディストリビューションがALSAの上にあることを覚えておいてください。 JackとPulseについて質問したことがわかります。ただし、ALSAに直接接続できる単一のオーディオアプリケーションを使用している場合、パルスやジャックを追加してもパフォーマンスが低下する可能性はありません。認識された遅延ALSA単独よりも重要です。この意味で、プスとジャックは両方とも「太っている」。
ALSAだけで最も速く、Jackは複数のオーディオアプリケーションを一緒に接続するのに役立ちます.Pulseはおそらく最も単純な非常に短い待ち時間に興味がない場合に使用してください。この用語を使用する文書や議論は無視してください。隠れるどのタイプの遅延が意味されるかについての説明はない。 (残念ながら、Jackの公式文書とPulseに関するLennartのブログ投稿はすべてこのカテゴリに属します。)
ノート:単一のオーディオアプリケーションを使用したいが、不都合なALSAインターフェースと素晴らしいジャックインターフェースを持ついくつかの極端なケースがあるかもしれません。この場合、ジャックを使用すると遅延時間を短縮できます。しかし、アプリケーションについて話すとデザイン済み待ち時間を最小限に抑えるには、このような状況がほとんど発生しないようにしてください。しかし、ループバックデバイスを接続し、私の仮説をテストしてみてください!
答え2
彼らは実際に似ていますサウンドサーバー。ジャックプロフェッショナルオーディオソリューションに必要なリアルタイム/低遅延応答用に設計されています。パルスオーディオ一般的なデスクトップをさらにターゲットにします(厳密ではない要件に適用)。お父さん比率だと思います。ジャック- 複雑になるほどオーバーヘッドが増えます。 Linuxで両方を使用アルザス最後に、実際の出力を取得します。 PAを使用すると、データは通常ALSA(アプリケーション出力)からPA(処理)、ALSA(出力)にルーティングされますが、JACK-ALSAルーティングよりも遅くなります。一方、ALSAインターフェイスを備えた仮想サウンドカードを提供するため、デフォルトでは使用できないアプリケーションには透過的です。
とにかく、音楽を作成する予定がある場合や、アプリ固有の音量を調整せずに(またはネットワーク経由で他のコンピュータにサウンドを渡さずに)生活できない場合を除き、一般的なALSAはオーバーヘッドが少なくてもかまいません。一部のドライバはハードウェアミキシングを実行できますが、そうでない場合でもALSAはプラグインを介してこれを実行できます(おそらくJACKほど高速ではありませんが、「一般的な」使用には問題ありません)。
答え3
Jackは、ミュージシャン、ビデオクリエイターなどのオーディオエンジニアリング/制作など、短い待ち時間を必要とするアプリケーションに適しています。
- リサンプリングは必要ありません!
- ソフトウェアがソースを混在させる
- アプリケーション、デバイス、ladspa / lv2 / vstプラグインなどの間で物事(サウンド、時間同期など)を正しくルーティングします。
- パルスオーディオ(ブリッジ)と組み合わせて使用できます。
Pulseは一般的なデスクトップアプリケーションに適しています(低レイテンシを期待しないでください)。
- 互換性を提供アートそして静電気放電
alsa
として使用およびoss
出力可能- 強制ソフトウェアリサンプリング
- ソフトウェアがソースを混在させる
- ソフトウェアアップミキシング、ダウンミキシングなど
- プラグインに適したAPIを提供します(例:パルス効果)
- シンプルルーティング(他のデバイスまたはアプリケーションに出力を挿入)
- アプリ固有の音量調整
Alsaユーザースペース階層(ドライバではない)は、最小限の操作を実行します([*]間の遅延)。
- [*]ハードウェアリサンプリング、ソースミキシング、アップミキシングなど(必要適切なサウンドカードそれ以外の場合ソフトウェア使用します)
- ladspaプラグインを使用すると、見苦しい設定形式を設定できます
- シンプル/フルボリュームコントロール
ほとんどの場合、Pulseは一般的なデスクトップユーザーに最適な選択です。 Jackはミュージシャンなどのための完璧な選択です。
答え4
これは実際に「大」の質問ではありません。一見すると、どちらも「サウンドサーバー」であることがわかります。したがって、どちらか一方を選択すればよいと結論付けることができる。しかし、実際にはそうではありません。たとえば、ビデオカメラとFLIRカメラを比較すると、どちらもカメラです。しかし、人々はただ2つのうちの1つを「選択」しません。彼らは互いに賞賛することができる非常に異なる役割を果たしますが、決して競争的ではありません。ジャックが必要、パルスが必要、または両方が必要な場合があります。選択は、特定の待ち時間などの特性ではなく、問題領域によって決まります。
「FAT」と「non-FAT」の場合、この用語はさまざまな方法で使用されるため、実際の意味はありません。しかし、一般に、FATという用語は、アプリケーションが「すべてのタスクを実行する」ときに使用されます。 「軽量」は目的の機能をロードする傾向があり、おそらくさまざまなオプションから選択し、残りを放棄することもできます。 Pulseは、いくつかのパラメータを提供すると正しく機能する「大きな塊」プログラムです。必要に関係なくPulseを実行すると、多数の機能がロードされます。 Jackは、必要なものを構築するためにプラグイン、プログラムなどを好きなだけ追加できる、小さく本質的に役に立たないプログラムです。プログラマは、機械資源の観点から世界を見る傾向があります。
したがって、pulseは可変待ち時間サーバーですが、jackは固定待ち時間サーバーです。これが彼らの特定の問題領域です。ただテレビを見たり、インターネットで音楽を聴いている場合は、パルスが必要です。ライブ電子音楽を演奏したい場合は必ずジャックが必要です。テレビを見ながらサウンドストリームを処理する場合は、どちらも必須です。