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)

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

Вот, я из даташита на свой alc269 процитирую

Вот я и говорю что странно, я видел не одну машину с разными alc кодеками и все они hi-res держали. И по даташиту должны.

Только 48 - это было характерно для AC-97 более старого стандарта.

Возможно, какие-то проблемы с драйверами под этот кодек. Не верю, что аппаратно он выше 48 кГц не может.

Честно, не честно - другой вопрос. Тут анонимус вполне может быть прав, насчет падения характеристик. Но хоть как-то оно работать должно.

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

Нет.

Был Джек с Пульсой. Ставил в QjackCtl 256 самплов в буфере и 48, он паказывал, что задержка будет 10,сколько-то миллисекунд. Ставил те же 256 и 44,1 - показывал 11 с чем-то. Разница невеликая, но на мысли наводит.

48 - это было характерно для AC-97 более старого стандарта.

А не 44,1 у AC97 было? Или это у еще более старых. Просто помню, что во времена AC97 на компьютерах mp3 слушали, а кино смотреть даже на VHS меньше нервов было.

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

Ставил в QjackCtl 256 самплов в буфере и 48, он паказывал, что задержка будет 10,сколько-то миллисекунд. Ставил те же 256 и 44,1 - показывал 11 с чем-то

А что не так? Все правильно. Это простейшая математика. Свойства ЦАП тут вообще не причем, я не понимаю на какие мысли это наводит и какие далеко идущие выводы ты делаешь из математики 5 класса школы.

44100 / 48000 = 10 / х

х = 48000 * 10 / 44100 = 10,88 мс

И что это должно значить?

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

Что-то я туплю. Зачем делить одну частоту дискретизации на другую частоту дискретизации? Тем более, если предполагается, что когда устройству приказано работать на 44100, 48000 вообще нет? Или в данном случае 48000 это что-то другое?

Что там показывает QjackCtl я тоже не совсем знаю. Вот, если поставить 3200 и 256, он показывает 16 миллисекунд. Откуда он берет, ну, не 480000, а 512000 при 256 самлах? 256х2000? Откуда эти две тысячи? Где-то столько в рублях я года четыре назад отдал за те две звуковухи. Откуда он это знает?..

Короче, гистерезисные петли, а у меня машина времени на Д7Ж.

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

Вот, если поставить 3200 и 256, он показывает 16 миллисекунд

Ну посчитай

256 / 32000 * 2 = 0.016 секунды.

Зачем делить одну частоту дискретизации на другую частоту дискретизации?

Это называется - пропорция, проходят дети в 4 или 5 классе вроде )))

QjackCtl считает цифры так как я написал. Ты видишь результат. От твоей звуковухи это вообще не зависит, тем более ты по этой цифре не определишь что она ресемплит и как.

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

Пропорция - пропорцией, а откуда в ней в первый раз 48000 взялись, я так и не понял.

А откуда в этот раз двойка? Два канала, левый и правый? Или АЦП+ЦАП?

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

Ну ты пишешь

Ставил в QjackCtl 256 самплов в буфере и 48, он паказывал, что задержка будет 10,сколько-то миллисекунд. Ставил те же 256 и 44,1 - показывал 11 с чем-то

То есть при 48000 - задержка 10, при 44100 - задержка 11.

Составляем пропорцию, получаем что - если при 48000 задержка 10, то при 44100 задержка будет 10,88 или 11 приблизительно.

Давай иначе посчитаем, будет понятнее.

256 / 48000 * 2 = 10,66 мс

То есть не 10 ровно, а 10.66 должно высвечиваться.

256 / 44100 * 2 = 11,6 мс.

Вот это именно то, что ты видел в QjackCtl. Так и должно быть.

Двойка оттуда, что QjackCtl считает ЦАП+АЦП.

James_Holden ★★★
() автор топика

Ладно. Я... Я придуриваться (почти) завязываю.

Когда в буфере бывает по 256 выборок, периодов на буфер, минимум, два !вот она, двойка-то!, буфер перетряхивается 32000 раз в секунду, возня, теоретически, займет не больше шестнадцати миллисекунд.

Откуда вот тут Pipewire - неизбежная... победа! (комментарий) 48000 - я так и не понял.

Так же я не помню, с чего это мне в моск встряло, что при меньшей частоте дискретизации задержка будет меньше?.. Скорее всего, с фактической задержкой так и было. Большая частота хочет больше вычислительных мощностей в других местах, не в ЦАП и АЦП. Если в этих других местах еще и ресамплинг делается, общая задержка вообще раздуется до пахабных размеров. Подкреплен рефлекс был, когда я на своей встройке пробовал частоты, отличные от 48000. Или хрипело-икало, или стукнул по микрофону, а потом этот стук в наушниках услышал.

Так или иначе, но это настолько мне в голову встряло, что с PipeWire я эту встройку на частотах, отличных от 48000, даже и не щупал. Вот, завтра тоже делать нечего будет, так я default.clock.rate и default.clock.allowed-rates поковыряю.

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

Встройка-то моя? Написано в даташите, что держит, и это только на впуск. На выхлоп, написано, и 192 держит. Но, всё равно, если и деожит, то вопрос, как? DAC/ADC, или встроенным процессорком? Завтра поковыряю. Сегодня уже чаю и спать.

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

Встроенный процессорок, или что ты под ним понимаешь, это неотъемлемая часть DAC/ADC. Я же уже писал, что DAC работает на весьма высокой частоте. Без встроенного процессора-преобразователя туда он вообще работать не может.

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

@James_Holden - РЕСПЕКТ ВАМ!

на днях у вас были посты о flatpak …

Расскажу вам утренний детектив с Visual Studio на тему https://ru.wikipedia.org/wiki/DLL_hell /в Linux https://ru.wikipedia.org/wiki/Dependency_hell/

Решил произвести рефакторинг названия структуры.
Конечно пересобрал все проекты в правильном порядке, а в OLE не удается создать один из объектов …
Visual Studio сообщает: error MSB8011: Failed to register output. Please try enabling Per-user Redirection or register the component from a command prompt with elevated permissions.

Сообщение вообще то ни как не локализует проблему.
Единственная от него польза - «не могу создать dll».

Работаю с Visual Studio много лет и знаю где нельзя полагаться на ее сообщения.

Все зависимые lib собраны, а объект в OLE не создается?

Вообщем причина была в SQLMeta.lib.
Это SQLite для которого разработан sln и исходный текст находится в проекте
не в виде одного сишного файла, а в виде сишных файлов /для удобства отладки/.
Кроме того провел рефакторинг SQLite, добавил/изменил/ …

Так вот сборку dll согласно SQLMeta Visual Studio не проводила и радостно рапортовала, что все dll созданы.

Но «нас на мякине не проведешь».

Вообщем в исходных кодах SQLMeta изменения не проводились, а зависимости в сторонних *.h, используемых ей поменялись.

Visual Studio этого НЕ УВИДЕЛА.

Вообщем подправил исходниках SQLMeta *.h пересобрал и все

Ok!

Что касаемо Linux, то в нем просто ПРОВАЛ в архитектуре deb …

Нужно или исправить или разработать новый формат хранения /скорее всего так будет лучше/
anonymous
()

Итак, сделал в pipewire.conf

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

Перезапустил юзерспейсный демон systemctl --user --now restart pipewire-media-session.service и посмотрел pw-top

S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR  NAME
!   28      0      0   0.0µs   0.0µs  0.00  0.00    0  Dummy-Driver
!   29      0      0   0.0µs   0.0µs  0.00  0.00    0  Freewheel-Driver
!   38      0      0   0.0µs   0.0µs  0.00  0.00    0  Midi-Bridge
!   40      0      0   0.0µs   0.0µs  0.00  0.00    0  alsa_output.pci-0000_00_1b.0.analog-stereo
!   32      0      0   0.0µs   0.0µs  0.00  0.00    0  alsa_input.pci-0000_00_1b.0.analog-stereo
!   62      0      0   0.0µs   0.0µs  0.00  0.00    0  SMPlayer
Нормально, пока всё молчит. Включил музычку.
S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR  NAME
!   28      0      0   0.0µs   0.0µs  0.00  0.00    0  Dummy-Driver
!   29      0      0   0.0µs   0.0µs  0.00  0.00    0  Freewheel-Driver
!   38      0      0   0.0µs   0.0µs  0.00  0.00    0  Midi-Bridge
    40   2048  48000 188.8µs  61.9µs  0.00  0.00    0  alsa_output.pci-0000_00_1b.0.analog-stereo
    62   2646  44100  20.6µs 149.6µs  0.00  0.00    0   + SMPlayer
!   32      0      0   0.0µs   0.0µs  0.00  0.00    0  alsa_input.pci-0000_00_1b.0.analog-stereo
Опа! Музычка играет, ресамплинг идет.

Перезагрузил систему, всю, к фигам.

S   ID  QUANT    RATE    WAIT    BUSY   W/Q   B/Q  ERR  NAME                                                
!   28      0       0   0.0µs   0.0µs  0.00  0.00    0  Dummy-Driver
!   29      0       0   0.0µs   0.0µs  0.00  0.00    0  Freewheel-Driver
!   35      0       0   0.0µs   0.0µs  0.00  0.00    0  Midi-Bridge
    39   2048   44100 151.3µs  45.0µs  0.00  0.00    0  alsa_output.pci-0000_00_1b.0.analog-stereo
    50   2646   44100  43.1µs  78.5µs  0.00  0.00    0   + SMPlayer
!   40      0       0   0.0µs   0.0µs  0.00  0.00    0  alsa_input.pci-0000_00_1b.0.analog-stereo

Вот, теперь работает, как обещано. Замечена активность на 44,1, всё переключено на 44,1.

Однако, что это «всё», интересно. Какие взаимоотношения у PipeWire с ALSA? PipeWire нужна ALSA потому, что ALSA - это ядерный звуковой драйвер? Или ALSA нужна плееру, DE, оперционной системе... потому, что кто-то из них не знаком с PipeWire, зато знаком с ALSA?

---------------------------------------

К слову. Не так давно, но когда еще не интересовался PipeWire, видел совет направлять ALSA в плагин PulseAudio, который работает прямо с аудиодрайвером ядра. Если верить, то ALSA, значит, не звуковой драйвер ядра?

Не поленился, нашел, где я это видел. https://www.opennet.ru/tips/3141_pulseaudio_alsa_linux_sound_audio.shtml

UPD. Для Ъ

В настройках ALSA направляем вывод в PulseAudio-плагин hw, напрямую взаимодействующий со звуковым драйвером ядра без промежуточных преобразований, что позволяет сократить задержки при выводе звука.

/etc/asound.conf или /etc/alsa/conf.d/99-pulse.conf


   pcm.!default {
      type plug
      slave.pcm hw

      # по умолчанию:
      # type pulse 
      # fallback "sysdefault"

   }

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

Если верить, то ALSA, значит, не звуковой драйвер ядра?

В целом да, ALSA - это драйвер в ядре плюс библиотеки в юзерспейсе. Естественно, что приложение, которое выводит звук через ALSA, напрямую без всяких библиотек с ядром не работает. Как минимум нужна библиотека libasound.

Но самое главное - есть еще dmix, альсовский микшер. А вывод в hw - это в обход микшера, сразу на карту.

Вот хороший комментарий про этот момент, по твоей ссылке

ЧЕГО?! какой укурок это писал? hw - это прямой выход на карту, в обход всех потоковых микшеров. к pulseaudio оно никаким боком не относится. не говоря уже о том что оно подключено как plug, программно конвертирующий поток в форматы поддерживаемые оборудованием. если уж действительно хочется убить всё лишнее - «echo pcm.!default hw > ~/.asoundrc» сделает всё то же и даже лучше. но любое из этих двух решений сделает одновременное воспроизведение различными программами через alsa невозможным.

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

Короче, человек там нормальный (для кого-то) вариант посоветовал, только зря назвал плагин ALSA hw плагином PulseAudio. Возможно, сто́ит так попробовать. Ведь микшер ALSA и не нужен, раз есть микшер PipeWire.

Но перед этим, всё же, хочется уточнить. Зачем PipeWire вообще ALSA?

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

OK.

Тогда вот эти alsa_output.pci-0000_00_1b.0.analog-stereo и alsa_input.pci-0000_00_1b.0.analog-stereo - это ядерная часть? Или это куски юзерспейсного микшера?

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

Так-то оно так, что по идее и по уму... Иначе, всё так хорошо, и вдруг такой костыль. Если ядерная, то плагин hw, ясное дело, не нужен.

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

Не заикается, да?

Вот, что заметил. Когда джековая программа запущена, но молчит, а я смотрю утупчик в Хроме, оно, иной раз, попердывает.

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

Вот, я рассмотрел, что, когда работает джековая программа, буферы других программ такие, как хотят эти программы. Зато общий буфер ужимается до размера, равного тому, который указан для джека. Ну, типа, логично.

В pipewire.conf указал параметр default.clock.min-quantum = 256. Дефолтом там вообще 32 было. Хром щелкать перестал.

Дальше интересно. Запустил ToneLib-GFX. pw-top показывает, что у нее буфер 128, как для всех джековых и назначено. ToneLib-GFX в своих настройках показывает Audio buffer size 256 samples (5.3 ms).

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

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

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

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

Я бы не сказал, что приложения прям вот прибиты к конкретному релизу. Ну ок, в базовом репе зузи нет новой версии нужной проги, так чаще всего можно подключить дополнительный реп, где версия будет новее. Обычно помогает. Единственная серьёзная трабла в этом случае - зависимости. Но она тоже решаема, чаще всего. Ну а на вендоподход, когда приложуха тащит за собой все нужные ей компоненты, здесь принято делать «фи». Хотя если взять некоторые портированные гамесы, то они таки тащат либы с собой, но при этом ставятся не через штатный манагер пакетов, а просто распаковываются в любой каталог и работают.

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

То, что ты сделал с min-quantum, по моему, плацебо. Потестируй ещё.

А есть такая прога, чтобы замерить задержку между входом и выходом? Вклиниться на вход и выход гитарофх и замерить можно?

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

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

То, что ты сделал с min-quantum, по моему, плацебо. Потестируй ещё.

С чего бы? Это запрет жать соседские буфера. Моральный кодекс. А серьезно - сказано в jack.conf, что node.latency = 128/48000 - вот так и работайте, вот так они и работают. Сказано в pipewire.conf default.clock.min-quantum = 256 вот, всем прочим бюстгальтеры меньше 256-го номера не выдают.

Другое дело, что уменьшение до 128 буфера для программы, через которую гитару пропускаешь, уменьшит задержку только этой программе. А сигнал еще как-то туда запустить надо и как-то выпустить. Вот тут уже будет размер, тот, что для всех влиять. Я не зря вчера сказал, что в поведении без параметра default.clock.min-quantum есть логика.

А есть такая прога, чтобы замерить задержку между входом и выходом?

ХЗ.

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

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

Я придумал. Напишу вечером пульсометр на фаусте. Пульс выдал, и посчитал когда вернулся. Или James_Holden успеет раньше? :)

Хотя, тут вот какая штука - а сама эта программа будет работать с каким буффером? И будет ли для неё буффер, если она работает полностью виртуально, без подключения к физическим выходам?

И ещё такой вопрос - а с каким буффером работает вход с компа? Ведь он общий для всех и подключается в джековую прогу постолько поскольку.

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

Хотя, тут вот какая штука - а сама эта программа будет работать с каким буффером?

О!

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

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

Да, но нет. Как ты узнаешь накладные расходы самой звуковухи компа? И

Я дотумкал. Надо два выходя и входа у пульсометра. Один вход-выход для замера собственной задержки, чтобы узнать сколько даёт ему пайпваря, а вторую пару пускать в интересующее приложение. Да и хоть на реальный вход-выход. Даже микрофон лаптопа поймает звук со своих динамиков. А большего и не надо. Вот.

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

Меня интересует в этом деле вот что. Я дернул струну, прошло время, в динамиках звук. Вот какое прошло время, тупо так. Это увидеть по записи сторонним диктофоном очень просто.

Сколько дает сама пайпваря и так понятно по буферам. Интересно, сколько дает остальная неучтенка.

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

Посылаешь изнутрёв пульсометра импульс и ловишь его в микрофон им же. В гитару тоже можно, но чувствительность надо выкрутить максимально. И тот же пульс пускаешь в петлю со второго выхода пульсометра на второй вход его же. Вычитаешь задержку пайпвари петли (если таковая есть) из того, что словил в микрофон, получаешь совместную задержку на ЦАП-АЦП-Пайпваря общая. Нет?

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

Да. Вот это все я и называл фактической общей задержкой. Хотя, тоже частный случай. Если использовать компьютер в качестве примочек→усилка→кабсима→еще-реверочка-чтобы-как-в-филормонии.

Но не использовать его же одновременно в качестве студийного микшера и многодорожечного магнитофона. Тогда еще что-то вылезет.

--------------------------------------------------------------

Был у нас странный компьютер. Мамка с седьмым сокетом, PCI, ISA-16 (которых что-то много было), SCSI портами. В сокете торчал MMX, в скази - жесткие диски. В ISA были четыре Ямаховские звуковухи. Винда 98, Cool Edit Pro. Вот, всё это позволяло писать с восьми входов одновременно. Только вот, при сведении и обработке MMX тормозил. Да и мамка подыхать стала.

Подвернулась мамка тоже с SCSI, ISA, 370 сокетом. Я обрадовался, переткнул звуковухи и сказишные винты туда. Да, сводить стало быстро, всё же, третий пень после MMX - это ДА! А вот писать стало вообще невозможно. Задержка сильно ощутимая, да еще и плавающая. Позже я узнал, что настоящая шина ISA умерла вместе с первыми Пнями. На мамки для P6 и K6 слоты еще ставили, но шину делать не стали, сделали эмуляцию.

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

Позже я узнал, что настоящая шина ISA умерла вместе с первыми Пнями. На мамки для P6 и K6 слоты еще ставили, но шину делать не стали, сделали эмуляцию.

Где почитать подробнее? Вроде на P6 (Pentium II например) вполне себе реальная ISA.

370 сокет там да, на всё уже забили.

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

Вот не помню. Мне из тех времен только 815 чипсет запомнился. Там точно была «шина» ISA, но не приткнутая к южному мосту, а воткнутая в воображаемое устройство, воткнутое в PCI. Вот это «воображаемое устройство» как хотело, так и тормозило, а некоторые штуки с такой «ISA» вообще не работали. И какой-то VIA Apollo помню, для мамок с супер-седьмым, для K6. Там тоже так было.

Вторые Пни были на картриже, который вставлялся в специальный слот на мамке. 370 был для Селеронов и третих Пней. Однако, китайские товарищи быстро сообразили и наделали переходников слот-сокет и сокет-слот.

Но это уже не про PipeWire и даже не про флэтпак.

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

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

  • Подсудимый, Вы признаёте, что назвали потерпевшего «унылый фанатик»?

  • Да, признаю, раскаиваюсь.

  • С учётом смягчающих обстоятельств, а именно признания вины, раскаяния в содеянном, отсутствия прошлых судимостей, положительной характеристики с места работы, подсудимый приговаривается к 2 годам колонии общего режима. А так бы десятку впаяли бы! Всем спасибо, судебное заседание окончено.

anonymous
()

Таки поставил EasyEffects, на попробовать. Чтобы не было «не читал, но осуждаю». Поставил flatpak вариант, ибо ни ppa, ни deb-пакета не нашел. С Гитхаба самостоятельно собрать deb-пакет не получилось. Конвертированный с помощью alien rpm получился нехорошим. Итак, flatpak

~$ flatpak list
Name                                Application ID                                Версия Ветка  Установка
EasyEffects                         com.github.wwmm.easyeffects                   6.1.0  stable system
LSP                                 org.freedesktop.LinuxAudio.Plugins.LSP        1.1.30 20.08  system
ZamPlugins                          org.freedesktop.LinuxAudio.Plugins.ZamPlugins 3.14   20.08  system
Mesa                                org.freedesktop.Platform.GL.default           21.1.4 20.08  system
nvidia-390-144                      org.freedesktop.Platform.GL.nvidia-390-144           1.4    system
Intel                               org.freedesktop.Platform.VAAPI.Intel                 20.08  system
openh264                            org.freedesktop.Platform.openh264             2.1.0  2.0    system
GNOME Application Platform version… org.gnome.Platform                                   40     system
Breeze Gtk theme                    org.gtk.Gtk3theme.Breeze                             3.22   system

Кроме EasyEffects флапаками ничего не ставилось. Сами EasyEffects 30 метров. org.gnome.Platform 900, Platform.GL.default 300, еще по мелочам... Полтора гига в /var/lib/flatpak/... . Курочка по зернышку клюет, а весь двор засрала - лучший девиз для любой самодостаточной установки программ.

Как оно, EasyEffects, работает со звуком.

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

Как оно ведет себя в системе.

Жрет ~10% процентов камня, когда что-то звучит. Четыре плагина используется.

У него нет KDEшного заголовка окна. У него есть в настройках тумблеры Shutdown on Window Close и даже Запуск службы при запуске, я их туда-сюда смыкал, но результат один. Нет окна - нет эффектов. Вот это всё - от того, что флетпак, от того, что оно с GTK4 сделано (система Kubuntu 20.04 LTS, Plasma 5.18 LTS, GTK4 нет), или просто сделано так? Можно было бы средствами KDE присопливить, чтобы оно сразу запускалось на третьем рабочем столе и там сворачивалось. Хотя и это мерзко. Но, возвращаясь к напечатанному, у него нет KDEшного заголовка окна.

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

Сто́ит ли ждать, что кто-то сделает простой эквалайзер для PipeWire (особенно учитываю, что и так же есть такие крутые EasyEffects)? Угу... Сто́ит ли ждать, что в Uduntu 22.04 сделают PipeWire и EasyEffects, и будет оно, как положено? Угу, будет, будет, да еще и в snap.

Сделать свой эквалайзер, с компрессором и автогейном? Я совсем не кодер.

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

В смысле? Так EasyEffects и есть переименованный PulseEffects

https://github.com/wwmm/easyeffects/tree/v1.0

То что Flatpak сам по себе кривой - это вообще отдельная тема.

Вон в Ubuntu 21.10 старая версия https://packages.ubuntu.com/hirsute/pulseeffects

Ну оно и понятно. В 22.04 будет новая с поддержкой и в том же DEB. В изготовлении SNAP пакета вряд-ли кто заинтересуется - слишком нишево.

Каштан.

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

В 22.04 будет новая с поддержкой и в том же DEB

Хотя посмотрел - наверно не будет. В 24.04 разве что 🤣

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

В Пульсах есть свой, встроенный эквалайзер - pulseaudio-equalizer. Огуённый вариант - qpaeq. Просто десятиполосный эквалайзер, не комбайн.

Вон в Ubuntu 21.10 старая версия https://packages.ubuntu.com/hirsute/pulseeffects

Ну оно и понятно. В 22.04 будет новая с поддержкой

А вот кто их, Канониклов, знает.

Pulseeffects переназвали в EasyEffects как раз по поводу того, что стали делать для работы с PipeWire. Посчитают в Каноникл, что PipeWire «сырой», в LTS не положат, Pulseeffects оставят четвертой версии, или вообще выкинут.

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

Посчитают в Каноникл, что PipeWire «сырой», в LTS не положат

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

Единственное вопрос, что будет дефолтом сконфигурировано - типа пару/тройку команд на смену одного на другое.

Каштан.

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

Все именно так. Заголовка KDE нету потому что это GTK4, оно рисует декорации само.

Если закрыть окно все убивается, я думаю это потому что флатпак. Оттуда проблематично демоны запускать.

Если хочешь чтобы демонизировалось, надо пробовать без флатпака ставить.

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

что будет дефолтом сконфигурировано - типа пару/тройку команд на смену одного на другое.

Ну, если уж сделают Пайп в Убунту, имхо, переключатель прилепить смогут. Бывал же на дисплейном менеждере переключатель, куда стартовать, в Икы, или в Вейленд. С другой стороны, теперь переключателя не видно, а Вяленький, по отзывам трудящихся, хорошеет. Говорит ли это об изменения в отношении Каноникл к новому?.. Или о том, что там в последнее время в жопе-ветер-в-поле-дым.

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

Ну, если уж сделают Пайп в Убунту, имхо, переключатель прилепить смогут

Я как понял, все ждут WirePlumber. Т.е. менеджер потоков и GObject обвязку над всем этим pw-хозяйством. Там уже потом можно относительно легко хоть весь этот менеджер гномовский переносить, который вокруг Пульсы построен.

В Убунте оно лежит потому что в Wayland сессии как-то скринкаст делать надо, а других вариантов не наблюдается. Звук, насколько я вижу, пока как был пульса так и есть (я прямо сейчас пишу с Ubuntu 21.04 Wayland).

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

Если закрыть окно все убивается, я думаю это потому что флатпак. Оттуда проблематично демоны запускать.

Если хочешь чтобы демонизировалось, надо пробовать без флатпака ставить.

Без флатпака - puseeffects.:D Ну и что, и их поковырял палочкой. К PipeWire они прицепились. Однако, с закрытием-открытием окна тоже обезьянник, со своими приколами.

Заголовка KDE нету потому что это GTK4, оно рисует декорации само.

Ну и пускай себе рисует для тех, кто в состоянии это ценить. Для меня этот арт излишне контемпорари.

Вынесу-ка я и puseeffects, и easy.

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

Я как понял, все ждут WirePlumber.

Поискал, что оно такое и нашел, что оно, вроде как, уже есть.

https://github.com/PipeWire/wireplumber

Для Ъ

WirePlumber is a modular session / policy manager for PipeWire and a GObject-based high-level library that wraps PipeWire's API, providing convenience for writing the daemon's modules as well as external tools for managing PipeWire.

The WirePlumber daemon implements the session & policy management service. It follows a modular design, having plugins that implement the actual management functionality.

The WirePlumber Library provides API that allows you to extend the WirePlumber daemon, to write management or status tools for PipeWire (apps that don't do actual media streaming) and to write custom session managers for embedded devices.

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

Т.е., похоже, что на этой штуке можно сделать нормальную гуёвую управлялку?

Helvum https://gitlab.freedesktop.org/ryuukyu/helvum есть, но чё-та он какой-то.

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

https://github.com/PipeWire/wireplumber

Так я про него и говорил. Его collabora, вроде как, пилит. У них в блоге можно почитать.

Как я понял, все ждут допила. Тут и менеджер сессий и обвязка с GObject и интроспекцией.

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

Его collabora, вроде как, пилит. У них в блоге можно почитать.

Почти полтора года последней новости. Я вот еще всякого почитал. PipeWire, как видно, штука востребованная, так что пилят, скорее всего, не только они.

В PipeWire, как понимаю, уже заряжена обработка звука

~/.config/pipewire/filter-chain$ ls
demonic.conf         sink-dolby-surround.conf  sink-matrix-spatialiser.conf
sink-convolver.conf  sink-eq6.conf             source-rnnoise.conf

Это не я сам туда понаписывал. Есть надежда, что когда появится графическая крутилка ручек, в ней будут и фейды графического эквалайзера:).

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

Почти полтора года последней новости

Ну так там описание архитектуры. С тех пор, насколько я в курсе, в глобальном плане архитектура pw особо не менялась. WirePlumber пилят судя по git тоже довольно активно.

Так-то ничего не мешает и так «крутилки» сделать, в pw есть и свой простенький session-manager (эти профили как раз от него, инфа еcть тут). Просто WirePlumber покруче будет, ну и интеграция с GTK стеком.

SkyMaverick ★★★★★
()
Последнее исправление: SkyMaverick (всего исправлений: 2)

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

Если PW действительно портит звук - вопрос не к тому что он делает ресемплинг, а то что он делает это плохо. Пульсаудио точно портил. В чем была одна из главных претензий.

Но в винде давно прозрачный ресемплинг, но этого особо и не замечают.

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

Но в винде давно прозрачный ресемплинг, но этого особо и не замечают.

А посмотришь на них, так у них своя романтика: Audio Stream Input/Output (ASIO). Когда-то друг к другу ходили ZverXP ставить, теперь по интернетам спрашивают, как к своему крабику ASIO присопливить.

Пульсаудио точно портил. В чем была одна из главных претензий.

А почему в прошедшем времени? У кого портил, у тех так и портит. Так-то там можно выбрать алгоритм и качество. Другое дело, что PulseAudio задержку делает.

Если PW действительно портит звук - вопрос не к тому что он делает ресемплинг, а то что он делает это плохо.

Не слышу, чтобы портил. Ресамлинг почем зря не делает. А вот сейчас заинтересовался, как PipeWire делает ресамплинг, когда это надо. Заглянул в конфиги, навскидку не увидел.

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