LINUX.ORG.RU

xanmod... рвет linux-rt в low-latency аудио задачах???

 , , , ,


3

5

Я в шоке…

Годами, буквально годами пытаюсь получить минимальную задержку при обработке аудио на ноутбуке с jack, а теперь и с pipewire.

Платформа - Sandy Bridge, встроенное аудио Realtek ALC272.

Всегда считал нормой для этого ноутбука буфер 48000 Гц / 256 семплов (5,3 мс задержка) (кто в теме то поймет что это). Тут на ЛОРе мне много раз писали что это совсем не круто. Да я и на слух слышу задержку при игре на гитаре. Это все на обычном ядре, дефолтном в дистрибутивах. При меньшем буфере стабильно не работает.

Периодически я решал озаботиться улучшением, первое что советуют везде - использовать linux_rt вместо обычного ядра. Это немного улучшало ситуацию, можно было получить вдвое меньшую задержку 48000/128 (2,7 мс). Но не очень стабильно. Это - тоже совсем не айс!

И вот, чисто случайно, без объявления войны, я ставлю NixOS и в нем ядро xanmod 5.14. Происходит какая-то мистика!

Я выставляю 48000 / 64 (это уже 1.3 миллисекунды задержки). Все гранитно стабильно!

Выставляю 48000 / 32 (тридцать два, Карл!) - работает! Иногда похрюкивает.

КАК???? Это вообще законно??

Вопрос у меня вот в чем - как именно в xanmod так выходит, какие опции, или модификации, могут повлиять на то что стало вот так?

ИТАК

Пожалуй подведу окончательные итоги.

  1. Практически все широко распространенные в сети рекомендации надо читать навыворот. Почему - отдельный вопрос.

  2. Лучше всего для обеспечения low-latency при работе с аудио подходит обычное, общего назначения ядро. Даже ванильное ядро с kernel.org может обеспечить экстремально низкую задержку на моем музейном железе.

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

  4. Рекомендации по настройке ядра, по CONFIG_HZ, PREEMPT - можно выполнять, можно нет. Низкая задержка достижима с любыми вариантами этих настроек.

  5. Желательно собирать ядро с минимальной конфигурацией. по-видимому я столкнулся с тем, что на конфигурации от Arch Linux на моем железе что-то лишнее мешало.

★★★★

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

Не, ну там loopback петля, вот это всё
В теории, если выход на вход замкнуть, можно похожее на правду получить
Только задержку надо будет умножить на два? Физически ведь, первый щелчок, в виде электрического сигнала выйдет тоже не сразу

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

все честно, трёхметровый кабель из out-а в преамп, если выставить 96000/64/3 - то показывает 2.843

побрякал (при этих ^ настройках) 5 минут в ReAmp R1 и kpp_bluedrem, вроде норм, xrun-ов нет, с реампом DSP Load - 22.4% с КПП - ~2%

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

Только задержку надо будет умножить на два? Физически ведь, первый щелчок, в виде электрического сигнала выйдет тоже не сразу

а не разделить? :)

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

чёйта не мерилка? давай спросим у @sadko4u или сам предложи, как измерить

допускаю, что мне повезло с железом, я честно не ощущаю тех проблем, о каких вечно на форумах пишут

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

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

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

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

я про ощущение задержек, мне она начинает слышаться при 48000/128

а ты фокусрайт померь этой тулзой тоже

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

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

пустил левый прямо, а правый через хост, задержка слышна при 48000/256, даже при 48000/128 лагов нет, есть небольшой стереоэффект

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

Ну так вот кабелем вроде правильно, я не так понял тебя.

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

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

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

наверно, я поэтому не собираюсь менять, пришлось ради неё выискивать свежую мамку с набортным PCI слотом, кое как нашёл

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

ну так это при «слабых» настройках :) на максималках разве что разницу из-за ацп-цап как-то можно почуять

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

А вообще позанимавшись только на неподключнной гитаре месяц я пришел к покаянию и готовности к постригу в аналоговый мониторинг…

Сейчас еще раз сравнил - на 96000/128 ощущения почти нормальные, но все равно по сравнению с неподключенной что-то как будто придерживает пальцы.

С еще большей задержкой - как в кошмарных снах когда хочешь бежать а ноги не шевелятся.

Такими темпами я скоро лампы буду закупать.

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

Лампы - вкусовщина, в общем-то
А вот аналог с самым простым кабсимом, при всей противности звука, именно чувство инструмента даёт в полной мере

Басистам хорошо

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

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

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

Оно эмулирует кабинет (несколько разных) а ac30 - это замануха, насколько я помню. Но поскольку это ацп-цап, то как оно получается? С задержкой?

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

А ты видел нецифровые наушники с набором эффектов? :) Хотя у них есть отдельные ac30, twin и др. наушники, но вставлять аналоговый «эмулятор» и цифровой хорус в наушники - голова не выдержит веса :)

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

Хотя я опять напутал. Там не только кабсим, там ВЕСЬ тракт запихнут- от преампа, с эффектами и до кабинета.

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

@ist76

Поиграл в свой DSP проц - довольно неплохо он работает. Жаль нечем задержку промерить. Запись на телефон тут не поможет уже - при задержке в несколько мс там все сливается.

Теоретически, задержка у него зависит от частоты дискретизации. На частоте 22050 Гц я вроде что-то слышу - ощущения похожи как на компе с буфером 96000/512. Но это очень не точно.

В нормальном режиме, на 96 кГц я никакой задержки не чувствую, даже если слушать одним ухом струну, а другим выхлоп из DSP. Думаю 4-5 мс он точно обеспечивает.

На простой программе, где нет импульсов кабинета, а только IIR фильтры и перегруз (аналог аналогового преда с аналоговым кабсимом) разгоняется до частоты дискретизации 384 кГц. И звучание перегруза какое-то более мягкое, что ли.

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

Даже не знаю что сказать..
Были бы на ЛОРе анимированные смайлики - я бы просто запостил один - с большим пальцем вверх
Поздравляю!

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

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

Круто. А греется? Блин. Завидую. Не хочу ампо-синто-комп, хочу что-то подобное. От бы ктонибудь собрал и выслал мне хоть рассыпушный комплект в пару таких чипов и обвесом с крутилками и бредбордой. И чтобы я сидел с сигмастудии, или фаусте и писал бы всякую фигнюлину. Мммм... готов платить деньгами :)

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

А греется?

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

и выслал мне хоть рассыпушный комплект в пару таких чипов

Все хочу собрать но не было этот год времени совсем…

И чтобы я сидел с сигмастудии

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

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

А какую-то более приземленную комплектацию возможно собрать?
Что мне видится нужным в реальной такой железки для дома:
а) хорошие предусилители и АЦП (на уровне того, что ставят в современные аудиоинтерфейсы ценовой категории $500)
б) возможность подрубиться по, например, SPDIF, и брать с него обработанный звук в цифре и/или DI
Ну и общую готовность сразу - несколько годных пресетов «из коробки», чтобы от выхлопных датчиков не клипповало, вот это всё

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

Spdif оптика у него есть сразу, для работы с аналогом подключается кодек. В моей версии с али это AD1938, не знаю как у него насчет попадания в категорию 500$ (микросхема кодека несколько баксов стоит).

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

Я подключаюсь через свой пред для компа сейчас.

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

Вот первое, что в гугле
RME, MOTU, UAD, Lynx
https://gearspace.com/board/geekzone/542009-audio-interfaces-their-ad-da-chip...
Ни хрена в этом не понимаю, но возможно, будет полезно
А преды (которые, лично мне важнее выходов) - даже не знаю
Вон, есть берингер, а есть рме
И, казалось бы, все современные чипы хорошие, характеристики до небес, но писаться в бехр никто не хочет
Возможно, это неспроста

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

Да, с предами это серьезный вопрос. Пока я ставлю задачу сделать минимальный по стоимости вариант - 100$ в форме большого педального корпуса. Потому что заниматься «предами за 500$» в DIY условиях можно но я не дорос.

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

Не, ну там комплектуха-то, подозреваю, по 2 бакса чип продается
Это уже за карту 500 просят
Но как-то чип от в стройки в музыкальном приборе - несерьёзно, мне кажется

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

Кстати, за сотку я бы взял без вопросов
Дороже тоже возьму - но уже более кучерявое
Кстати, и в рековом формате тоже было бы интересно.

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

чип от в стройки

Это не от встройки, там совсем другие кодеки.

Но все равно я не уверен насчет его крутости.

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

Ладно. Сам с нуля я этим не займусь. Я и теперь вместо втыкания в БеспокСинт сижу и дырку в небе праздную. Скучнейшее занятие, но обязанность обязывает обязательно смотреть «Иронию судьбы» и сопереживать не Иполиту, а пьянице с падшей женщиной. И жрать салатики... А хотелось бы совсем другого. Блин. Вот бы можно было создать коммунну музыкантов-передвижников :)

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

обязывает обязательно смотреть «Иронию судьбы»

Я не смотрю, меня уже бесит оно.

Посмотрел что на МКС, как празднуют. Сказали - будут смотреть иронию судьбы. Я потерял веру в человечество… Люди не на шарике, хоть на полгода всего но все же, казалось бы радуйся, а они туда же.

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

LSP Latency Meter позволяет замерить Round-trip latency, то есть время прхождения сигнала по цепи начиная с воспроизведения и заканчивая захватом. Надо ещё учитывать rounds per buffer, т.к. это, насколько я помню, минимальная единица передачи данных (если поделить buffer на rounds). Конкретно по гитаре - делаю просто: маршрутизирую сигнал мониторинга в звуковой карте, а не делаю программное воспроизведение через ПК.

А вообще, добро пожаловать на мой первый стрим в ночь со 2 на 3 января, в 0:00 по Москве.

https://youtu.be/cxaNRyiHr2E

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

Вот спасибо! Я совсем забыл про Latency Meter.

@ist76 - все оказалось даже чуть лучше!

Только что замерил LSP плагином задержку на ноуте в режиме 96000/128 - 5.3 мс! При этом я подобрал такие настройки системы и ядра, что в таком режиме работает устойчиво - сегодня проскакивал 1 xrun в час.

А секрет оказался прост - performance для процессора вместо обычного ondemand. При этом нагрузка на процессор почти в 2 раза падает и все начинает работать как положено.

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

а я вас не поздравляю с новым годом :) Уже почти окончательно проспал, но пять звонков подряд... Зомби лезут изо всех дыр :)

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

Радует, что наша несостоятельность побудила тебя организовать стрим. Ждём.

R_He_Po6oT ★★★★★
()

5,3 мс задержка

Ты уверен, что такую задержку сможешь различить? Выглядит как гонево какое-то.

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

Почему гонево? Это же не на слух замерено.

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

Проблема была в том, что оно все вместе дает синергетический эффект. Изначально performance ничего не давал, но после подбора, настройки и пересборки ядра - стал сильно давать.

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

Привет.
Внесу свои 5-10 копеек, как гитарствующий линуксоид…
Что вы все знаете, но тут не упомянули: при использовании rt в /etc/security/limits.d/audio.conf прописывается для какой группы(audio) выставлять приоритет. По идее, процессы этой группы должны перевешивать все остальные.
Про performance/ondemand - я в udev просто подключил скрипт, который переключает систему на производительность и максимальную частоту при втыкании ЗК.
На ноуте, с Scarlett Solo+Devuan+Alsa+Ardour получается выставить 48000/64/3. Задержку показывает 1.3мс. Можно писать одну гитару под несколько фоновых треков. Жестоко Xrun’ит если переключиться на рабочий стол с браузером и поскроллить, поэтому ещё один скрипт с «kill -SIGSTOP …».

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

Привет!

при использовании rt в /etc/security/limits.d/audio.conf прописывается для какой группы(audio) выставлять приоритет

Да, вот это правильно. У меня выставлено,я просто не упомянул. Плюс - есть еще rtkit демон. pipewire может использовать его, для повышения себе приоритета, либо не использовать - тогда через limits.d.

Без этих мер вообще все печально.

выставить 48000/64/3. Задержку показывает 1.3мс

Реально при таких настройках где-то 7-9 мс будет, я думаю.

Жестоко Xrun’ит если переключиться на рабочий стол с браузером

Я вообще убиваю драйвер сети.

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