The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Причина прекращения поддержки звуковой системы ALSA в Firefox, opennews (??), 14-Мрт-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


34. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +1 +/
Сообщение от Stax (ok), 14-Мрт-17, 20:01 
Хм. Тогда поясните, насколько просто в рамках чистого ALSA решается задача: играем youtube видео со стереозвуком, тут открыли следующее видео с 5.1 звуком. Или может через HTML5 API (https://www.w3.org/TR/webaudio/#ChannelLayouts) нам предложили вывести многоканальный звук. Как прозрачно в приложении переключиться с вывода стерео на многоканальный вывод, чтобы не возникло никаких проблем?
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

35. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  –1 +/
Сообщение от Аноним (-), 14-Мрт-17, 20:05 
Ты мне уже на другом ресурсе нёс эту дичь, только про скайп. Так же как и моно прекрасно играется на стереосистемах, стерео прекрасно играется на 5.1 системах.
Ответить | Правка | Наверх | Cообщить модератору

52. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Stax (ok), 14-Мрт-17, 20:37 
o.O на каком ресурсе? Про скайп?.. не использую, так что маловероятно..

Я тут пишу не про игру стерео на 5.1 системе. А про переключение на ходу - играли в приложении стерео, и тут понадобилось играть 5.1. Как это сделать в ALSA, подробности? Типичный конфиг из коробки, когда устройство по умолчанию одно, а 5.1 surround другое, а DTS-кодированный поток - третье.

Ответить | Правка | Наверх | Cообщить модератору

54. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Аноним (-), 14-Мрт-17, 20:42 
У меня такое прокатывало только в VLC, и только на Gentoo. На Сусе VLC выдавал окно, что мне надо обновить ALSA до 1.0.24-git-не-старее-такого-то. Вероятно, надо смотреть код VLC.
Ответить | Правка | Наверх | Cообщить модератору

59. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  –2 +/
Сообщение от виндотролль (ok), 14-Мрт-17, 20:57 
> У меня такое прокатывало только в VLC, и только на Gentoo. На
> Сусе VLC выдавал окно, что мне надо обновить ALSA до 1.0.24-git-не-старее-такого-то.
> Вероятно, надо смотреть код VLC.

Тю, ну так проблема ж решена же! Надо всего-лишь запустить файрфокс на генту. Оставлю вам возможность сообщить эту приятную новость разработчикам. Во они обрадуются!

Ответить | Правка | Наверх | Cообщить модератору

111. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Аноним (-), 15-Мрт-17, 02:45 
Вряд ли разработчики файрфокс умеют компелять генту
Ответить | Правка | Наверх | Cообщить модератору

224. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от count0krsk (ok), 23-Мрт-18, 16:02 
> Вряд ли разработчики файрфокс умеют компелять генту

+100500

Ответить | Правка | Наверх | Cообщить модератору

102. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Mihail Zenkov (ok), 15-Мрт-17, 01:01 
> Я тут пишу не про игру стерео на 5.1 системе. А про
> переключение на ходу - играли в приложении стерео, и тут понадобилось
> играть 5.1. Как это сделать в ALSA, подробности?

Если допустимо остановить старый звук и запустить новый - закрыли старый вывод, открыли новый с 5.1. Если не допустимо - открываем всегда 5.1 и на неиспользуемые каналы отсылаем нули. Другого способа нет и PA будет делать также.

Это кстати еще одна проблема PA: звуковой сервер всегда должен держать все по-максимуму и на одной частоте дискретизации. Отсюда и жор CPU/уменьшение времени автономной работы. И если с jack это реально необходимо для контролируемой низкой задержки, то для обычного ноута - просто расточительно.

Ответить | Правка | К родителю #52 | Наверх | Cообщить модератору

117. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Аноним (-), 15-Мрт-17, 03:46 
Обычному ноуту и 5.1 как-то не особо нужно.
Ответить | Правка | Наверх | Cообщить модератору

179. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +1 +/
Сообщение от Нечестивый (ok), 15-Мрт-17, 14:32 
> Обычному ноуту и 5.1 как-то не особо нужно.

Обычному ноуту (как и тому компютеру, который персонялѝный), прежде всего противопоказны systemd/consolekit и policykit, а без них пупсу можно использовать только как враппер для запуска одной программы (практически теряя весь другой звук).

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

Ответить | Правка | Наверх | Cообщить модератору

225. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от count0krsk (ok), 23-Мрт-18, 16:07 
> Конечно эта проблема решится сама собой когда нас окончательно выдрессируют что персональным
> компьютерам не быть

Вам же пели на Олимпиаде "Нас не догонят!" )))
И не выдрессируют. Я не пользуюсь инетом на смартфоне, только если хотят фото отправить в ватс-ап захожу на рабочем. И то приучаю юзеров, чтобы на почту слали. Но они не умеют со смарта на почту ))

