Звукостудия Linux (alsa+pulse+jack)

16 Февраль 2017

Анти-JACK

По прошествии времени я решил продолжить тему. Много воды утекло. Agilia Linux "приказала долго жить" и это очень жаль, хороший был дистрибутив. У меня другой ноутбук (DNS, 64-битный). А вместо Agilia была Linux Mint (mate), которую несколько месяцев назад я сменил на Ubuntu Studio, специализированный дистрибутив. Мои запросы к домашней звукостудии довольно скромные. Звукозапись с помощью Ardour и Audacity, и создание музыкальных композиций с помощью секвенсора с нотным редактором (не матричным, а именно - нотным). Ну, и ещё нужна возможность подключить миди-клавиатуру, чтобы сыграть "чижика-пыжика" одним пальцем.

Установив Ubuntu Studio я поначалу радовался и даже написал хвалебную заметку. Рассинхронизаций JACK'а было минимум и они были настолько слабыми, что на качество звука (по крайней мере, на слух) практически не влияли. Я установил секвенсор Rosegarden и для создания музыки пользовался связкой QjackCtl-Qsynth-Rosegarden, а экспорт аудио из Rosegarden осуществлял в Ardour. Всё было прекрасно, но недолго. Где-то за пол-года "жизни" Ubuntu Studio ядро системы обновилось 20 раз! Наконец - о чудо! - у меня появились проблемы со звуком. JACK начал "икс-сранить" с неимоверной силой. Но это ещё пол-беды. Что-то произошло с ALSA. Появились щелчки, пропадания звука и какой- странный баг, вроде эха. Допустим, певец делает паузу и во время паузы вдруг воспроизводится кусок предпоследнего слова из того, что звучало до паузы, длительностью примерно пол-секунды. Если это "эхо" попадает на последующий текст, то оно замещает часть текста. Поиски готовых ответов на этот вопрос результатов не дали. Легче снести систему и поставить другой дистрибутив - что я и сделал, установив Linux Mint.

Очередной раунд борьбы с JACK'ом результатов не дал. Поэтому я решил, что пора "сдаваться" и использовать только те программы, которые работают без него.

Звукозапись

Редактор Ardour4 работает не только с JACK'ом, но и без него.

NOTE:
После установки редактора, при запуске нужно создать сессию. При этом, в числе прочих опций, нужно выбрать драйвер - JACK или ALSA. Если при создании первой сессии выбран драйвер JACK, то, впоследствии, создать другую сессию с драйвером ALSA почему-то не получается (во всяком случае, у меня не получается). Где, в каком файле эта конфигурация прописывается, я пока не нашёл. Самый дешёвый способ её поменять - переустановить редактор. Итак! Для того, чтобы Ardour4 работал без JACK'a, нужно при создании первой сессии выбрать драйвер ALSA.

Редактор Audacity не использует JACK.

Электронная музыка

К сожалению, до недавнего времени я не обращал внимания на программу MuseScore. А зря.

Здесь я не буду описывать подробно работу с программой, статья не об этом. Добавлю только одно замечание.
NOTE:
Помимо создания нотных партитур, MuseScore можно использовать для исполнения музыки с помощью миди-клавиатуры. Для этого достаточно подключить миди-клавиатуру к компьютеру, запустить MuseScore, в настройках режима ввода нот включить MIDI-ввод, создать файл с нотоносцем (одним или несколькими), выбрать желаемый инструмент - и всё, можно играть. Если несколько нотоносцев для разных инструментов, то для того, чтобы выбрать нужный инструмент, достаточно выделить какой-нибудь из тактов на нотоносце.

Архаичный звуковой сервер JACK

Эту фразу я прочёл здесь (советую посетить), когда принялся искать отрицательные отзывы об этом "замечательном" сервере.

Немножко поговорим о достоинствах, которые приписывают JACK'у. Главное достоинство - низкие задержки в реальном времени. Это действительно так. Но имеет ли это значение теперь, когда быстродействие компьютера увеличилось многократно по сравнению... (и т.д.)? Второе преимущество - возможность коммутации разных программ между собой. Разумеется, так. Но есть программа Patchage, с помощью которой можно проделывать то же самое. Patchage при своём запуске запускает JACK, но его можно отключить в настройках. Например, можно запустить плагин yoshimi и подключить к нему миди-клавиатуру.

Теперь о мониторинге при записи аудио (пения, игры на инструментах). Якобы, при записи певец будет слышать в наушниках свой голос с задержкой, если не использовать JACK. Это очень неприятно, сбивает с ритма. Разумеется, JACK решает проблему. Но! Для того, чтобы создавать приличные аудио-записи, НЕОБХОДИМА ВНЕШНЯЯ АУДИО-КАРТА. А внешняя аудио-карта обеспечивает возможность мониторинга прямо с микрофона - при этом никаких задержек не возникает.

Наконец, о задержках звуков, извлекаемых с помощью миди-клавиатуры. Не используя JACK, я, как ни старался, не заметил на слух временно́й задержки между моментом нажатия клавиши и появлением звука в наушниках или динамиках. Наверняка, эадержка есть, поскольку любое устройство и любая программа такую задержку вносит и её можно измерить инструментально. Но длительность её некритична.

ALSA-Pulse-JACK

В отношении системных настроек я действую по принципу "гром не грянет - мужик не перекрестится". Поскольку серьёзных проблем ныне, когда ядро Linux - четвёртой версии, мною лично не замечено, то изменять настройки звука по умолчанию я не увидел смысла. Также, несмотря на то, что я стараюсь не использовать сервер JACK, удалять его тоже не вижу смысла. Может пригодиться.

Ещё раз о JACK'е. В поиске решения проблемы, я набрёл на англоязычную страницу, посвящённую настройкам JACK'а, откуда перепостил нижеследующую таблицу. Автор, в свою очередь, скопировал её отсюда. Насколько я понимаю, фишка состоит в том, что значения задержек представлены целыми числами, без дробей, и это должно резко снизить количество xrun'ов. Разумно. Но мне это не помогло, что ни о чём ещё не говорит, поскольку вариативность условий, в которых приходится работать звуковой подсистеме Linux, просто потрясающая.

(Frames [or buffer] / Sample Rate ) * Periods = Latency in ms:
( 16 / 48000 ) * 3 = 1
( 32 / 48000 ) * 3 = 2
( 64 / 48000 ) * 3 = 4
( 128 / 48000 ) * 3 = 8
( 256 / 48000 ) * 3 = 16
( 512 / 48000 ) * 3 = 32
( 1024 / 48000 ) * 3 = 64
( 2048 / 48000 ) * 3 = 128
( 32 / 96000 ) * 3 = 1
( 64 / 96000 ) * 3 = 2
( 128 / 96000 ) * 3 = 4
( 256 / 96000 ) * 3 = 8
( 512 / 96000 ) * 3 = 16
( 1024 / 96000 ) * 3 = 32
( 2048 / 96000 ) * 3 = 64
( 64 / 192000 ) * 3 = 1
( 128 / 192000 ) * 3 = 2
( 256 / 192000 ) * 3 = 4
( 512 / 192000 ) * 3 = 8
( 1024 / 192000 ) * 3 = 16
( 2048 / 192000 ) * 3 = 32

P.S.
На странице Композиции, в аудио-альбоме "Исповедь фагота" музыкальные пьески, начиная с "Вальса медвежат", написаны в MuseScore2, без Jack'а.
На этом пока всё. Спасибо за внимание smile


0 0 голосование
закрыто
спасибо
за ваш голос
Если есть желание что-нибудь написать, ЖМИ: Отзывы