LINUX.ORG.RU

В пакете PulseAudio для Fedora 24 отключат Flat Volumes по умолчанию

 , ,


2

4

Flat Volumes — это внедренная семь лет тому назад логика управления громкостью отдельных приложений в PulseAudio. В рамках этой логики, громкость каждого отдельного звукового потока (в процентах) исчисляется относительно аппаратного максимума, а не относительно «громкости звуковой карты». «Громкость звуковой карты» равна максимальной громкости проигрываемых потоков, т.е. не является независимой переменной, а скорее удобной «ручкой» для увеличения или уменьшения громкости всех приложений одновременно.

До недавнего времени логика Flat Volumes была включена по умолчанию во всех дистрибутивах, кроме Ubuntu. Начиная с выпуска 24, Fedora собирается отказаться от этой схемы, так как, несмотря на прошедшие семь лет, разработчики так и не научились писать совместимые с этой логикой приложения. Наиболее распространенный баг — выставление громкости на 100% без явного указания от пользователя. Багу подвержены такие важные библиотеки и приложения, как WebKit-GTK, Firefox и GNASH.

Поскольку выставление громкости на 100% (с возможными последствиями в виде сгоревших динамиков) без вмешательства пользователя происходит в том числе через браузеры (демо: https://jsfiddle.net/bteam/FbkGD/ , открывать с осторожностью), такое поведение является уязвимостью. Вину за уязвимость разработчики PulseAudio и веб-движков долго сваливали друг на друга, а прогресса ни с той, ни с другой стороны не было.

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: CYB3R (всего исправлений: 2)

Как отключить?

anonymous
()

важные библиотеки и приложения ... GNASH.

Ничего себе.

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

Типа слишком вербозно для основного интерфейса (хомячок увидит в списке приложений пункт «plugin_container» и испугается), а кому надо — пусть юзают pavucontrol.

Не то чтобы я был в восторге от такой точки зрения, но хоть какое-то обоснование у неё имеется.

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

Вывод правильный, но рассуждение неверное. Дело не в том, поднимается ли туннель автоматически или жёстко прописан, а в том, что в «автоподнимателе» захардкожено использование старого модуля туннелирования (который неочень), а руками можно поднять новый, который пока что экспериментальный.

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

Всё не так понял, отдельные каналы останутся. Теперь их громкости будут умножаться на громкость master'а (т. е. как и надо, просто раньше было сделано по-марсиански).

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

Нет. Крутилки уровней для каждого приложения и глобальная крутилка останутся на месте, просто раньше из этих крутилок брался минимум (грубо говоря), а теперь их значения будут умножаться друг на друга (если 0 — это «ползунок вниз», а 1 — это «ползунок вверх»).

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

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

intelfx ★★★★★
()

В рамках этой логики, громкость каждого отдельного звукового потока (в процентах) исчисляется относительно аппаратного максимума

ОК.

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

Что за бред я сейчас прочитал?

t184256 ★★★★★
()

важные библиотеки и приложения
GNASH.

Абсолютно ненужная фигня.

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

Адептус Механикус видимо попросили.

itn ★★★
()

Поскольку выставление громкости на 100% (с возможными последствиями в виде сгоревших динамиков)

ССЗБ. Лучше у звуковухи все ручки выкручивать на максимум, а колонки делать потише. И звук будет лучше в случае дешевых колонок

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

Лучше у звуковухи все ручки выкручивать на максимум, а колонки делать потише. И звук будет лучше в случае дешевых колонок.

А в случае дорогой аппаратуры, может исказить звук. Напоролся на это, когда мне пытались продать USB DAC «NuForce DAC-80» и ресивер Final Sound FVSS 201/Р. Ресивер планировалось использовать как усилитель для колонок Final Sound 300i PL/FS. Выкрученный на максимум DAC перегрузил вход ресивера, это заметили при прослушивании композиции Yanni - Mi Todo Eres Tu (Until The Last Moment) в варианте из испанского альбома Voces.

P.S. В итоге купил другую аппаратуру и другие колонки.

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

А в случае дорогой аппаратуры, может исказить звук.

БГГ.

P.S. В итоге купил другую аппаратуру и другие колонки.

Ну ты понял.

anonymous
()
Ответ на: комментарий от entefeed

Чтобы гонять звук по сети. Тут пульса - единственное решение для неосиляторов JACK.

Fixed.

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

cipher

И зачем тогда пульса нужна?
1. Чтобы перемещать звук с одной звуковой карты на другую без перезапуска приложения
2. Для поддержки BlueTooth и RAOP - для этих протоколов нет ALSA-плугинов
3. Для кодирования в DTS на лету (нужно для SPDIF, если звук изначально в PCM, как это бывает в играх)

4. Для эхоподавления

5. Для срачей.

Иной раз кажется, что половина софта под линукс ради них и пишется.

petrosyan ★★★★★
()

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

сие впечатляет

gray ★★★★★
()

Allan Day (главный юзабилист GNOME) высказался против раздельной регулировки громкости для каждого приложения.

За это убивать нужно.

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

Не особо вникал как оно у них работает, очень удивлен, что не умножалось, это же очевидное решение. Дай угадаю, марсианскую логику придумал поттеринг?(удивляюсь как он берется за хорошие задачи, делает их, в отличие от других, но с «особенкой»)

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

Это где такое есть ? И как оно реализовано ? Мне действительно интересно.

Переключение «туда-обратно» должно нормально работать через pulseaudio. Евент «ушел-вернулся» с помощью bluetooth

Deleted
()
Ответ на: комментарий от intelfx

Ты же понимаешь, один УМВР это не показатель. У меня вот не ВР.

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

BTW, если после 50-и переключений на пустом месте 51-е происходит с задержкой это уже не ВР.

Deleted
()
Ответ на: комментарий от intelfx

Дело не в том, поднимается ли туннель автоматически или жёстко прописан, а в том, что в «автоподнимателе» захардкожено использование старого модуля туннелирования (который неочень), а руками можно поднять новый, который пока что экспериментальный.

Вот это поворот. Нет информации когда он заменит собой старый модуль окончательно?

Deleted
()

В рамках этой логики, громкость каждого отдельного звукового потока (в процентах) исчисляется относительно аппаратного максимума, а не относительно «громкости звуковой карты».

Сразу сделать нормально не могли? Ясное дело что заморачиваться с вот такой вот ерундой никому не будет интересно.

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

Зачем писать программы, совместимые с марсианской логикой?

чё новенького на Плюке?

mos ★★☆☆☆
()

[фаргус]звуки флатуляций[/фаргус] отключили. Ура! Теперь нужно отключить PulseAudio по умолчанию.

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

Не особо вникал как оно у них работает, очень удивлен, что не умножалось, это же очевидное решение.

Это стандартное поведение везде. Включая эти ваши виндовсы и чёрт знает что. Потому что логично и обратно совместимо со старым одним регулятором громкости.

А то, что вы тут предлагаете - это костыли на подпорках.

anonymous
()
Ответ на: комментарий от Deleted

Real Soon Now, как обычно. Когда я последний раз смотрел на патчсет, там оставались только какие-то вопросы к стилю кода или к используемым внутренним API.

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

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

> сие впечатляет

Читай между строк. Раз в убунте «и так работает», разработчики и не думают почесаться! Это как программа 10x10, которая потерпела неудачу из-за плохо приготовленного GNOME в Ubuntu. Но в том 2005-м, когда 10x10 анонсировали, никто и не думал что будет какая-то там убунта!

ZenitharChampion ★★★★★
()

Flat Volumes была включена по умолчанию во всех дистрибутивах, кроме Ubuntu

Неправда, в openSUSE тоже выключено.

salsergey
()

Отныне пшикать будет тише, заживем..

anonymous
()

Решил потыкать палочкой этот ваш PulseAudio еще раз. У меня выход одной звуковой карты подключен во вход другой (одна карта выделена для работы с музыкой в DAW). Сделано это для того, чтобы звук с обеих карт шел на одни колонки без использования внешнего аппаратного микшера. Так вот, чтобы вышеописанная схема работала, требуется на одной из карт включить параметр capture. А PulseAudio умудряется регулятором уровня capture регулировать не только громкость, но и панораму. В печку такие технологии, лучше я откачусь на ALSA.

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

То есть поддержку BT и RAOP впилить в алсу - и PA станет практически не нужна?

Для начала просто вернуть поддержку альсы в bluez.

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

То есть поддержку BT и RAOP впилить в алсу - и PA станет практически не нужна?

Не совсем так.

Микшировалка нескольких потоков в ALSA (известная как «dmix») основана вот на таких предположениях:

1. Имеется общий кольцевой буфер для звука, в который могут (кооперативно) писать несколько приложений. 2. Звуковая карта постепенно читает данные из этого буфера. 3. Разрешается сколько угодно раз заменять еще не проигранные данные в буфере, и никто эту замену не заметит.

Предположения на 100% справедливы только для аппаратных карт с интерфейсом PCI или PCI Express, или embedded-аналогов шины ISA (т.е. только для карт, имеющих прямой доступ к памяти). Для USB или FireWire ядро с грехом пополам эмулирует общий буфер. Для BlueTooth, RAOP и для сжатия на лету в DTS эти предположения (в особенности третье) несправедливы и в принципе не могут быть сделаны справедливыми.

Т.е. необходим еще отказ от dmix в пользу другой реализации микширования. А итог при этом получается настолько похожим на PulseAudio, что говорить о замене смысла просто нет.

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

Дай угадаю, марсианскую логику придумал поттеринг?

Нет. Марсианскую (с точки зрения разработчиков) логику придумали в Microsoft, а Lennart только стал распространять пропаганду о ее преимуществах. См. http://www.patrickbaudisch.com/publications/2004-Baudisch-CHI04-FlatVolumeCon...

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

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

Есть мастер громкость, есть громкость приложений, 100% громкости приложения == текущей громкости мастер канала. Соответственно можно взять два прилоежния, сделать одно на 50%, а другое на 100%, и регулировать громкость обоих с помощью мастер канала, относительно друг друга одно приложение так и будет играть в два раза тише другого. Как такую логику реализовать с этим flat volumes вообще не могу понять, тогда получается что мастер громкость вообще не нужна, т.к каждое приложение надо нагружать\убавлять отдельно, сказочный бред. Свежезапущенные приложения логично что не обязаны как то «угадывать» на какой громкости им выдавать звук, и логично что будут орать под 100%. Разрабы пульсы похоже не те шишки курят..

anonymous
()
Ответ на: комментарий от intelfx

Шапочку из фольги с себя сними

anonymous
()
Ответ на: комментарий от AEP

1. Чтобы перемещать звук с одной звуковой карты на другую без перезапуска приложения

2. Для поддержки BlueTooth и RAOP - для этих протоколов нет ALSA-плугинов

3. Для кодирования в DTS на лету (нужно для SPDIF, если звук изначально в PCM, как это бывает в играх)

4. Для эхоподавления

Ты лучше расскажи как в PulseAudio выводить звук из VLC на один источник(телевизор), а все остальные звуки на другой(колонки)?

Желательно без адских танцев с конфигами, а то в ALSA это делается парой кликов мышкой.

dnf83
()
Ответ на: комментарий от AEP

Нет. Марсианскую (с точки зрения разработчиков) логику придумали в Microsoft, а Lennart только стал распространять пропаганду о ее преимуществах. См. http://www.patrickbaudisch.com/publications/2004-Baudisch-CHI04-FlatVolumeCon...

Они понимают, что они поехавшие уже, всё?

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

ССЗБ. Лучше у звуковухи все ручки выкручивать на максимум, а колонки делать потише. И звук будет лучше в случае дешевых колонок.

Вообще не в теме. Усилитель на звуковухе, усилитель на колонках. Звук чище, когда на звуковухе на минимум, на колонках побольше.

kedr
()
Ответ на: комментарий от dnf83

Желательно без адских танцев с конфигами, а то в ALSA это делается парой кликов мышкой.

ты не поверишь, но в pulseaudio через pavucontrol парой кликов мышью.

Jameson ★★★★★
()

демо: https://jsfiddle.net/bteam/FbkGD/ , открывать с осторожностью

Открыл в ROSA R7 полёт нормальный, как играло тихо так и играет.

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

Убираем упоминание module-switch-* из конфига (/etc/pulse/default.pa), чтобы PulseAudio не перемещал потоки при включении-выключении телевизора.

Стираем базу данных об устройствах ($HOME/.config/pulse/*-stream-volumes.tdb), если ранее были какие-либо перемещения звука на телевизор.

В pavucontrol ставим на вкладке Устройства Вывода зеленую галочку на устройстве, которое должно использоваться по умолчанию.

Запускаем VLC. Выбираем в меню Аудио > Аудиоустройство телевизор.

Все!

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