PipeWire и Linux Audio

Не секрет, что под Linux с аудио немного сложновато исторически, а именно есть ALSA в качестве драйвера, хотя через неё напрямую можно играть звук; есть PulseAudio для обычного десктопа, чтобы подключать BT-наушники или убавить звук в отдельном приложении через трей; есть JACK для профессионального аудио — для звука с низкой задержкой.

К ALSA претензий лично я никаких не имею, так как здесь у меня не падает вся система из-за одного аудио-драйвера, как в винде то и дело случается.

PulseAudio сколько-то лет назад доставлял проблемы, из-за чего я стал блокировать свою встроенную аудио-карту, чтобы не было проблем с битрейтом. Мне не совсем понятен процесс, но иногда случалось, что в мою основную внешнюю аудио-карту звук шел не в том битрейте и звучит это, прямо скажем, не слушабельно. Обычно мне удавалось победить конфиг, а после что-то случилось и больше я этого не делал. То есть PulseAudio вроде как устаканилась и в качестве десктопной рулилки звука вполне окей.
Но только до момента, когда нужно использовать JACK. Вот тут начинается дурная канитель — нужно засуспендить PulseAudio, чтобы она не мешала JACK, а после выключения музсофта JACK почему-то продолжает работать, никак себя при этом не выдавая, а звука из плеера или браузера нет.

Сам по себе JACK — штука весьма неплохая. Она не только даёт аудио с низкой задержкой, как ASIO в винде, но и позволяет соединять любые аудио- и MIDI- входы и выходы разных программ. Собственно, вокруг него и вырос музсофт в Linux, так как прежде ничего для работы с низкой задержкой не было, а следовательно весь этот софт роутится через JACK как модули синтезатора на проводах. Есть и способ сохранять сессию, чтобы разом поднять 10 разных программ в нужном состоянии и продолжить работу, но мне такой подход не кажется удобным. Благо, в Linux появились нативные Reaper и Bitwig, а это серьезные DAW, и тут уже привычный подход — DAW сама разруливает состояние каждого плагина и их связи внутри себя, используя JACK только для связи со входами-выходами аудио-карты.

Какая нужда разделять обычное десктопное аудио и профессиональное? Абсолютно никакой и никто их не разделял. Просто так исторически сложилось и почему-то создатели PulseAudio совершенно не пеклись о работе с JACK или же его замене.

И вот в какой-то момент появляется PipeWire. Люди сразу завопили “нахера ещё один пшпшаудио?”, “зачем это не нужно?” и так далее. Я тогда затаил надежду и она оправдалась. Прошло немного времени и прямо сейчас у меня работает полная замена PulseAudio и JACK вместе взятых. PulseAudio она заменяет без проблем, без пинков, без настроек. Я просто поставил её, удалил PulseAudio и всё.

С заменой JACK пришлось немного повозиться, но это совершеннейшая мелочь по сравнению со всем временем, что я убил на настройку JACK, а не работу с ним. Нужно было только указать размер блока и названия программ, которые требуют низкой задержки, что почти не отличается, например, от настройки ASIO4ALL под виндой.

Для десктопа она прекрасно работает и разработчики теперь взялись активнее допиливать PipeWire именно в качестве замены JACK, что меня, если судить по результатам, уже очень радует. Я надеюсь, что PulseAudio будет вытеснен и просто вымрет, а JACK если и выживет, то как некий ориентир, на деле заменяемый PipeWire в любом дистрибутиве.

Сейчас под Linux есть не одна вполне серьезная DAW, а что вообще замечательно — это мой незаменимый Reaper, давно стабильный, и Bitwig, который ещё не Ableton, но которому уже есть чем потеснить старшего. Некоторые компании, как U-he, стали портировать свои VST на Linux. Те, что ещё не портированы, судя по спискам, недурно запускаются через LinVst. Я даже смог в два нажатия установить полностью работоспособную Scala из AUR, чего ни разу ещё не случалось под виндой из-за необходимости доустанавливать всякие дополнительные рантаймы.

Года три назад я не сказал бы, что в ближайшие пять лет может случиться так, что я перекачусь со всем своим аудио-продакшном на Linux, но если учесть такие темпы, вероятность сильно повысилась и я с радостью это сделал бы. Пожалуй, немногое, что меня останавливает, это LinVst, так как это по сути запуск виндовых VST под Wine, что от версии к версии может разниться и подставить в ответственный момент, не запустившись.

Не думаю, что в ближайшее время увижу под Linux нативно все необходимые мне плагины, которыми постоянно пользуюсь, но подумываю об эксперименте: смогу ли я записать небольшой релиз на том, что уже есть?


P.S.

Что меня в таком вероятном сетапе радует, так это переносимость. Даже в случае с виндовымии VST это получается красиво, так как всё, что установлено в Wine, переносится чуть ли не простым копированием, не говоря уже о настройках нативного софта под Linux. Никакого реестра к счастью нет и не надо.
При необходимости переустановить систему, например, на другой компьютер или при смене дистрибутива развернуть готовый привычный сетап можно практически моментально. Нужно только поставить те же пакеты с DAW и плагинами, вероятно удалить PulseAudio (хотя некоторые дистрибутивы уже перешли на PipeWire), закинуть конфиги и приложения Wine по своим местам.

Не единожды я маялся с переустановкой винды, когда вроде бы поставив всё то же самое, что было в прежней системе, в проектах отвалится то одно, то другое. Да и сама установка по понятным причинам занимает куда больше времени. Был бы рад избавиться от этого раз и навсегда.


Софт

845 слов

2021-09-18 00:00 +0500

comments powered by Disqus