- Драйвер mpd
- Описание
- Информация
- Установка драйвера
- Настройка драйвера
- Установка MPD на Linux
- Для вывода звука аудиоплеером MPD через именную звуковую карту:
- Go, локдаун и новый MPD-клиент — встречайте Ymuse
- Music Player Daemon
- Ymuse
- Go Go Go
- Исходный код и установка
- Windows 7 и Music Player Daemon
- My mpd client 4
Драйвер mpd
Описание
Драйвер mpd является клиентом для управления проигрывателем MPD (Music Player Daemon).
MPD – музыкальный аудио проигрыватель с клиент-серверной архитектурой, который воспроизводит музыку из указанного каталога (библиотеки). Воспроизведением управляют при помощи клиента. Управлять сервером (демоном) можно с любого компьютера, телефона или планшета (iOS/Android) в сети, а с помощью данного драйвера со странички в VIS или из JS скриптов в iobroker. Выводить звук можно как локально на том устройстве где установлен демон так и через потоковое аудио по HTTP. Соответствующие настройки задаются в конфигурационном файле. Описание протокола проигрывателя находится тут.
Информация
Актуальная версия | |
Необходимые условия | установленная серверная часть MPD |
Разработчик | instalator |
Ключевые слова | управление |
Github | Ссылка |
Платформа | Javascript/Node.js |
Лицензия | MIT |
Установка драйвера
Установка осуществляется на вкладке Драйвера странички администрирования системы. В группе драйверов Медиа находим строчку с названием mpd client adapter и нажимаем кнопку со значком плюса в этой строке справа.
На экране появится всплывающее окно установки драйвера, в конце установки оно автоматически закроется.
Если все прошло удачно, на вкладке Настройка драйверов появится строка mpd.0 с установленным экземпляром драйвера.
По-умолчанию драйвер не запущен, чтобы его стартовать, нажимаем на кнопку Неактивно. Нажать для старта (красная с иконкой play). Если драйвер настроен верно установлено соединение с сервером MPD, то индикатор состояния (значок) слева от названия инстанции драйвера (mpd.0) будет зеленый. Если он желтый то это означает, что драйвер запущен, но не установлено соединение с сервером MPD.
Настройка драйвера
Для перехода на окно настроек нажимаем кнопку Настроить.
Откроется окно настроек драйвера. В поле IP и PORT задается ip адрес устройства на котором запущена серверная часть проигрывателя MPD и порт на котором он работает.
После ввода значений нажимаем кнопку Сохранить и выйти, при этом окно настроек закрывается, драйвер перезапустится уже с новыми параметрами и если все настройки верны, и серверная часть MPD работает, то индикатор состояния загорится зеленым.
Установка MPD на Linux
Установим mpd с помощью apt-get (или любым удобным для вас способом)
sudo apt-get install mpd
Переходим к настройке. За конфигурацию демона mpd отвечает файл /etc/mpd.conf
sudo -e /etc/mpd.conf
Нам откроется структурированный файл с кучей комментариев после каждой из переменных настроек. Отредактируем некоторые из них:
Указываем пути на наши папки, не забыв создать необходимые с помощью команды
Настроим пользователя и адрес нашего демона
Отключим вывод через alsa закомментировав знаком ‘#’ следующий строки:
Настроим вывод звука через pulseaudio
Настроим потоковое вещание (открыть :8000/mpd.ogg в любой плеере, например vlc. Если хотите проигрывать поток как mp3 – замените ниже vorbis на lame).
Еще раскомментируйте опцию mixer_type, выбрав наиболее подходящий вам. Например: mixer_type “software”
Основные настройки закончены. Теперь применим несколько команд, позволяющих избежать проблем с уровнем доступа или с pulseaudio. Вы можете как столкнуться с этими проблемами, так и не встретить их. В любом случае перестраховка не помешает.
#Настроим права доступа
sudo usermod -a -G
sudo chmod g+rX
где folder_owner – имя владельца папки (в моем случае – username), mpd_user – пользователь указанный в mod.conf (в нашем случае – mpd), ну и path_to_folder в нашем случае /home/username/Music и /home/username/.mpd
sudo usermod -a -G username mpd
sudo chmod g+rX /home/username/Music
sudo chmod a+rwx /home/username/.mpd/
#Настраиваем права доступа в pulseaudio для mpd_user
sudo usermod -a -G pulse-access mpd
sudo usermod -a -G pulse mpd
Перезапустим mpd (после установки он запускается автоматически):
sudo /etc/init.d/mpd stop
sudo /etc/init.d/mpd start-create-db
При наличии на рабочей станции нескольких звуковых карт могут возникать проблемы – звук через нужную карту не воспроизводится.
Для вывода звука аудиоплеером MPD через именную звуковую карту:
уточняем наличие и маркировку звуковых карт
Go, локдаун и новый MPD-клиент — встречайте Ymuse
Уже лет десять моим основным медиаплеером на компьютере является MPD, Music Player Daemon — фоновый сервис, воспроизводящий музыку.
Чтобы с этим сервисом как-то взаимодействовать, нужна программа-клиент. Таких программ существует не один десяток, но до недавнего времени я никак не мог найти ту, которая меня бы полностью устраивала — поэтому в один прекрасный день я решил написать свою (тут и локдаун кстати подвернулся).
Предлагаю вашему вниманию краткий обзор (сравнительно) нового MPD-клиента для Linux/GTK под названием Ymuse, версию 0.16 которого я недавно выпустил.
Music Player Daemon
Сначала немного о том, что же такое Music Player Daemon, — для тех, кто с ним незнаком.
Он представляет собой сервис (на айтишном жаргоне демон), который работает в фоновом режиме в недрах компьютера и способен воспроизводить музыку или стриминговое Интернет-аудио (Интернет-радио).
Помимо воспроизведения звука, сервис этот внешне никак себя не проявляет. Чтобы им управлять, требуется специальная программа, которую традиционно называют клиентом, и этих клиентов есть множество под разные платформы — от Windows до Wear OS.
Когда я впервые познакомился с такой концепцией разделения компонентов на невизуальный (воспроизводящий аудио) и визуальный, то был немного озадачен, однако довольно быстро осознал её удобство.
MPD берёт на себя управление музыкальной библиотекой (сканирование и индексирование аудиофайлов) и проигрывание файлов, а программу-клиента можно подобрать по вкусу. В такой архитектуре клиентов у MPD-демона может быть сколько угодно, причём они вообще могут располагаться на другом компьютере или даже мобильном телефоне — подключение к нему осуществляется по сетевому протоколу.
Нередко используется конфигурация, когда MPD крутится на микрокомпьютере типа Raspberry Pi, подключенном к колонкам, а управляют им с компьютера или через мобильное приложение.
Также MPD поддерживает плейлисты (списки воспроизведения) и стандартное стриминговое аудио, благодаря чему становятся доступны тысячи Интернет-радиостанций.
Кстати, в Линуксе есть смысл вместе с MPD сразу поставить пакет mpdris2, который свяжет его со стандартным интерфейсом медиаплеера MPRIS. Тогда демоном можно будет управлять стандартными медиа-клавишами (перемотка, пауза, стоп и т.д.).
Ymuse
Теперь о том, зачем, собственно, понадобился ещё один MPD-клиент.
В своё время я перепробовал несколько существующих клиентов и в итоге остановился на минималистичном Sonata, который практически полностью меня устраивал, за исключением пары моментов:
- Неудобный вызов часто используемых мной функций через вложенные меню.
- Неповоротливость с большим плейлистами (на несколько тысяч треков).
Последний пункт был следствием того, что Sonata написана на Python, который, как известно, не славится особой производительностью.
В общем, терпел я, терпел, и в конце концов не выдержал и написал свой клиент, который получил название Ymuse и иконку в виде бокала для мартини, напоминающего букву Y :
Внешне Ymuse также ожидаемо минималистичен:
При этом его функционал, по моему скромному мнению, достаточно богат:
- Подключение к локальному или сетевому серверу MPD по TCP или Unix-сокету, автоматическое восстановление подключения.
- Отображение очереди воспроизведения, сортировка по любому свойству, перемешивание, удаление треков из очереди.
- Фильтрация очереди по подстроке.
- Сохранение очереди в виде плейлиста (существующего или нового).
- Просмотр и поиск по библиотеке MPD, переход к исполнителю или альбому из очереди воспроизведения.
- Просмотр списка плейлистов, удаление и переименование плейлиста.
- Собственный список потоков (Интернет-радиостанций) с возможностью добавления, удаления и редактирования элементов.
- Настройка отображаемых столбцов в списке воспроизведения.
- Настройка отображаемого текста в плеере (используется синтаксис Go template).
- Переключение режимов MPD (random, repeat и consume).
- Регулировка громкости.
- Перемотка трека в произвольное место.
- Отображение обложки текущего альбома в плеере.
- Поддержка локализации. Доступные языки:
- английский
- русский
- нидерландский
- японский
Работает Ymuse по моим наблюдениям достаточно стабильно — у меня он вкалывает почти непрерывно.
Библиотека:
Потоки (Интернет-радиостанции):
Настройки:
Go Go Go
Для реализации Ymuse я выбрал молодой, но многообещающий язык Go, разрабатываемый Google.
Go — язык со строгой типизацией, который нативно компилируется под огромное количество платформ и архитектур, от Linux до Android и от SPARC до ARM. Это делает его весьма перспективной заменой морально устаревшему и довольно неуклюжему C++. Go очень дружественен к программисту, синтаксисом напоминая Python, а также предоставляет поддержку многопоточности «из коробки».
Ну и самое, пожалуй, главное для того, чтобы язык не зачах где-нибудь на обочине истории, это мощная стандартная библиотека функций, а также тысячи опенсорсных библиотек, любую из которых можно подключить к проекту одной командой go get ….
Именно наличие двух готовых библиотек — gompd для коммуникации с MPD-демоном и gotk3, позволяющей работать с графическим интерфейсом GTK — сделало возможным создание практически полной функциональной копии Sonata за пару недель (!) работы по вечерам. В обе библиотеки, кстати, пришлось слать пулл-реквесты, чтобы что-нибудь исправить или добавить.
И вот результат: с моим плейлистом на 12K+ треков Ymuse работает визуально раза в два-три быстрее «Сонаты». (Замечу в сторону, что скорость работы приложения теперь ограничивается производительностью GTK, что особенно заметно на больших списках.)
Исходный код и установка
Исходный код Ymuse доступен на GitHub, а установить его можно из .deb , .rpm или snap-пакета:
Подробнее об установке можно прочитать на странице приложения (версия на английском).
Жалобы и предложения пишите в трекер на Гитхабе (желательно на английском).
Windows 7 и Music Player Daemon
Небольшая заметка о том, как я запускал Music Player Daemon на Windows7 и что из этого получилось…
MPD — это совсем крошечный аудио-проигрыватель-демон, который управляется через сетевой интерфейс и умеет транслировать аудио поток самыми разнообразными и легко конфигурируемыми способами.
Установка оказалась довольно проста.
С сайта разработчиков я скачал архив с программой, распаковал её в каталог, создал подкаталоги для хранения музыкальных файлов, плэйлистов, музыкальной БД и логов и написал небольшой конфигурационный файл.Некоторые вопросы возникли только по поводу разделителя каталогов(нужно использовать две прямых либо одну обратную черту) и правильного конфигурирования выходного аудио потока. На вики разработчиков нашлись примеры конфигурации для аудио устройств Windows 7
У меня получился вот такой конфигурационный файл mpd.conf:
playlist_directory «d:\\mpd\\playlists»
db_file «d:\\mpd\\database\\mpd.db»
log_file «d:\\mpd\\log\\mp.log»
pid_file «d:\\mpd\\log\\pid»
state_file «d:\\mpd\\log\\state»
bind_to_address «127.0.0.1»
port «6600»
log_level «default»
auto_update «yes»
input <
plugin «curl»
# proxy «proxy.isp.com:8080»
# proxy_user «user»
# proxy_password «password»
>
#audio_output <
# type «httpd»
# name «My HTTP Stream»
## encoder «vorbis» # optional, vorbis or lame
# port «8000»
# bind_to_address «127.0.0.1» # optional, IPv4 or IPv6
# quality «10.0» # do not define if bitrate is defined
## bitrate «512» # do not define if quality is defined
# format «128000:16:2»
#>
#windows multimedia output
audio_output <
type «winmm»
name «Speakers»
# device «Speakers (Realtek High Definition Audio)»
>
Теперь можно запустить MPD командой:
mpd.exe mpd.conf
Если ошибок в конфигурационном файле не нашлось, то всё должно работать.Ну а дальше можно вставить эту команду в автозагрузку или запускать вручную.
Ещё несколько замечаний. Если на компьютере установлено более одной звуковой платы, то их можно конфигурировать отдельно, и тогда разные карты будут получать звуковые потоки с разными параметрами(указав значения параметру device), либо не делать этого. В этом случае аудио поток будет транслироваться только на одну(активную) звуковую карту.Я иногда использую внешнюю звуковую карту SB Play, и с её подключением и отключением не возникло никаких проблем.
Кроме того можно организовать трансляцию аудио потока по протоколу http (эту возможность я попробовал-в моём конфигурационном файле эти настройки оставлены и закоментированы), и даже транслировать через MPD вебрадио. Программа занимает 5.5 мб оперативной памяти и почти не нагружает процессор — у меня на настольном компьютере используется не более 1% процессорного времени.
My mpd client 4
Достоинства MPD особенно ярко проявляются, если музыкальные композиции содержат id — тэги mp3/flac/ogg. В этом случае можно легко сортировать их по альбомам, исполнителям и т.д. Для управления музыкальной БД, очередью воспроизведения и создания плэйлистов написаны специальные программы, которые называются mpd-клиенты. Таких программ-клиентов насчитывается пару десятков. Большую часть из них я посмотрел и даже попробовал в действии. Мне они показались неудобными, и я решил для своих собственных нужд написать собственный клиент mpd.
Основные идеи были следующими:
1) Простой интерфейс.
2) Возможность удобной работы на небольших экранах.
3) Удобная и простая навигация по музыкальной базе данных.Нормальное отображение обложек альбомов, если они хранятся вместе с аудиофайлами.
4) Наглядная работа с плэйлистами.
5) Редактор тэгов.(пока не реализовано)
Он написан на python/pygtk. C небольшими исправлениями это программа запустилась и под Windows, её я в основном и использую.
Самое интересное начинается после нажатия кнопки [more]. Окно распахивается и появляется блокнот с закладками, которые и осуществляют основную работу по создания списков воспроизведения(плэйлистов).