Как настроить jack linux

Обновлено: 04.07.2024

Одновременная работа JACK и PulseAudio невозможна и вряд ли будет возможна в обозримом будущем.

Можно запустить JACK из командной строки, например, так:

jackd -dalsa -dhw:SB -r48000 -p1024 -n2

но лучше воспользоваться программой QJackCtl, предоставляющей дружественный к пользователю интерфейс для запуска и остановки JACK и имеющей разумные настройки «по умолчанию».

Из визуальных редакторов соединений JACK в AltLinux есть Patchage. Кроме того, в QJackCtl встроен свой редактор графа соединений JACK, хотя и не такой красивый и удобный.

Это означает, что у JACK нет возможности использовать режим «реального времени». Некоторые приложения (например, Ardour) без режима реального времени просто не будут работать.

Скорее всего, это связано с тем, что ядро собрано с настройкой CONFIG_RT_GROUP_SCHED=y (на момент создания страницы с этой опцией собирается, например, альтовое ядро std-def). В таких ядрах у приложений, запускаемых от непривилегированного пользователя, нет доступа к RT-возможностям планировщика, даже если соответствующее разрешение прописано через механизм limits, пока эта возможность явно не делегирована пользователю через механизм cgroups.

Проверить, какое у вас ядро, можно так:

На проблемных ядрах эта команда выдаст

Убедиться, что cgroups не настроены и доступа к RT нет можно так:

(убедимся, что нет других причин, по которым мы не сможем работать в режиме «реального времени»),

$ chrt -f 80 echo "I'm chrt'ed!"

(попробуем поменять приоритет).

а на ядрах с CONFIG_RT_GROUP_SCHED=y ошибку:

chrt: failed to set pid 0's policy: Операция не позволена

Настроим через cgroups доступ к RT-возможностям планировщика ядра с помощью сервиса cgconfig (именно это решение рекомендуется авторами JACK). Для этого нужно поставить пакет cgroup, если он ещё не поставлен:

$ sudo apt-get install cgroup

дописать в /etc/cgconfig.conf:

а в /etc/cgrules.conf:

@audio cpu rtaudio/

после чего сделать сервисы cgred и cgconfig стартующими при запуске системы и перезагрузиться:

Теперь от пользователей, входящих в группу audio (убедитесь, что ваш пользователь в неё входит с помощью команды groups) JACK можно запускать в режиме «реального времени».

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

Пожалуйста, не заставляйте меня использовать окна.

С 16.04 все становится намного проще :)

Просто установите qjackctl и pulseaudio-module-jack модуль:

Затем настройте qjackctl запуск следующей команды после запуска. Скопируйте его в «Настройка . »> «Параметры»> «Выполнить сценарий после запуска»:

Вот и все. Pulseaudio распознает (через D-Bus), что JACK запустился, и автоматически направит аудио на него. Когда JACK остановлен, Pulseaudio вернется к нормальной маршрутизации и снова начнет отправлять аудио прямо на карту.

Таким образом (почти) по умолчанию Pulseaudio реализует настройку, описанную выше в mmv-ru.

Это самое простое решение, которое я видел до сих пор! Наконец я могу использовать домкрат, не отключая все остальное! Спасибо. pactl set-default-sink jack_out -> "Отказ: нет такого объекта" это работало для меня, когда другие решения не, большое спасибо! @KarlMorrison, вам, вероятно, нужно выполнить, pactl load-module module-jack-sink channels=2 а pactl load-module module-jack-source до этого смотрите ответ @ kim-tucker.

Ключом к решению, как оказалось, было обеспечение того, чтобы Pulse-Audio-Module-jack был установлен с:

затем sudo отредактировал файл /etc/pulse/default.pa, добавив две строки в раздел загрузки драйверов аудио:

тогда - я думаю - перезапуск пульсаудио. Я только что перезапустил компьютер (я знаю, что он ленивый), и это сработало… угроза «Ардора» больше не убивала pulseaudio, они счастливо играли вместе.

Кстати, вы также можете добавлять модули на лету, используя pactl load-module .

Только что прошел квест о сосуществовании Джека и Пульса на Fedora. Вообще я доволен Pulseaudio, но иногда нужен аудио Джек.

Мое решение работает на Fedora 23.

Не трогайте /etc/pulse/default.pa!

Настроить qjackctl

настройки

Там соответствующий фрагмент

Опции

Названия раковин для pactl можно найти по команде:

Есть еще один фрагмент

Разное

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

Как это работает

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

После запуска Qjackctl,

  1. Сценарий запуска Qjackctl приостанавливает основную звуковую карту в Plseuaudio и позволяет Джеку получить к ней доступ "pactl suspend-sink-alsa_output.pci-0000_00_1b.0.analog-stereo 1"
  2. Джек начал через D-Bus
  3. Импульс автоматически обнаруживает запуск разъема через шину D-Bus и нагрузку приемника и источник сигнала.
  4. Qjackctl после запуска скрипта меняет приемник по умолчанию в Pulse на jack_out. (Я встречаю это сам не сделал) "pactl set-default-sink jack_out" (сначала это выглядит ненужным, поскольку все запущенные клиенты PA переключились на новый приемник, но новые приложения застряли на приостановленном приемнике без этой команды)

Поэтому система перенастроена на использование «Импульса поверх Джека». (Там я пропускаю аппаратный ввод приостановить, потому что я не использую его в любом случае)

Если «Stop JACK audio server on exti приложения» не установлен, я могу закрыть Qjackctl и перезапустить его, не нарушая настройки.

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

  1. Отключение джека с помощью Qjackctl через dbus - опция «Включить интерфейс D-bus».
  2. jack-source и jack-раковина автоматически удаляются из Pulseaudio по шине d-bus
  3. приемник по умолчанию в Pulse Audio переключен на звуковую карту из-за исчезновения домкрата
  4. Qjackctl после завершения работы скрипта активирует звуковую карту обратно в Pulseaudio "pactl suspend-раковина alsa_output.pci-0000_00_1b.0.analog-стерео 1"

Используемые инструменты

  1. jackd (из пакета pulseaudio-utils)
  2. jack_control (из пакета ack-audio-connection-kit-dbus)
  3. Qjackctl (из пакета pulseaudio-utils)
  4. Pactl для управления Pulseaudio из sctipts (из пакета pulseaudio-utils)
Этот ответ не является явным о том, как выполняется конфигурация. Это сделано исключительно через Qjackctl ? Если да, то в каких файлах находятся настройки конфигурации и как они установлены? Начальная настройка производится через менеджер пакетов. изменение конфигурации запуска / остановки jackg с помощью сценариев jack-audio-connection-kit-dbus и Qjackctl. Понимаю. Некоторые детали в этом направлении были бы чрезвычайно полезны. Эти детали особенно отсутствуют в других ответах и ​​информации в сети. Я предпочел бы не настраивать вещи через графический интерфейс, если это возможно. Вы обычно в AU чате? Если это так, мы можем обсудить это там. Не хватает репутации, чтобы пригласить в чат. Пригласи меня.

Проблема в том, что при запуске запускается запуск водорода (как Ardor), но не закрывайте его при выходе:
но вы можете запустить killall jackd в терминале после выхода из водорода.

Сложный способ одновременно использовать программное обеспечение Jack и pulseaudio - это установить «pulseaudio-module-jack» (также установить qjackctl (gui для jackd) и pavucontrol, если его нет). Перезапустите pulseaudio pulseaudio -k .
Теперь закройте аудио приложения (Jack и pulseaudio),
запустите jackd с помощью qjackctl (нажмите кнопку запуска) ( опция dbus должна быть выбрана в последней вкладке настроек qjackctl ).
На вкладке Pavucontrol «устройство вывода» нажмите зеленую кнопку «устройство по умолчанию» рядом с «стоком разъема».
Теперь программное обеспечение pulseaudio и Hydrogen должны работать одновременно.

Используя qjackctl, на первой вкладке «Настройки» вы можете изменить аудиоустройство Jackd.

Теперь это может быть намного проще. То, что сработало для меня сегодня, чтобы удовлетворить мои действительно базовые потребности, после новой установки Linux Mint 18.2 (базовый пакет Ubuntu 16.04) было:

Используйте Synaptic для установки QSynth и QJackCtl.

Скопируйте необходимые звуковые шрифты в соответствующую папку, например /usr/share/sounds/sf2/

В программе настройки QSynth : под аудио изменения вкладки Audio Driver в PulseAudio .

В QSynth Setup : под SoundFonts : Open . и выберите один из них по необходимости.

В QJackCtl Setup> Настройки> Дополнительно :

Префикс сервера: pasuspsender - /usr/bin/jackd

В QJackCtl Setup> Options :

Выполнить скрипт после запуска:

В QJackCtl Connect: ALSA : присоедините запись клавиатуры слева к FLUID Synth справа.

В основных настройках системы для звука выберите необходимое устройство вывода.

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

Надеюсь, что это поможет кому-то или побудит их попробовать еще раз :-).

Откройте qjackctl. В Настройка> Параметры>

Установите флажок Выполнить скрипт после запуска и вставьте это:

Установите флажок Выполнить скрипт после завершения работы и вставьте это:

Теперь запустите qjack и откройте настройки звука. Вы найдете выходной порт Pulse Audio Jack Sink. Выберите его, и вся система будет синхронизирована. Если вы остановите Jack server / qjack, звук снова вернется к вашему порту по умолчанию.

Конечно, нужно будет работать и pulseaudio, и jack, если они дойдут до точки, где они нуждаются в jack, так как большинство медиаплееров в браузере не знают jack! ..к несчастью.

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

Итак, что происходит:

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

pulseaudio должен быть направлен на домкрат после запуска и запуска

Довольно просто .. да? По определенным причинам у меня было бесконечное горе с этим, потому что ..

Сначала я думаю, потому что pulseaudio 4.0, кажется, глючит и портит драйвер alsa, так что в некоторых ситуациях он оставляет его заблокированным, и поэтому jack не может запуститься, даже если pulseaudio не работает. (Говорит, что не удалось установить параметры захвата или SMTG, как это)

То, что я сделал в конце концов, было

  • полностью удалил jack и pulseaudio (с помощью команды find и rm -rf: D после очистки apt-get)
  • установлен Pulseaudio 11 (из источников)
  • установленный джек и его библиотеки (libjack-dev)

в этом порядке, а затем я наконец-то заставил их нормально работать через qjackctl, который гарантирует, что они запускаются правильным образом (загружает приемник jack в pulseaudio и устанавливает его по умолчанию).

Кстати, я видел, что вместо этого рекомендуется Cadence, и я не понимаю, почему для меня это кажется мусором по сравнению с qjackctl.

В любом случае, проблема в том, что запуск jack с использованием qjackctl занимает некоторое время, и чтобы избежать времени ожидания при каждой загрузке, вы можете использовать эту функцию спасения kde, которая заключается в загрузке предыдущего сеанса. Убедитесь, что у вас нет qjackctl в автозапуске, поскольку при каждой перезагрузке у вас будет еще один экземпляр, независимо от значения параметра singleton = true (глючит всю ночь).

Это связано с тем, что я больше не чувствовал, что с ним возиться, например, при написании интеллектуального сценария, который проверяет, что pulseaudio выключил (или приостановил) пусковое гнездо и проверил, правильно ли он запустился, затем запустил pulseaudio, модуль нагрузочного джека и т. Д.

Иначе полагаться на ОС для правильного запуска демонов и загрузки конфигурации было бы нормальным (здоровым) сценарием, однако, похоже, этого не происходит.


QjackCtl — удобная C++ / QT графическая оболочка (GUI) для управления звуковым сервером JACK.


JACK (Jack Audio Connection Kit / JACKIT) — звуковй сервер-демон, позволяющий с низкой задержкой соединять между собой так называемые "джэкифицированные" (jackified) приложения, предоставляя возможность передачи аудио и MIDI-данных.


Название "Jack Audio Connection Kit" переводится как "Набор для соединения аудио Джэк" и является рекурсивным акронимом. Создание звукового сервера реального времени JACK стало возможным благодаря появлению звуковой подсистемы ALSA, обеспечивающей возможность обмена между приложениями звуковыми данными с гарантируемой предельно низкой задержкой.



Звуковой сервер JACK доводит низколатентную концепцию ALSA (Advanced Linux Sound Architecture) до логического завершения, позволяя запущенным как его клиенты приложениям обмениваться звуковыми данными с очень низкой задержкой (вплоть до 2мс).




