LINUX.ORG.RU

Изучаем pipewire raysession

 


0

2

Не дождался я выходы 12 го дебиан и решил обновиться на тестинг ветку. На гноме я получил pipewire,вобщем то для него и хотел обновится. Начал изучать,как с ним работать. Инфы крайне мало,часть узнал с оф сайта reaper,основной материал по данной теме лежит в арч вики,по сути все равно,дебиан или арч(для понимания принципов работы). Из этой вики понял,что нужна утилита qpwgraph,аналог qjackctl. Софт оказался весьма удобным. На данный момент не понятно где выставлять частоту дискретизации и глубину квантования. Так же не очень понятно,как выставлять задержку. Не понятно,как выбирать в рипере pipewire. Смог добиться появления reaper -а в qpwgraph лишь путем выбора pulseaudio в reaper. Тоже нее понтяно,как это работает. Если кто уже разобрался,отпишитесь.



Последнее исправление: copentry (всего исправлений: 1)

qpwgraph не умеет выставлять буфферы и прочее. Есть менеджер сессий с патчером RaySession - лучше чем qpwgraph, потому что умеет и изменять буффер и частоту и соединять в нём удобнее и ещё и менеджер сессий. Попробуй, может понравится. Только запускать надо через pw-jack. Остальные патчеры не стоят внимания, потому что просто патчеры.

Но я не пользуюсь Рипером, не знаю, умеет ли он пользоваться менеджерами сессий, но всё равно удобно запускать сессии целиком. Но если тебе хватает qpwgraph, можешь просто запускать Рипер через pw-jack. А буффер и частоту можешь указать добавив перед командой ещё и 'PIPEWIRE_LATENCY=«128/48000» application'. И тогда можешь вернуть в Рипере настройку на jack.

Pipewire - новый инструмент, постоянно выходят важные обновления, особенно важные для музыкантов. Вот и недавно вышло очередное улучшение пайпвари https://linuxmusicians.com/viewtopic.php?t=25620 Представь когда оно попадёт в твой дистрибутив. Тестинг уже в заморозке? Скоро станет стэйблом? А ведь в остальном мире будет ещё более новая версия.

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

Pipewire лучше. лучше чем пульса - однозначно, лучше чем голая алса в современном десктопе - однозначно, лучше чем джек - да, но с оговорками.

Дистрибутив - скажу, меня тапками закидают, скажут другое надо :). Дебьян - если так получилось, что тебя всё устраивает, можно и на нём сидеть, конечно.

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

Вот уж не сид, точно. Я на Манджаре сижу - чего нет в репозитории собирается из aur. RaySession, кстати, тоже оттуда. Удобно не собирать руками, а устанавливать в нормальном графическом пакетном менеджере.

Если ты привык к экосистеме Дебьяна и занимаешься музыкой, кстати, можешь попробовать https://linuxmusicians.com/viewtopic.php?t=25378 - пробный музыкальный дистрибутив, основаный на MXlinux, который основан на Debian. Можешь даже просто лайф покатать, познакомиться. Но там используется jackd, музыканты пока не распробовали pipewire, но, вроде, он тоже есть в репах и новый.

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

Сидел на манджаро долго, весьма стабильный, проблем не было. Но не хватило мне в нем души и привык я к командам apt) но пакман со своим магазином конечно подкупает) А mx вообще ерунда, сделали черт знает что и радуются, хз. Тогда буду на дебиане тесте изучать дальше. Интересно raysession попробовать…

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

Кстати, не подскажешь, почему когда в Джеке пытаешься уменьшить буфер и выборку что бы уменьшить задержку, сыпятся ошибки. В итоге могу работать только на 18мс нормально. Странно, почему так происходит, в процессор оно не упирается, процентов 10 загружено. Хз, что думать. Интересно, зависит от самого цап ? Я вот разницы не увидел, у меня сейчас под рукой tascam dr05x и акустические колонки собранные вроде как на приличном цапе с Али.(24/192)

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

Сыпятся потому что не успевает. Там xrun всякие сыпятся? Тут целую лекцию надо прочитать. Лучше найди мануал какой и почитай как настраивать джек и что нужно https://github.com/jackaudio/jackaudio.github.com/wiki#bridge. И... а почему Джек? Ты же сам сказал про Пайпварю? Или ты не заменял джек на пайпварю, а запускаешь джек паралельно с пайпварей? Не понял.

В Арче/Манджаре для этого есть отдельный пакет pipewire-jack. Пакеты с джеком при этом удаляются. После этого можно запускать нужную программу через pw-jack. Он заменяет jackd. В Дебьяне это есть? По моему опыту это лучшее решение.

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

Нет, я ничего не мешаю. Когда я говорю за Джек,я имею ввиду jackctl. Как раз из за ошибок решил перебираться на pipewire. Да,pipewire-Jack есть в репозитории. Эх, опять запутался)) pipewire-jack это аналог raysession? Что такое jackd так же не знаю, всегда юзал jackctl.

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

