Email or username:

Password:

Forgot your password?
Alexey Skobkin

Вопрос к линуксоидам.

Какое-то время назад аудиоинтерфейс стал как будто засыпать по кулдауну.
Если никакого вывода звука секунд 10, то следующее воспроизведение начинается с заметной задержкой (несколько секунд).
Вплоть до того что если это видео, то сначала крутится видео секунды 3-4, потом оно замирает, начинает звучать звук, потом когда оно дозвучало до момента синхронизации - начинает играть вместе.
А если просто аудио - первые несколько секунд трека просто в /dev/null уходят.

Такое впечатление, что реально какое-то экстремальное энергосбережение по дефолту работать стало с какого-то апдейта чего-то.

Не было ли каких-то изменений в дефолтах ядра, ALSA или PulseAudio подобного плана в ближайшие полгода?

И куда можно посмотреть чтобы потюнить такое поведение?

P.S. Интерфейс внешний, подключённый по USB.

@rf
#Linux #sound #help #log #bugs #audio #USB #Focusrite #soft #UX

40 comments
Blue

@skobkin@lor.sh @L29Ah@qoto.org ну да, нет звука - нет проблем

[DATA EXPUNGED]
I'm Mary Poppins, y'all

@skobkin @hardworm @cauf @L29Ah на макоси звук просто работает!

hardworm ☭

@kemko @skobkin @cauf @L29Ah да хуй там плавал. Даже блютусные наушник с микрофоном не так то просто заставить работать как надо

Blue

@skobkin@lor.sh фига себе... не у меня тоже вроде фокусрайт и он вроде как не засупает... А давно это началось?

Alexey Skobkin

@blue
Ну я ж пишу, что где-то в рамках полугода. Я это несколько месяцев игнорировал, но судя по всему это просто изменение дефолтов где-то раз до сих пор не пофикшено.

Blue

@skobkin@lor.sh в глаза долблюсь, пытался понять не произошло ли это где-то в апстиме и не избежал ли я этого не обновляясь последнюю неделю, но нет, если пара месяцев или даже пол года - то точно нет

Alexey Skobkin

@blue
Ну, я на Gentoo ~amd64 сижу. У меня тут могут быть несколько более bleeding edge пакеты, нежели в убунтах, например.

Blue

@skobkin@lor.sh боюсь, с арчом (бтв) в этом аспекте соперничество будет трудным. Мой поинт в том, что если эти изменения в пульсе альсе ядре или чем нибудь еще, то скорее всего у меня они тоже есть. Возможно, тут что-то как раз "починили" и теперь драйвер твоей карточки это поддерживает и она должна была себя так вести с самого начала?)))

Alexey Skobkin

@blue
Ну с арчом тебе перманентно пизда.

> Возможно, тут что-то как раз "починили" и теперь драйвер твоей карточки это поддерживает

Ну, я участвовал в тестировании этого драйвера во время разработки ещё и там вообще не об этом было, а о правильном маппинге всего софтварного управления, которое доступно (роутинг, уровни, режимы, etc).

Хотя, конечно, могли и потом туда что-то добавить. Но я чот сомневаюсь. В винде оно себя так не ведёт, а разработка велась путём дампа USB пакетов и восстановления логики того как это делается в винде.

@blue
Ну с арчом тебе перманентно пизда.

> Возможно, тут что-то как раз "починили" и теперь драйвер твоей карточки это поддерживает

Ну, я участвовал в тестировании этого драйвера во время разработки ещё и там вообще не об этом было, а о правильном маппинге всего софтварного управления, которое доступно (роутинг, уровни, режимы, etc).

igelko

@skobkin@lor.sh @rf@mastodon.ml хм. на 2i2 ни разу не сталкивался с таким, ни с пульсой, ни с jack. Но я бы покопал в сторону какого-нибудь powerdevil, прости господи. У меня с ней другой есть прикол довольно давно - при загрузке я вижу карту в lsusb, но пульса её не видит до тех пор, пока я не выдерну и не вставлю обратно.

⚛️Revertron

@skobkin Я бы поставил на то, что это энергосбережение USB-портов.

Alexey Skobkin

@Revertron
Да, это один из подозреваемых. Поэтому ядро в списке подозреваемых.
Хотя, кажется, что других девайсов это не коснулось.
Но вообще надо бы провести тест на Steinberg UR22C, который у меня лежит как запасной. Если там будет так же - значит и правда USB.

