/ Статьи / Мультимедиа / Эквалайзер для MPD и немного про звук в Linux /

Эквалайзер для MPD и немного про звук в Linux

Дата публикации: April 6, 2010, 6:46 p.m.
Теги: эквалайзер, микширование, mpd, mplayer,
Автор: Brainsburn

Linux equalizer MPD mplayer sound card

Пришлось мне на днях устанавливать Gentoo Linux на чей-то компьютер. Решил отписаться по настройке звука, программного микширования и эквалайзера. Может, кому-нибудь будет полезно.

Чтобы работал звук в Linux, надо подключить в ядре необходимые драйвера на звуковую карту. Для начала, надо узнать модель звуковой карты. В этом вам поможет утилита lspci из пакета pciutils. Это для PCI звуковых карт. Если ваша звуковуха подключается через USB, вам нужна lsusb из пакета usbutils.

# lspci -v | grep -i audio
00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)

Модель узнали. Теперь надо узнать, какой драйвер использовать для этой карточки. Все просто - идем сюда: http://bugtrack.alsa-project.org/main/index.php/Matrix:Main , кликаем на nVidia и видим, что High Definition Audio (HDA) использует драйвер Intel HDA driver.

Теперь нужно включить необходимый модуль в ядре.
# cd /usr/src/linux
# make menuconfig
Device Drivers  --->
	<*> Sound card support  --->
		<*>   Advanced Linux Sound Architecture  --->
			[*]   PCI sound devices  --->
				   Intel HD Audio  --->
					[*]   Build Realtek HD-audio codec support
Кстати на моем железе звуковая карта работает только с Realtek HD-audio. С NVIDIA HDMI HD-audio и INTEL HDMI HD-audio - ни в какую =)
Я это к тому, что если alsamixer и aplay -l не видят вашу звуковую карту, хотя драйвер как бы подгружен, возможно, у вас схожая ситуация.

Осталось пересобрать ядро и перезагрузиться.

Если вы все сделали правильно, но alsamixer не видит звуковую карту, попробуйте воспользоваться утилитой alsaconf, но не факт, что она вам поможет. Лично у меня вообще нету файла /etc/modprobe.d/alsa.conf и все работает само собой. После перезагрузки ALSA увидела, что моя звуковая карта не поддерживает аппаратное микширование и активировала Dmix. Я одновременно запустил mpd и mplayer - звуки есть, микширование работает :)

Подробнее о микшировании звука в Linux

Микширование звука, говоря на простом языке, позволяет нескольким программам одновременно проигрывать звук. Почти все нынешние внешние звуковые карты поддерживают аппаратное микширование. Встроенные же звуковые карты, обычно, аппаратное микширование не поддерживают, поэтому, приходится довольствоваться программным.

Если у вас криво настроено микширование (именно криво!), то звук сможет воспроизводить только одна программа в одно время. Но ALSA содержит микшер Dmix и сама отлично определяет, поддерживает ли ваша звуковая карта аппаратное микширование и, если нет. то активирует Dmix. Поэтому настраивать микширование не нужно. Кстати, для микширования сейчас часто используется PulseAudio, который кроме этого не делает ничего полезного для 99% пользователей...

Теперь о главном - эквалайзер для MPD (и не только).

Alsaequal - эквалайзер для ALSA. Работает так - настраиваем его, а затем настраиваем любимый плеер на работу с этим эквалайзером и наслаждаемся. В данном случае в роли любимого плеера выступает MPD. Приступим к настройке.
Установите alsaequal.
Создайте файл .asoundrc со следующим содержимым:
(Чуть не забыл, .asoundrc должен лежать в домашнем каталоге того пользователя, с которым настроен на работу MPD. За подробностями идите в конфиг MPD).

ctl.equal {
	type equal;
}

pcm.plugequal {
	type equal;
	slave.pcm "plug:dmix";
}

pcm.equal {
	type plug;
	slave.pcm plugequal;
}
Перезапустите ALSA и выполните
$ alsamixer -D equal
Если появился эквалайзер, значит все Ок.

Настраиваем MPD на работу с эквалайзером.
Откройте конфиг mpd.conf (в домашнем каталоге или /etc/mpd.conf) и найдите там секцию audio_output . Измените строку, отвечающую за устройство на device "plug:plugequal".

audio_output {
type		"alsa"
name	"equal"
device	"plug:plugequal"
}

Готово. Теперь MPD будет работать через alsaequal. Подстраивается эквалайзер, как я уже сказал, командой $ alsamixer -D equal . Если вы захотите чтобы другие приложения использовали этот эквалайзер, вам нужно будет настроить подобным образом и их. Только какой смысл использовать эквалайзер где-то кроме аудиоплеера? В видеоплеере? Согласен, но в Mplayer есть встроенный эквалайзер! Для примера, добавьте следующую строчку в конфиг Mplayer - ~/.mplayer/config :

af=equalizer=7:8:5:0:0:0:-2:-2:-2
Теперь запустите Mplayer и вы почувствуете результат. Если заметите хрипение, убавьте низкие частоты:
af=equalizer=5:5:5:0:0:0:-2:-2:-2







Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(1)

# ArgoYanin May 2, 2010, 6:16 a.m.
Спасибо огромное! надеюсь поможет и мну :) В любом случае за старания спасибо :)

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

Гость: не работает, увы, ищу дальше.... >>>
Stas: Еще есть хороший редактор Codelobster IDE... >>>
xx: > “Не стоит сильно ругать и проклинать По... >>>
Eugene: Галка, внешний вид изменить совершенно не сложно.... >>>
Галка: А сильно сложно Убунту переделывать?... >>>