Где всё в порядке: alsamixer, amixer при задании абсолютного значения громкости.
Где проблемы: во всех остальных приложениях. Во-первых, громкость определяется разными программами по-разному, обычно выше, чем есть. Во-вторых, регулировка во всяких плеерах работает, но затрагивает сразу все каналы вывода. В-третьих, amixer при указании величины с +/- просто поднимает громкость до 100%.
Возможно, это как-то связано с тем, что у карты несколько выходов на Master:
~ > amixer get Master
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front Center - Woofer - Side Left - Side Right
Limits: Playback 67 - 127
Mono:
Front Left: Playback 94 [45%] [-33.00dB] [on]
Front Right: Playback 94 [45%] [-33.00dB] [on]
Rear Left: Playback 67 [0%] [-60.00dB] [on]
Rear Right: Playback 67 [0%] [-60.00dB] [on]
Front Center: Playback 67 [0%] [-60.00dB] [on]
Woofer: Playback 67 [0%] [-60.00dB] [on]
Side Left: Playback 67 [0%] [-60.00dB] [on]
Side Right: Playback 67 [0%] [-60.00dB] [on]
(кстати, здесь указана громкость 45%, но в alsamixer сейчас 20)
Проблема с amixer решена так:
#!/bin/bash
get_vol(){
CURRENT=$(amixer get Master | awk '/^ Front Left/ {print $5}' | tr -d '[]%')
}
set_vol(){
amixer set Master front $1%
}
change_vol(){
let NEW=$CURRENT$1
}
get_vol
change_vol $1
set_vol $NEW
По сути, даже индикаторы для трея/панелей становятся бесполезными.
Это только у меня так? Может, нужно что-то покрутить в настройках?
Debian Wheezy, ALSA 1.0.24 (ядро), 1.0.25 (alsa-utils), Linux 3.2.12.