Как воспроизводить музыку в терминале Linux с MPD и ncmpcpp

MPD — это демон для воспроизведения музыки, управляемый через клиентов. ncmpcpp — популярный ncurses-клиент с удобным текстовым интерфейсом и визуализатором. Вместе они дают тонкий контроль над библиотекой, списками воспроизведения и выводом звука — локально и по сети (например, с телефона).
Почему выбрать MPD + ncmpcpp
- Лёгкий серверный подход: музыка проигрывается демоном, клиенты лишь управляют. Это удобно для фоновго воспроизведения и для headless-систем.
- Сеть и масштабируемость: клиенты могут подключаться локально или удалённо (при открытом порте/сокете).
- Полная настройка вывода: ALSA, PulseAudio/PipeWire, FIFO для визуализации.
Важно: этот подход требует базовой работы с конфигурацией и терминалом. Если вы предпочитаете GUI-плееры — возможно, это не ваш вариант.
Установка (Ubuntu / Debian)
Оба пакета есть в репозиториях большинства дистрибутивов. На Ubuntu/Debian установите так:
sudo apt update
sudo apt install mpd ncmpcppЕсли вы используете другой дистрибутив, используйте пакетный менеджер вашего дистрибутива (dnf, pacman и т.п.).
Настройка MPD
Файл конфигурации MPD по умолчанию: /etc/mpd.conf. Можно создавать конфигурации на пользователя, но для домашнего ПК достаточно системной.
Откройте файл в редакторе с root-пивилегиями:
sudo vim /etc/mpd.confФайл содержит много опций и комментариев — это хорошо: используйте его как справочник. На практике достаточно изменить несколько опций для корректной работы.
Каталоги
Найдите опцию music_directory и укажите путь к вашей музыкальной библиотеке:
music_directory "/home/user/Music"Укажите каталог для плейлистов:
playlist_directory "/home/user/Music/playlists"Альтернатива: если вы используете сетевые ресурсы (NAS), укажите смонтированный путь.
Основные опции
Проверьте параметры user и group. По умолчанию MPD запускается от пользователя mpd:
user "mpd"
#group "nogroup"Настройка соединений: раскомментируйте строку сокета и порт, чтобы клиент мог подключаться.
bind_to_address "/run/mpd/socket"
port "6600"Если вы не хотите, чтобы MPD автоматически начинал воспроизведение после перезапуска, настройте:
restore_paused "yes"Чтобы MPD автоматически обнаруживал добавленную музыку в каталоге:
auto_update "yes"Вывод звука