Ответить | Правка | Наверх | Cообщить модератору

65. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +3 +/
Сообщение от AlexYeCu (ok), 14-Мрт-17, 21:24 
А менее синтетических задач нет?
Тут было много рассуждений на тему «как мало людей используют alsa». А как много людей используют 5.1? Да ещё и в браузере его хотят?
Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

81. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Stax (ok), 14-Мрт-17, 21:53 
Без понятия, лично я постоянно использую 5.1 (точнее 7.1), но в браузере он мне вроде как на фиг не нужен. Хотя я немного не в тренде современных концепций - работы из Chrome OS, программирования в Atom, прослушивания музыки через Google Music в браузере и тп - думаю, у тех, кто активно популяризует такой подход (а таких людей вокруг довольно много!) могут быть другие желания. Сейчас куча людей, к примеру, вообще не представляет, зачем слушать музыку в чем-то кроме "вконтакте" да яндексе, им этого для всего хватает. Просто в новости сказано, что у авторов FF проблемы с ALSA с организацией 5.1, а комментаторы, не разобравшись, на них бочку катят - вот и предложил задачку, чтобы стало яснее. Зачем им это надо - ну к примеру, чтобы не отставать в реализации тех же HTML5 функций от других браузеров. Спецификация описывает обработку surround-звука, такой уж веб нынче - лучше пусть так, чем какая-нибудь дрянь типа флеша опять заведется, чтобы покрыть недостающий функционал.

А что до ALSA, она действительно слишком низкоуровневая, чтобы нормально в конечном приложении делать такие штуки, как переключение устройств на лету и прочего (что она же сама требует для зайдействия surround и передачи кодированного сигнала), и pulseaudio довольно успешно решает (в частности) эту проблему. Пульсохейтеры тут много брызжут слюной, но никакого другого дельного решения проблемы-то нет. Нужно было что-то более высокоуровневое, что решало проблемы имеющегося API и пульс им стал. Не единственный возможный вариант, конечно, но весьма ориентированный на проблемы, характерные именно для десктопа.

Ответить | Правка | Наверх | Cообщить модератору

90. "Пульсохейтеры"  +1 +/
Сообщение от AlexYeCu (ok), 14-Мрт-17, 22:54 
>Пульсохейтеры тут много брызжут слюной

«Пульсохейтеры» не сами по себе появились. Есть alsa, которая работает из коробки как надо. Есть pulseaudio, который надо настраивать-перенастраивать, чтоб получить то, что в alsa  работает из коробки. Вывод очевиден, нет?

Ответить | Правка | Наверх | Cообщить модератору

97. "Пульсохейтеры"  +/
Сообщение от Stax (ok), 15-Мрт-17, 00:27 
Нет. Подумайте о примере с многоканалом выше: альса предлагает большую группу устройств (default, surround51, surround71, iec958 - к примеру, для стерео, многоканала 5.1, 7.1 и сжатого цифрового DTS/Dolby, соответственно), с ними нужно работать с разными параметрами и т.п. В случае, когда есть одно приложение, которому хватает default - все ок. Но если не хватает.. переключиться между устройствами так просто не выходит! А если еще больше одной звуковухи (очень типично, когда появляются USB-наушники, BT-гарнитуры и прочее), то начинается ад: у них могут быть разные байтовые форматы, разные хорошие форматы буфера и тп. И без спец настройки программы на этом просто ломаются, меняешь устройство - и становится плохо: щелчки, шипение, повторение звуков, просто молчание или даже вылеты.

