[Решено] Нелинейный регулятор громкости

Natrio, спасибо, объяснили=) Только вот что с этим делать? В alsamixer децибелы отображаются, а шкала остаётся плавной на слух, хотя внизу шкалы шаг одного процента равен 3 децибелам, а сверху - 0.75.

У qasmixer на всей шкале шаг примерно равен 0.65 (собственно, (0dB - (-65.25dB))/100 = 0.65dB ), что звучит уже так, как описано выше. Т.е. он меняет децибелы с логарифмической шкалы линейно (ровно как и всё остальное из списка), и это на слух как-то совсем нелинейно (см. картинку; по оси y фактически линейная шкала на слух), хотя, как вы сказали, по идее должно таковым быть. Ну а alsamixer изменяет громкость идеально.
В alsamixer отображаемая и используемая шкалы ОТЛИЧАЮТСЯ.
Отображается столбик всегда в линейной шкале, но если двигать его "стрелками" с клавиатуры, каждое нажатие меняет уровень на 1.5dB, что составляет от от 1% внизу до 7% вверху по линейной шкале. Так что и alsamixer ТОЖЕ регулирует именно по логарифмической шкале (по возможности), хотя и отображает столбиком линейную.
Natrio, да, этого я не приметил - в самом низу нажатие клавиатуры в alsamixer меняет уровень на шкале на 1% и 3 дБ, а в самом верху на 3% и 0.75 дБ, т.е. 1% там равен 0.25 дБ, но оно не так важно, даже клавиатурный шаг сверху всё равно в 4 раза меньше, чем снизу (а шаг по шкале и вовсе в 12 раз отличается), а слышится идеально.
У qasmixer один шаг в процентах и в децибелах сверху и снизу одинаков, и это звучит плохо. А у alsamixer звучит хорошо. Бог с ней, с теорией, это как-нибудь возможно исправить во всех этих гуёвинах? Или они априори все, как и qasmixer, линейно меняют децибелы и всё тут?

Доб.: а, т.е. у меня поведение alsamixer уже отличается от вашего, децибелы клавиатурой он меняет нелинейно и показывает тоже нелинейно... Даже трудно понять, по какому принципу, но получается хорошо.
Шаг микшера, хоть в децибелах, хоть в процентах, зависит от звуковой карты. На ещё одной у меня шаг не полтора, а один дБ. Но принцип во всех случаях один и тот же – известные мне микшеры всегда предпочитают использовать для регулировки логарифмическую шкалу, и только если она недоступна – "процентную". При этом alsamixer независимо от используемой шкалы всегда отображает "столбик" линейно.

Я сильно подозреваю, что у вас или звуковая карта с очень странным микшером, или вы напоролись на ошибку в ALSA-драйвере для вашей карты, и он путает проценты с децибелами.
И признавайтесь уже наконец, что у вас за карта :)
Эм, не разбираюсь в их терминологиях, но alsamixer пишет, что ATI HDA SB и чип Realtek ALC269VB

Я тут кое-что нашёл, в мане amixer написано:
-M Use the mapped volume for evaluating the percentage representation like alsamixer, to be more natural for human ear.
И действительно, добавление ключа -M к его командам даёт цифры такие же, как и на шкале alsamixer. Напрямую amixer использует volwheel, и, собственно, правка его исходников приводит к нужному результату, но он нещадно тормозит (может, из-за количества вызовов amixer), на колесо мыши откликается плохо, в консоли мусорит предупреждениями и т.п.
Ещё более простое решение - это пропущенный не помню по каким причинам volumeicon, последняя версия которого "Use the same volume mapping as alsamixer", но и он как-то совсем не очень в плане удобства. Хотя в исходниках "mapping"-у посвящён целый отдельный файл в 200 строк кода.
Больше всего нравятся volti, pnmixer и предложенный вами qasmixer. Вот они без глюков работают. Я всё же постараюсь что-нибудь допилить из них, скорее всего pnmixer.
Спасибо! :)
А что именно вам не нравится в volumeicon (исключая, конечно, наличие одного-единственного движка в трее)?
Natrio, использование gtk3, тормозит скроллинг, неродная тема, всплывающая подсказка не появляется, если несколько раз не подёргать курсором, сама всплывающая подсказка не от tint2, гуи при нажатии не всегда появляется (появляется просто серый прямоугольник), баг при нажатии на иконку два раза - первый раз открывает гуи, последующие разы тогглит mute вместо того, чтобы прятать гуй, в консоль на каждое событие высыпает "(volumeicon:9672): GLib-WARNING ..." и так далее ещё 5 строчек непонятных слов.
Могу поделиться патчем :)
В AUR я это не выкладывал, ибо думал что никому не надо, но оказывается иначе.
https://aur.archlinux.org/packages/volumeicon-toggle/
Это последняя версия volumeicon на gtk2 с двумя патчами – первый исправляет изменившиеся с тех пор заголовки, второй прячет движок при повторном нажатии.
Natrio, о, здорово, спасибо! Да, теперь он внешне работает безукоризненно. Только, чёрт возьми, порт на гтк3 и новую шкалу включён в одно и то же обновление, т.е. здесь остаётся изначальная проблема... Но, в любом случае, пилить эту версию будет проще. :) Если ещё есть интерес, можете взглянуть/поковырять исходники 0.5.0, там появился "alsa_volume_mapping", вот этой штуки мне как раз и недостаёт. Впрочем, надеюсь, её будет не очень трудно прикрутить к старой версии, и будет счастье. Вечером приду, займусь этим :)
Насколько я понимаю, вам нужен вот этот коммит:
Use same volume mapping as alsamixer
 
Зарегистрироваться или войдите чтобы оставить сообщение.