web-dev-qa-db-ja.com

同じオーディオデバイスでJACKとPulseaudio / ALSAを同時に使用する方法

水素を起動すると、Pulseを使用する他のすべてのアプリケーションで音声が途切れます。たとえば、一度水素を起動した後、PCを再起動するかSudo alsa force-を行うまで、Chromeでビデオを再生できなくなりますリロード。私は同様の問題を持つ人々を見つけましたが、これを修正するための実際のガイドはありません。多くの場合、 http://jackaudio.org/pulseaudio_and_jackhttp:// jackaudio.org/faq/pulseaudio_and_jack.html )Ubuntu Studio 14.04 64ビットを使用しています。

あるいは、これを達成することが本当に不可能な場合、あるサウンドカードでジャックを使用し、別のサウンドカードでパルスを使用する方法を教えてもらえますか?これにより、JACKが必要な場合にのみUSBサウンドカードを接続できます。

ウィンドウを使用させないでください。

27

16.04現在、物事はずっと簡単になります:)

qjackctlpulseaudio-module-jackモジュールをインストールするだけです:

apt-get install qjackctl pulseaudio-module-jack

次に、qjackctlを設定して、起動後に次のコマンドを実行します。 「セットアップ...」>「オプション」>「起動後にスクリプトを実行」にコピーします。

pacmd set-default-sink jack_out

以上です。 Pulseaudioは(D-Busを介して)JACKが開始したことを認識し、オーディオを自動的にルーティングします。 JACKが停止すると、Pulseaudioは通常のルーティングに戻り、オーディオをカードに直接送信し始めます。

そのため、(ほぼ)デフォルトで、Pulseaudioは上記のmmv-ruによる設定を実装します。

22
José Micó

このYoutubeビデオ: "JackとPulseAudioが一緒に友だちになる-Linux" いくつかの答えがあるようです:

ソリューションの鍵は、pulseaudio-module-jackが次のものでインストールされていることを確認することでした。

aptitude install pulseaudio-module-jack

次に、sudoが/etc/Pulse/default.paファイルを編集して、オーディオドライバーのロードセクションの下に手動で2行を追加します。

load-module module-jack-sink
load-module module-jack-source

その後-私は思う-pulseaudioを再起動します。 PCを再起動しただけで(怠lazなのは知っている)、それは大丈夫だった... Ardourを起動してもpulseaudioは死なず、一緒に楽しそうにプレイした。

15
RobinsSea

FedoraでのJackとPulseの共存に関するトラフクエストを過ぎました。一般にPulseaudioには満足していますが、時々Jack audioが必要です。

Fedora 23で動作する私のソリューション。

dnf install jack-audio-connection-kit jack-audio-connection-kit-dbus qjackctl

/etc/Pulse/default.paには触れないでください!

Qjackctlを構成する

Settings

〜/ .config/rncbc.org/QjackCtl.confの関連フラグメントがあります

[Settings]
Server=jack_control start
Driver=alsa
InDevice="hw:PCH,0"
OutDevice="hw:PCH,0"

Options pactlのシンクの名前は、コマンドで確認できます。

pacmd list-sinks

完全なコマンドを表示する〜/ .config/rncbc.org/QjackCtl.confのもう1つのフラグメントがあります

[Options]
...
StartupScript=true
StartupScriptShell=pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1
PostStartupScript=true
PostStartupScriptShell=pactl set-default-sink jack_out
ShutdownScript=false
ShutdownScriptShell="pactl unload-module module-jack-sink; pactl load-module module-jack-source"
PostShutdownScript=true
PostShutdownScriptShell="pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 0; pactl set-default-sink alsa_output.pci-0000_00_1b.0.analog-stereo"

Misc そこで、Qjackctl自体にとって重要な「D-Busインターフェースを有効にする」。

それがどのように働きますか

起動時に、PCはPulseAudioのみで動作します。ジャックなしのすべての自動作業。

Qjackctlの起動後、

  1. Qjackctl起動スクリプトは、Plseuaudioでプライマリオーディオカードを一時停止し、Jackjがそれにアクセスできるようにします。「pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1」
  2. ジャックはdバス「jack_control start」で開始しました
  3. Pulseは、D-Bus上のジャック開始を自動的に検出し、ジャックシンクとジャックソースをロードします。
  4. 起動スクリプト後のQjackctlは、Pulseのデフォルトシンクをjack_outに変更します。 (私は自分自身でそれを達成していません) "pactl set-default-sink jack_out"(最初は不要に見えます。実行中のすべてのPAクライアントが新しいシンクに切り替えましたが、新しいアプリはこのコマンドなしで中断されたシンクにスタックします)

そのため、システムは「ジャック上のパルス」を使用するように再構成されました。 (そこでは、とにかく使用しないので、ハードウェア入力の中断をスキップします)

「アプリケーションextiでJACKオーディオサーバーを停止する」がチェックされていない場合、Qjackctlを閉じてセットアップを妨げずに再実行できます。

QjackctlによってJackを停止した後、すべてが単純な整頓されたPulseに戻ります!

  1. Jackdは、dbus経由のQjackctlで停止します-「Dバスインターフェイスを有効にする」オプション。
  2. d-busによりPulseaudioからジャックソースとジャックシンクが自動的に削除されました
  3. ジャックアウトが消えるため、Pulseオーディオのデフォルトシンクがオーディオカードに切り替えられました
  4. シャットダウン後のQjackctlスクリプトは、Pulseaudioでオーディオカードをアクティブにします。「pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1」

使用ツール

  1. jackd(pulseaudio-utilsパッケージから)
  2. jack_control(ack-audio-connection-kit-dbusパッケージから)
  3. Qjackctl(pulseaudio-utilsパッケージから)
  4. sctiptsからPulseaudioを制御するpactl(パッケージpulseaudio-utilsから)
9
mmv-ru
  • 問題は、起動時に水素(Ardourとして)がjackdで起動するが、終了時に閉じないことです。
    ただし、水素の終了後にターミナルでkillall jackdを実行できます。

  • Jackとpulseaudioソフトウェアを同時に使用する複雑な方法は、 "pulseaudio-module-jack"をインストールすることです(qjackctl(jackdのGUI)と存在しない場合はpavucontrolもインストールします)。 pulseaudio pulseaudio -kを再起動します。
    オーディオアプリ(Jackとpulseaudio)を閉じます。
    qjackctlを使用してjackdを実行します(スタートボタンをクリックします)(djackオプションは、qjackctl設定の最後のタブで選択する必要があります)。
    Pavucontrolの[出力デバイス]タブで、[ジャックシンク]の近くにある緑色の[デフォルトデバイス]ボタンをクリックします。
    これで、pulseaudioソフトウェアとHydrogenを同時に実行する必要があります。

  • Qjackctlを使用すると、最初の「設定」タブでJackdオーディオデバイスを変更できます。

6
laugeo

今でははるかに簡単かもしれません。 Linux Mint 18.2(Ubuntu 16.04パッケージベース)の新規インストール後、本当に基本的なニーズを満たすために、今日私にとってうまくいったのは:

  1. Synapticを使用してQSynthとQJackCtlをインストールします。

  2. 必要なサウンドフォントを/usr/share/sounds/sf2/などの適切なフォルダーにコピーします

  3. QSynth SetupAudioタブ変更Audio Driver to pulseaudio.

  4. QSynth Setup:の下でSoundFontsOpen ...で必要に応じて選択します。

  5. QJackCtl Setup> Settings> Advanced

    サーバープレフィックス:pasuspsender-/usr/bin/jackd

  6. QJackCtl Setup> Options

    起動後にスクリプトを実行します。

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. QJackCtl Connect:ALSA:左側のキーボードエントリを右側のFLUID Synthに結合します。

  8. メインシステム設定サウンドで、必要な出力デバイスを選択します。

ビデオを見ながらキーボードを演奏できるようになりました(たとえば、Firefoxを使用してYouTubeで)-以前は、ほとんど一度も追跡することができなかった多くの調整なしで、一度に1つしか実行できませんでした。