Разумеется, вы скажите: плохая программа. Но проблема на самом деле в том, что в ALSA *правильно* работать с несколькими разными устройствами - весьма сложно. И программы просто это не поддерживают. Либо пытаются поддерживать и получается (но много сложного кода, причем обычно никто его сам не пишет - берут прослойку типа portaudio или SDL, которая пытается скрыть это от программы). Либо пытаются поддерживать и не получается (и тут вы говорите - "плохая программа"). Но на самом деле - проблема устройства/драйверов и альсы, в том, что нет хорошего интерфейса.

Что предлагает пульс? Вместо того, чтобы в каждой программе страдать, предоставляется универсальный API, который "всегда работает". При этом пульс берет на себя обработку разных устройств, разных звуковух, разных оптимальных параметров для устройства. Теперь программа может просто выводить звук, а пульс сам умеет задействовать и многоканальные устройства, и переключать звуковуху на ходу и еще многое другое. Теперь программам - просто, и они получают кучу функциональности! Разработчики любят пульс, он решает кучу проблем и в большинстве случаев без сложного кода позволяет делать очень хитрые штуки. Но есть один кейз: те самые проблемы хитрого железа/драйверов, когда альса что-то не так сообщила, где-то выбрались не те буферы, где-то дистроклепатели накосячили в конфигах и теперь пульс в той конфигурации имеет те самые проблемы, что та самая "плохая программа" (по вашей точки зрения). Что теперь делаете вы? Ругаете пульс! И не понимаете, почему его так любят разработчики. Но: теперь у вас есть единое место, где можно все настроить/починить, и хорошо станет *во всех* программах, которые используют пульс. Вот что главное. И не придется чинить криво работающий фокс, в котором прикрутят 5.1 "прямо поверх альсы". Или другие программы. Не сломается ничего - просто почините пульс, если вам так не повезло с конфигурацией.

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

Ответить | Правка | Наверх | Cообщить модератору

104. "Пульсохейтеры"  +4 +/
Сообщение от Mihail Zenkov (ok), 15-Мрт-17, 01:37 
> Нет. Подумайте о примере с многоканалом выше: альса предлагает большую группу устройств
> (default, surround51, surround71, iec958 - к примеру, для стерео, многоканала 5.1,
> 7.1 и сжатого цифрового DTS/Dolby, соответственно),

Все (кроме default) нужны для форсирования определенного режима работы.

> с ними нужно работать с разными параметрами и т.п.

Нет, обычно параметры едины (за исключением количества каналов) и работать с ними не нужно, если нет какой-то спец задачи.

> В случае, когда есть одно приложение, которому
> хватает default - все ок. Но если не хватает.. переключиться между
> устройствами так просто не выходит!

Почему? Чем PA лучше?

> А если еще больше одной звуковухи
> (очень типично, когда появляются USB-наушники, BT-гарнитуры и прочее), то начинается ад:
> у них могут быть разные байтовые форматы, разные хорошие форматы буфера
> и тп.

Используете default или plug - они автоматически вставляют преобразование частоты/формата/dmix.
http://www.alsa-project.org/main/index.php/DeviceNames

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

Если вы используете default/plug - то это баг и о нем нужно сообщить и исправить.

> Разумеется, вы скажите: плохая программа. Но проблема на самом деле в том,
> что в ALSA *правильно* работать с несколькими разными устройствами - весьма
> сложно.

Сложно, если лезть в hw и крутить все подряд не имея конкретных знаний и цели. Еще раз - используйте default и у вас все получится :)

> Но на самом деле - проблема
> устройства/драйверов и альсы, в том, что нет хорошего интерфейса.

Отчасти согласен - API alsa переусложнен. Но эта плата за возможность делать с железом что угодно. В том числе - получить задержку пригодную для работы со звуком, даже на встроенной звуковой плате.

> Что предлагает пульс? Вместо того, чтобы в каждой программе страдать, предоставляется универсальный
> API, который "всегда работает".

