Bagaimana cara menggunakan JACK dan Pulseaudio / ALSA secara bersamaan di perangkat audio yang sama?

30

Setiap kali saya meluncurkan hidrogen, audio saya terputus di semua aplikasi lain yang menggunakan Pulse, misalnya, saya tidak bisa lagi memutar video di Chrome setelah meluncurkan Hydrogen satu kali, sampai saya me-restart PC saya atau melakukan sudo alsa paksa-reload. Saya telah menemukan orang-orang dengan masalah yang serupa, tetapi tidak ada panduan aktual untuk memperbaikinya, seringkali ada tautan ke http://jackaudio.org/pulseaudio_and_jack (yang telah pindah ke http://jackaudio.org/faq/pulseaudio_and_jack.html ) I Saya menggunakan Ubuntu Studio 14.04 64bit.

SELALU jika ini benar-benar mustahil untuk dicapai, dapatkah seseorang memberi tahu saya cara menggunakan Jack pada satu kartu suara dan Pulse yang lain? Dengan cara ini saya bisa mencolokkan kartu suara USB hanya ketika saya membutuhkan JACK.

Tolong jangan membuat saya menggunakan windows.

Andreas Hartmann
sumber
Setelah penelitian lebih lanjut, tampaknya ada beberapa cara untuk membuatnya berfungsi, lihat di sini: github.com/jackaudio/jackaudio.github.com/wiki/... Namun dalam kasus saya semua ini membunuh semua output Audio secara permanen.
Andreas Hartmann

Jawaban:

24

Pada 16,04, semuanya menjadi lebih sederhana :)

Cukup instal qjackctldan pulseaudio-module-jackmodul:

apt-get install qjackctl pulseaudio-module-jack

Kemudian konfigurasikan qjackctluntuk menjalankan perintah berikut setelah startup. Salin ke "Pengaturan ..."> "Opsi"> "Laksanakan skrip setelah Startup":

pacmd set-default-sink jack_out

Dan itu saja. Pulseaudio akan mengenali (melalui D-Bus) bahwa JACK dimulai, dan secara otomatis akan merutekan audio ke sana. Ketika JACK dihentikan, Pulseaudio akan kembali ke perutean normal dan mulai mengirim audio langsung ke kartu lagi.

Jadi (hampir) secara default Pulseaudio mengimplementasikan pengaturan yang dirinci di atas oleh mmv-ru.