MPD может выводить звук через ALSA, PulseAudio/ PipeWire или через FIFO (для визуализаторов).
ALSA
ALSA включена по умолчанию — обычно править ничего не нужно. Пример блока:
audio_output {
type "alsa"
name "My ALSA Device"
# device "hw:0,0" # optional
# mixer_type "hardware" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}Если у вас несколько звуковых карт — укажите device=”hw:X,Y”.
PulseAudio / PipeWire
В современных дистрибутивах PulseAudio может быть заменён PipeWire; MPD обычно работает с Pulse-совместимыми сокетами. В файле конфигурации блок Pulse закомментирован — раскомментируйте при необходимости:
audio_output {
type "pulse"
name "My Pulse Output"
# server "remote_server" # optional
# sink "remote_server_sink" # optional
}Примечание: если на системе используется PipeWire, оставьте Pulse-блок, он часто совместим; в некоторых случаях понадобятся дополнительные пакеты (например, pipewire-pulse).
FIFO (для визуализатора)
Если вы хотите использовать визуализатор (в ncmpcpp или другом клиенте), настройте FIFO-выход:
audio_output {
type "fifo"
name "fifo_mpd"
path "/tmp/mpd.fifo"
format "44100:16:2"
}Этот FIFO будет читать визуализатор, поэтому путь и name должны совпадать с настройками клиента.
Сохраните файл и перезапустите MPD
После правок перезапустите службу:
sudo systemctl restart mpd
sudo systemctl status mpdЕсли mpd настроен запускаться как системный сервис, systemd покажет статус и ошибки.
Добавить mpd в группу audio
Чтобы MPD мог обращаться к звуковым устройствам, добавьте пользователя mpd в группу audio:
sudo gpasswd -a mpd audioПосле этого может потребоваться выход/вход или перезапуск демона.
Настройка ncmpcpp
ncmpcpp — ncurses-клиент для управления MPD. Конфигурационный файл пользователя обычно находится в ~/.ncmpcpp/config.
Создайте папку и скопируйте шаблон конфигурации:
mkdir -p ~/.ncmpcpp
sudo gunzip -c /usr/share/doc/ncmpcpp/config.gz > ~/.ncmpcpp/config || sudo cp /usr/share/doc/ncmpcpp/config ~/.ncmpcpp/config
sudo chown -R $(whoami):$(whoami) ~/.ncmpcpp/config(В зависимости от дистрибутива файл шаблона может находиться в другом месте; приведённый вариант пытается распаковать gzip-версию и, при неудаче, копирует обычный файл.)
Подключение к MPD
Откройте ~/.ncmpcpp/config и раскомментируйте/укажите соединение:
mpd_host = "localhost"
mpd_port = "6600"
mpd_connection_timeout = 5Укажите путь к музыкальной библиотеке:
mpd_music_dir = "/home/user/Music"
mpd_crossfade_time = 2Визуализатор
Укажите путь к FIFO и имя выходного устройства, соответствующее MPD:
visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "fifo_mpd"Параметры синхронизации и вида визуализатора:
visualizer_in_stereo = yes
visualizer_sample_multiplier = 1
visualizer_sync_interval = 30
## Available values: spectrum, wave, wave_filled, ellipse.
visualizer_type = wave
visualizer_look = ●▮
#visualizer_color = blue, cyan, green, yellow, magenta, red
visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161Попробуйте разные визуальные стили и цвета в зависимости от возможностей терминала.
Использование ncmpcpp

Запустите клиент:
ncmpcppncmpcpp открывается с пустым плейлистом по умолчанию. Интерфейс разбит на вкладки (панели), переключение — цифрами 1..n:
- 1 — Плейлист
- 2 — Проводник файлов (File Browser)
- 3 — Поиск
- 4 — Библиотека (Library)
- 5 — Редактор плейлистов
- 6 — Редактор тегов (внимательно)
- 7 — Выходы (Outputs)
- 8 — Визуализатор
Навигация: стрелки, Enter для воспроизведения, Space для добавления в плейлист.
Частые горячие клавиши (шпаргалка)
- Space — Добавить в плейлист
- Enter — Воспроизвести
— Следующая композиция
- < — Предыдущая композиция
- s — Стоп
- p — Пауза
- o — Переместиться к текущей композиции
- z — Переключить случайное воспроизведение (shuffle)
- x — Переключить кроссфейд
- l — Показать текст песни (lyrics)
- S — Сохранить плейлист
Полный список клавиш доступен в документации ncmpcpp или в файле конфигурации.
Проверка работоспособности и типичные ошибки
- MPD не запускается — проверьте
sudo systemctl status mpdиjournalctl -u mpd -bдля логов. - Клиент не подключается — проверьте путь сокета и порт (bind_to_address и port), права доступа к сокету и firewall.
- Нет звука — проверьте, что MPD использует правильный аудио-выход (ALSA/Pulse), и что пользователь mpd в группе audio.
- Визуализатор пустой — проверьте, что FIFO создан и имеет права для чтения/записи, что имя выхода совпадает.
Важно: если вы используете PulseAudio как обычный пользователь, а mpd запущен системно — может возникнуть конфликт прав/сессий. Решение: запустить mpd от пользователя, а не как системный демон, или использовать socket-режим.
Полезные команды для отладки
systemctl status mpd
journalctl -u mpd -f
ss -ltnp | grep 6600
ls -l /run/mpd
file /tmp/mpd.fifoЧек-листы по ролям
Обычный десктоп-пользователь:
- Установить пакеты, настроить mpd.conf с ALSA или Pulse
- Добавить mpd в группу audio
- Перезапустить mpd и запустить ncmpcpp
Headless-сервер (без звуковой карты, аудио — через сетевой стрим):
- Использовать FIFO или сетевой выход (streaming)
- Открыть порт 6600 к доверенным клиентам или использовать SSH-туннель
- Использовать systemd-run для фонового процесса
Пользователь мобильного клиента:
- Настроить mpd bind_to_address на реальный IP или использовать reverse proxy/SSH
- Включить аутентификацию на сетевом уровне (VPN/SSH)
Мини-методология быстрой настройки (5 шагов)
- Установить mpd и ncmpcpp.
- Указать music_directory и playlist_directory в /etc/mpd.conf.
- Выбрать и настроить audio_output (ALSA/Pulse/FIFO).
- Добавить mpd в группу audio и перезапустить демон.
- Скопировать шаблон ~/.ncmpcpp/config и указать mpd_host/mpd_port, путь к FIFO.
Шпаргалка: часто используемые команды и сниппеты
# Обновление базы MPD
mpc update
# Добавить папку в плейлист
mpc add /path/to/track_or_folder
# Воспроизвести
mpc play
# Пауза
mpc pause
# Следующая
mpc next
# Получить статус
mpc status(Утилита mpc — простой клиент для MPD, полезна для скриптов.)
Критерии приёмки
- MPD запускается без ошибок:
systemctl status mpdпоказывает active (running). - Клиент ncmpcpp подключается и может читать библиотеку.
- Звук воспроизводится через выбранный аудио-выход.
- Визуализатор получает данные из FIFO (если настроен).
Короткий глоссарий
- MPD: демон, воспроизводящий музыку, управляемый клиентами.
- ncmpcpp: ncurses-клиент для управления MPD с визуализатором.
- FIFO: именованный канал для передачи аудио-данных визуализатору.
- ALSA / Pulse / PipeWire: подсистемы звука в Linux.
- socket/port: способ подключения клиента к демону (локальный Unix-сокет или TCP-порт).
Когда этот подход не подходит
- Вам нужен простой GUI-плеер с прозрачным управлением: графические приложения удобнее.
- Нужны DRM-стримы с проприетарными кодеками, которые завязаны на конкретные GUI-плагины.
- Если вы не готовы править конфиги и работать с правами пользователей.
Заключение
MPD + ncmpcpp — отличный выбор для тех, кто ценит контролируемое, лёгкое и расширяемое воспроизведение музыки на Linux. Небольшая инвестиция в настройку окупается гибкостью: сетевой контроль, скрипты и удобные текстовые интерфейсы. Начните с базовой конфигурации, проверьте вывод звука и затем экспериментируйте с визуализатором и плейлистами.
Важно: при работе через сеть заботьтесь о безопасности — открытие порта MPD делает ваш сервер доступным извне.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента