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


30

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

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

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


さらなる調査の後、これを機能させるためのいくつかの方法があるようです。github.com / jackaudio / jackaudio.github.com / wiki / ただし、私の場合、これらはすべてすべてのオーディオ出力を永久に停止します。
アンドレアスハートマン

回答:


24

16.04の時点で、物事はずっと簡単になります:)

モジュールをインストールqjackctlしてくださいpulseaudio-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で上記で説明したセットアップを実装します。


これは私が今まで見た中で最も簡単な解決策です!最後に、他のすべてをミュートせずにジャックを使用できます!ありがとうございました。
kapcom01

8
pactl set-default-sink jack_out->「失敗:そのようなエンティティはありません」
カールモリソン

1
他のソリューションではうまくいかなかったとき、これはうまくいきました。
モルト

2
正しいコマンドは「pacmd set-default-sink jack_out」です。残念ながら、編集は6文字を超える必要があるため、答えを修正できません。:-(
トッドチャフィー

2
@KarlMorrisonは、おそらく実行する必要があるpactl load-module module-jack-sink channels=2pactl load-module module-jack-sourceその前に、キム・タッカーの答え@参照してください。
naktinis

17

このYoutubeビデオ:「JackとPulseAudioが一緒に友達として-Linux」にはいくつかの答えがあるようです。

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

aptitude install pulseaudio-module-jack

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

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

その後-私は思う-pulseaudioを再起動します。PCを再起動しただけです(怠lazなのは知っています)。


ところで、あなたも使って、その場でモジュールを追加することができますpactl load-module ...
0__

9

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を構成する

設定

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

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

オプション 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"

その他 そこで、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から)

この答えは、構成がどのように行われるかについて明確ではありません。それだけで行われQjackctlますか?その場合、構成設定はどのファイルにあり、どのように設定されていますか?
ファヒムミタ

パッケージマネージャーを介して行われた初期構成。jackgは、jack-audio-connection-kit-dbusおよびQjackctlスクリプトを介して再構成を開始/停止します。
mmv-ru

そうですか。これらの線に沿ったいくつかの詳細は非常に役立ちます。これらの詳細は、他の回答やネット上の情報から特に欠​​落しています。可能であれば、GUIを使用して設定しないことをお勧めします。あなたは通常AUチャットにいますか?もしそうなら、そこで議論することができます。
ファヒムミタ

Qjackctlは、スクリーンショットが示すように、GUIを介して構成できます。返信では、スクリプトの全行を表示するために.config / rncbc.org / QjackCtl.confの一部を表示します。
mmv-ru

チャットに招待するには評判が足りません。私を誘って。
mmv-ru

7
  • 問題は、起動時に水素(Ardourとして)がjackdで起動するが、終了時に閉じない
    ことです。ただしkillall jackd、水素の終了後にターミナルで実行できます。

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

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


3

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

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

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

  3. ではQSynthセットアップ:下のオーディオタブの変更オーディオドライバのpulseaudio

  4. ではQSynthセットアップの下で:サウンドフォントオープン ...し、必要に応じていずれかを選択します。

  5. ではQJackCtl設定>設定>詳細

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

  6. ではQJackCtl設定>オプション

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

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. ではALSA:QJackCtl接続:左からのキーボード入力に参加FLUIDシンセ右側を。

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

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

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


2

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

インストール

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を停止すると、音は再びデフォルトポートに戻ります。

これが全体図です


0

もちろん、ほとんどのブラウザメディアプレーヤーはジャックを知らないため、ジャックが必要なポイントに達した場合、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つのインスタンスが発生するため、自動起動でqjackctlを使用しないでください(一晩中バギーバギー)。

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

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

楽しむ..


0

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.