LINUX.ORG.RU

Ardour, появилась задержка на новом железе

 ,


0

1

Записываю плюсовки в Ardour с воспроизведением минусовки из самого Ardour-а через встроенную звуковуху до ауксов пульта и запись через родной интерфейс пульта в тот же Ardour. Последний год использовал старенький ноут samsung np300, где всё работало нормально, но были проблемы с производительностью когда писалось большое количество человек. Пишу через Alsa.

Собрал днищекомп на зионе, теперь с производительностью проблем нет, но появилась задержка. После записи дорожка с голосом смещена относительно дорожки с минусом и её необходимо подгонять, а это очень напрягает, когда у тебя куча дублей и все надо сдвигать. Система та же, убунта 24.04 версия Ardour та же из репозитория.

Как победить?


Для начала попробуй в /etc/default/grub поменять строку, если у тебя последнее ядро стоит, которое вроде как не требует отдельной сборки для того чтобы в режиме реального времени работать, для чего собственно и есть запись preempt=full и остальные тормозящие явления убраны.

GRUB_CMDLINE_LINUX_DEFAULT="splash=silent preempt=full quiet security=apparmor udev.log_priority=3 mitigations=off skew_tick=1 audit=0 threadirqs intel_pstate=enable"

Сюда же, если все это происходит на вейланде с видеокартой поддерживающей вулкан добавить в /etc/environment

WLR_RENDERER=vulkan

Ну и наконец пойти поглядеть какие настройки времени в ALSA. Может там с большим запасом задержка выставлена. Потом пойти и сравнить например с pipewire прописав какие-нибудь такие значения в /etc/security/limits.conf

@pipewire - rtprio 95
@pipewire - memlock 4194304
@pipewire - priority -19

Конечно может потребоваться добавить пользователя в группу для корректной работы pipewire

groupadd -g 200 pipewire
usermod -a -G pipewire <имя пользователя>

И проверить когда начинаются хрипы командами, если уже выставлены например 32 бита нужные

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

Смотреть и крутить точно также Jack/Jack2 и выбирать лучшее из имеющегося, имея запасной вариант в случае возникновения проблем. ALSA далеко не факт что будет быстрее работать когда мощностей с запасом.

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

anonymous
()

Я бы еще покопал в сторону сборки из исходников, но для убунтоводов это наверное слишком сложно. Мы просто не в курсе под какими веществами собирали звуковую подсистему и ядро и часто косяки на деле являются проблемой сборки со слишком тормозными флагами типа уровня оптимизаций -O2 вместо -O3 просто потому что кто-то накосячил и написал код так, что он не приспособлен к оптимизации, что и создает торможение легко вдвое. Даже браузер может работать на 30-50% быстрее в огромном количестве сценариев и вот как раз время реакции это основное что снижается в первую очередь - это как раз то что нужно при звукозаписи. Если там был процессор попроще и система не кидала его по ядрам проблема могла не проявляться. Можно попробовать прибить гвоздями процессы к конкретным не занятым ничем другим ядрам, распределив процессы таким образом, чтобы они вообще не пересекались. Тут можно еще большой огород нагородить, если не компилировать и не использовать инструкции процессора. Можно просто взять систему где уже есть пакеты собранные с AVX инструкциями. Тут главное убрать тормоза самой системой, прижав все что можно, так как любой процесс, даже файловый менеджер могут создавать задержку в памяти, потому что его надо обрабатывать. А бубунта может на телеметрию и прочие анальные зонды внимание не отвлекать и там это наверное в принципе неисправимо.

anonymous
()

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

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