José Micó
sumber
Ini adalah solusi paling mudah yang pernah saya lihat sejauh ini! Akhirnya saya bisa menggunakan jack tanpa mematikan semuanya! Terima kasih.
kapcom01
8
pactl set-default-sink jack_out -> "Kegagalan: Tidak ada entitas seperti itu"
Karl Morrison
1
ini bekerja untuk saya ketika solusi lain tidak, terima kasih banyak!
malte
2
Perintah yang benar adalah 'pacmd set-default-sink jack_out'. Sayangnya saya tidak dapat memperbaiki jawabannya karena hasil edit harus lebih dari 6 karakter! :-(
Todd Chaffee
2
@KarlMorrison, Anda mungkin perlu mengeksekusi pactl load-module module-jack-sink channels=2dan pactl load-module module-jack-sourcesebelum itu, lihat @ kim-tucker answer.
naktinis
17

Video Youtube ini: "Jack and PulseAudio Together as Friends - Linux" sepertinya punya beberapa jawaban:

Kunci dari solusi ini tampaknya memastikan pulseaudio-module-jack diinstal dengan:

aptitude install pulseaudio-module-jack

kemudian sudo mengedit file /etc/pulse/default.pa untuk memasukkan dua baris di bawah bagian memuat driver audio secara manual:

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

lalu - saya pikir - me-restart pulseaudio. Saya baru saja me-restart PC (malas, saya tahu) dan itu berhasil memperlakukan ... menyalakan Ardor tidak lagi membunuh pulseaudio, mereka bermain bersama dengan gembira.

RobinsSea
sumber
BTW, Anda juga dapat menambahkan modul dengan cepat, menggunakanpactl load-module ...
0__
9

Baru saja melalui pencarian koeksistensi Jack dan Pulse di Fedora. Secara umum saya senang dengan Pulseaudio, tetapi kadang-kadang membutuhkan audio Jack.

Solusi saya bekerja pada Fedora 23.

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

Jangan menyentuh /etc/pulse/default.pa!

Konfigurasikan qjackctl

Pengaturan

Ada fragmen yang relevan dari ~ / .config / rncbc.org / QjackCtl.conf

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

Pilihan nama-nama wastafel untuk pactl dapat ditemukan dengan perintah:

pacmd list-sinks

Ada satu lagi fragmen ~ / .config / rncbc.org / QjackCtl.conf untuk menampilkan perintah penuh

[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"

Lain-lain Di sana, "Aktifkan antarmuka D-Bus" penting untuk Qjackctl sendiri.

Bagaimana cara kerjanya

Sekarang saat boot PC berfungsi hanya dengan PulseAudio. Semua bekerja otomatis tanpa Jack.

Setelah peluncuran Qjackctl,

  1. Qjackctl Startup script menangguhkan kartu audio utama di Plseuaudio dan memungkinkan Jackj mendapatkan akses ke sana "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack mulai dari d-bus "jack_control start"
  3. Pulsa secara otomatis mendeteksi start jack dari D-Bus dan memuat jack sink dan sumber jack.
  4. Qjackctl setelah skrip Startup mengubah bak cuci default di Pulse menjadi jack_out. (Saya menemukan itu tidak dilakukan sendiri) "pactl set-default-sink jack_out" (pada awalnya itu terlihat tidak perlu, karena semua klien PA yang menjalankan beralih ke wastafel baru, tetapi aplikasi baru terjebak di wastafel yang ditangguhkan tanpa perintah ini)

Jadi sistem dikonfigurasi ulang untuk menggunakan "Pulsa di atas Jack". (Di sana saya melewati penundaan input perangkat keras, karena saya toh tidak menggunakannya)

Jika "Hentikan server audio JACK pada aplikasi exti" tidak dicentang, saya dapat menutup Qjackctl dan menjalankannya kembali tidak mengganggu pengaturan.

Setelah menghentikan Jack oleh Qjackctl, semua kembali ke Pulse tanpa gangguan!

  1. Jackd mampir Qjackctl over dbus - opsi "Enable D-bus interface".
  2. jack-source dan jack-sink dihapus dari Pulseaudio automaticaly oleh d-bus
  3. wastafel standar di Pulsa audio beralih ke kartu audio karena jack-out hilang
  4. Qjackctl setelah script Shutdown mengaktifkan kartu audio kembali di Pulseaudio "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"

Alat yang digunakan

  1. jackd (dari paket pulseaudio-utils)
  2. jack_control (dari paket ack-audio-connection-kit-dbus)
  3. Qjackctl (dari paket pulseaudio-utils)
  4. pactl untuk mengontrol Pulseaudio dari sctipts (dari paket pulseaudio-utils)
mmv-ru
sumber
Jawaban ini tidak eksplisit tentang bagaimana konfigurasi dilakukan. Apakah hanya dilakukan melalui Qjackctl? Jika demikian, file apa yang menjadi pengaturan konfigurasi, dan bagaimana pengaturannya?
Faheem Mitha
Konfigurasi awal dilakukan melalui manajer paket. memulai / menghentikan konfigurasi ulang melalui skrip jack-audio-connection-kit-dbus dan Qjackctl.
mmv-ru
Saya melihat. Beberapa perincian di sepanjang garis itu akan sangat membantu. Detail-detail ini terutama hilang dari jawaban lain, dan informasi di internet. Saya lebih suka tidak mengkonfigurasi hal-hal melalui GUI jika memungkinkan. Apakah Anda biasanya dalam obrolan AU? Jika demikian, kita bisa membahasnya di sana.
Faheem Mitha
Qjackctl dapat dikonfigurasikan melalui gui saat screenshot menunjukkan. Di Balasan, saya menunjukkan bagian-bagian dari .config / rncbc.org / QjackCtl.conf untuk menampilkan baris-baris naskah lengkap.
mmv-ru
Reputasi tidak cukup untuk diajak ngobrol. Undang saya.
mmv-ru
7
  • Masalahnya adalah Hydrogen (seperti Ardor) meluncurkan jackd pada saat startup tetapi tidak menutupnya saat keluar:
    Tapi Anda bisa berjalan killall jackddi terminal setelah Hydrogen keluar.

  • Cara rumit untuk menggunakan Jack dan perangkat lunak pulseaudio pada saat yang sama adalah menginstal "pulseaudio-module-jack" (juga menginstal qjackctl (gui untuk jackd) dan pavucontrol jika tidak ada). Mulai ulang pulseaudio pulseaudio -k.
    Sekarang tutup aplikasi audio (Jack dan pulseaudio),
    jalankan jackd menggunakan qjackctl (klik tombol start) ( opsi dbus harus dipilih di tab terakhir pengaturan qjackctl ).
    Pada tab "perangkat output" Pavucontrol, klik hijau "tombol perangkat default" di dekat "jack sink"
    Sekarang perangkat lunak pulseaudio dan Hydrogen akan berjalan pada saat yang sama.

  • Dengan menggunakan qjackctl, pada tab "pengaturan" pertama, Anda dapat mengubah perangkat audio Jackd.

laugeo
sumber
3

Mungkin lebih mudah sekarang. Apa yang bekerja untuk saya hari ini, untuk memenuhi kebutuhan saya yang sangat mendasar, setelah menginstal Linux Mint 18.2 (basis paket Ubuntu 16.04) adalah:

  1. Gunakan Synaptic untuk menginstal QSynth dan QJackCtl.

  2. Salin font suara yang diperlukan ke folder yang sesuai seperti /usr/share/sounds/sf2/

  3. Dalam QSynth Pengaturan : di bawah Audio perubahan tab Audio Driver untuk pulseaudio .

  4. Di Pengaturan QSynth : di bawah SoundFonts : Buka ... dan pilih satu sesuai kebutuhan.

  5. Di QJackCtl Setup> Pengaturan> Lanjutan :

    Awalan Server: pasuspsender - /usr/bin/jackd

  6. Di QJackCtl Setup> Opsi :

    Jalankan skrip setelah startup:

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. Di QJackCtl Connect: ALSA : gabung entri keyboard di sebelah kiri untuk FLUID Synth di sebelah kanan.

  8. Di Pengaturan Sistem utama untuk Suara, pilih perangkat output yang diperlukan.

Sekarang saya dapat memainkan keyboard sambil menonton video (misalnya di YouTube menggunakan Firefox misalnya) - sebelumnya saya hanya bisa melakukan ini pada satu waktu tanpa banyak tweak yang jarang bisa saya ikuti.

Semoga itu bisa membantu seseorang, atau mendorong mereka untuk mencoba lagi :-).

Kim Tucker
sumber
2

Cara termudah untuk merutekan semua sistem untuk dijalankan dengan jack:

Memasang

sudo apt-get install qjackctl pulseaudio-module-jack

Buka qjackctl. Dalam Pengaturan> Opsi>

Periksa Execute script setelah Startup dan rekatkan ini:

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

Periksa Execute script setelah Shutdown dan rekatkan ini:

killall jackd

Sekarang mulai qjack dan buka pengaturan suara Anda. Anda akan menemukan port Output Sink Audio Jack. Pilih dan semua sistem akan disinkronkan. Jika Anda menghentikan Jack server / qjack, suara akan kembali ke port Default Anda lagi.

Ini tampilan keseluruhannya

Fahad Hasan Pathik
sumber
0

Tentu saja orang akan menginginkan pulseaudio dan jack berjalan jika mereka sampai pada titik di mana mereka membutuhkan jack karena sebagian besar pemutar media browser tidak tahu jack! ..sayangnya.

Saya terus melihat saran agar salah satu dari mereka berlari pada suatu waktu yang bagi saya terasa seperti kompromi yang mengerikan. Ini agak tragis menurut saya bahwa kedua layanan ini yaitu jack dan pulseaudio meskipun keduanya berfungsi dengan sendirinya sangat buruk dikelola oleh kxstudio setidaknya itulah yang saya gunakan.

Jadi yang terjadi adalah:

  • jack tidak dapat memulai saat pulseaudio sedang berjalan (dan menggunakan driver kartu suara yang ingin digunakan yang cukup adil) sehingga perlu dimulai terlebih dahulu

  • pulseaudio perlu diarahkan ke jack setelah keduanya beroperasi dan berjalan

Cukup sederhana .. ya? Untuk alasan tertentu, saya memiliki kesedihan yang tak ada habisnya karena itu ..

Pertama saya pikir karena pulseaudio 4.0 tampaknya menjadi buggy dan mengacaukan driver alsa sehingga dalam beberapa situasi meninggalkannya terkunci dan oleh karena itu jack tidak dapat memulai walaupun pulseaudio tidak berjalan. (Mengatakan gagal untuk mengatur parameter penangkapan atau smtg seperti itu)

Apa yang saya lakukan pada akhirnya adalah

  • menghapus jack dan pulseaudio sepenuhnya (dengan find dan rm -rf: D setelah apt-get purge)
  • menginstal pulseaudio 11 (dari sumber)
  • jack terpasang dan libs (libjack-dev)

dalam urutan ini dan kemudian saya akhirnya membuat mereka berjalan secara normal melalui qjackctl yang memastikan mereka mulai dengan cara yang benar (memuat jack sink di pulseaudio, dan menetapkannya sebagai default).

Btw, saya melihat Cadence direkomendasikan sebagai gantinya dan saya tidak mengerti mengapa bagi saya sepertinya sampah dibandingkan dengan qjackctl.

Bagaimanapun, masalah memulai jack menggunakan qjackctl membutuhkan waktu dan untuk menghindari waktu tunggu di setiap boot Anda dapat menggunakan fitur life saver dari kde yang memuat sesi sebelumnya. Pastikan Anda tidak memiliki qjackctl di autostart karena Anda akan berakhir dengan satu lagi contoh di setiap reboot terlepas dari singleton = true setting (kereta kereta sepanjang malam).

Ini karena saya tidak merasa mengutak-atiknya lagi seperti menulis skrip cerdas yang akan memastikan pulseaudio down (atau ditangguhkan) mulai jack dan periksa apakah itu dimulai dengan benar, kemudian mulai pulseaudio, load jack module dll.

Kalau tidak mengandalkan OS untuk memulai daemon dan memuat konfigurasi dengan benar akan menjadi skenario normal (sehat) namun sepertinya tidak terjadi.

Selamat bersenang-senang..

Negru Voda
sumber
0

Saya menjalankan Linux Mint 19.1. Setelah mencoba semua solusi yang berbeda, hal-hal masih tidak berfungsi dengan baik untuk saya.

Akhirnya, saya bisa menyelesaikan semua masalah saya dengan mengikuti langkah / instruksi dalam video: Tautan

Pada dasarnya, ini menginstal aplikasi dari repositori Kxstudio. dan mereka memiliki skrip untuk mengkonfigurasi semuanya dengan sempurna pada saat startup.

Tujuan akhir saya adalah dapat merekam input melalui antarmuka saya (Scarlett solo) sambil dapat menjalankan / merekam suara dari aplikasi lain (desktop, browser)

joe_maya
sumber