hardworm ☭

@skobkin @rf а pipewire не притаскивал? У меня она чудит...правда не так как описываешь ты. У меня перегруз звука в блютуз ушах и кеш звука.. но работает не так. Я могу слышать звуки ведео после закрытия окна браузер или freetube.

Причем на pulse и на старой ubuntu 20.04 идеально

Alexey Skobkin

@hardworm
Я с Pipewire съехал обратно потому что он ведёт себя с профессиональными интерфейсами как говно.

У пульсы есть схожая проблема, но весь фикс - это вот это:
gist.github.com/skobkin/ed9adf

А у Pipewire хитровыебанный пайплайн и я так и не понял как мне это там провернуть. Там ещё и в какой-то момент с session manager на wireplumber переехали, который тоже конфигурировать чёрт ногу сломит.

Мне идея Pipewire нравится - это такое systemd для медиа в Linux.

Но пока там нет простой документации с хорошими примерами разных кейсов - нахер надо.

Ну и:
gitlab.freedesktop.org/pipewir

@hardworm
Я с Pipewire съехал обратно потому что он ведёт себя с профессиональными интерфейсами как говно.

У пульсы есть схожая проблема, но весь фикс - это вот это:
gist.github.com/skobkin/ed9adf

А у Pipewire хитровыебанный пайплайн и я так и не понял как мне это там провернуть. Там ещё и в какой-то момент с session manager на wireplumber переехали, который тоже конфигурировать чёрт ногу сломит.

hardworm ☭

@skobkin тогда дергай ручки buffer. В wiki рача есть годная статья wiki.archlinux.org/title/Pulse

Alexey Skobkin

@hardworm
Не совсем понял, при чём тут buffer.

Тут скорее что-то типа этого:
wiki.archlinux.org/title/Pulse

Blue

@skobkin@lor.sh @hardworm@lor.sh не помогло ли это случайно?

Alexey Skobkin

@blue @hardworm Я был в активном разговоре в Mumble и не проверял.

Alexey Skobkin

@blue @hardworm
Похоже, что не помогло.

$ cat /etc/pulse/default.pa.d/00-disable-suspend-on-idle.pa
unload-module module-suspend-on-idle

Alexey Skobkin

@hardworm
В общем-то корни проблемы у Pulse и Pipewire схожие: они считают, что если у интерфейса больше двух выходов, то из него нужно собирать ебучее Dolby 5.1/7.1/100.1.

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

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

При этом у Pipewire есть профиль девайса "Pro Audio", но он это поведение никак не меняет 🤷

@hardworm
В общем-то корни проблемы у Pulse и Pipewire схожие: они считают, что если у интерфейса больше двух выходов, то из него нужно собирать ебучее Dolby 5.1/7.1/100.1.

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

mittorn

@skobkin @hardworm а jack под это получается настроить? У меня была проблема - как запретить стандартные правила для выбора устройств вывода - чтобы вывод приложения не присоединялся сам пока я ему не скажу

Alexey Skobkin

@mittorn @hardworm
Ох, я не помню уже.
Я Jack использовал последний раз больше года назад и это была схема:
ALSA ➡️ Jack ➡️ Pulse

Но я забил на попытки в организацию записи в линуксах и со звуком работаю только в Windows.

mittorn

@skobkin @hardworm но как? там ведь даже patch bay нет
То, что в jack делается парой перетаскиваний мышки, на windows делается только в платном софте

Alexey Skobkin

@mittorn @hardworm
А он там не нужен. VST выстраиваются в нужную цепочку в DAW путем простого пайплайна или send/receive.

Плюс интерфейс на железном уровне может в роутинг и лупбек.

То есть да, Jack даёт это в режиме "голь на выдумки хитра" софтово, но мне это не нужно.

Записать гитару я могу прекрасно без этого. Обработать - тоже. При желании даже на внешнем железе 🤷

Да, Jack может бюджетно сделать прикольный роутинг для стрима, например.

Но чтобы все это говно заработало на моем интерфейсе как надо, мне надо будет написать дохера конфигурации. А в итоге все равно испытать боль от того, что нужны костыли чтобы пропустить гитару через Bias FX, например.

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