Как я уже говорил - его "всегда работает" слишком буквально - даже если звука нет (у меня к примеру это 90% времени) - он все равно "работает".

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

PA не отвечает за alsa драйвера и не может сам знать оптимальные параметры - их назначает alsa.

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

Спорно. Я правил несколько открытых программ для работы со звуком и пишу свою, но PA не люблю - он не дает возможности на прямую работать с железом. Один из моих проектов - аналог RMAA - замер качества звуковой платы (или через нее другого железа). Ключевое требование - bit perfect - никаких преобразований по пути от программы до DAC/ADC.

> Но есть один кейз: те
> самые проблемы хитрого железа/драйверов, когда альса что-то не так сообщила, где-то
> выбрались не те буферы, где-то дистроклепатели накосячили в конфигах и теперь
> пульс в той конфигурации имеет те самые проблемы, что та самая
> "плохая программа" (по вашей точки зрения).

Тогда проблема будет и в обоих случаях - при воспроизведении и через pa и через alsa. Обычно же претензии возникают из-за того, что через alsa все работает а через pa - шипит.

> Но: теперь
> у вас есть единое место, где можно все настроить/починить, и хорошо
> станет *во всех* программах,

Это главное и единственное место - alsa drivers, находится в ядре. Если драйвер глючит - его нужно чинить, а не изобретать обходные маневры.

Это основная претензия к PA - вместо того, чтобы доработать и улучшить alsa - просто добавили прослойку поверх alsa, которая дублирует 90% функциональности.

Ответить | Правка | Наверх | Cообщить модератору

106. "Пульсохейтеры"  +/
Сообщение от виндотролль (ok), 15-Мрт-17, 01:57 
> Один из моих проектов - аналог RMAA - замер качества звуковой платы (или через нее другого железа).

Где можно скачать/купить/попробовать?

Ответить | Правка | Наверх | Cообщить модератору

108. "Пульсохейтеры"  +2 +/
Сообщение от Mihail Zenkov (ok), 15-Мрт-17, 02:13 
> Где можно скачать/купить/попробовать?

На данный момент он не опубликован. Проект некоммерческий и будет под GPLv3. Пилится в свободное время, конкретных сроков не назову. Как выложу - анонс на opennet напишу.

Ключевым отличием от RMAA (кроме открытости) будет модульная система: интерфейс для просмотра и сравнения графиков + различные модули для замеров. Замер звуковой платы - один из модулей. Модули можно будет легко (ну или мне так кажется :) дописывать под свои задачи. К примеру сейчас я активно использую модуль для анализа данных от ЭБУ ДВС.

Ответить | Правка | Наверх | Cообщить модератору

203. "Пульсохейтеры"  +/
Сообщение от виндотролль (ok), 16-Мрт-17, 22:37 
На чем пишете? На чем можно делать модули?
Может, все-таки, release early? А там кто-то еще подключится.
Ответить | Правка | Наверх | Cообщить модератору

206. "Пульсохейтеры"  +/
Сообщение от Mihail Zenkov (ok), 17-Мрт-17, 01:35 
> На чем пишете?

D + OpenGL.

> На чем можно делать модули?

На любом ЯП. Модули - отдельные приложения (в духе unix way). От модуля требуется только выдать данные в файл определенного формата. Формировать сам файл можно как угодно - хоть в реальном времени (например для цифрового осциллографа) или наоборот - писать микроконтроллером на sd карту, а позже анализировать. Сам формат файлов достаточно простой.

> Может, все-таки, release early? А там кто-то еще подключится.

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

Ответить | Правка | Наверх | Cообщить модератору

226. "Пульсохейтеры"  +/
Сообщение от count0krsk (ok), 23-Мрт-18, 16:16 
> Все же хочу сперва реализовать все базовые идеи/функции + примеры модулей и
> минимальная документация. Тогда и желающих попробовать/улучшить будет побольше, а неконструктивной
> критики поменьше :)

Очень ждём. РМАА - вещь, из-за которой приходится доставать из кладовки старый ноут с XP.

Ответить | Правка | Наверх | Cообщить модератору

