[Hardware] Как включить запись с микрофона?

Sergey Stepanov dlagovna на mail.ru
Пт Дек 23 17:17:11 MSK 2005


Господа, проблема разрешилась, но добавилась новая!


Итак, по порядку. Заработала нормальная запись звука с микрофона.

Исходное - имеем встроенную звуковушку AC97 VIA82xx, надо заставить
работать воспроизведение и запись.

1. При установке ALT Master 2.4, автоматически ставятся драйвера ALSA.
По человечески они не работают, звук заикается, звуковушка проигрывает 
маленькие кусочки звука по нескольку раз.

При этом в файле /ect/modules.conf прописаны следующие строчки

above snd-via82xx snd-pcm-oss
above snd-pcm-oss snd-mixer-oss
alias char-major-116 snd
alias char-major-14 soundcore
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias snd-card-0 snd-via82xx
alias sound-slot-0 snd-via82xx


Попытки настроить вручную, путем добавлением различных строчек в стиле
option ... dxs_support, ни к чему хорошему не приводят.


2. Переключение на драйвера OSS, сразу решает проблемму воспроизведения.
Переключение на OSS произвести просто. Надо заменить строчки инициализации
ALSA драйвера в /etc/modules.conf, на строчки инициализации OSS драйвера:

above via82cxxx_audio snd-pcm-oss
above snd-pcm-oss snd-mixer-oss
alias sound-slot-0 via82cxxx_audio

Сразу начинает нормально работать воспроизведение звука, и о дальнейшей
настройке можно забыть, если к тому же нормально работает и запись
с микрофона/линейного входа. Мне с этим делом не повезло. При записи
с микрофона, я нормально слышу себя в наушниках, но вот записываемый сигнал
представляет собой низкочастотный гул, именуемый в просторечьи "пердёж".


3. Проблемму я никогда бы не решил, еслиб не знакомый гуру, который рассказал,
что у него была подобная проблема. ALSA, как он думал, с его карточкой нормально
не работала, в OSS работало только воспроизведение. А решилось все программой
alsaconf, которая сама ставит ALSA драйвера, и делает нужные правильные настройки.
Но программа эта не идет в комплекте с драйверами, ее надо откудато брать,
он уже не помнит откуда, но помнит что просто так ее не запустить, потому что
эта программа устанавливается в какой-то левый каталог.

Я попробовал #alsaconf - мимо, в стандартных путях ее нет.
#/sbin/alsaconf - мимо.
Включил поиск, и нашел ее как #/usr/sbin/alsaconf.

Запустил программу, она изменила /etc/modules.conf, и все заработало!
Заработало воспроизведение - без заикания, и заработала запись.
В /etc/modules.conf строчки иниализации стали такими

above via82cxxx_audio snd-pcm-oss
above snd-pcm-oss snd-mixer-oss
alias char-major-116 snd
alias char-major-14 soundcore
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias snd-card-0 snd-via82xx
alias sound-slot-0 snd-via82xx

Кстати, я тут вижу несоответствие - прогамма alsaconf настроила
OSS драйвера! Разница между пунктами 1 и 3 - только в первой строчке.
Обратите внимание, используется драйвер via82cxxx_audio,
а это, насколько я понимаю, - драйвер OSS...
(Кто-нибудь, объясните, какие драйвера у меня сейчас нстроены?!)

Самое интересное, что это работает. Ура.


Однако теперь появилась другая проблема. Теперь у меня наблюдается
большая латентность звука. Латентность раза в три длинее, чем
при настройке OSS (пункт 2). (Вкратце, латентность - это дискретность
длины звука. Другими словами, если звук оказался короче, чем
длина некоторого буфера, то звуковая подсистема будет считать, что
звук закончился не в момент его физического окончания, а в момент,
когда закончится буфер. Поэтому, если взять программу, которая
проигравает друг за другом короткие звуки - запускает проигрывание
следующего звука при обнаружении окончания предыдущего, то между
звуками мы услышим паузы. Чем латентность выше - тем паузы больше).

Вопрос - как уменьшить латентность? Где и как это можно настроить?

Вопрос не праздный - если я не настрою нормальную латентность,
придется снова перейти на OSS (веду разработку, и должен слышать,
как программа работает с маленькой латентностью), 
а на OSS с микрофоном не поработаешь и прощай Skype. :)


Со всяческими пожеланиями, Сергей.
http://xi.net.ru



Подробная информация о списке рассылки Hardware