それが誰かを助けるか、彼らが再試行することを奨励することを願っています:-)。

3
Kim Tucker

すべてのシステムをジャックで実行するようにルーティングする最も簡単な方法:

インストール

Sudo apt-get install qjackctl pulseaudio-module-jack

Qjackctlを開きます。 [設定]> [オプション]>

起動後にスクリプトを実行をチェックして、これを貼り付けます:

pacmd load-module module-jack-source channels=2; pacmd load-module module-jack-sink channels=2;

シャットダウン後にスクリプトを実行をチェックして、これを貼り付けます:

killall jackd

Qjackを起動して、サウンド設定を開きます。パルスオーディオジャックシンク出力ポートがあります。それを選択すると、すべてのシステムが同期します。 Jack server/qjackを停止すると、音は再びデフォルトポートに戻ります。

全体像はこちら

1

もちろん、ほとんどのブラウザメディアプレーヤーはジャックを知らないため、ジャックが必要なポイントに達した場合、pulseaudioとジャックの両方を実行する必要があります。 ..残念ながら。

一度に実行するのはそのうちの1つだけであるという提案は、私にとってはひどい妥協のように思えました。私の意見では、これらの2つのサービス、すなわちジャックとパルスオーディオはどちらもそれ自体で機能していますが、少なくとも私が使用しているkxstudioによって管理が不十分であるということは少し悲劇的です。

だから何が起こるかです:

  • pulseaudioの実行中(および使用するサウンドカードドライバーを使用すると十分に公平)にジャックを起動できないため、最初に起動する必要があります。

  • pulseaudioは、起動と実行の両方で一度ジャックに向けられる必要があります

とても簡単です。特定の理由で、私はそれで無限の悲しみがありました。

最初に私は思うのですが、pulseaudio 4.0はバグがあり、alsaドライバーを台無しにして、状況によってはロックされたままになり、pulseaudioが実行されていなくてもジャックを起動できないためです。 (キャプチャパラメータまたはそのようなsmtgの設定に失敗したと言います)

私が最後にしたことは

  • ジャックとpulseaudioの両方を完全に削除しました(apt-get purge後にfindとrm -rf:Dを使用)
  • インストールされたpulseaudio 11(ソースから)
  • インストールされたジャックとそのライブラリ(libjack-dev)

この順序で、最終的にqjackctlを使用して正常に実行しました。これにより、正しい方法で起動することが確認されます(ジャックシンクをpulseaudioにロードし、デフォルトとして設定します)。

ところで、私はケイデンスが代わりに推奨されているのを見たのですが、なぜ私にとってはqjackctlと比較してゴミだと思われるのか分かりません。

とにかく、問題はqjackctlを使用してジャックを開始するのに時間がかかり、各ブートでの待ち時間を避けるために、前のセッションをロードするkdeのこのライフセーバー機能を使用できます。ただし、singleton = trueの設定に関係なく、リブートするたびにインスタンスが1つ増えることになります(一晩中バギーバギー)。

これは、pulseaudioがダウン(またはサスペンド)されていることを確認するスマートスクリプトを記述して、ジャックが正しく起動したことを確認してからpulseaudioを起動し、ジャックモジュールをロードするなど、もういじる気がしなかったためです。

それ以外の場合は、OSに依存してデーモンを起動し、構成を正しくロードするのが通常の(正常な)シナリオですが、実際には発生していないようです。

楽しんで..

0
Negru Voda

Linux Mint 19.1を実行しています。さまざまな解決策をすべて試しても、物事はまだスムーズに機能しません。

最後に、ビデオの手順/指示に従うことで、すべての問題を解決できました。 Link

基本的に、Kxstudioリポジトリからアプリケーションをインストールします。また、起動時にすべてを完全に構成するスクリプトがあります。

私の最終目標は、他のアプリケーション(デスクトップ、ブラウザ)からのサウンドを実行/録音しながら、インターフェイス(Scarlett solo)を介して入力を録音できるようにすることでした

0
joe_maya