Як користуватися JACK та Pulseaudio / ALSA одночасно на одному аудіопристрої?


30

Щоразу, коли я запускаю водень, він порушує моє звучання у всіх інших програмах, які використовують Pulse, наприклад, я більше не можу відтворювати відео в Chrome після того, як один раз запустив Hydrogen, доки не перезавантажую комп'ютер або не зроблю sudo alsa принудительно перезавантажити. Я знайшов людей із подібними проблемами, але не існує фактичного посібника з виправлення цього питання, часто є посилання на http://jackaudio.org/pulseaudio_and_jack (який перейшов на http://jackaudio.org/faq/pulseaudio_and_jack.html ) я використовую 64-бітний Ubuntu Studio 14.04.

АЛЬТЕРНАТИВНО, якщо цього справді неможливо досягти, чи може хтось сказати мені, як користуватися Джеком на одній звуковій картці та Pulse на іншій? Таким чином я міг підключити USB-звукову карту лише тоді, коли мені потрібно JACK.

Будь ласка, не змушуйте мене використовувати Windows.


Після додаткових досліджень, мабуть, є кілька способів, як це можна зробити, дивіться тут: 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 символів! :-(
Todd Chaffee

2
@KarlMorrison, вам, ймовірно, потрібно виконати, pactl load-module module-jack-sink channels=2а pactl load-module module-jack-sourceдо цього див. Відповідь @ kim-tucker.
naktinis

17

На це відео на Youtube: "Джек і PulseAudio разом як друзі - Linux", здавалося, мали деякі відповіді:

Ключовим моментом рішення стало те, що імпульсний модуль-джек встановлений за допомогою:

aptitude install pulseaudio-module-jack

потім редагуйте файл /etc/pulse/default.pa, щоб включити два рядки під розділ завантаження аудіо-драйверів вручну:

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

потім - я думаю - перезапуск pulseaudio. Я щойно перезапустив ПК (лінивий, я знаю), і він працював частуванням ... вистрілюючи Ардора вже не вбивали пульс-аудіо, вони грали щасливо разом.


До речі, ви також можете додавати модулі під час pactl load-module ...
руху

9

Щойно пройшов квест про співіснування Джека та Пульсу на Fedora. Взагалі я задоволений Pulseaudio, але іноді потрібне аудіо Джека.

Моє рішення, що працює над 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 для показу повних команд

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

Різне Там "Включити інтерфейс D-Bus" важливий для самого Qjackctl.

Як це працює

Тепер на завантажувальному ПК працюйте лише з PulseAudio. Всі автоматичні роботи як без Джека.

Після запуску Qjackctl,

  1. Сценарій запуску Qjackctl призупиняє первинну звукову карту в Plseuaudio і дозволяє Jackj отримати доступ до неї "pactl suspend-sink alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Джек стартував над d-bus "jack_control start"
  3. Імпульс автоматично визначає запуск роз'єму через D-Bus та завантажує раковину та джерело гнізда.
  4. Qjackctl після сценарію запуску змінює раковину за замовчуванням у Pulse на jack_out. (Я зустрічаю це не зробив сам) "pactl set-default-sink jack_out" (спочатку це виглядає непотрібним, оскільки всі запущені клієнти ПА перейшли на новий раковину, але нові програми застрягли на призупиненій раковині без цієї команди)

Тож система переналаштована на використання "Pulse on the Jack". (Там я пропускаю призупинення введення обладнання, тому що я його не використовую)

Якщо "Зупинити аудіосервер JACK на додатку exti" не встановлено, я можу закрити Qjackctl і повторно запустити його, не порушуючи налаштування.

Після зупинки Джека на Qjackctl, всі повертаються назад до простого безладного Пульсу!

  1. Зупинка Джекда від Qjackctl через dbus - опція "Увімкнути інтерфейс D-шини".
  2. джек-джерело та гніздо-раковина видалено з Pulseaudio автоматично, d-bus
  3. раковина за замовчуванням у Pulse аудіо перемикається на аудіокарту, оскільки гніздо вимикає
  4. Qjackctl після сценарію вимкнення активує звукову карту назад у Pulseaudio "pactl призупинити мийку alsa_output.pci-0000_00_1b.0.analog-stereo 1"

Використовувані інструменти

  1. джекд (від пакету pulseaudio-utils)
  2. jack_control (з пакету ack-audio-connection-kit-dbus)
  3. Qjackctl (від пакету pulseaudio-utils)
  4. pactl для управління Pulseaudio від sctipts (з пакету pulseaudio-utils)

Ця відповідь не є явною щодо того, як здійснюється конфігурація. Це робиться виключно через Qjackctl? Якщо так, то в яких файлах налаштовано конфігурацію та як вони встановлюються?
Faheem Mitha

Початкова конфігурація здійснюється через менеджер пакунків. конфігурація запуску / зупинки jackg за допомогою сценаріїв jack-audio-connection-kit-dbus та Qjackctl.
mmv-ru

Розумію. Деякі деталі в цих рядах були б дуже корисними. Ці деталі, зокрема, відсутні в інших відповідях та інформації в мережі. Я вважаю за краще не налаштовувати речі за допомогою GUI, якщо можливо. Ви зазвичай в чаті AU? Якщо так, ми можемо це обговорити там.
Faheem Mitha

Qjackctl можна налаштувати через gui, як показують скріншоти. У відповідь я показую частини .config / rncbc.org / QjackCtl.conf, щоб показати всі рядки сценарію.
mmv-ru

Недостатньо репутації для запрошення до чату. Запросіть мене.
mmv-ru

7
  • Проблема полягає у запуску водневого (як Ardor) джек-станції при запуску, але не закривайте його при виході:
    але ви можете запуститись killall jackdу термінал після виходу водню.

  • Складний спосіб одночасно використовувати програмне забезпечення Jack та pulseaudio - встановити "pulseaudio-module-jack" (також встановити qjackctl (gui для jackd) та pavucontrol, якщо таких немає). Перезапустіть pulseaudio pulseaudio -k.
    Тепер закрийте аудіо програми (Jack та pulseaudio),
    запустіть jackd за допомогою qjackctl (натисніть кнопку "Пуск") ( опція dbus повинна бути обрана в налаштуваннях qjackctl остання вкладка )
    На вкладці "Вихідний пристрій" Pavucontrol натисніть зелену кнопку "Пристрій за замовчуванням" поруч із "гніздом для мийки".
    Тепер програмне забезпечення імпульсного аудіо та Hydrogen має працювати одночасно.

  • Використовуючи qjackctl, на першій вкладці "Налаштування" ви можете змінити аудіопристрій Jackd.


3

Зараз це може бути набагато простіше. Що сьогодні для мене працювало, щоб задовольнити мої дійсно основні потреби, після нової установки Linux Mint 18.2 (база пакетів Ubuntu 16.04) було:

  1. Використовуйте Synaptic для встановлення QSynth та QJackCtl.

  2. Скопіюйте необхідні звукові шрифти у відповідну папку, наприклад /usr/share/sounds/sf2/

  3. У програмі QSynth Setup (Налаштування QSynth) : на вкладці « Audio » змініть Audio Driver на pulseaudio .

  4. У програмі QSynth Setup : під SoundFonts : Відкрийте ... та виберіть потрібний.

  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. У програмі QJackCtl Connect: ALSA : приєднайтесь до запису клавіатури зліва до FLUID Synth праворуч.

  8. У основних системних налаштуваннях для звуку виберіть необхідний пристрій виводу.

Тепер я можу грати на клавіатурі під час перегляду відео (наприклад, на YouTube, використовуючи Firefox, наприклад) - раніше я могла робити лише одну з них одночасно, без великої кількості перетворень, за якими я рідко могла відслідковувати.

Сподіваємось, що хтось допоможе, або спонукає їх спробувати ще раз :-).