Почитай про звуковые серверы в линуксе. Это не интересно, но нужно чтобы понять кто что делает. Если ты работаешь ТОЛЬКО с pipewire (которая эмулирует и пульс и джек), то ни о каких jackctl уже не надо совать и запускать. Через монитор процессов можешь увидеть что запущено.

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

Pipewire-jack это слой совместимости с JACK программами, им будет предоставлен интерфейс API, как будто это настоящий jack, и управление ими из qpwgraph тоже будет возможно

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

Вобщем то я понимаю,разницу между alsa и pulse/pipe. Мне больше не понятно разница pipwire-pulse,qpwgraph,raysession,pw-jack,jackd. Зачем они столько понаделали,я в шоке. Есть ресурс,где написано обо всем,чтоб бы понять?)Пока что только частями понятно(

copentry
() автор топика

Почему не сразу Ubuntu Studio? 20.04 с крысой, 22.04 по умолчанию с кедами, но если захочется крысы, то в последнем случае можно на обычной xubuntu развернуть ubuntustudio-installer и получить то же самое, но с желаемой DE.

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

pw-jack - эмуляция jack в Pipewire. Pipewire-pulse - эмуляция PulseAudio. qpwgraph - программа для Pipewire, которая управляет потоками через API. jackd - оригинальная имплементация JACK, заменяется на pipewire-jack. RaySession - не знаю, но предпологаю что это менеджер сеансов для pipewire(занимается как раз таки подключением приложений и потоков)

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

Ох... Ты заставляешь тебе писать то что есть даже на сайтах этих проектов, кроме кучи объяснялок в интернете. pipwire-pulse заменяет звуковой сервер pulseaudio. Раньше была alsa - звуковая подсистема, просто открывавшая звуковуху приложению. Каждое приложение должно было рулить частоту, буфферы, форматы, выходы, входы и пр. И на ходу нельзя было запустить два потока аудио, нужно было удобное микширование. Для музыки придумали jackd - профессиональный аудиосервер, в котором стало возможным посылать звук любого приложения в любое приложение. Но все они должны были уметь отдавать и принимать сигнал у джека и строго соответствовать всем требованиям сервера, буффер, частота и пр. И укладываться в окно. Неукладывание в окно и вызывает xrun (я сильно упрощаю). А ещё добавить дополнительную карту было проблемой. Но появление интернета и даже разброд в музыкальных коллекциях где одна песня была записана в 44100Гц, другая в 48000Гц, а третья в 96000Гц, привели к появлению Pulseaudio. Микшировать и управлять потоками стало удобнее. Но оставались два несовершенных сервера - Jackd и Pulseaudio, можно было или удобно слушать, или удобно записывать, играть музыку. Теперь появилась Pipewire - сервер вобравший лучшее от предшественников и умеющий притворяться ими. Пользуясь им ты имеешь и доступ к потокам и устройствам, можешь выставлять разные буфферы, посылать что угодно куда угодно и в несколько мет сразу, если это необходимо или просто пользоваться «на автопилоте», на домашнем компе даже не задумываясь что под капотом. Три разных сервера со своими командами и возможностями.

Qjackctl - программа настройки сервера Jackd и за одно коммутация потоков. Без Jackd (jackctl, jack-dbus и прочее) не нужна, но в Pipewire в ней можно ТОЛЬКО коммутировать.

А qpwgraph - просто наглядная программа коммутации. Их таких несколько. работают и в jackd и в pipewire.

RaySession - менеджер музыкальный сессий. Пишу я композицию. У меня запущен Hydrogen, Qtractor (или Ardour), Linuxsampler, ещё что-то, всё это соединено каким-то образом и в каждой программе открыты свои файлы, проекты. Всё это работает тандемом и нужно ТОЛЬКО для этой композиции. Это называется сессия. Всё это нужно сохранить и закрыть одновременно с сохранением всех связей. Для этого и существуют менеджеры сессий. Запускаю RaySession поверх Pipewire, для этого запускаю командой «pw-jack RaySession». Создаю сессию, и уже из него запускаю все нужные программы, создаю проектик в каждом из них, соединяю между собой и сохраняю сессию. Закрыв сессию сохраняются все её проекты, закрываются приложения. Открыв сессию запускается всё как сохранил. Так понятно?

А pw-jack - это простое указание Pipewire запустить такую-то программу с реальным временем в режиме совместимом с jackd.

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

ООО,благодарю за столь развернутый ответ. Часть я знал,некоторые вещи были лишь в догадках,теперь все прозрачнее. А пробелы в знаниях потому,что переехал на линукс не так давно и на линуксе не так часто получается заниматься творчеством(хех,нет,не из за линукса :)). Теперь остался только вопрос со сборкой RaySession,пока что не осилил.

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