QjackCtl позволяет из удобной графической оболочки запускать/останавливать звуковой сервер JACK работающий в фоновом режиме и запускаемый из командной строки, диагностировать работу сервера, просматривать статистику работы, а также осуществлять визуальное соединение звуковых приложений и коммутацию MIDI-приложений.




QjackCtl автоматически обнаруживает звуковое оборудование и выводит их списком, в котором пользователь задаёт маршрутизацию между портами разных приложений. Поддерживается выполнение пользовательских сценариев, реализован механизм JACK Transport (Коммутатор), позволяющий из одного JACK-клиента (ведущего/master) управлять воспроизведением данных в другом JACK-клинте (ведомом/slave), что позволяет (к примеру) синхронно запускать воспроизведение в драм-машине и MIDI-секвенсере.




QjackCtl позволяет сохранять заданные настройки JACK в "профилях" и переключаться между ними, опционально интегрируется в область уведомлений (системный трей), настройки сохраняет в конфигурационном файле (

/.jackdrc) или использовать собственный. Управление ориентировано на использование мыши, ведётся подробный лог событий.



наш гитарист-звукарь постигает прелести работы с JACK

UPD извините, не ожидал такого количества посетителей на этот сайт и наш аккаунт там пока заблокировали (для бесплатных действуют ограничения). Держите вот ссылки на гуглодиск
ссылка 1,
ссылка 2

1. Что использовалось

1.1. Список ПО
  • Ubuntu Studio 13.04
  • Ardour 3.5.74
  • сервер JACK (ну куда ж без него)
  • наборы LADSPA-плагинов Calf и TAP
  • драм-машина Hydrogen
  • Linux Multimedia Studio
  • sf2-бас Naturally Decaying B-Guitars
  • библиотека ударных BigMono
1.2. Оборудование
  • системный блок:
    • тип ЦП QuadCore AMD Athlon II X4 640, 3000 MHz 4 ядра
    • системная плата Biostar A770L3
    • системная память 8192 МБ 2x4096
    • видеокарта XFX Radeon HD 6850 1Гб
    • монитор BenQ EW2430 24"
    • монитор Samsung SyncMaster 191T 19"
    • Behringer ULTRAVOICE XM1800S
    • винтажный Shure SM'57 (USA)
    • Октава МК-319 (Россия)

    2. Туц-туц-туц или водородный ударник

    Ударника у группы не было изначально — сразу было решено выступать под фонограммы, сделанные на драм-машине Hydrogen (русскоязычный сайт). Самая лучшая из дефолтных библиотек (на мой взгляд) UltraAcoustick. Однако мы использовали библиотеку BigMono от Analogue Drums.

    2.1. Описание библиотека BigMono от Analogue Drums
    • значительно превосходит дефолтные библиотеки по звучанию;
    • бесплатна.
    • весит в 15-20 раз больше (185 мб);
    • несвободна;
    • не настроена (придётся настраивать громкость и панорамирование).
    2.2. Наши настройки библиотеки

    Можете скачать файлик drumkits.xml и закинуть его в папку . /drumkits/Big Mono (вместе с Wave) или настроить по изображениям:




    1. HiHat Closed(LH)
    2. HiHat Closed(RH)
    3. HiHat Open
    4. HiHat Semi-Open
    5. HiHat Pedalled

    Недостающие семплы возьмите в библиотеке UltraAcoustick.

    3. Во всём виноват басист

    Басиста у нас тоже нет, поэтому использовали Naturally Decaying Bass Guitars в формате SF2.
    SF2 Player входит в состав LMMS в качестве инструмента. В свойствах SF2 Player нужно указать файл бас-гитары и выбрать Naturally Finger Bass в свойстве Patch. В LMMS пока плохо реализована поддержка сервера JACK, поэтому в Ardour бас-партия добавлялась стандартно через экспорт/импорт wave. Эффектами обрабатывали только в Ardour.

    4. Теперь о сведении.

    Сведением занимался гитарист группы. Он не планирует заводить аккаунт на Хабре, потому просто расписал мне основные моменты своей работы над синглом.
    Изначально планировалось использовать Ubuntu Stidio 12.04 (LTS), которая установилась и работала из коробки лишь с незначительными проблемами. Но тут вокалу потребовался экссайтер (он­ позволяет добавить вокалу гармоник, сделав звучание лучше), однако этот плагин присутствует только в актуальной версии Calf. Которая из-за зависимостей так и не поставилась на 12.04. С тяжёлым сердцем решили поставить 13.10. Опыт не обманул. Мы вернулись к тёплым ламповым падениям Ardour, JACK и другого ПО, зато получили Ardour 3 и желанный экссайтер.

    4.1. Настройка сервера JACK

    JACK Audio Connection Kit (JACK)— звуковой сервер-демон, позволяющий с низкой задержкой соединять между собой поддерживающие эту технологию аудио-программы. Он требуется для работы Ardour.
    В поставке Ubuntu Studio идёт графическая утилита qjackctl. Хорошо весь процесс настройки описан здесь.
    После запуска qjackctl следует выбрать параметры и поставить галочку (если она не стоит) напротив пункта «Режим реального времени» (Realtime). Раз использовался мощный компьютер, частота дискретизации — 96000, периодов на буфер 3. Параметр «интерфейс» отвечает за выбор аудиоустройства. Звук (Audio) — дуплекс.
    С параметром «Выборок в буфере» (Frames/Period) возникли проблемы. При значении выше 1024 Ardour отказывался экспортировать, поэтому 1024 и оставил. Можно использовать и меньшее значение.

    4.2. Ardour 3.5.74
    4.3. Эффекты

    Плагины Calf уже называли на хабре лучшими из LADSPA. Мы добавим к ним ревербератор из набора TAP (TAP Reverberator). Однако и здесь не обошлось без проблем и поисков решения. Большинство эффектов TAP и некоторые другие пришлось исключить. Скажем, Calf Equalizer * Band добавлял в бас хрипы, особенно в низы. А Pitch Shifter-ы просто — ужасны. Если возникают большой импульс в начале/конце трека, треск на дорожках либо другие подобные проблемы — наверняка поможет отключение какого-нибудь эффекта. К счастью, основные типы эффектов предоставлены в нескольких вариантах.
    Для гитары существуют отдельный набор плагинов Guitarix. Перегруз из этого набора — лучший среди LADSPA по нашему мнению. Однако в данном случае он не понадобился, так как использовались перегрузы комбоусилителя и педали.

    4.4. Сведение ударных

    5. Подготовка сингла к публикации.

    6. Итоги

    Люди с тонкой и чувствительной ушой (sic!) независимо вынесли однозначный вердикт: чувствуется, что записывалось небрежно (на дешёвый микрофон и максимум с 3го дубля), однако сведение хорошее и итоговая запись — демо терпимого качества. Поставленная задача выполнена, и в дальнейшем мы продолжим использоваться тем же ПО. Надеемся, что в Ubuntu Studio 14.04(LTS) будет работать так же стабильно, как 12.04. Именно этого пока не хватает текущей версии дистрибутива.
    Хотелось бы, чтобы спустя некоторое время профессиональный звукорежиссёр опубликовал опыт работы на Ubuntu Studio со студийным оборудованием.

    UPD:
    Не включил полезные ссылки на весьма полезные, пусть и старые обзоры музыкального ПО из-под Linux — 7 статей:
    Обзор всего ПО(2008)
    Про Ardour и JACK (2009)

    Ещё раз упомяну про самоучитель по Hydrogen — я бы поставил ему среднее между 3 и 4 по пятибальной шкале, однако кому-нибудь может помочь набрать базу.

    Настоятельно рекомендую отказаться от использования сборки Ubuntu Studio.
    Я остановился на Kubuntu 12.04 LTS. На данный момент это лучшее что есть именно для мультимедиа.

    2) Есть очень классный хост для плагинов — Carla. В нем встроенная удобная панель для соединения виртуальными проводками.
    И управлять им можно по сети через протокол OSC. Есть готовый клиент, но под архитектуру x86.

    Ну и частоту процессора лучше задать максимальную и запретить смену.
    Потому что на перестройку тратится драгоценное время и от этого появляется джиттер.

    Читайте также: