Установить фиксированную громкость звука на внешней USB-звуковой карте

Установить фиксированную громкость звука на внешней USB-звуковой карте

У меня есть внешняя звуковая карта USB для подключения моего ПК (Fedora 20) к моему стереоусилителю:

http://www.project-audio.com/main.php?prod=usbbox&cat=boxes&lang=en

Теперь это обычно работает нормально, однако время от времени у меня возникают проблемы с настройками громкости. В частности, при воспроизведении видео и музыки с помощью VLC настройки громкости, как правило, сбиваются. Например, в Pulse Audio Volume Control я устанавливаю основную громкость на 100%, но затем в VLC настройка громкости оказывается ниже 100%. Если я затем увеличиваю громкость в VLC до 100%, основная громкость фактически становится выше 100%, что не очень желательно, поскольку это приведет к искажению звука. То же самое происходит и при воспроизведении видео YouTube в Firefox. Это довольно раздражает, поскольку это не только снижает качество звука, но и приводит к непредсказуемому поведению, поскольку одна настройка громкости на усилителе может создавать широкий диапазон фактической громкости на моих динамиках.

Итак, как мне полностью отключить настройку громкости на ПК, зафиксировав ее на 100% и управлять фактической громкостью только на усилителе? Другими словами, я хотел бы, чтобы звуковая карта USB вела себя точно так же, как проигрыватель компакт-дисков, тюнер или другой источник звука с фиксированным уровнем выходного сигнала.

решение1

У меня была проблема с некоторыми сходствами (включая сломанный объем, но на низком уровне). Я нашел обходной путь и объяснил вPulseaudio с внешним звуковым адаптером: решение проблемы прерывистого звука.

Давайте адаптируем его для вашего случая. Команда ниже должна найти для вас правильное имя приемника (она просто берет первое):

export LC_ALL=C 
ADAPTER_SINK_NAME=$( pactl list sinks | sed -n 's/^.*Name: \(.*\)$/\1/p' | head -n 1 ) 
echo $ADAPTER_SINK_NAME

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

pacmd load-module module-combine sink_name=adapter-soft-volume slaves=$ADAPTER_SINK_NAME
pactl set-default-sink adapter-soft-volume

Подробности см.Pulseaudio с внешним звуковым адаптером: решение проблемы прерывистого звука

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

(Необязательно) это переместит текущие запущенные приложения на использование этого приемника.

for SINK_ID in $(pactl list sink-inputs | sed -n 's/^Sink Input #\([0-9]*\)$/\1/p')
do
    echo Sink $SINK_ID
    pactl move-sink-input $SINK_ID adapter-soft-volume
done

Связанный контент