190. "Пульсохейтеры"  –1 +/
Сообщение от Stax (ok), 15-Мрт-17, 19:39 
> Все (кроме default) нужны для форсирования определенного режима работы.

Так а без "форсирования" и не сделать толком ничего!
http://drona.csa.iisc.ernet.in/~uday/alsamch.shtml - типа, нормальное решение? И все равно получили кучу устройств.

Для вывода закодированного потока типа DTS опять же требуется отдельное устройство.

> Нет, обычно параметры едины (за исключением количества каналов) и работать с ними не нужно, если нет какой-то спец задачи.

В свое время мучал audigy 2 на предмет выдачи 24/96 звука (по цифре через s/pdif). Для этого нужно было использовать специальное устройство (с условным названием p16v), которое работало только в режиме 24/96/8 каналов, аппаратного микширования не было. Даже со всеми dmix и прочим это *не* возможно было заставить работать со всеми приложениями. Это просто невозможно было нормально сделать в ALSA - даже если в каких-то приложениях работало, в других ломалось. Возможно, какие-то нюансы с размером буфера и подобным тоже были важны. В общем, единственный возможный способ оказался - использование звукового сервера (правда, тогда это был jack), который работал с hw-устройством как надо, а остальные через него.

А сейчас pulse решает подобные проблемы.

> Почему? Чем PA лучше?

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

А еще меня не устраивает качество ресемплинга при использовании конвертации по умолчанию. Когда это делает внешний сервер, где можно настроить - все намного приятнее. Отключить же инициативу ALSA тоже непросто - несколько лет использовал такую замечательную карточку, как Audiophile USB. Ее особенность - работает только в режимах S16_BE и S24_3BE. Научить приложения использовать подобное hw-устройство обычно невозможно, они просто не умеют такое. А конвертации ALSA не устраивают. Поэтому jack в нужном режиме + приложения через него - единственное решение проблемы. Но jack создает свои проблемы для программ, которые его нативно не умеют - плагин alsa->jack глючный. Все это было не очень удовлетворительно.. пока не вышел pulse и не предложил намного более совместимое решение. Конечно, jack для некоторых вещей все равно полезен, но для всех остальных pulse лучше.

> Ключевое требование - bit perfect - никаких преобразований по пути от программы до DAC/ADC.