@mittorn @hardworm
А он там не нужен. VST выстраиваются в нужную цепочку в DAW путем простого пайплайна или send/receive.

Плюс интерфейс на железном уровне может в роутинг и лупбек.

То есть да, Jack даёт это в режиме "голь на выдумки хитра" софтово, но мне это не нужно.

Записать гитару я могу прекрасно без этого. Обработать - тоже. При желании даже на внешнем железе 🤷

mittorn

@skobkin @hardworm в таком случае какая разница там, pipewire это, pulseaudio, alsa или jack, если всё равно все коммутации будут внутри DAW?

Alexey Skobkin

@mittorn @hardworm
Не совсем понял к чему ты это всё, но есть две разницы.

Техническая: PA и PW в обычном режиме дают большие задержки. Jack и PW в режиме Jack - нет.

Моя конкретно: Pipewire хуй настроишь так чтобы интерфейс вёл себя как в других ОС. По умолчанию он воспринимает Focusrite 18i20 как какую-то ёба-вафлю для домашнего кинотеатра.

Для пульсов я фикс нашёл очень быстро, он был понятный и сразу заработал. Для PW всё закончилось тем, что я просто откатился к пульсам потому что не разобрался в каких местах достаточно сложного пайплайна PW нужно какие правки делать. И главное примеров хороших не особо было - только мануалы с референсами, на прочтение которых нужно потратить дохера времени.

Но ещё раз: я вообще не понимаю к чему ты всё это притащил, если я говорю не о том, что у меня проблема с ЗАПИСЬЮ звука, а в том что просто медийные возможности вроде разговора в видеочатике нормально было невозможно использовать на железе более сложном, чем вход-выход.

@mittorn @hardworm
Не совсем понял к чему ты это всё, но есть две разницы.

Техническая: PA и PW в обычном режиме дают большие задержки. Jack и PW в режиме Jack - нет.

Моя конкретно: Pipewire хуй настроишь так чтобы интерфейс вёл себя как в других ОС. По умолчанию он воспринимает Focusrite 18i20 как какую-то ёба-вафлю для домашнего кинотеатра.

mittorn

@skobkin @hardworm так проблема в использовании этой железки для медийных задач или в использовании её с DAW? Если первое - то как раз jack и pipewire позволяют это делать, нужно лишь прикрутить какой-то интерфейс микшера вроде qjackctl, если второе - то по идее это забота DAW который должен подцепить устройство в режиме jack или вообще напрямую через alsa и дальше уже там рулить им

Alexey Skobkin replied to mittorn

@mittorn @hardworm
> использовании этой железки для медийных задач
> Если первое - то как раз jack и pipewire позволяют это делать, нужно лишь прикрутить какой-то интерфейс микшера вроде qjackctl

Jack - это не про медийные задачи. Это как раз про работу со звуком.
Мне же нужно как раз чтобы мультимедийная подсистема работала нормально, а это пульсы и та часть PW, которая не эмулирует Jack и управляется тем же pavucontrol. А там без переёбывания конфигов пиздец.

mittorn replied to Alexey

@skobkin @hardworm не ужели без этого никак? У меня на работе pipewire (но там особых требованимй к звуку нет, лишь бы на монитор мог выводиться), дома чистый jack чисто под мультимедийные задачи, включающие в себя передачу звука на сервер стриминга для VR шлема (который просто висит как capture у процесса) и обратно (playback у сервера закидывается во все capture остальных процессов)
Никаких pulseaudio/pipewire на домашнем компе нет и не нужно - всё что не умеет jack напрямую попадёт туда через alsa-jack, а что использует libpulse - может быть запущено через apulse (но я такого уже не видел лет 7 наверно)
как бонус - я в любой момент могу открыть граф и соединить любой вход с любым выходом. Например пихнуть музыкальный плеер в микрофонный вход врчата, jitsi или дискорда
Так бы мог и на alsa сидеть, но там нет динамического коммутатора и надо сидеть и дрочить конфиги.
Я так понял, pipewire считает себя умнее всех и неправильно адресует устройства по дефолту.
А что же в чистом jack не подходит для медийных задач?

@skobkin @hardworm не ужели без этого никак? У меня на работе pipewire (но там особых требованимй к звуку нет, лишь бы на монитор мог выводиться), дома чистый jack чисто под мультимедийные задачи, включающие в себя передачу звука на сервер стриминга для VR шлема (который просто висит как capture у процесса) и обратно (playback у сервера закидывается во все capture остальных процессов)
Никаких pulseaudio/pipewire на домашнем компе нет и не нужно - всё что не умеет jack напрямую попадёт туда через alsa-jack,...

Alexey Skobkin replied to mittorn

@mittorn @hardworm
То, что его далеко не всё поддерживает (средний софт ориентирован на PA) и то, что раз речь не идёт о задачах звукозаписи и прочего, то я НЕ ХОЧУ ПЕРДОЛИТЬСЯ в патчи.
В винде оно просто работает. Я драйверу звуковухи галочкой сказал, что мне нужны входы отдельно стереопарами - он их раскидал отдельно и система их видит отдельно.
Выходы тоже сказал иметь отдельно - у меня как бы 4 стерео выхода, а не ебучее псевдодолби 7.1.

Да, у винды преимущество. Под неё драйвер написал производитель железки. Но в случае медийных задач я являюсь ОБЫЧНЫМ ПОЛЬЗОВАТЕЛЕМ, которого не ебёт почему там ALSA решила, что 3 и 4 каналы это не отдельные 3 и 4 каналы, а rear-left и rear-right, 5 и 6 - это front-center и lfe, и 7 и 8 это side-left и side-right.

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

@mittorn @hardworm
То, что его далеко не всё поддерживает (средний софт ориентирован на PA) и то, что раз речь не идёт о задачах звукозаписи и прочего, то я НЕ ХОЧУ ПЕРДОЛИТЬСЯ в патчи.
В винде оно просто работает. Я драйверу звуковухи галочкой сказал, что мне нужны входы отдельно стереопарами - он их раскидал отдельно и система их видит отдельно.
Выходы тоже сказал иметь отдельно - у меня как бы 4 стерео выхода, а не ебучее псевдодолби 7.1.

mittorn replied to Alexey

@skobkin @hardworm так может у тебя проблема не в pulseaudio/pipewire, а в самом alsa драйвере, который не умеет конкретную модель? Разумеется у разрабов ядра конкретно этой железки может не быть

Alexey Skobkin replied to mittorn

@mittorn @hardworm
Ты частично прав.

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

Но даже если представить, что драйвера нет, мне-то как мультимедийному юзеру (в этом контексте) какое до этого дело?

Мне нужно чтобы работало, а не знать чем оправдать то, почему не работает.
В пульсах я добился этого меньшей кровью, хоть и все равно костылями в виде ремаппинга каналов (в треде был мой конфиг).
В PW я понятия не имею как добиться нормальной работы, а Jack снова тащить и обвязывать костылями ради того чтобы, видимо, был Jack, я не хочу.

К слову, я тут не топлю за "трава зеленее". Я на Pipewire сам по своей инициативе переехал ещё когда его толком никуда не завезли как дефолт. Я люблю эксперименты. Но время шло, а неудобства мне надоедали все больше и я откатил все обратно.

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

Но не сейчас.

Так что прошу пожалуйста, если интерфейс не многоканальный вроде моего и нет готовых фиксов, не рассказывать почему оно может работать хуево. Я вон тикет в репе Pipewire выше кидал - там прям простыня на эту тему.
Мне нужен фикс для моих юзкейсов, а не гадания или "X нинужно".

@mittorn @hardworm
Ты частично прав.

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

mittorn replied to Alexey

@skobkin @hardworm да я понял, просто пытался понять что именно в твоей конфигурации работало не так. Выходит проблема именно на уровне usb_audio, который должным образом железку не поддерживает, а даже не в pipewire/pulseaudio/jack, которым просто отдаются неправильные порты, хотя в них это и можно перемаппить.
в asound кстати их несложно перемаппить, но jack/pa/pw не через него работают

Alexey Skobkin replied to mittorn

@mittorn @hardworm
Я даже не уверен, что это проблема usb_audio, а не соглашения ALSA какие-нибудь.
Чтобы точно ответить на этот вопрос, нужно упороться по ядру. А мне, честно говоря, лень. Даже если я разберусь - я всё равно никогда не сойду ума настолько чтобы писать патчи в ту же ALSA.

Go Up