LINUX.ORG.RU

Pipewire - неизбежная... победа!

 , ,


5

2

Есть snap, flatpak, wayland. Вроде хорошее дело, но - они добавляют изоляцию между приложениями, и такие штуки как jack, pulseaudio уже не могут работать как раньше. Надо что-то решать. И тут появляется надежда - pipewire. Но надежда ложная, потому что это катастрофа!

Нет, надежда все-таки есть.

Вот мои претензии (которые в итоге разрешились):

1. Обязательный ресемплинг. Как известно, pulseaudio поддерживало две частоты дискретизации микшера - основную и альтернативную. Это позволяло, в случае воспроизведения например только музыки со spotify переключать микшер на частоту дискретизации потока и УБРАТЬ ресемплинг! Если воспроизводит только одно приложение, ресемплинга быть НЕ ДОЛЖНО! Потому что он не нужен. Pipewire не позволяет, и похоже что реализовать это в той архитектуре, которую заложили, будет весьма непросто. На практике он всегда делает ресемплинг и всегда портит звук.

Последняя версия pipewire поддерживает до 16 значений частоты дискретизации и будет переключаться на нужную, когда это возможно.

Переключение РАБОТАЕТ уже сейчас, на версии из Git! На релизе 0.3.33 у меня не работает.

КАК СДЕЛАТЬ:

В pipewire.conf пишем:

default.clock.rate          = 48000
default.clock.allowed-rates = [ 44100, 48000 ]

Можно перечислить в allowed-rates до 16 значений. Все!

ТЕПЕРЬ - если воспроизведения не было, и запустить на воспроизведение ОДНО приложение, pipewrire будет переводить себя и звуковую карту на частоту дискретизации этого приложения, и ресемплинга НЕ БУДЕТ.

2. При работе с jack клиентами может меняться размер буфера. Занавес! То есть я играю на гитаре, и тут мне меняют размер буфера? А ничего что это приведет к слышимому и чувствуемому изменению задержки звука? Как играть??? Так НЕЛЬЗЯ ДЕЛАТЬ, а надо делать ровно наоборот. Я уже молчу про то, что изменение на лету размера буфера может просто крашануть jack приложение, которое такого бреда не ожидало!

3. Для того, чтобы вообще хоть как-то задать размер буфера для jack клиентов, надо запускать приложение с переменной окружения PIPEWIRE_LATENCY. То есть мне теперь все приложения из консоли стартовать? Или все desktop файлы править? С настоящим jack это решается элементарно - программой управления типа qjackctl. Там просто выбирается какой буфер, и все приложения используют его. Должно быть ВОТ ТАК.

Решение:

pw-metadata -n settings 0 clock.force-quantum <size>

устанавливает фиксированный размер буфера.

Или в jack.conf:

node.lock-quantum = true

4. Нельзя нормальным образом поменять частоту дискретизации при работе с jack клиентом. Используется та, на которую настроен pipewire своим конфигом. С нормальным jack частота просто выбирается в qjackctl. А с pipewire что, мне править конфиг и перезапускать его, или как?

Решение, можно менять на лету:

pw-metadata -n settings 0 clock.force-rate <samplerate>

В итоге, имеем огромные практически нерешаемые проблемы на уровне архитектуры, из-за которых pipewire идет в противоположную от нужной сторону.

Последний релиз и коммиты, которые делаются прямо сейчас показывают, что развитие пошло именно в нужную сторону.

★★★★

Последнее исправление: James_Holden (всего исправлений: 4)
Ответ на: комментарий от James_Holden

Это всё я уже проходил в начале своего знакомства в Линуксом. Гибкость такого подхода оставляет желать лучшего.

Скажу честно, если бы не NixOS или нечто подобное, на Линукс я бы никогда не перешёл.

Flatpak юзал бы на чужой тачке или огороженной платформе типа Эльбруса. А так он мне преимуществ не даёт.

pingvinek
()
Последнее исправление: pingvinek (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну и используй nix на любой системе, хоть на Darwin

Мне наоборот нужно конфигурирование системы декларативным способом

pingvinek
()
Ответ на: комментарий от James_Holden

Арч сломаю легко, гарантий там никаких. Обновляюсь я вообще раз в релиз.

Ну и удобного конфигурирования арч не даст, как чего настроил потом попробуй вспомнить. В NixOS ты можешь без проблем свои модули конфигурации писать.

pingvinek
()
Ответ на: комментарий от James_Holden

А какая задача? Может это делается как-то иначе.

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

pekmop1024 ★★★★★
()

Есть snap, flatpak, wayland. Вроде хорошее дело,

нет, плохое

firkax ★★★★★
()

Последний релиз и коммиты, которые делаются прямо сейчас показывают, что развитие пошло именно в нужную сторону.

А сколько было боли и страданий :-)

Потом еще внезапно окажется, что и Гном3 шагает в правильном направлении.

utanho ★★★★★
()
Ответ на: комментарий от utanho

А я на гном бочки не качу. Так, слегка подкатываю.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от utanho

А насчет боли и страданий - учти, что я ждал этого итога 2 года, а не время существования треда. Тред был создан когда уже терпение лопнуло от ожидания.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Поэтому чтобы раскрыть преимущества линукса надо использовать вещи типа флатпака.

Понимаю что флатпак (он лучший среди аналогов snap, AppImage) это будущее, но сейчас он работает не очень, программы из него и snap значительно тормозят систему.
Причины я думаю: дублирование библиотек (экономия памяти), fuse.
Что удивительно cgroup, lxc, не так тормозят систему.
Поэтому пока лучше скачать - собрать или установить из репозитория.

s-warus ★★★
()

Захотеть PipeWire как раз в процессе прочтения данного топика, причем, когда еще уважаемый ТС этот PipeWire... не одобрял, короче...

Для любителей deb пакетов и репозиториев есть такое

https://launchpad.net/~pipewire-debian/ archive/ubuntu/pipewire-upstream

0.3.34-2 только что там появилась. Как говорит ТС,

ТЕПЕРЬ - если воспроизведения не было, и запустить на воспроизведение ОДНО приложение, pipewrire будет переводить себя и звуковую карту на частоту дискретизации этого приложения, и ресемплинга НЕ БУДЕТ.

так что, допроснусь и буду ковырять.

Dementy ★★★
()
Ответ на: комментарий от s-warus

программы из него и snap значительно тормозят систему

Snap тормозит, flatpak нет.

Я пишу сейчас с ноутбука 11-летней давности, с 4 Гб памяти и HDD 5400 оборотов. Большинство участников этого форума посчитают такую машину мусором.

Так вот она очень хорошо подходит для выявления тормозов и расхода памяти. Сразу все видно.

Прямое сравнение показывает, что flatpak не тормозит.

Еще года два назад, был спор и мы прямо в треде замеряли время запуска гимпа из репов и из флатпака. Даже на моей дохлой машине разница была микроскопическая.

Так что нет - установть из репозитория не лучше. Репозитории это камень на шее линукса, чем быстрее он будет сброшен тем лучше.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от Dementy

Удобно проверять это через pw-top, там сразу видно какая частота дискретизации у приложения, какая у звуковухи.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Репозитории это камень на шее линукса, чем быстрее он будет сброшен тем лучше.

Проблема называется - «Hell dll» и она решаема …

anonymous
()
Ответ на: комментарий от anonymous

Проблема называется - «Hell dll» и она решаема

Не так. Проблема репов - это dependency hell. Dll hell это как раз когда репов нету + ума нету (как в ранней винде).

Решается она отказом от классических репов и переходом на что-то более осмысленное типа Nix либо контейнеризации.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Не так. Проблема репов - это dependency hell.

А я о чем?
https://ru.wikipedia.org/wiki/DLL_hell

Эту проблему давно нужно устранить.
Возможны разные подходы к этому.
У Microsoft кстати вполне приемлемый /но не панацея/ подход …

anonymous
()
Ответ на: комментарий от James_Holden

Спасибо. Дойдет дело - буду пробовать.

Пока что вот еще нашел https://launchpad.net/~shamoi/ archive/ubuntu/easyeffects , но какое-то оно не внушающее. А других EasyEffects не видно, только с Гитхаба.

Понимаю, что придет момент, и придется пользоваться флетпаком. Хочется, чтобы пришел он попозже. А там, или я умру, или флетпак умрет, или компьютеры запретят.

Dementy ★★★
()
Ответ на: комментарий от Dementy

EasyEffects мне тоже не нравится. Эффекты нужны конечно, только реализации пока, на мой взгляд, не совсем такие как надо.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от Dementy

Понимаю, что придет момент, и придется пользоваться флетпаком.

Почему? Его история тянется с 2007 года.

fornlr ★★★★★
()
Ответ на: комментарий от James_Holden

EasyEffects мне тоже не нравится.

Ну, перед тем, как искать EasyEffects на ланчпаде и таком всяком, я искал регулятор тембра к PipeWire. Не нашел. Только эквалайзер в составе EasyEffects. Видел способ прилепить LADSPA-LV2-VST, но какой-то такой, что всю пользу от PipeWire перегадит.

Или есть что-то хорошо работающее?

ЗЫ. Родной пульсовский эквалайзер тоже не нравится, будто сделан он еще неплохо, а приделан как получилось.

Dementy ★★★
()
Ответ на: комментарий от fornlr

А потому, что не человек для компьютера, а компьютер для человека. Точнее, для человека программы. Вот, майнтейнеры забьют на репы, и всё. И зачем мне ноутбук, который перестал делать нужную мне работу?

Dementy ★★★
()
Ответ на: комментарий от Dementy

абы ка бы

Я уже написал «с 2007 года». И как-то незаметно. А тут вот завтра вжух!

Трах-бабах от сопровождения приложения в Flatpak из-за багов и всего прочего не меньше. Ленивые все в статических бинарниках в Толстых deb или tar.gz — это намного проще.

Мне вот на практике одно приложение подвернулось, GIMP. И то на сайте прям предупреждают, что это экспериментальный и нерекомендуемый способ.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 3)
Ответ на: комментарий от fornlr

GIMP

О!

Цитата прямо вот

If available, the official package from your Unix-like distribution is the recommended method of installing GIMP!

The flatpak build is new and has known limitations, though it will likely provide faster updates, following GIMP releases closely.

И где этот the official package? В Убунтах 2.8 болтался, когда 2.10 уже стареть начинал. Потом 2.10 появлялся, но какой-то кривой. Потом Otto Meier забил. Хорошо, в 20.04 прям вот хороший 2.10.18 собрали. Но он там до сих пор 2.10.18. А на gimp.org стабильный, хороший 2.10.24, но с надписью new and has known limitations.

Так что, имхо, GIMP как раз хороший пример. Кстати, кто видел, есть ли GIMP в междуэлтээсных Убунтах, какой он версии и не присунут ли он там уже́ в snap?

Мы можем считать, что не за флетпаком будущее, но нам это будущее могут сделать.

Dementy ★★★
()
Ответ на: комментарий от James_Holden

Snap тормозит, flatpak нет.
Еще года два назад, был спор и мы прямо в треде замеряли время запуска гимпа из репов и из флатпака. Даже на моей дохлой машине разница была микроскопическая.

Очень может быть, я когда-то ставил именно snap. Но подтормаживание начиналось и без запуска самой программы, видно влияние инфраструктуры пакета и snap (linphone нужны были кодеки).

Я пишу сейчас с ноутбука 11-летней давности, с 4 Гб памяти и HDD 5400 оборотов. Большинство участников этого форума посчитают такую машину мусором.

Машина тогда наверно была слабее 11 летнего, прошлогодний Asus VivoBook X540YA-DM801D с процессором Е2 1гГц (иногда ), озу 4Гб, hdd 1Tb, экран 1960х1080.
Сейчас нарадоваться не могу, перешёл на 12 летний Thinkpad T420.

Но на flatpak пока не готов переходить, без видимой причины.

s-warus ★★★
()
Ответ на: комментарий от Dementy

Мы можем считать, что не за флетпаком будущее, но нам это будущее могут сделать.

Всем н..ть …

Вот в чем проблема!
anonymous
()
Ответ на: комментарий от Dementy

И где этот the official package? В Убунтах 2.8 болтался

Ubuntu 18 на половину снята с поддержки.

В Ubuntu 20 уже GIMP 2.10

fornlr ★★★★★
()
Ответ на: комментарий от s-warus

я когда-то ставил именно snap. Но подтормаживание начиналось и без запуска самой программы, видно влияние инфраструктуры пакета и snap (linphone нужны были кодеки).

Да! Как сказал когда-то Dementy,

Chromium из Debian Buster в Ubuntu 20.04

Самая полезная команда для сокращения времени загрузки Ubuntu - sudo apt purge snapd.

Snap действительно тормозит. И так, и, особенно, загрузку. Загрузку тормозит так, что это чувствуется без systemd-analyze. Да, тормозит просто так, из любви тормозить, даже без установленных snap-пакетов, вполне самостоятельно.

Dementy ★★★
()
Последнее исправление: Dementy (всего исправлений: 1)
Ответ на: комментарий от s-warus

snap, hdd, 12 лет железу

Тут да. Только боль с таким сочетанием.

fornlr ★★★★★
()
Ответ на: комментарий от Dementy

2.10.18. А на gimp.org стабильный, хороший 2.10.24

Если ты сможешь назвать, что нового и нужного для тебя там есть, то это другое дело.

Мне в Ubuntu 18.04 вот понадобилась поддержка HEIF, а 2.8 GIMP не умеет этого.

Занырнул в Flatpak. С выходом Ubuntu 20.04 вынырнул, отмылся от этого, и теперь использую GIMP с репозиториев Ubuntu.

fornlr ★★★★★
()
Ответ на: комментарий от fornlr

что нового и нужного для тебя там есть

Не помню. В новостях что-то было, что интересно стало попробовать.

Сами по себе факты о чем-то говорят. Убунту, вроде как, для человеков (а не для бездушных серверов). Человеки любят фоточки, новенькое, и чтобы это новенькое было заметно сразу, при запуске программы, по цвету и размеру кнопочек.

И вообще, у меня Kubuntu. Я не в куrсе. Правда, что в Ubuntu DE снапнутое? Ну, тогда трындец. Будущее уже́ сделали, а многим это будущее и вставили.

Dementy ★★★
()
Ответ на: комментарий от peregrine

ещё лет 10 и Wayland-ом станет можно пользоваться.

Как раз к этому времени решат писать новый велосипед, который исправит все фатальные недостатки вяленого. Традиция такая в опенсорсе.

Vier_E ★★★
()
Ответ на: комментарий от Dementy

Правда, что в Ubuntu DE снапнутое? Ну, тогда трындец

нет.

Каштан.

anonymous
()
Ответ на: комментарий от James_Holden

deb вредил линуксу 25 лет, тормозил развитие, отгонял пользователей и разработчиков от этой ОС. И надо выбивать дубиной из обедненного урана эту чушь из голов поврежденных debом людей.

А чем он тормозил и отпугивал?

P.S. Всегда знал, что rpm - наше всио, а не этот ваш богомерзкий deb.

Vier_E ★★★
()
Ответ на: комментарий от Vier_E

А чем он тормозил и отпугивал?

Ни чем особенным.

Тут стандартный приём этакого оптимиста в сырую фигню.

Когда проверенное и массовое решение с проблемами, расматривается как не удачное - там же проблемы есть!

А сырая мало популярная фигня превозносится как спасительное золотое руно. Ведь если оно малопопулярно, то и о проблемах мало известно. Да и если там есть проблемы, то обязательно всё исправят, как технология станет популярной и массовой

Каштан.

anonymous
()
Ответ на: комментарий от Vier_E

А чем он тормозил и отпугивал?

Прибитием прикладных программ к конкретному релизу конкретного дистрибутива. Это в корне неверно, не может работать, поэтому все эти годы линукс не может подняться. Никому такая бредовая система на десктопе не нужна.

Даже у FreeBSD есть разделение на базовую систему/приложения (порты). deb дал старт ситуации, когда в линуксе всякое разделение было уничтожено. Даже если сравнивать со Slakware - пока-пока /usr/local. Из-за чего системой просто невозможно пользоваться нормально на десктопе. Можно только превозмогать, или идти на крайние меры типа Gentoo, когда ты берешь и начинаешь вручную управлять сборкой всего, делая как нужно.

rpm тут ничем не отличается, все то же самое.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от anonymous

Когда проверенное и массовое решение с проблемами, расматривается как не удачное - там же проблемы есть!

Важно не то что они есть, а то что дальше они уже не решаются. Просто надо уметь видеть на несколько шагов вперед, а не играть в синдром утенка.

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

А проблемы flatpak решены быть могут. Вот и все.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от anonymous

Аргументация впечатляет. Мне очень важно мнение такого человека, у которого ума хватает аж чтобы отвечать как попугай. Это редкость.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Я тебе уже написал, что эта проблема решается ленивым DEB для разработчиков софта. Нужен boost? Суй. И без разницы какой он там в Ubuntu 20.04.

Flatpak это ничего не решит из-за черезмерной сложности и не ориентированности на десктопный результат. Тестовый полигон для OSTree - не более.

Каштан.

anonymous
()
Ответ на: комментарий от James_Holden

Причём пример же перед глазами - macOS. Где приложения в основном распространяют в этаких бандлах. Всё просто и все довольны.

Каштан.

anonymous
()
Ответ на: комментарий от anonymous

Я тебе уже написал, что эта проблема решается ленивым DEB для разработчиков софта

Ничего не решается. Ты не можешь забандлить все либы которые использует приложение - треснет зад каждое приложение так паковать. А если запаковывать не все, как это и делается - легко нарвешся на несовместимость версии libc, например.

Тут вот проблема даже AppImage собрать так чтобы он работал. Мне приходится debian oldstable для этого использовать. Иначе он тупо не запустится. А все почему - он бандлит не все либы. Часть использует из системы. А системы как стабильной платформы в линуксе нет, благодаря deb. В результате это работать нормально не может. Даже AppImage работать нормально не может, что еще надо чтобы очнуться??

Flatpak это ничего не решит из-за черезмерной сложности

Он простой как лапоть. Ничего сложного там вообще нет. Он даже проще чем deb.

Тестовый полигон для OSTree - не более.

Тебе так нравится быть попугаем? Это опять не твоя мысль. Ты ее спер и повторяешь как попка.

Причём пример же перед глазами - macOS. Где приложения в основном распространяют в этаких бандлах.

Очевидно, что у мака есть такая вещь как базовая система. Что и позволяет делать бандлы. В линуксе ее нет. Ты будешь всю систему в каждый пакет бандлить? Или как ты будешь решать, что бандлить а что нет?

James_Holden ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.