[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