Re: ALSA: настройка уровней каналов сбразывается при проигрывании vlc/mplayer2

2016-01-09 Пенетрантность Oleksandr Gavenko
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

2016-01-08 Пенетрантность Oleksandr Gavenko
Моя встроеная звуковая карта имеет 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

2016-01-08 Пенетрантность Oleksandr Gavenko
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/