Всем спасибо:)

copentry
() автор топика

Если упомянут Reaper, значит делаю вывод что не просто надо ютуб смотреть, а надо работать в DAW, возможно даже с минимальными задержками )))

Тогда - такая информация. К сожалению, удобных GUI инструментов для переключения настроек pipewire на лету еще не запилили, поэтому лучше делать через командную строку.

Изменить частоту дискретизации на 96 кГц (для работы с рипером)

pw-metadata -n settings 0 clock.force-rate 96000

Вернуть дефолтное автоматическое выставление частоты дискретизации (хорошо для «ютуб» посмотреть, плохо для рипера)

pw-metadata -n settings 0 clock.force-rate 0

Глубина квантования там ЕМНИП по дефолту уже float 32 бит, что более чем достаточно для всего и не надо трогать.

Управлять задержкой! Выставляем маленькое значение буфера (128 семплов), низкая задержка для работы с рипером

pw-metadata -n settings 0 clock.force-quantum 128

Возвращаем на автоматическое, для «ютуба»

pw-metadata -n settings 0 clock.force-quantum 0

Не понятно,как выбирать в рипере pipewire

Надо установить pipewire-jack. В рипере выбирать режим jack, тогда он появится в графе и будет работать как положено.

Далее могу написать на тему минимизации задержек и буфера, если интересует.

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

Отлично,очень полезно для меня. Как я понимаю,удобный гуй-это как раз raysession который пилят. Про задержки тоже очень интересно. Пока что нужно новую информацию усвоить и попробовать на практике)

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

Есть результаты.Смог устанвоить Reysession Patchance. Пока что не знаю,что за зверь,но вроде работает. Сам raysession пока не получилось поставить.

Кто хочет попробовать установить, идем сюда https://github.com/Houston4444/Patchance/releases/tag/v1.0.0 и качаем patchance source.

Разархивируем,открываем терминал,сначала make,потом sudo make install.

Так же,не забудьте поставить зависимости,которые указаны в файле Install.

Если чего то не будет хватать,то проверьте данные файлы,некоторые пришлось ставить руками(в debian testing не было). python3-pyqt5 pyqt5-dev-tools qttools5dev python3-pyqt5 pyqt5-dev-tools qttools5dev python3-liblo qt-linguist-tools python3-pyqt5-qtsvg pyqt5-qtSvg

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

sudo make install

Ойойой. Неправильный у тебя бутерброд, Дядя Фёдор... Вопреки тому что так написано везде, так делать нельзя. По уму надо или делать локальную установку, или собрать правильный пакет. Для этого создай новую тему, пусть тебе более умные пользователи помогут сделать всё правильно. Я же на Дебьяне пользовался утилитой Checkinstall. Не знаю, осталась ли она в Дебьяне до сих пор. Установи и вместо «sudo make install» вбей sudo checkinstall. Он скомпилирует всё и соберёт пакет. Спросит название, версию, описание, а потом установит. И это правильнее, потому что удалить ты сможешь простой командой apt, или в графическом пакетном менеджере, а то что ты установил сейчас - поди найди куда что попало и как убрать мусор.

И, да, Patchance тебе вполне хватит, если не собираешься сессий сохранять. Как впечатления по сравнению с qpwgraph?

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

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

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

Принял. Я вообще думал make мне и даст деб пакет,а он по директориям раскидал. По идее,там же в интсрукции написано как удалять,так что думаю все будет норм. Насколько для системы это плохо или на новую версию будет тяжко переходить ? По поводу patchance,я не уверен,что это patchance,так как называется он raysession(в меню). https://disk.yandex.ru/i/WaYXaNXY7pAuXQ Это скрин.

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

Да, это RaySession. Вот ты его запустил, теперь нажми кнопку «Application» и в списке выбери нужную программу, она запустится в контексте этой сессии. Каждый раз когда ты будешь запускать сессию все её программы будут запускаться и подсоединяться. Удобно.

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

Бывают проекты в которых позаботились о компиляции именно деб пакета, но так далеко не везде. Кстати. А что скажет LINUX-ORG-RU про компиляцию деб пакета для этой проги? И что он думает про checkinstall? Может я плохому учу вообще.

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

Кстати, ещё про установку с sudo make install. Вот ты установил рандомную прогу таким образом. Снести её можно будет только из директории сборки этих исходников. Но ты забыл, подчистил домашние папочки, снёс эти исходники и сборку, осталась только установленная в системе вереница файлов, которые уже никто не знает где есть и забыли сто лет. Останется мусор. Не делай так, если не хочешь переустанавливать линукс также часто как винду :)

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

Ты же уже съел, и манжара у тебя стоит, а про то что домашний/рабочий я не знал вообще. Так что глупо будет мне стоять честно вратарём в трусах и перчатках когда по полю уже на бульдозерах в футбол бочками железными играют. Спор завершён. Я выиграл :D Ладно, мы оба выиграли. Чуть ограничить себя в сладком это полезно, а конфетные ограничения на установку дистрибутивов это необычно. Ни у кого такого небыло эксклюзив.

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

Для какой то проги с яндексдиска я не знаю что сказать ибо некачал. Но checkinstall годится тогда и только тогда когда Makefile написан так что всё будет хорошо. И для возможности последующего удаления пакета так как не всегда в Makefile вообще предусмотрен момент с удалением. Так что на деле основная задача checkinstall это не установить, а дать в последсвии возможность удалить/обновить программу по человечески, а не руками ковырять /usr/* а так, не поленится и написать скрипт который после обычной сборки/компиляции исходников соберёт из бинарников пакет.Короче всё ситуативно, если разок то можно вообще всё руками сделать, тот же checkinstall может вообще пустой пакет собрать. Но попробовать стоит лучше checkinstall чем make install конечно.

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

Удалил я прогу через исходники. Теперь поставил checkinstall,но не получается установить.

yaroslav@debian:~$ cd RaySession-0.13.1 yaroslav@debian:~/RaySession-0.13.1$ make make[1]: вход в каталог «/home/yaroslav/RaySession-0.13.1/HoustonPatchbay» make[1]: выход из каталога «/home/yaroslav/RaySession-0.13.1/HoustonPatchbay» yaroslav@debian:~/RaySession-0.13.1$ sudo checkinstall [sudo] пароль для yaroslav:

checkinstall 1.6.3, Copyright 2010 Felipe Eduardo Sanchez Diaz Duran Эта программа распространяется на условиях GNU GPL


**** Debian package creation selected ***


*** Warning: The package name «RaySession» contains upper case *** Warning: letters. dpkg might not like that so I changed *** Warning: them to lower case.

Этот пакет был создан с использованием данных значений:

0 - Maintainer: [ root@debian ] 1 - Summary: [ Package created with checkinstall 1.6.3 ] 2 - Name: [ raysession ] 3 - Version: [ 0.13.1 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ amd64 ] 8 - Source location: [ RaySession-0.13.1 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Recommends: [ ] 12 - Suggests: [ ] 13 - Provides: [ raysession ] 14 - Conflicts: [ ] 15 - Replaces: [ ]

Введите номер для изменения параметра или нажмите ВВОД для продолжения:

Installing with make install…

========================= Результаты установки ===========================

Create directories

install -d /usr/local/bin/ install -d /usr/local/share/applications/ install -d /usr/local/share/icons/hicolor/16x16/apps/ install -d /usr/local/share/icons/hicolor/24x24/apps/ install -d /usr/local/share/icons/hicolor/32x32/apps/ install -d /usr/local/share/icons/hicolor/48x48/apps/ install -d /usr/local/share/icons/hicolor/64x64/apps/ install -d /usr/local/share/icons/hicolor/96x96/apps/ install -d /usr/local/share/icons/hicolor/128x128/apps/ install -d /usr/local/share/icons/hicolor/256x256/apps/ install -d /usr/local/share/icons/hicolor/scalable/apps/ install -d /usr/local/share/raysession/ install: невозможно изменить права доступа «/usr/local/share/raysession/»: Нет такого файла или каталога make: *** [Makefile:150: install] Ошибка 1

**** Установка неудачна. Отменяется создание пакета.

Очищается…OK

Удачи.

Пытался запихнуть в спойлер,но чето не работает.

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

Нет каталогов, не может создать их. Я не хочу питоны сейчас доустанавливать что-бы проверить всё как надо, оно у тебя в целом то собирается? При сборке задай префикс типа make PREFIX=/home/$USER/lalala а потом из этого lalala собери пакет вручную, ну или попроси кого/ закажи у кого. Типа так , только вместо opt пути будут из того что внутри lalalaПроблема с deb пакетом /opt (комментарий) голова бобо думать больно сейчас, сорян =)

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

При сборке задай префикс типа make PREFIX=/home/$USER/lalala а потом из этого lalala собери пакет вручную

не надо вручную. Есть отличная штука под названием nfpm. Делаешь там по инструкции простенький конфиг, в котором по сути надо прописать только что-то типа

  - src: /home/user/lalala
    dst: /usr
    type: tree

и все, он запилит из этого deb-пакет.

А вообще это все извраты радикальных красноглазиков. В сабжевой приблуде предусмотрена команда make uninstall - т.ч. проблем с мусором в системе не возникнет, и обычному юзеру этого вполне хватит.

Тем более если делать make install в /usr/local - эта папка как раз и предназначена для того, чтобы захламить ее пользовательским мусором, а потом просто грохнуть.

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

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

copentry
() автор топика