Здравствуйте дорогие форумчане, приобрел я тут гитару и внешнюю звуковую звуковую карту DGNOG UM22C и уперся в предел задержки. Для USB на запись задержка в случае Bomge U202 на чипе Cmedia можно было также писать с минимальной задержкой в 11 семплов на частоте 48000 Гц. А вот DGNOG так не умеет, видимо из-за постоянно активной функции мониторинга, так как вывод звука карта осуществляет исправно с задержкой 11 семплов, а вот запись или запись с воспроизведением уже лишь 19 семплов, то есть задержка повышается с 0,230 мс до 0,395. Но беспокоит как будто отсутствие существенных отличий в звучании с Creative AE-7. Тональные отличия конечно же есть и внешняя звуковая выдает примерно на 10 децибел меньше фонового шума даже при некотором усилении, так как опять же она включает порт только после того как громкость прибавляется до определенного уровня и индикатор показывает некоторый уровень усиления. И несмотря на то что AE-7 не может выводить звук с гиперзвуковой скоростью, но запись осуществляет даже при 4 семплах, правда выводить звук приходится через простенькую USB звуковую, которая поддерживает лишь режим S16LE, то есть 16 бит в линуксе. Вероятно DGNOG как и другие USB карты удастся разогнать хотя бы до 16 семплов при 24 битах, но все же хотелось бы знать есть ли смысл делать задержку ниже, если она практически не ощущается? Просто потому что для этого нужны две звуковые карты, а кроме того на скоростях ниже 8 семплов начинают появляться ошибки xruns, которые впрочем довольно успешно решаются в Pipewire. Кому вообще необходима задержка в 0,083 мс? Может ли аппаратная обработка данных снизить данный показатель или нет особого смысла с этим возиться? Утилита pw-top показывает что на обработку данных уходит еще несколько микросекунд в Guitarix, так что вряд ли на обработку данных в системе уходит так уж много времени. Нормально ли что когда гитара подключена то вместо -129 дб на деле оказывается -68? Просто когда звукосниматели относительно слабые приходится выжимать все возможное, чтобы звук получился хоть какой-то вменяемый. Кроме того я так понимаю миф о том что синглы фонят исходит из того что общий фон у одного сингла примерно на 3 дб выше и несколько меньше следует ставить усиление, чтобы фон оставался неактивным, но поможет ли исправить это замена датчика скажем с 4,8 кОм на вариант в 7 кОм или соотношение сигнал-шум останется? Просто по-моему синглы звучат интереснее, а кроме того пара звучит достаточно громко, чтобы с этим можно было как-то двигаться. Есть какие-то модели интересные синглов не превращенные в хамбакеры? С хамбакерами все более-менее ясно, а вот тема синглов на перегрузе как будто до конца не раскрыта. Но главная проблема это почему пассивные синглы звучат примерно одинаково на инструментальном и не инструментальном входах. В общем если кто знает как побороть ошибки xruns подскажите - я вроде все правильно выставил и при воспроизведении их вообще нет при 11 семплах.
... и добавил:
Ладно, видимо мало кто этим вопросом задавался. Я просто думал может у кого все еще стоит винда и там есть результаты получше. Просто уже много лет на линуксе и обратно особо не тянет, тем более что для Creative AE-7 в линуксе доступна частота 192000 Гц для записи, которую вырезали на винде и пусть линейный вход не работает наверное это можно исправить с помощью Direct Box, потому что там я так понимаю микрофонный уровень сигнала возможен, так что смысла тащиться на винду никакого нет. Я конечно понимаю что для кого-то это ребячество хотеть минимальный уровень задержки с любой звуковой картой, но считайте что внутренний ребенок этого требует. Просто после шутеров любая задержка остается на уровне ощущений и внутренний таймер должен быть откалиброван под реальное время без какого-либо оффсета. Я сомневаюсь что проблема в производительности железа так как 12900К работает с DDR5 на частоте контроллера памяти в режиме Gear 1, что официально не поддерживается, то есть по заявлению производителя невозможно и не работает, но на деле все в порядке и задержка находится на уровне 63 нс как если бы память была разогнана до 6000+ МГц в режиме Gear 2 на половине частоты контроллера памяти, то есть идет прибавка порядка 1000 МГц. Но самое важное тут то что напряжения остаются в норме, если память не гнать и заедания звука отсутствуют, потому что данные передаются без сбоев. Можете сами проверить недодав напряжений в биосе относящиеся к памяти и если компьютер будет работать, то не факт что звук будет стартовать без проблем. И если ответов не будет, значит видимо ни у кого результатов лучше нет и придется мне делать руководство как это все настроить. Собственно оно уже есть, остались лишь детали. Я думал гитаристы всерьез озабочены этим вопросом, но видимо привыкать к хорошему не всем хочется. В любом случае думаю подобное руководство опробовать может каждый, ведь линукс можно поставить хоть на флешку. Собственно графическая система в Wayland использует Vulkan для отрисовки рабочего стола и потому аппаратных ресурсов должно хватать даже маломощным ноутбукам, чтобы работать с весьма низкими задержками. Наверное мои проблемы из-за перевода из одного формата в другой, что напрягает простенькую звуковую кару что шла в довесок к наушникам, либо сырой драйвер не совсем стабильно работает на крайне низких значениях задержки потому что задержку ниже 4 семплов выставить невозможно.
... и добавил:
Проверить полную задержку можно с помощью RTL utility в том числе на линуксе, но так как Creative AE-7 запускается нормально только на OpenSuse пока что довести это дело до конца не получается.
Поэтому если у кого-то будет интерес и получится, то хотелось бы увидеть цифры, которые у вас получатся.
Для работы требуется пакет pipewire-jack. Также следует установить режим работы Pro Audio в настройках звуковых карт.
Для редактирования данного файла нужны права суперпользователя root.
Для этого нужно либо переключиться на него используя в терминале команду su, либо использовать команду sudo
При редактировании можно открыть простой текстовый редактор - например Kate от лица суперпользователя, например sudo kate и открыть нужный файл, либо ввести команду sudo kate /etc/security/limits.conf
Используя vi потребуется для ввода перейти в режим редактирования текста, нажав клавишу i, а после завершения редактирования нажать ESC, и напечатать :wq чтобы сохранить и выйти, либо использовать nano.
Двойное нажатие на d, то есть dd не в режиме редактирования удалит всю строку.
Если хочется отменить изменения выход осуществляется через команду :q!
Также войти в режим редактирования можно нажав a, чтобы начать ввод переместившись правее.
vi /etc/security/limits.conf
@audio - rtprio 100
@audio - memlock 4194304
@audio - priority -19
Далее ввести команду от лица суперпользователя
Создание группы audio
groupadd audio
Добавление пользователя в группу audio
usermod -a -G audio ИМЯПОЛЬЗОВАТЕЛЯ
Повышение приоритета Pipewire в режиме реального времени выше -19 для пользователя
~/.config/pipewire/pipewire.conf.d/my-rt-args.conf
module.rt.args = {
nice.level = -20
}
Вывести поддерживаемые частоты
grep -m1 -Hn "" /proc/asound/card?/stream? | tee /dev/tty | awk -F':' '{print $1}' | xargs grep 'Rates'
Показать частоты только для вывода
grep -E 'Codec|Audio Output|rates' /proc/asound/card*/codec#*
Показать частоты только для входа
grep -E 'Codec|Audio Input|rates' /proc/asound/card*/codec#*
Временное задание частоты и количества бит в пакете
pw-metadata -n settings 0 clock.force-rate 48000
pw-metadata -n settings 0 clock.force-quantum 32
Установка параметров до перезагрузки
pw-metadata -n settings 0 clock.rate 48000
pw-metadata -n settings 0 clock.quantum 32
Сохранение параметров
pw-metadata -n settings
Сброс ручной конфигурации Pipewire
pw-metadata -n settings 0 clock.force-rate 0
pw-metadata -n settings 0 clock.force-quantum 0
Установка параметров jack для всей системы.
Задаются жестко и для изменений требуют правки файла с перезапуском служб.
vi /usr/share/pipewire/jack.conf
jack.properties = {
node.force-quantum = 32
}
Мониторинг состояния
pw-top
Вывод статуса устройств
wpctl status
Информация об устройстве с выводом node.name
wpctl inspect номер
Основная настройка
~/.config/wireplumber/wireplumber.conf.d/60-driver-settings.conf
monitor.alsa.rules = [
{
matches = [
{
node.name = "alsa_output.usb-C-Media_Electronics_Inc._BOMGE_USB_Audio_Device-00.pro-output-0"
}
]
actions = {
update-props = {
priority.driver = 8192
priority.session = 8192
}
}
}
]
Перезапуск служб после изменений
systemctl --user restart pipewire pipewire-pulse wireplumber
Остановка базового аудио сервера.
systemctl --user stop pipewire-pulse.socket pipewire-pulse.service
Для Firefox в about:config следует добавить строку media.cubeb.backend с указанием jack, pulse или alsa