Почти-bit-perfect, который можно получить в pulse (кстати, любопытно замерить, с правильными настройками, насколько ухудшаются параметры. А еще есть подозрение, что на 100% громкости и без преобразований частоты он может сделать bit-perfect. Кстати, он умеет и такую замечательную фишку, как открытие звукового устройства в режиме, идентичном исходному потоку, если он один и устройство поддерживает такое формат. Всякой гадости типа dmix'ов и не снилось) - намного лучше тех преобразований, что выдает alsa с plughw.. А чтобы работать с hw, придется поддерживать всю экзотику типа карт, умеющих только big endian или только 8-канальный режим, без стерео.

> Это главное и единственное место - alsa drivers, находится в ядре. Если драйвер глючит - его нужно чинить, а не изобретать обходные маневры.

Брр. Тут я совсем запутался. Если мы говорим про случай, когда все хорошо - что же по-вашему глючит, pulseaudio? Вы видите такую систему, где все в порядке с драйверами и ALSA, а пульс создает проблемы и не работает? Можно детали?

Ответить | Правка | К родителю #104 | Наверх | Cообщить модератору

193. "Пульсохейтеры"  +2 +/
Сообщение от Mihail Zenkov (ok), 15-Мрт-17, 21:26 
>> Все (кроме default) нужны для форсирования определенного режима работы.
> Так а без "форсирования" и не сделать толком ничего!

Ничего - это сильно сказано. Default подходит для 90% случаев, surround* - когда нужно указать, какая именно конфигурация колонок у вас.

> http://drona.csa.iisc.ernet.in/~uday/alsamch.shtml - типа, нормальное решение? И все
> равно получили кучу устройств.

Для простого 5.1 ничего править не нужно - просто выбрать подходящее виртуальное устройство. По ссылке описан специфический случай - как из стерео сделать 4.1/5.1. У pa это как делается?

> Для вывода закодированного потока типа DTS опять же требуется отдельное устройство.

Ну да. И это удобно - можно создавать свои виртуальные устройства и перенаправлять звук как угодно.

>> Нет, обычно параметры едины (за исключением количества каналов) и работать с ними не нужно, если нет какой-то спец задачи.
> В свое время мучал audigy 2 на предмет выдачи 24/96 звука (по
> цифре через s/pdif). Для этого нужно было использовать специальное устройство (с
> условным названием p16v), которое работало только в режиме 24/96/8 каналов, аппаратного
> микширования не было. Даже со всеми dmix и прочим это *не*
> возможно было заставить работать со всеми приложениями. Это просто невозможно было
> нормально сделать в ALSA - даже если в каких-то приложениях работало,
> в других ломалось.

Баг репорт был?

> Возможно, какие-то нюансы с размером буфера и подобным
> тоже были важны.

Они будут едины для всех приложений. Зависят только от драйвера. Если драйвер не выставляет оптимальные значения (прерывает/искажает звук) по-умолчанию - это баг.

> А еще меня не устраивает качество ресемплинга при использовании конвертации по умолчанию.
> Когда это делает внешний сервер, где можно настроить - все намного
> приятнее.

alsa-plugins-1.1.1/doc/samplerate.txt


Or, more easily, define a global variable "defaults.pcm.rate_converter",
which is used as the default converter type by plug and rate plugins:

    defaults.pcm.rate_converter "samplerate"

Write the above in your ~/.asoundrc or /etc/asound.conf.

The following converter types are available:

  - samplerate_best Use SRC_SINC_BEST_QUALITY
  - samplerate_medium   Use SRC_SINC_MEDIUM_QUALITY
  - samplerate      Use SRC_SINC_FASTEST
  - samplerate_order    Use SRC_ZERO_ORDER_HOLD
  - samplerate_linear   Use SRC_LINEAR

Для особых ценителей так же доступен speexrate (с тремя настройками качества) и lavcrate (с пятью настройками качества).

> Отключить же инициативу ALSA тоже непросто - несколько лет использовал
> такую замечательную карточку, как Audiophile USB. Ее особенность - работает только
> в режимах S16_BE и S24_3BE. Научить приложения использовать подобное hw-устройство обычно
> невозможно, они просто не умеют такое.

Смотря какие: у меня тоже есть emu0204 с S24_3LE. Для mpv - af=format=s24. А так да - все через jack, так как подобное железо и берется для работы со звуком, а там без jack никак.

> А конвертации ALSA не устраивают.

Похоже вы просто не изучали возможности и алгоритмы alsa. Или у вас есть конкретные претензии к тому как происходит конвертация?

>> Ключевое требование - bit perfect - никаких преобразований по пути от программы до DAC/ADC.
> Почти-bit-perfect,

Почти не годится: bit либо perfect либо нет. Если есть хотя бы малейшее вмешательство - нужно как минимум заново добавлять dithering.

> который можно получить в pulse (кстати, любопытно замерить, с правильными
> настройками, насколько ухудшаются параметры.

Потеряем 1-2 младших бита + ресемплинг явно сигнал не украшает.

> А еще есть подозрение, что на 100%
> громкости и без преобразований частоты он может сделать bit-perfect.

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

У меня обе платы (emu1212m и emu0204) поддерживают аппаратно 44.1 и 48. Если я запущу фильм 48 (через pa), а затем музыку, будет ресемплинг.

> Кстати, он
> умеет и такую замечательную фишку, как открытие звукового устройства в режиме,
> идентичном исходному потоку, если он один и устройство поддерживает такое формат.
> Всякой гадости типа dmix'ов и не снилось)

Dmix - программное микширование запускается для плат, где нет аппаратного. У PA программное микширование будет всегда, даже если плата умеет аппаратное. И что кому не снилось ? :)

> - намного лучше тех
> преобразований, что выдает alsa с plughw..

Еще раз с подробностями: чем именно плох plughw с точки зрения аудио алгоритмов?

>> Это главное и единственное место - alsa drivers, находится в ядре. Если драйвер глючит - его нужно чинить, а не изобретать обходные маневры.
> Брр. Тут я совсем запутался. Если мы говорим про случай, когда все
> хорошо - что же по-вашему глючит, pulseaudio?

Да, подробностей не скажу. Могу лишь предположить, что PA пытается (или пытался) использовать единые параметры (буфера/периоды) для всех драйверов, что не допустимо, так как все железо разное и оптимальные параметры должен выставить драйвер, а далее приложение должно отталкиваться от них. Либо криво реализовано наполнение буфера - отсюда underrun/overrun.

> Вы видите такую систему,
> где все в порядке с драйверами и ALSA, а пульс создает
> проблемы и не работает? Можно детали?

У меня нет проблем с pa, так как нет самого pa :) Но подобных жалоб (pa шипит/трещит - удаляю - все работает) - половина лора. Возможно сейчас ситуация обстоит лучше.

Ответить | Правка | Наверх | Cообщить модератору

207. " "  –1 +/
Сообщение от Аноним (-), 17-Мрт-17, 11:45 
Михаил, вы хорошо разбираетесь в звуке, может присоветуете, как решить мою проблему?
В системе 3 карты: Asus Xonar, NVidia HDMI и встроенный Intel. HDMI всегда второй, а Xonar и intel гребаная alsa рандомно меняет местами при каждой загрузке системы. Багофича описана еще лет 10-12 назад, насколько я понял - какой модуль загрузится первым, тот и будет default. И разрабы даже не собираются сие непотребство чинить. Можно, конечно, интеграшку тупо отключить в BIOS'е, но я надеялся через нее звук в наушники пускать, да и не спортивно это. Как мне порядок загрузки модулей правильный сделать? Я уж все варианты перепробовал, что в нете нагуглил.
Ответить | Правка | Наверх | Cообщить модератору

208. "index="  +/
Сообщение от Michael Shigorinemail (ok), 17-Мрт-17, 14:00 
> В системе 3 карты: Asus Xonar, NVidia HDMI и встроенный Intel. HDMI
> всегда второй, а Xonar и intel гребаная alsa рандомно меняет местами
> при каждой загрузке системы. Багофича описана еще лет 10-12 назад, насколько
> я понял - какой модуль загрузится первым, тот и будет default.

Другой Михаил, но в нашем пакете libalsa есть вот такой файлик:
http://git.altlinux.org/people/mike/packages/?p=alsa-lib.git...

Покажите-ка /proc/asound/cards -- если модули разные, то я бы раскидал примерно так:

--- /etc/modprobe.d/alsa-modindex.conf
## spare index=0 for a hotplug soundcard (if any)
#options snd-usb-audio index=0

## My Soundcard
options snd_как_там_его index=0 # или даже 1, если рядом USB-гарнитура

## offset HDMI output compared to onboard audio (#28648)
options snd_hda_codec_hdmi index=2,3
options snd_hda_intel index=2,3
---

Ответить | Правка | Наверх | Cообщить модератору

211. "index="  +/
Сообщение от Аноним (-), 17-Мрт-17, 21:02 
Я в конце концов вышел на такой вариант

options snd slots=snd_virtuoso, snd_hda_intel, snd_hda_intel
alias snd-card-0 snd_virtuoso
options snd_virtuoso index=0
alias snd-card-1 snd_hda_intel
options snd_hda_intel index=1
alias snd-card-2 snd_hda_intel
options snd_hda_intel index=2

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

Ответить | Правка | Наверх | Cообщить модератору

213. "index="  +/
Сообщение от Mihail Zenkov (ok), 17-Мрт-17, 21:34 
> Работает в большинстве случаев, но все равно иногда интеграшка вылезает на первое
> место. Почему, в чем причина - ни сам разобраться, ни выгуглить
> не смог.

Возможно udev сам загружает snd_hda_intel - смотрите раздел "Module ordering problems" http://alsa.opensrc.org/MultipleCards

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

Ответить | Правка | Наверх | Cообщить модератору

210. " "  +1 +/
Сообщение от Mihail Zenkov (ok), 17-Мрт-17, 15:16 
Есть еще второй вариант решения проблемы.
Запускаете aplay -L, ищите как называется ваш Xonar.
У меня это выглядит так:

...
sysdefault:CARD=EMU1010
    E-mu 1010b PCI [MAEM8960], ADC Capture/Standard PCM Playback
...

Нас интересует название CARD - в моем примере EMU1010.
В ~/.asoundrc добавляем:


defaults.pcm.!card EMU1010
defaults.ctl.!card EMU1010

Все, теперь EMU1010 всегда будет по-умолчанию в независимости от очередности загрузки модулей.

Ответить | Правка | К родителю #207 | Наверх | Cообщить модератору

212. " "  +/
Сообщение от Аноним (-), 17-Мрт-17, 21:18 
Если я не ошибаюсь, при таком варианте херятся дефолтные настройки из /usr/share/alsa Или только то, что в /usr/share/alsa/pcm/default? Как-то я не очень уверен, что при своем уровне знаний сумею их в asound прописать вручную.

В процессе раскапывания инета по своей проблеме составил себе такой конфиг:

ctl.!default {
type hw
card D2X
device 1
}

pcm.dmixer {
    type dmix
    ipc_key 1024
    ipc_key_add_uid false
    ipc_perm 0660
    slave {
        pcm "hw:D2X,1"
        period_time 0
        period_size 1024
        buffer_time 0
        buffer_size 4096
        rate 48000
        format S24_LE
        channels 6
    }
    bindings {
        0 0
        1 1
        2 2
        3 3
        4 4
        5 5
    }
}

pcm.dsnooper {
    type dsnoop
    ipc_key 2048
    ipc_key_add_uid false
    ipc_perm 0660
    slave {
        pcm "hw:D2X,1"
        period_time 0
        period_size 1024
        buffer_time 0
        buffer_size 4096
        rate 48000
        format S24_LE
        channels 2
    }
    bindings {
        0 0
        1 1
    }
}


# upmixing - duplicate stereo data to all 6 channels
pcm.upmix {
     type route
     slave.pcm dmixer
     slave.channels 6
     ttable.0.0 1
     ttable.1.1 1
     ttable.0.2 1
     ttable.1.3 1
     ttable.0.4 0.5
     ttable.1.4 0.5
     ttable.0.5 0.5
     ttable.1.5 0.5
}

pcm.duplex {
    type asym
#    playback.pcm "upmix"
    playback.pcm "dmixer"
    capture.pcm "dsnooper"
}

pcm.!default {
    type plug
    slave.pcm "duplex"
}

Но по итогам тестов снес asoundrc вообще (у меня он правда был в /etc). Если порядок карт грузится правильный, то меня дефолты вполне устраивают по звучанию. Ну разве что была мысль сделать переключение на интеграшку при втыкании наушников в порт на передней панели системника... но я уже так затрахался с этой альсой, что одно желание осталось - чтобы все заработало нормально, и включая комп мне не надо было гадать - будет сегодня звук, или нет. Чесслово, я уже устал. Будь я юзером, а не сисадмином, я бы уже сто раз сдался и поставил pulseaudio.


ЗЫж. Извините, если я где глупость какую написал - я раньше никогда в настройки звука не лез, работает и работает, чего его трогать? Поэтому особо в alsa не понимаю.

Ответить | Правка | Наверх | Cообщить модератору

214. " "  +/
Сообщение от Mihail Zenkov (ok), 17-Мрт-17, 21:40 
> Если я не ошибаюсь, при таком варианте херятся дефолтные настройки из /usr/share/alsa
> Или только то, что в /usr/share/alsa/pcm/default? Как-то я не очень уверен,
> что при своем уровне знаний сумею их в asound прописать вручную.

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

Ответить | Правка | Наверх | Cообщить модератору

101. "Причина прекращения поддержки звуковой системы ALSA в Firefo..."  +/
Сообщение от Аноним (-), 15-Мрт-17, 01:01 
> как мало людей используют alsa

ALSA так или иначе используют ВСЕ, кто сидит на линуксе. OSS давно протух и неюзабелен.

Ответить | Правка | К родителю #65 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру