Làm cách nào để sử dụng JACK và Pulseaudio / ALSA cùng một lúc trên cùng một thiết bị âm thanh?


30

Ví dụ, bất cứ khi nào tôi khởi chạy hydro, nó sẽ phá vỡ âm thanh của tôi trong tất cả các ứng dụng khác sử dụng Pulse, chẳng hạn, tôi không thể phát video trong Chrome sau khi đã khởi chạy Hydrogen một lần, cho đến khi tôi khởi động lại PC hoặc thực hiện tải lại sudo alsa. Tôi đã tìm thấy những người có vấn đề tương tự, nhưng không có hướng dẫn thực tế để khắc phục vấn đề này, thường có các liên kết đến http://jackaudio.org/pulseaudio_and_jack (đã chuyển đến http://jackaudio.org/faq/pulseaudio_and_jack.html ) Tôi đang sử dụng Ubuntu Studio 14.04 64 bit.

THAY ĐỔI nếu điều này thực sự không thể đạt được, ai đó có thể cho tôi biết cách sử dụng Jack trên một soundcard và Pulse trên một soundcard khác không? Bằng cách này, tôi chỉ có thể cắm thẻ âm thanh USB khi tôi cần JACK.

Xin đừng bắt tôi sử dụng windows.


Sau khi nghiên cứu thêm, dường như có một vài cách để làm cho điều này hoạt động, xem tại đây: github.com/jackaudio/jackaudio.github.com/wiki/, Tuy nhiên, trong trường hợp của tôi, tất cả những thứ này sẽ giết tất cả đầu ra Audio vĩnh viễn.
Andreas Hartmann

Câu trả lời:


24

Kể từ ngày 16.04, mọi thứ trở nên đơn giản hơn rất nhiều :)

Chỉ cần cài đặt qjackctlpulseaudio-module-jackmô-đun:

apt-get install qjackctl pulseaudio-module-jack

Sau đó cấu hình qjackctlđể chạy lệnh sau sau khi khởi động. Sao chép nó vào "Cài đặt ..."> "Tùy chọn"> "Thực thi tập lệnh sau khi khởi động":

pacmd set-default-sink jack_out

Và đó là nó. Pulseaudio sẽ nhận ra (thông qua D-Bus) rằng JACK đã bắt đầu và tự động sẽ định tuyến âm thanh đến nó. Khi JACK bị dừng, Pulseaudio sẽ trở lại định tuyến bình thường và bắt đầu gửi âm thanh trực tiếp vào thẻ.

Vì vậy, (gần như) theo mặc định Pulseaudio thực hiện thiết lập chi tiết ở trên bởi mmv-ru.


Đây là giải pháp dễ nhất tôi đã thấy cho đến nay! Cuối cùng tôi có thể sử dụng jack mà không tắt tất cả mọi thứ khác! Cảm ơn bạn.
kapcom01

8
pactl set-default-chìm jackDef -> "Thất bại: Không có thực thể nào như vậy"
Karl Morrison

1
Điều này làm việc cho tôi khi các giải pháp khác không có, cảm ơn rất nhiều!
malte

2
Lệnh đúng là 'pacmd set-default-chìm jackDef'. Thật không may, tôi không thể sửa câu trả lời vì một chỉnh sửa phải có nhiều hơn 6 ký tự! :-(
Todd Chaffee

2
@KarlMorrison, có lẽ bạn cần phải thực hiện pactl load-module module-jack-sink channels=2pactl load-module module-jack-sourcetrước đó, thấy @ kim-tucker câu trả lời.
naktinis

17

Video Youtube này: "Jack và PulseAudio Cùng nhau là bạn bè - Linux" dường như có một số câu trả lời:

Chìa khóa của giải pháp dường như là đảm bảo giắc cắm mô-đun pulseaudio được cài đặt với:

aptitude install pulseaudio-module-jack

sau đó sudo chỉnh sửa tệp /etc/pulse/default.pa để bao gồm hai dòng dưới phần trình điều khiển âm thanh tải theo cách thủ công:

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

sau đó - tôi nghĩ - khởi động lại pulseaudio. Tôi mới khởi động lại PC (lười biếng, tôi biết) và nó đã có tác dụng ... bắn Ardor không còn giết pulseaudio, họ chơi với nhau rất vui vẻ.


BTW, bạn cũng có thể thêm các mô-đun một cách nhanh chóng, bằng cách sử dụngpactl load-module ...
0__

9

Chỉ cần vượt qua nhiệm vụ chung của Jack và Pulse cùng tồn tại trên Fedora. Nói chung tôi hài lòng với Pulseaudio, nhưng đôi khi cần âm thanh Jack.

Giải pháp của tôi làm việc trên Fedora 23.

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

Đừng chạm vào /etc/pulse/default.pa!

Cấu hình qjackctl

Cài đặt

Có một đoạn có liên quan là ~ / .config / rncbc.org / QjackCtl.conf

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

Tùy chọn Tên của chìm cho pactl có thể được tìm thấy bằng lệnh:

pacmd list-sinks

Có thêm một đoạn ~ / .config / rncbc.org / QjackCtl.conf để hiển thị các lệnh đầy đủ

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

Linh tinh Ở đó, "Kích hoạt giao diện D-Bus" quan trọng đối với chính Qjackctl.

Nó hoạt động như thế nào

Bây giờ trên PC khởi động chỉ hoạt động với PulseAudio. Tất cả tự động làm việc như không có Jack.

Sau khi ra mắt Qjackctl,

  1. Tập lệnh khởi động Qjackctl tạm dừng thẻ âm thanh chính trong Plseuaudio và cho phép Jackj truy cập vào nó "pactl Suspend-chìm alsaDefput.pci-0000_00_1b.0.analog-stereo 1"
  2. Jack bắt đầu qua d-bus "jack_control start"
  3. Xung tự động phát hiện jack bắt đầu qua D-Bus và tải jack jack và nguồn jack.
  4. Qjackctl sau khi kịch bản Khởi động thay đổi chìm mặc định trong Pulse thành jack thừng. (Tôi gặp nó không tự thực hiện được)

Vì vậy, hệ thống được cấu hình lại để sử dụng "Xung trên đầu Jack". (Ở đó tôi bỏ qua việc tạm dừng đầu vào phần cứng, vì dù sao tôi cũng không sử dụng nó)

Nếu không kiểm tra "Dừng máy chủ âm thanh JACK trên ứng dụng exti", tôi có thể đóng Qjackctl và chạy lại nó không làm phiền thiết lập.

Sau khi chặn Jack bằng Qjackctl, tất cả quay trở lại Pulse không bị xáo trộn!

  1. Jackd dừng bởi Qjackctl qua dbus - tùy chọn "Kích hoạt giao diện D-bus".
  2. jack-source và jack-chìm được loại bỏ khỏi Pulseaudio automaticaly bằng d-bus
  3. mặc định chìm trong âm thanh Pulse chuyển sang thẻ âm thanh vì jack-out biến mất
  4. Qjackctl sau khi kịch bản Tắt máy kích hoạt thẻ âm thanh trở lại trong Pulseaudio "pactl Suspend-chìm alsaDefput.pci-0000_00_1b.0.analog-stereo 1"

Công cụ được sử dụng

  1. jackd (từ gói pulseaudio-utils)
  2. jack_control (từ gói ack-audio-Connection-kit-dbus)
  3. Qjackctl (từ gói pulseaudio-utils)
  4. pactl để kiểm soát Pulseaudio từ sctipts (từ gói pulseaudio-utils)

Câu trả lời này không rõ ràng về cách cấu hình được thực hiện. Có phải nó chỉ được thực hiện thông qua Qjackctl? Nếu vậy, các tập tin cài đặt cấu hình là gì và chúng được đặt như thế nào?
Faheem Mitha

Cấu hình ban đầu được thực hiện thông qua trình quản lý gói. jackg start / stop cấu hình lại thông qua các tập lệnh jack-audio-Connection-kit-dbus và Qjackctl.
mmv-ru

Tôi hiểu rồi. Một số chi tiết dọc theo những dòng đó sẽ vô cùng hữu ích. Những chi tiết đáng chú ý là thiếu từ các câu trả lời khác, và thông tin trên mạng. Tôi không muốn cấu hình mọi thứ thông qua GUI nếu có thể. Bạn có thường xuyên trong trò chuyện AU không? Nếu vậy, chúng ta có thể thảo luận về nó ở đó.
Faheem Mitha

Qjackctl có thể được cấu hình thông qua gui như ảnh chụp màn hình hiển thị. Trong Trả lời tôi hiển thị các phần của .config / rncbc.org / QjackCtl.conf để hiển thị các dòng script đầy đủ.
mmv-ru

Không đủ danh tiếng để mời trò chuyện. Mời tôi.
mmv-ru

7
  • Vấn đề là Hydrogen (như Ardor) khởi động jackd khi khởi động nhưng không đóng nó khi thoát:
    Nhưng bạn có thể chạy killall jackdtrong một thiết bị đầu cuối sau khi thoát Hydrogen.

  • Một cách phức tạp để sử dụng cùng lúc phần mềm Jack và pulseaudio là cài đặt "pulseaudio-module-jack" (cũng cài đặt qjackctl (gui cho jackd) và pavucontrol nếu không có). Khởi động lại pulseaudio pulseaudio -k.
    Bây giờ hãy đóng các ứng dụng âm thanh (Jack và pulseaudio),
    chạy jackd bằng cách sử dụng qjackctl (nhấp vào nút bắt đầu) ( tùy chọn dbus phải được chọn trong cài đặt qjackctl cuối cùng ).
    Trong tab "thiết bị đầu ra" của Pavucontrol, nút "thiết bị mặc định" màu xanh lục gần nút "jack chìm"
    Bây giờ phần mềm pulseaudio và Hydrogen sẽ chạy cùng lúc.

  • Sử dụng qjackctl, trong tab "cài đặt" đầu tiên, bạn có thể thay đổi thiết bị âm thanh Jackd.


3

Nó có thể dễ dàng hơn nhiều bây giờ. Điều làm việc cho tôi ngày hôm nay, để đáp ứng nhu cầu thực sự cơ bản của tôi, sau khi cài đặt Linux Mint 18.2 mới (cơ sở gói Ubuntu 16.04) là:

  1. Sử dụng Synaptic để cài đặt QSynth và QJackCtl.

  2. Sao chép (các) phông chữ âm thanh cần thiết vào một thư mục thích hợp như /usr/share/sounds/sf2/

  3. Trong QSynth Cài đặt : dưới âm thanh thay đổi tab Audio Driver để PulseAudio .

  4. Trong Cài đặt QSynth : trong SoundFonts : Mở ... và chọn một tùy chọn.

  5. Trong Cài đặt QJackCtl> Cài đặt> Nâng cao :

    Tiền tố máy chủ: pasuspsender - /usr/bin/jackd

  6. Trong Cài đặt QJackCtl> Tùy chọn :

    Thực thi tập lệnh sau khi khởi động:

    pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source; pacmd set-default-sink jack_out
    
  7. Trong QJackCtl Connect: ALSA : tham gia mục nhập bàn phím bên trái để FLUID Synth ở bên phải.

  8. Trong Cài đặt hệ thống chính cho âm thanh, chọn thiết bị đầu ra cần thiết.

Bây giờ tôi có thể phát bàn phím trong khi xem video (ví dụ: trên YouTube bằng Firefox) - trước đây tôi chỉ có thể thực hiện một trong số này tại một thời điểm mà không có nhiều điều chỉnh mà tôi có thể theo dõi.

Hy vọng rằng sẽ giúp được ai đó, hoặc khuyến khích họ thử lại :-).


2

Cách dễ nhất để định tuyến tất cả hệ thống để chạy với jack:

cài đặt, dựng lên

sudo apt-get install qjackctl pulseaudio-module-jack

Mở qjackctl. Trong Cài đặt> Tùy chọn>

Kiểm tra tập lệnh Thực thi sau khi khởi động và dán này:

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

Kiểm tra tập lệnh Thực thi sau khi Tắt máy và dán đoạn này:

killall jackd

Bây giờ bắt đầu qjack và mở cài đặt âm thanh của bạn. Bạn sẽ tìm thấy cổng đầu ra Pulse Audio Jack Sink. Chọn nó và tất cả hệ thống sẽ đồng bộ hóa. Nếu bạn dừng máy chủ Jack / qjack, âm thanh sẽ trở lại cổng Mặc định của bạn một lần nữa.

Đây là cái nhìn tổng thể


0

Tất nhiên người ta sẽ muốn cả pulseaudio và jack chạy nếu họ đến điểm mà họ cần jack vì hầu hết người chơi phương tiện trình duyệt không biết jack! ..không may.

Tôi liên tục thấy đề nghị chỉ có một trong số họ chạy vào một thời điểm mà dường như tôi thích một sự thỏa hiệp khủng khiếp như vậy. Theo tôi, có một chút bi thảm là hai dịch vụ này là jack và pulseaudio mặc dù cả hai chức năng đều được kxstudio quản lý rất kém, ít nhất đó là những gì tôi đang sử dụng.

Vì vậy, những gì xảy ra là:

  • jack không thể khởi động trong khi pulseaudio đang chạy (và sử dụng trình điều khiển soundcard mà nó muốn sử dụng đủ công bằng) vì vậy nó cần được khởi động trước

  • pulseaudio cần được chỉ vào jack một lần cả khi chạy và chạy

Khá đơn giản..ey? Vì những lý do nhất định, tôi đã đau buồn vô tận với nó ..

Đầu tiên tôi nghĩ bởi vì pulseaudio 4.0 có vẻ có lỗi và làm rối trình điều khiển alsa nên trong một số trường hợp, nó bị khóa và do đó jack không thể khởi động ngay cả khi pulseaudio không chạy. (Nói không thể đặt tham số chụp hoặc smtg như thế)

Những gì tôi làm cuối cùng là

  • đã loại bỏ hoàn toàn cả jack và pulseaudio (với find và rm -rf: D sau khi apt-get purge)
  • cài đặt pulseaudio 11 (từ nguồn)
  • đã cài đặt jack và đó là libs (libjack-dev)

theo thứ tự này và cuối cùng tôi đã cho chúng chạy bình thường qua qjackctl, điều này đảm bảo chúng bắt đầu đúng cách (tải jack cắm chìm trong pulseaudio và đặt nó làm mặc định).

Btw, tôi thấy Cadence được đề nghị thay thế và tôi không hiểu tại sao đối với tôi nó dường như là rác rưởi so với qjackctl.

Dù sao, vấn đề là bắt đầu jack sử dụng qjackctl mất một thời gian và để tránh thời gian chờ đợi ở mỗi lần khởi động, bạn có thể sử dụng tính năng tiết kiệm cuộc sống này của kde để tải phiên trước đó. Hãy chắc chắn rằng bạn không có qjackctl trong tự động khởi động mặc dù bạn sẽ kết thúc với một phiên bản nữa trong mỗi lần khởi động lại bất kể cài đặt singleton = true (lỗi có lỗi suốt đêm).

Điều này là do tôi không còn cảm thấy loay hoay với nó nữa, chẳng hạn như viết một tập lệnh thông minh sẽ đảm bảo pulseaudio bị tắt (hoặc bị treo) jack và kiểm tra xem nó đã khởi động đúng chưa, sau đó khởi động pulseaudio, tải mô-đun jack, v.v.

Nếu không, việc dựa vào HĐH để khởi động trình nền và tải cấu hình chính xác sẽ là kịch bản bình thường (lành mạnh) tuy nhiên dường như điều đó không xảy ra.

Chúc vui vẻ..


0

Tôi đang chạy Linux Mint 19.1. Sau khi thử tất cả các giải pháp khác nhau, mọi thứ vẫn không hoạt động trơn tru với tôi.

Cuối cùng, tôi đã có thể giải quyết tất cả các vấn đề của mình bằng cách làm theo các bước / hướng dẫn trong video: Liên kết

Về cơ bản, nó cài đặt các ứng dụng từ kho Kxstudio. và họ có một kịch bản để cấu hình mọi thứ hoàn hảo khi khởi động.

Mục tiêu cuối cùng của tôi là có thể ghi âm đầu vào thông qua giao diện của tôi (Scarlett solo) trong khi có thể chạy / ghi âm từ các ứng dụng khác (máy tính để bàn, trình duyệt)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.