- Music Player Daemon (MPD)
- Installing with the GUI
- Installing with the command line (advanced users)
- Configuring MPD to run as a system service
- Editing the configuration
- Bugfix: Giving MPD proper permissions
- MPD starts new pulseserver
- Configuring MPD to run as a user service
- Bugfix: Pausing loses connection with Pulse server
- Configuring MPD to stream to an IceCast server
- Установка
- Настройка
- Использование
- Интеграция с Unity
- Консольные клиенты
- MPC
- MPD+cron+mpc=будильник
- Клиенты GTK+
- GMPC
- Клиенты Android
- MPDroid
- Клиенты iOS
- MPoD
Music Player Daemon (MPD)
Music Player Daemon (MPD) is a flexible, powerful, server-side application for playing music. Through plug-ins and libraries it can play a variety of sound files while being controlled by its network protocol.
Installing with the GUI
Start Synaptic Package Manager ( System > Administration > Synaptic Package Manager ) and in the search box enter mpd. Mark the package mpd for installation and client if required. In this guide Sonata is used as an example.
Click Apply.
Installing with the command line (advanced users)
$ sudo apt-get install mpd sonata
Configuring MPD to run as a system service
- In the configuration, many of the default options will be what is required; however, there is still some customization needed to be done.
Editing the configuration
Almost all of the default settings in /etc/mpd.conf can be left untouched, but there are some things that you may want to change.
You will need to specify the music directory:
music_directory "/home/user/Music" # or whatever your music is located
The audio controller will need to be defined. First, comment the ALSA section:
#audio_output # type "alsa" # name "Sound Card" # device "hw:0,0" # optional # format "44100:16:2" # optional # mixer_device "default" # optional # mixer_control "PCM" # optional # mixer_index "0" # optional #>
Then add Pulse Audio below it (comment out, and define name [optional]):
audio_output type "pulse" name "MPD" # server "remote_server" # optional # sink "remote_server_sink" # optional >
Sometimes there can be a problem with sound getting processed correctly and uncommenting this line might help:
Bugfix: Giving MPD proper permissions
Unfortunately, by default MPD does not have the proper permissions to access PulseAudio, the default audio setup on most new Ubuntu systems. If MPD plays for you without these steps, then that’s great, but if you can play your songs but no sound is emitted, try the following steps.
What we need to do is add the user mpd to the groups pulse and pulse-access so that it can access the audio system.
$ sudo usermod -aG pulse,pulse-access mpd
MPD starts new pulseserver
Unfortunatly MPD tries to start its own pulseaudio server. So if you still unlucky you could try:
audio_output type "pulse" name "MPD" server "localhost" # optional # sink "remote_server_sink" # optional >
Then you need to allow access. You should install paprefs
sudo apt-get install paprefs
Then run it (e.g. alt+f2 and enter paperfs). Click the Network Server tab, then check the Enable network access to local sound devices box, and finally check the Don’t require authentication box. At this point make sure to restart the pulseaudio daemon.
sudo service pulseaudio restart
Now you should see MPD in Sound settings Application tab and hear music.
Configuring MPD to run as a user service
MPD doesn’t need to run as a daemon and can be run as a regular program by any user. By doing this, MPD will use the users configurations and has no need for a system-wide configuration (useful if you keep your /home on a separate partition.
First stop the daemon and disable from starting on boot:
sudo service mpd stop sudo update-rc.d mpd disable
* Note: This will probably change as of Ubuntu 11.04 (Natty) the MPD daemon is not yet an upstart service yet.
Create a directory for the mpd files and the playlists:
Copy the MPD configuration file to the home folder:
gunzip -c /usr/share/doc/mpd/examples/mpd.conf.gz > ~/.mpd/mpd.conf
Create all of the requisite files:
Edit the configuration file to direct to the local MPD files:
playlist_directory "/home/user/.mpd/playlists" # Cannot use ~/ db_file "/home/user/.mpd/mpd.db" log_file "/home/user/.mpd/mpd.log" pid_file "/home/user/.mpd/mpd.pid" state_file "/home/user/.mpd/mpdstate"
The music_directory isn’t required to be specified unless the music directory is in another place besides /home/user/Music.
Comment the user line (unnecessary/unwanted if using as a non-daemon):
Comment out alsa audio_output section, select Pulse section:
audio_output type "pulse" name "MPD" # server "remote_server" # optional # sink "remote_server_sink" # optional >
Create a desktop file for MPD to have MPD load on log in:
gedit ~/.config/autostart/mpd.desktop
[Desktop Entry] Encoding=UTF-8 Type=Application Name=Music Player Daemon Comment=Server for playing audio files Exec=mpd StartupNotify=false Terminal=false Hidden=false
Now the MPD daemon will run in the background and a MPD music client can connect to it; until then mpd can be started by running mpd from the command line.
Bugfix: Pausing loses connection with Pulse server
This is a bug the occurs with Pulse when pausing a track and trying to play it again that the MPD client will show that the track is playing but no sound is heard (skipping to will resume contact with the Pulse sound server, or stopping and playing will as well). This bug effects pulseaudio-1:09.22 and possibly later.
To fix this modify the MPD configuration to use ALSA directly.
In the mpd.confdirect MPD to use ALSA and comment the pulse section if previously specified:
audio_output type "alsa" name "Sound Card" # device "hw:0,0" # optional # format "44100:16:2" # optional # mixer_device "default" # optional # mixer_control "PCM" # optional # mixer_index "0" # optional >
Configuring MPD to stream to an IceCast server
MPD (последним исправлял пользователь 5 2017-02-08 06:24:48)
The material on this wiki is available under a free license, see Copyright / License for details
You can contribute to this wiki, see Wiki Guide for details
Установка
Пакет mpd находится в официальных репозиториях Ubuntu, поэтому для установки необходимо выполнить команду:
Настройка
Конфигурационный файл можно найти по пути
он очень хорошо комментирован, поэтому если проблем с английским языком нет, с конфигурацией проблем не будет. Ниже приведено описание только тех пунктов, которые необходимо сконфигурировать для работы. Комментарии для удобства чтения удалены.
Замените «имя_пользователя» на имя своего пользователя.
Директория с музыкой.
# Files and directories ####################################################### music_directory "/home/имя_пользователя/Музыка"
Целесообразно создать в домашней папке директорию mpd, где будут храниться рабочие файлы приложения.
Следующие 6 строчек указывают место хранения рабочих файлов- создаваемых плейлистов, базы данных, лог файла, файла хранения PID и sticker_file.
playlist_directory "/home/имя_пользователя/.mpd/playlists" db_file "/home/имя_пользователя/.mpd/db" log_file "/home/имя_пользователя/.mpd/mpd.log" pid_file "/home/имя_пользователя/.mpd/pid" state_file "/home/имя_пользователя/.mpd/state" sticker_file "/home/имя_пользователя/.mpd/sticker.sql" # ###############################################################################
Далее следуют основные настройки приложения.
Необходимо указать пользователя, от имени которого будет запускаться демон.
# General music daemon options ################################################ user "имя_пользователя"
При запуске демона на сервере, необходимо указать IP адреса, которые будут иметь доступ к управлению плеером, возможные варианты:
localhost— для работы на локальном компьютере;
any— для доступа любого клиента из сети;
определенные IP адреса— через запятую можно выборочно указать адреса, имеющие доступ.
И порт, по умолчанию 6600.
# For network bind_to_address "any" port "6600"
Автообновление базы при добавлении файлов в папку с музыкой
Доступ к функциям демона по умолчанию.
# Permissions ################################################################# default_permissions "read,add,control,admin" # ###############################################################################
Конфигурация аудио выхода. На современных дистрибутивах Ubuntu по умолчанию установлен музыкальный сервер PulseAudio, который целесообразно указать в настройках mpd, в результате этого вы получите нормализованный звук в различных приложениях и mpd. Достаточно указать только тип и имя, остальные параметры mpd определит автоматически.
# Audio Output ################################################################ audio_output < type "pulse" name "My Pulse Output" server "localhost" # sink "remote_server_sink" # optional >################################################################
Одновременно с этим нужно настроить pulseaudio на прием звукового потока по TCP, для этого в файле /etc/pulse/default.pa необходимо раскомментировать и подредактировать строчку
load-module module-native-protocol-tcp auth-anonymous=1
Указываем кодировку имен файлов и id3-тэгов.
# Character Encoding ########################################################## filesystem_charset "UTF-8" id3v1_encoding "UTF-8" ###############################################################################
MPD может не работать через PulseAudio после перезагрузки, так как PulseAudio плодит процессы не только от пользователя, но и от lightgm. Следует запретить пульсу плодить процессы путем редактирования конфига
Теперь пульс не будет самостоятельно запускаться. Но нам-то он нужен! Создаем файл с именем pulseaudio.desktop в каталоге ~/.config/autostart
touch ~/.config/autostart/pulseaudio.desktop
Открываем текстовым редактором, например
gedit ~/.config/autostart/pulseaudio.desktop
[Desktop Entry] Type=Application Exec=pulseaudio Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[ru]=pulseaudio Name=pulseaudio Comment[ru]= Comment=
Использование
Сервер установлен, настроен и запущен, теперь можно подключаться к нему любым из доступных клиентов и наслаждаться вашей любимой музыкой.
Интеграция с Unity
Для интегрирования меню управления MPD из индикатора управления громкостью в Unity необходимо добавить в систему репозиторий, установить пакет mpd-sound-menu .
sudo apt-add-repository ppa:torkvemada/torkvemada sudo apt-get update && sudo apt-get install mpd-sound-menu mpd-sound-menu &
Данный пакет обеспечивает возможность переключать треки вперед, назад, ставить на паузу, а также быстро переключаться между созданными ранее списками воспроизведения.
После установки необходимо настроить приложение, для чего нажать на индикатор звука Unity и выбрать MPD Sound Menu, в появившемся окне в строке Library Path необходимо указать путь к папке с музыкой (это нужно для того чтобы при экспорте путей к файлу в MPRIS можно было формировать валидные URI ), а также, если MPD запущен не на локальном компьютере, а на сервере, ввести адрес MPD-хоста. При желании, можно выставить автоматический запуск при старте системы.
Выглядит это следующим образом: Как видно, в меню не отображается обложка диска воспроизводимого трека и содержимое MPD-sound-menu не корректно отображается на светлых темах GTK-кнопки становятся просто черными (ошибки интерфейса не являются mpd-sound-menu-специфичными и все давно зарепорчены в Ubuntu-пакет indicator-sound 1) ).
В настоящее время разработка проекта фактически заморожена, так как автор больше не использует MPD. Наработки для новой версии (включая асинхронную библиотеку libmpd-qt для работы с сервером MPD) автор готов передать любому энтузиасту, желающему развивать проект дальше.
Консольные клиенты
MPC
Полный функционал управления плеером предоставляет консольный клиент mpc. Для установки необходимо выполнить
MPD+cron+mpc=будильник
Создаем и сохраняем плейлист в mpd c приятными уху записями.
echo "http://media-ice.musicradio.com/ClassicFMMP3" > ~/.mpd/playlists/ClassicFM.m3u
#!/bin/bash /usr/bin/mpc clear /usr/bin/mpc load ClassicFM /usr/bin/mpc volume 0 /usr/bin/mpc play for ((x=0; x40; x++)); do /usr/bin/mpc volume $x sleep 3 done sleep 2700 vol=`/usr/bin/mpc volume | /usr/bin/awk '' | /bin/sed s/%//g` for ((x=$vol; x>10; x=$x-2)); do /usr/bin/mpc volume -2 sleep 1 done /usr/bin/mpc stop exit 0
Добавляем запись в cron пользователя
0 7 * * * /home/имя_пользователя/bin/alarm.sh &>/dev/null
Клиенты GTK+
GMPC
Пакет gmpc находится в официальных репозиториях, для установки необходимо выполнить:
При первом запуске появится помощник настройки подключения. Указываем параметры подключения, нажимаем кнопку «Подключить» и «Готово». Основное окно выглядит следующим образом.
Клиенты Android
MPDroid
Удобный клиент MPD предоставляющий полный функционал управления демоном. После установки необходимо выбрать беспроводную сеть, при подключении к которой будет осуществляться управление MPD
После чего необходимо указать IP aдрес сервера и порт для подключения
Окно управления выглядит так:
Клиенты iOS
MPoD
Довольно неплохой клиент на iOS MPoD предоставляет полное управление серверной частью плеера. Клиент самостоятельно сканирует сеть на наличие MPD, но так же адрес и порт сервера можно указать вручную.
И к тому же в настройках можно выбирать любой источник воспроизведения, указанный в конфиге MPD