2

Найпростіший спосіб прокласти маршрутизацію всієї системи за допомогою джека:

Встановити

sudo apt-get install qjackctl pulseaudio-module-jack

Відкрити qjackctl. У налаштуваннях> Параметри>

Перевірте команду Execute script після запуску та вставте це:

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

Перевірте команду Execute script після завершення роботи та вставте це:

killall jackd

Тепер почніть qjack і відкрийте свої звукові налаштування. Ви знайдете порт «Pulse Audio Jack Sink Output». Виберіть його, і вся система синхронізується. Якщо ви зупините сервер / кджак Джека, звук знову повернеться до вашого порту за замовчуванням.

Ось загальний вигляд


0

Звичайно, хочеться, щоб і pulseaudio, і jack працювали, якщо вони дісталися до того місця, коли їм потрібен джек, оскільки більшість медіаплеєрів браузера не знають джека! ..на жаль.

Я постійно бачив пропозицію провести лише один із них у той час, який мені здається таким жахливим компромісом. На мою думку, трохи трагічно, що ці два сервіси, тобто джек і pulseaudio, хоча обидва функціональні самі по собі настільки погано керуються kxstudio, принаймні, що я використовую.

Отже, що відбувається:

  • гніздо не може запускатися під час запуску pulseaudio (і використовуючи драйвер звукової карти, який він хоче використовувати, що досить справедливо), тому його потрібно запустити спочатку

  • pulseaudio потрібно вказувати на гніздо один раз як вгору, так і під час роботи

Досить просто .. так? З певних причин у мене було нескінченне горе з цим, тому що ..

По-перше, я думаю, тому що pulseaudio 4.0 здається помилковим і псує драйвер alsa, так що в деяких ситуаціях він залишає його заблокованим, а тому гніздо не може запускатися, хоча pulseaudio не працює. (Каже, не вдалося встановити параметри захоплення або smtg подібним чином)

Що я зрештою зробив

  • повністю видалено і джек, і pulseaudio (з find і rm -rf: D після apt-get очищення)
  • встановлений pulseaudio 11 (з джерел)
  • встановлений джек і це libs (libjack-dev)

в такому порядку, і тоді я, нарешті, змусив їх нормально працювати через qjackctl, що гарантує, що вони запускаються правильно (завантажує раковину гнізда в pulseaudio і встановлює її за замовчуванням).

До речі, я бачив, що замість цього рекомендується каденція, і я не розумію, чому мені це здається сміттям порівняно з qjackctl.

У будь-якому випадку проблема запуску джека за допомогою qjackctl займає деякий час, і щоб уникнути часу очікування під час кожного завантаження, ви можете використовувати цю функцію збереження життя kde, яка завантажує попередній сеанс. Переконайтеся, що у вас немає qjackctl при автозапуску, хоча ви в кінцевому підсумку будете мати ще один екземпляр при кожному перезавантаженні, незалежно від налаштування singleton = true (баггі-баггі всю ніч).

Це тому, що я більше не відчував себе з цим, наприклад, написання розумного сценарію, який дозволить переконатися, що pulseaudio знищено (або призупинено) стартовий джек і перевірте, чи він запустився належним чином, а потім запустіть pulseaudio, завантажте модуль роз'єму тощо.

Інакше покладатися на ОС для запуску демонів і завантаження конфігурації правильно було б нормальним (здоровим) сценарієм, однак, схоже, це не відбувається.

Весело ..


0

У мене працює Linux Mint 19.1. Після спробу всіх різноманітних рішень, для мене все одно не буде працювати нормально.

Нарешті, мені вдалося вирішити всі мої проблеми, дотримуючись кроків / інструкцій на відео: Посилання

В основному, він встановлює програми із сховищ Kxstudio. і у них є сценарій, щоб все налаштувати ідеально при запуску.

Моєю кінцевою метою було можливість записувати вхід через мій інтерфейс (Скарлетт соло), одночасно маючи можливість запускати / записувати звук з інших програм (настільних ПК, браузера)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.