Re: ALSA: настройка уровней каналов сбразывается при проигрывании vlc/mplayer2
On 2016-01-09, Oleksandr Gavenko wrote: > Поискав по ключевой фразе: "Surround Playback Volume" в /usr/share/alsa/init/ > обнаружил: > > $ cat /usr/share/alsa/init/default > > CTL{reset}="mixer" > CTL{name}="Surround Playback Volume",PROGRAM!="__ctl_search",GOTO="" > # if master volume control is present, turn front volume to max > ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" > ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" > CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" > LABEL="" > CTL{name}="Surround Playback Switch",CTL{do_search}=="1", \ > CTL{values}="on" > > Нужно понять синтаксис и как внедрить свои настройки "Debian-way". > Все же это ни при чем. Виноватец - pulseaudio. Я снес consolekit, а pulseaudio забыл. Без consolekit pulseaudio не запускается: [pulseaudio] module-console-kit.c: GetSessionsForUnixUser() call failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ConsoleKit was not provided by any .service files В процесах по htop не видел, думал что его нету. Как обьяснить сброс настроек даже при запуске alsamixer (при условии наличия pulseaudio)? Не представляю. Пока есть клиент, который оправляет данные в ALSA - настройки не сбрасываются. При старте нового клиента и когда нет было других - сбрасываются. В /usr/share/alsa/alsa.conf.d/pulse.conf было: hook_func.pulse_load_if_running { lib "libasound_module_conf_pulse.so" func "conf_pulse_hook_load_if_running" } Загруженый модуль может творить любые чудеса. -- http://defun.work/
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_lib32768 1 snd_usb_audio snd_hrtimer16384 1 snd_seq_midi 16384 0 snd_seq_midi_event 16384 1 snd_seq_midi snd_rawmidi32768 2 snd_usbmidi_lib,snd_seq_midi snd_seq65536 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_generic73728 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_oss49152 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 snd86016 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/
Re: ALSA: настройка уровней каналов сбразывается при проигрывании vlc/mplayer2
On 2016-01-09, Oleksandr Gavenko wrote: > ЗЫ Порылся в > > https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture > man alsactl > man 7 alsactl_init > /usr/share/alsa > > Яснее не стало, но заметил что при запуске преера - есть щелчек. Я попробовал > перезапускать alsamixer - при его запуске также имеется щелчек. Есть > предположение что пока нету источников звука и врдуг появляется - драйвера > через некий механизм заново инициализируют звуковую карту. > > Сохнанить настройки уровней - нету такого в man alsamixer. > > Кто нибудь знаком с настройкой ALSA? Всунуть бы желаемый уровень по > умолчанию... Рецепт из: http://askubuntu.com/questions/50067/howto-save-alsamixer-settings не срабатывает. Он заключается в запуске alsamixer, настройке в нем и пока не закрыли, запуске: $ sudo alsactl store После этого соответствующие части файл /var/lib/alsa/asound.state - меняются. Но даже после: $ sudo alsactl store новый запуск alsamixer/vlc/mplayer2 сбивает настройки уровня для control.3 { iface MIXER name 'Surround Playback Volume' ... Поискав по ключевой фразе: "Surround Playback Volume" в /usr/share/alsa/init/ обнаружил: $ cat /usr/share/alsa/init/default CTL{reset}="mixer" CTL{name}="Surround Playback Volume",PROGRAM!="__ctl_search",GOTO="" # if master volume control is present, turn front volume to max ENV{has_pmaster_vol}=="true",CTL{write}=="0dB",GOTO="" ENV{has_pmaster_vol}=="true",CTL{write}=="100%",GOTO="" CTL{write}!="$env{pvolume}",CTL{values}="$env{ppercent}" LABEL="" CTL{name}="Surround Playback Switch",CTL{do_search}=="1", \ CTL{values}="on" Нужно понять синтаксис и как внедрить свои настройки "Debian-way". -- http://defun.work/