Поэтому я решил собрать небольшой сетап для прослушивания, ну и опять же мне бухать немного надоело сидя в изоляции.
нам понадобятся такие ингридиенты:
1.ЦАП (по сути юсб звуковая карта), свою (S.M.S.L IQ) я купил пару лет назад на али, она оказалась весьма годным примером china hi-fi
2.Odroid C2 (ну или RPI 3/4 любой линуксовый пк на арм/х86)
3.проводки, наушники, резиночка, наушники в моем случае Tinaudio T2 с балансным проводом и цап имеет балансный выход.
4.руки и немного мозга
Для проигрывания музыки я буду использовать связку MPD+alsa, задача избежать DoP и прочего транскодинга, т.е. отдать DSD напрямую в устройство
что такое DSD здесь-
https://www.whathifi.com/us/advice/what-dsd-audio-how-it-wor...
Ок, погнали.
Берем ваш ПК с линуксом (желательно какой то свежий дистрибутив, убунта, армбиан, хотя тут сами выбирайте, оно не настолько принципиально),
все соединяем, и смотрим что бы наш цап виделся в выводе lsusb
в моем случае это вот:
lsusb
===========================
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
вот это >>>>> Bus 001 Device 005: ID 152a:85dd Thesycon Systemsoftware & Consulting GmbH
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
===========================
запоминаем ID 152a:85dd, он нам пригодится.
идем настраивать модуль альсы.
смотрим какие аудиокарты видит альса
aplay -l
==========================
**** List of PLAYBACK Hardware Devices ****
card 0: OdroidC2 [Odroid-C2], device 0: fe.dai-link-0 (*) []
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: USB20 [SMSL IQ USB2.0], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
==========================
нужная идет под номером 1.
ставим перманентный индекс для аудиокарты в модуле
nano /etc/modprobe.d/alsa-base.conf
========================
options snd-usb-audio index=1 vid=0x125a pid=0x85dd
========================
т.е. мы указали ID устройства, для того что бы при переключении в другой разъем номер с точки зрения альсы не менялся.
Если вы успешный и богатый и звуковых карт у вас несколько, то конфиг модуля примерно такой надо
============================
options snd-usb-audio index=1,2 vid=0x25c4,0x21b4 pid=0x0008,0x0083
============================
осталось только подергать модуль (ну или перезагрузится, если не лень)
=============================
sudo modprobe -r snd-usb-audio
sudo modprobe snd-usb-audio
=============================
теперь поставим MPD, можно из оф реп, можно из сорцов
==========
sudo apt-get update
sudo apt-get install mpd
==========
смотрим статус
=============
sudo systemctl status mpd.service
=============
mpd.service - Music Player Daemon
Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-10-04 00:45:52 MSK; 14s ago
Docs: man:mpd(1)
man:mpd.conf(5)
file:///usr/share/doc/mpd/user-manual.html
Main PID: 11181 (mpd)
Tasks: 3 (limit: 4915)
Memory: 12.6M
CPU: 511ms
CGroup: /system.slice/mpd.service
└─11181 /usr/bin/mpd --no-daemon
Oct 04 00:45:52 nuc systemd[1]: Starting Music Player Daemon...
Oct 04 00:45:52 nuc mpd[11181]: hybrid_dsd: The Hybrid DSD decoder is disabled because it was not explicitly enabled
Oct 04 00:45:52 nuc systemd[1]: Started Music Player Daemon.
============
теперь сконфигурячим mpd
nano /etc/mpd.conf
===============================
# See: /usr/share/doc/mpd/mpdconf.example
pid_file "/run/mpd/mpd.pid"
db_file "/var/lib/mpd/mpd.db"
state_file "/var/lib/mpd/mpdstate"
playlist_directory "/var/lib/mpd/playlists"
music_directory "/mnt/samba-share/+muz/"
database {
plugin "simple"
path "/var/lib/mpd/db"
}
resampler {
plugin "libsamplerate"
type "0"
}
replaygain "off"
input {
plugin "tidal"
enabled "no"
}
input {
plugin "qobuz"
enabled "no"
}
audio_output {
type "alsa"
device "hw:1,0"
name "SMSL IQ"
auto_resample "no"
auto_channels "no"
auto_format "no"
replay_gain_handler "none"
dop "no"
mixer_type "none"
}
===============================
немного про опции конфига:
music_directory - место где лежит музыка (в моем случае примонтированная самба шара, самбу можно напрямую через плагин)
database - нужна для сохранения мета инфы о треках,
resampler - выключаем,он может быть нужен если цап не поддерживает параметры потока
replaygain - тоже отключаем, громкость я буду крутить на самой звуковухе
input plugin - я не использую, но можно цеплять всякие внешние сервисы
audio_output, самый важный кусок, в нем как раз я указываю что играть и в какую звуковую карту (индекс 1, который мы поставили в начале)
опций очень много, у меня так достаточно минимальный конфиг, основные смотрите на офсайте MPD https://www.musicpd.org/doc/html/user.html#configuration
после кручения опций рестаруем мпд
=======
sudo systemctl restart mpd.service
======
Все, если все ок, можно взять телефон и поставить приложение для управления нашей музыкальной шкатулкой(например, M.A.L.P. под андроид) указать ip и порт коробочки и наслаждаться музыкой. В планах сделать управление через bluetooth, но пока не понял, можно или нет.
Вариантов кастомизации много- приделать аккумулятор и перенести на флешку музыку и сделать портативную AP - куда то кататься или например приделать экран для отображения трека и хардверные кнопки для переключения.