{{page>linux:toc}} ====== Уровень записи с микрофона ====== * Ubuntu 8.10-almost-release (Intrepid Ibex). * Dell XPS M1530. * HDA-intel, STAC9228. Проблема: встроенный микрофон записывает очень слабо, даже когда все контролы и миксеры вкручены по максимуму. При этом MicBoost отсутствует как класс. Решение: использовать софтварный аналог boost'а. Вводная ссылка: [[http://www.terdmonk.com/Using+ALSA's+softvol+plugin+and+max_dB]] ===== Делаем микрофон рабочим ===== Для начала, надо чтобы микрофон вообще хотя бы работал. Для этого дописываем в /etc/modprobe.d/alsa-base: options snd-hda-intel model=genric Ещё есть модели auto,ref,dell-3stack, но genric достаточно общая и включает всё что работает. Вроде как это работало и с dell-3stack. Перезагружаемся. Заходим в гном. Запускаем: gnome-volume-control Жмём "Параметры", включаем всё что видно. Жмём ОК. Теперь на закладке запись выкручиваем в максимум уровни Capture, Digital, Mux. На закладке "Параметры" ставим первый "Input Source" в "Front Mic". Теперь, для работы с внешним подключемым микрофоном ставим Digital Input Source в Analog Inputs, а для работы со встроенным -- Digital Mic 1. Нас интересует встроенный (то есть Digital Mic 1). Запускаем gnome-sound-properties И в поле "Запись звука" выставляем HDA Intel STAC92xx (ALSA). Да, именно прямую ссылку на карту в аналоговом режиме, а не на алса как таковую. Для теста. Потом, когда всё заработает, можно и надстраивать что пожелается. Жмём ОК. Запускаем: gnome-sound-recorder Поле с выбором источника должно пропасть, если оно было; теперь источник один и выбирать незачем. Пробуем записать пару-другую секунд, причём надо обязательно посмотреть на уровень: он должен прыгать. Желательно постучать по микрофону (находится возле вебкамеры, две мелкие дырочки по обе стороны). Проигрываем что записалось; если не слышно -- выкручиваем все громкости на максимум. Хоть что-то записаться да должно. Иначе ещё долго мучимся чтобы оно вообще работало. ===== Создаём мик-бустер ===== Теперь у нас есть встроенный микрофон, он работает, но очень слабо. Теперь самое главное. Создаём псевдо-микрофон. В файле /etc/asound.conf (вероятно, можно и ~/.asoundrc) пишем: pcm.pseudobooster { type asym playback.pcm { type softvol slave.pcm "hw:0,0" control.name "Master" control.card 0 } capture.pcm { type softvol slave.pcm "hw:0,0" control.name "MicPseudo" control.card 0 max_dB 50.0 } } #pcm.pseudobooster { # type softvol # slave.pcm "hw:0,0" # control.name "Mic2 PseudoBoost" # control.card 0 # max_dB 50.0 #} ctl.pseudobooster { type hw card 0 } Закомментированный кусок - это попытка сделать только микрофон. Обернулась тем, что буст применился и к проигрыванию звука. Просто чтобы помнить, что так делать не надо. Ключевой момент здесь - max_dB. Он расширяет границы миксера. Сохраняем. Теперь надо сделать так, чтобы ALSA учла эти новые миксеры. Тут я не уловил как их ввести в строй. amixer их не видит даже после ребута. Но если запустить skype, то он там что-то обновляет, а эти миксеры становятся видны по amixer | grep -i pseudo, либо amixer -c Intel | grep -i pseudo. Желательно найти нормальный способ, которым можно обновить ALSA (это не alsactl names, не amixer list, не amixer info, не arecord -l; вообще фиг знает как). Когда этот псевдо-миксер появился к выводе, вызываем gnome-volume-control В "параметрах" (кнопка) включаем все миксеры, и на закладке "Воспроизведение" (да, увы, не "Запись") выкручиваем этот миксер на 75-100%. Настраиваем скайп на устройство pseudobooster (появится в списке аудио-устройств). Пробуем тестовый звук (должен быть). Звоним в echo123. Должно работать. ===== Включаем по умолчанию ===== Теперь надо сделать чтобы и все прочие приложения тоже обращались к нашему псевдо-устройству. asound.conf OR ~/.asoundrc: pcm.!default { type plug slave.pcm "pseudobooster" } ctl.!default { type hw card 0 } Далее, gnome-sound-properties Включаем "Запись звука" на "ALSA bla-bla-bla"; воспроизведение тоже можно на него поставить. То есть теперь у нас будет цепочка * Приложение (например, gnome-sound-recorder) * ALSA library * берёт pcm.default * попадает на pcm.pseudobooster * который берёт из железячного ALSA driver с прогоном по softvol, который теперь в amixer'ах С тем же успехом можно зарулить через pulseaudio, а не через ALSA library. Тут главное не путать что есть железячный слой ALSA, а есть универсализирующая библиотека ALSA, и это две разные вещи. В gnome-sound-recorder, соответственно, в поле источника выбрать Digital (это наш "default"), или явно "pseudobooster". Ну и прочие удобства навести. Ключевой момент, надеюсь, понятен.