ALSA: настройка уровней каналов сбразывается при проигрывании vlc/mplayer2
Моя встроеная звуковая карта имеет 6 разьемов.
Хотел звук разделить на 2 источника - усилитель и наушники. Усилитель иногда
выключен - альтернативно использовать наушники.
Можно мучится с Intel HDA чипами, настраивая DSP через:
$ sudo apt-get install alsa-tools-gui
$ hdajackretask
Я там нифига не понял.
Далее думал приобрести/спаять сплитер, но мне не ясно с безопасностью такого
решения.
К моему удивлению по умолчанию ALSA сконфигурирована работать в режиме стерео
и дублирует аудио сигнал по всем выходам.
Т.е. я воткнул усилитель в один разьем, наушники в другой.
Ране не понимая я подстроил уровень Master под принятный для усилителя.
В alsamixer можно независимо устанавливать уровень для каждого разьема.
Для наушников - было очень громко и я подбором определил нужный канал и
понизил уровень.
Замечаю что в наушниках все равно очень громко.
Я грешил на pulseaudio и выпилял его к чертям. Но проблема оказалось в другом.
При запуске vlc/mplayer - они сбрасывают уровни всех out каналов, оставляя
только Master нетронутым.
При работе проигрывателя настройки alsamixer применятся тут же и не
сбравываются. При изменении громкости в плеере - alsamixer отображает что
Master канал изменяет уровень соответственно.
И мне кажется что менять Master через плеер - также паганая практика.
Как можно запретить менять настройки индивидуальных каналов плеерам
(vlc/player2/браузерный HTML5)?
Можно сделать какой то софтверный/апаратный миксер - где бы мешалися звуковой
вывод программ?
pulseaudio как раз таким занимался, сохраняя настройки для каждого
"обознаного" приложения индивидуально. Но как я разбирался - он слишком
умничает, выставляя уровни каналов на все кроме Master в 100%.
На всяк случай:
$ lsmod | grep snd_
snd_usb_audio 180224 0
snd_usbmidi_lib 32768 1 snd_usb_audio
snd_hrtimer 16384 1
snd_seq_midi 16384 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 32768 2 snd_usbmidi_lib,snd_seq_midi
snd_seq 65536 3 snd_seq_midi_event,snd_seq_midi
snd_seq_device 16384 3 snd_seq,snd_rawmidi,snd_seq_midi
snd_hda_codec_via 20480 1
snd_hda_codec_generic 73728 1 snd_hda_codec_via
snd_hda_intel 36864 1
snd_hda_codec 131072 3 snd_hda_codec_via,snd_hda_codec_generic,snd_hda_intel
snd_hda_core 65536 4 snd_hda_codec_via,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hwdep 16384 2 snd_usb_audio,snd_hda_codec
snd_pcm_oss 49152 0
snd_mixer_oss 24576 1 snd_pcm_oss
snd_pcm 102400 5 snd_pcm_oss,snd_usb_audio,snd_hda_codec,snd_hda_intel,snd_hda_core
snd_timer 32768 3 snd_hrtimer,snd_pcm,snd_seq
snd 86016 17 snd_pcm_oss,snd_usb_audio,snd_hwdep,snd_timer,snd_hda_codec_via,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_usbmidi_lib,snd_hda_codec,snd_hda_intel,snd_seq_device,snd_mixer_oss
$ lspci | grep -i Audio
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
================================================================
ЗЫ Порылся в
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture
man alsactl
man 7 alsactl_init
/usr/share/alsa
Яснее не стало, но заметил что при запуске преера - есть щелчек. Я попробовал
перезапускать alsamixer - при его запуске также имеется щелчек. Есть
предположение что пока нету источников звука и врдуг появляется - драйвера
через некий механизм заново инициализируют звуковую карту.
Сохнанить настройки уровней - нету такого в man alsamixer.
Кто нибудь знаком с настройкой ALSA? Всунуть бы желаемый уровень по
умолчанию...
--
http://defun.work/
Reply to: