MPD и PulseAudio

Как то давно поставил себе MPD. Для тех, кто не в теме: MPD - это такой демонный проигрыватель музыки. Запускаем его просто в фоне, а музыку переключаем посредством дополнительного клиента. Это кстати очень удобно ибо клиент может выглядеть самым разнообразным способом, вплоть до какого-нибудь Web-интерфейса, сваянного на PHP. И возможности для вывода самые разные: ALSA, OSS, PulseAudio, JACK, можно транслировать музыку в сеть как радио. Когда на ноуте ещё была чисто ALSA то проблем вроде не было. Но вот обновился я до GNOME3... ВНЕЗАПНО потребовался PulseAudio...

wtf

Тут и появилась проблема. Выводить MPD через PulseAudio то умеет, но он пытается запустить его от своего имени. А поскольку мой уже захватил на себя звуковуху, то он вывести звук уже не может. Ну а если повезёт и всё-таки он её отвоюет, то я не могу звук выводить, иногда даже если на паузу поставлю. И это вызывает неилюзорный баттхёрт. Поэтому я заинтерисовался вопросом как запустить MPD от своего имени.

Всё оказалось довольно таки просто. И как это сделать не есть секретно, походу даже в документации высветлен данный момент, хотя не уверен, не читал её всю. Это узнал откуда-то из интернетов.

Шаг 1. Конфиг.

Просто взял и скопировал имеющийся конфиг к себе в home:

$ cp /etc/mpd.conf ~/.mpdconf

Там пришлось кое-что поправить. В первую очередь - это пути:

music_directory        "/путь/к/музыке"
playlist_directory    "/home/username/.mpd/playlists"
db_file            "/home/username/.mpd/mpd.db"
log_file        "/home/username/.mpd/mpd.log"
pid_file        "/home/username/.mpd/mpd.pid"
state_file        "/home/username/.mpd/mpdstate"

Очевидно, что я переложил все служебные файлы к себе в папку. Далее всё-таки сказал ему, чтобы запускался от моего имени:

user            "username"

Так же на всякий случай подправлю путь к сокету (если Вы не используете, то и править ничего не надо):

bind_to_address        "/home/username/.mpd/mpdsock"

И самое главное - это звуковой вывод. Я удалил все секции audio_output кроме этой:

audio_output {
    type        "pulse"
    name        "Pulse Audio"
}

Тоесть той, которая описыват PulseAudio. Всё сводится к тому, что он просто законнектится к моему PulseAudio и не будет никому мешать.

Шаг 2. Папки.

Далее создадим папки и файлы для работы MPD. Мы их уже упоминали, когда писали конфиг.

$ mkdir ~/.mpd
$ mkdir ~/.mpd/playlists
$ touch ~/.mpd/mod.{db,log,pid}
$ touch ~/.mpd/mpdstate

Папки и файлы созданы. Всё готово.

Шаг 3. Запуск.

Запускать демон очень просто:

$ mpd

и всё, он запущен. Коннетимся мы согласно тем настройкам, которые записаны в .mpdconf. Я их не менял, поэтому всё так и осталось: 127.0.0.1:6600 если идти через TCP/IP. Ну или можно соединятся с сокетом /home/username/.mpd/mpdsock. Если что, лично я использую клиент gmpc. Если приспичит потушить демон то:

$mpd --kill

Вот так. Приятного прослушивания, товарищи.

music headphones happy