Звук в Линуксе/ALSA и звуковой сервер JACK
Пользователям
править- Подсистемы и серверы
- Запись и представление звуковых данных
- Воспроизведение
- Считывание компакт-дисков
- Сжатие
- Тэги
Музыкантам
правитьСоздание звукового сервера реального времени JACK стало возможным благодаря появлению новой звуковой подсистемы Linux — ALSA, наконец-то обеспечивающей возможность обмена между приложениями звуковыми данными с гарантируемой предельно низкой задержкой. С ядрами Linux серии 2.4 ALSA работает как дополнительно устанавливаемый модуль. В ядрах серии 2.6 ALSA является стандартной звуковой подсистемой.
Существует небольшая разница в реализации исправлений для ядер серии 2.4 и ядер серии 2.6. В настоящее время рекомендуется использовать специально собранное ядро, находящееся в пакете kernel-image-wks*. Его установка также подразумевает установку всех дополнительных модулей к ядру, таких как драйвера к видеокартам nVidia.
Звуковой сервер JACK доводит низколатентную концепцию ALSA до логического завершения, позволяя запущенным как его клиенты приложениям обмениваться звуковыми данными с задержкой вплоть до 2 мс. Существует уже несколько десятков таких приложений, полный и постоянно обновляемый список которых находится по адресу http://jackaudio.org/applications
Звуковой сервер запускается при помощи команды jackd (от суперпользователя) или jackstart (от непривелегированного пользователя. Справку по параметрам запуска можно получить, запустив любую из команд с ключом --help, либо вызвав на экран man-страницу.
Примечание: если JACK не запускается на ALSA-поддерживаемой звуковой карте, попробуйте явно указать параметры -p и -n и поэкспериментировать с их значениями. Например -p 256 -n 3 для звуковой карты на чипсете ymfpci.
Более простой способ запустить JACK — воспользоваться графической оболочкой к нему. Эта программа называется QJackCtl (пакет qjackctl) и помимо собственно выполнения функции запуска и останова сервера обладает рядом дополнительных возможностей:
- диагностика работы сервера;
- статистика работы сервера;
- визуальное соединение звуковых приложений;
- визуальный коммутатор MIDI-приложений.
QJackCtl также позволяет выполнять заранее написанные сценарии (на любом языке) после запуска и остановки сервера JACK.
В JACK также реализован механизм JACK Transport, позволяющий из одного JACK-клиента (ведущего, master) управлять воспроизведением данных в другом JACK-клиенте (ведомом, slave). Это делает возможным, к примеру, синхронный запуск воспроизведения в драм-машине и MIDI-секвенсере.