🏠 Home Assistant + Music Assistant = 🎼 ❤

Приветствую! Тут наверное будет довольно большая, почти статья.
Писатель я неважнецкий, а тема обширная, с большими ответвлениями и множеством сложных терминов, потому прошу строго не судить, тем более что предметом данной темы, я и сам только начал пользоваться, нахожусь на стадии его изучения и создаю данную тему, как раз с такой целью, чтобы найти других заинтересовавшихся и вместе разбираться в нюансах.
Что бы пост не получился слишком монструозным, я буду часто вставлять подзаголовки, а разные его части, буду разделять спойлерами. Так что обязательно заглядывайте под спойлеры, именно там сосредоточена вся основная информация.

О проекте Home Assistant (далее я часто буду сокращать его название до - HA) как таковом, я знаю уже давно. Я много раз сталкивался с ним в контексте реализации каких-либо специфичных для устройств умного дома сценариев. Знал, так же, я и про то, что в его арсенале есть все мыслимые клиенты музыкальных сетевых протоколов: DLNA, ChromeCast, AirPlay, Squeezebox, мультирумы и прочие блэк-джеки со всеми вытекающими :slightly_smiling_face:. Однако же, я никогда не рассматривал его всерьёз, в свете организации своей домашней хай-фай системы и медиатеки. Как ни крути, HA - это целая отдельная операционная система, требующая постоянно работающий сервер (пусть и с относительно скромными системными требованиями), созданная и заточенная для управления умным домом, с большим количеством вшитых и включённых по умолчанию сервисов, не имеющих вообще никакого отношения к музыке, но которые так или иначе, будут мешать нормальной работе музыкального устройства. При этом, подавляющая часть её функционала, останется просто не востребована. В общем… не про хайфай всё это.

Расходимся… :no_entry:

:wink: :blush: :upside_down_face:

Пара слов об интеграции Яндекс.Станций

Но… В поисках более-менее удобного способа воспроизведения лосслесс формата из Яндекс.Музыка на своём сетапе, я наткнулся на очередную плюшку из арсенала HA - интеграцию Яндекс.Станций. Благодаря этой интеграции, кроме всего прочего, при наличии Яндекс.Станции, можно слушать Яндекс.Музыку через любой плеер или рендерер интегрированный в HA. Мне стало любопытно, и с учётом того, что у меня уже есть работающий сервер, необходимый мне по работе, и его производительности вполне достаточно для того, чтобы поднять на нём виртуальную машину с HA, это не составило для меня никакого труда и уже к вечеру того же дня, я начал изучать интерфейс HA и приноравливаться к прослушиванию Я.Музыка через него. Там не всё получается гладко, но в конечном счёте я получил требуемый результат, и сейчас могу наслаждаться подборками и своей библиотекой в Я.Музыка, на своём основном сетапе, в максимально доступном качестве :ok_hand: :sign_of_the_horns: :speaker_high_volume:

О том как и почему мне понравился Music Assistant

=====================================

Описание, внешний вид и основные функции Music Assistant

Но, конечно, данная тема не только про Я.Музыка + HA, поэтому у этой истории получилось продолжение. В процессе изучения интеграции Яндекс.Станция, я узнал о том, что внутри Home Assistant, существует “замечательный сосед” - Music Assistant (далее буду сокращать его название до MA). Интегрируемый в Home Assistant, менеджер музыкальной библиотеки, поддерживающий как офлайн контент, так и множество различных онлайн сервисов, который может транслировать вашу музыку на широкий спектр поддерживаемых проигрывателей и совместим с возможностями Home Assistant. В сравнительной таблице можно убедиться в разнообразии поддерживаемых сервисов и возможности их использования внутри Music Assistant:

Немножко о том, как устроен Music Assistant

Но самое интересное здесь то, что это не “ещё один плеер” в котором можно войти в один из этих сервисов, и по отдельности пользоваться каждым из них. Здешняя “кухня”, по своей организации, больше напоминает то, как это устроено в том же ROON. На главной странице, нас ждёт настраиваемый набор альбомов/плейлистов/артистов и тд, добавленных в библиотеку MA, при подключении сервисов.

Например у меня там миксы рекомендательные плейлисты из Tidal, история воспроизведения, плейлисты из всех моих библиотек (Tidal, Qobuz, Spotify) и тд. Содержимое домашнего экрана можно настраивать включая и выключая предлагаемые MA элементы.
В нижней части интерфейса есть вкладки артисты/альбомы/треки/плейлисты. Там можно просмотреть соответствующие элементы библиотек, опять же, из всех ваших сервисов. Если у меня, Al DiMeola в избранных артистах Spotify, а Aaron Neville в избранных артистах Tidal, то во вкладке артистов MA, будут и тот и другой:

То же самое, касается и альбомов и плейлистов:

При переходе на страницу артиста/альбома, есть даже блок, содержащий некую информацию об артисте, или рецензию на альбом:

Не вмещающийся в шапке текст, можно открыть в отдельном окне:

Есть так же режим радио. Если выбрать воспроизведение одной песни, плейлиста или альбома, то по завершении, начнётся воспроизведение похожих треков из библиотеки:

Режим радио опционален. По умолчанию он выключен. Включается/выключается здесь:

Ещё одна приятная нашему глазу мелочь - индикация форматов исходника, преобразований и выходного сигнала. Тоже реализовано в схожей с ROON манере. Разный цвет при разном выходном качестве:

Как видите, на последнем скрине, так же присутствует параметрический эквалайзер. Кроме настройки вручную, можно импортировать фильтры полученные в REW. Я успешно импортировал фильтр параметрического эквалайзера, созданный в REW и экспортированный из него в текстовый файл. То-есть здесь можно поиграться и рум-коррекцией. :smiling_face_with_sunglasses:

Немножко о том, что “под капотом” Music Assistant

Создание такой библиотеки, объединяющей в себе все библиотеки из используемых мной онлайн-сервисов, заинтересовало меня, и тогда я решил попробовать некоторое время попользоваться менеджером MA как основным источником для своих вечерних музыкальных онлайн-сёрфингов. По началу меня ждало сильное разочарование. Мало того, что я быстро понял, что источник стриминга подменяется на локальный (как будто стрим идёт не с серверов Tidal/Qobuz, а с компьютера на котором работал мой сервер с HA / MA), так ещё и все треки “причёсывались” под одну частоту дискретизации. Слушать это было обидно и скучно. Как будто источником был среднего пошиба mp3. Но я решил разобраться, а можно ли что-то поделать с этой проблемой(?), и стал изучать настройки MA, читать как он устроен.

Из того, что я узнал в последствии, я понял, что подмену источника трафика никак не устранить. Основная концепция MA в этом плане, состоит в том, чтобы обеспечить надёжность воспроизведения и совместимость с разными плеерами. И надо сказать, в этом смысле действительно задумка сработала. Я быстро убедился в том, что когда я слушаю Tidal через Tidal Connect (без участия MA), и воспроизведение хайрезов начинает прерываться (думаю с этим обломом многие уже знакомы), в то же время, те же треки, с тем же хайрезом, при воспроизведении через MA, работают стабильно и не прерываются. Для достижения этой стабильности MA кеширует трек разбивая его на части, преобразует его в заданный мной в настройках плеера формат, и только после этого отправляет его на выбранный плеер/рендерер…
Вот мы и подобрались к самому главному для нас, аудиофилов, моменту, при использовании MA. Преобразование? Ну всё.. теперь точно:

Расходимся… :no_entry:

Немножко технических подробностей

Далее следует цитата с сайта Music Assistant с гугл-переводчиком и небольшим редактированием с моей стороны:

Все треки обрабатываются Music Assistant как RAW PCM. Поэтому всё воспроизводимое будет сначала декодировано в RAW PCM 32-битного формата с плавающей точкой с частотой дискретизации источника (если только не включена/не требуется явная передискретизация, например, при включенном режиме Flow), а регулировка усиления выполняется при извлечении исходного RAW-медиа, чтобы к PCM-фрагментам, передаваемым в потоковый движок, применялась регулировка усиления. Таким образом, в пределах (финальной) 16- или 24-битной разрядности должен быть достаточный запас по уровню. Если целевое устройство воспроизведения не поддерживает разрядность выше 16 бит, будет применено дизеринг для понижения сигнала до 16 бит без потери качества.

Вся дальнейшая обработка в MA выполняется на уровне необработанного аудио PCM, например, настройки DSP - если включен «режим потока», кроссфейдинг также выполняется на необработанных фрагментах PCM, но при этом весь звук будет повторно сэмплироваться в одну статическую частоту дискретизации и битовую глубину, чтобы создать один «поток» звука для отправки на проигрыватель.

Заключительный этап цепочки — передача звука MA на плеер. По умолчанию мы кодируем исходный PCM-файл в формат FLAC, поскольку он обеспечивает сжатие без потерь, но при этом достаточно высокую степень сжатия. Для плееров, которые не очень хорошо обрабатывают FLAC, или просто для экономии трафика, мы предоставляем возможность (для каждого плеера) кодировать его в MP3. [А для аудиофилов, оставли возможность кодировать в WAV (моё примечание :)) )]

По умолчанию, MA транслирует весь поток, как один, без пауз объединяя треки, как будто мы слушаем онлайн-радио (режим FLOW). Именно поэтому он и подводит всё что воспроизводит к одному знаменателю частоты/битности. Но на это можно повлиять. Я сейчас не стану расписывать все кнопки интерфейса, с помощью которых, можно настроить более привычное нам следование частоты дискретизации трансляции, за параметрами исходника, так как думаю описывать эти действия в интерфейсе, пока что будет преждевременно для читателя, но скажу просто, что этот режим единого потока, отключается и трансляцию можно сделать соответствующей параметрам исходника. Опять же… всё это более подробно, я обязательно опишу ниже. Возможно уже в процессе обсуждения.

Следующим “этапом принятия” стало обнаружение и использование упомянутых выше настроек. Теперь трек всё-равно проксировался через сервер MA, и он всё ещё подвергался преобразованию, но теперь преобразование стало менее деструктивным. Была устранена передескретизация, которая всегда неминуемо влечёт за собой снижение детальности, особенно в ВЧ диапазоне. Звучание стало более-менее живым, но мне всё ещё было скучно. Ощущалась некая синтетичность, и общее впечатление от звучания, было хуже, чем когда я слушал Qobuz или Tidal напрямую из приложения телефона, на своём Lyngdorf. Почти убедившись, в том, что игра не стоит свеч, я решил уже почти со скуки, ещё раз пробежаться по настройкам MA. В этот раз, я обратил внимание на то, что трансляцию потока, можно вести не только в MP3 [если нас не волнует качество], и не только во FLAC [если мы рдеем о качестве, но всё ещё хотим уменьшить количество трафика], но и в PCM WAV [если нам нужно качество и мы не переживаем о количестве трафика]. По умолчанию там был включён FLAC. Я решил попробовать включить WAV и… вав эффект можно описать примерно таким, уже подустаревшим мемом:

https://www.youtube.com/watch?v=rdZDRA_WbIo

Я вдруг обнаружил едва уловимую приятную специфику в звучании. Можно сказать сигнатуру… и она мне очень нравится, так как нечто схожее, я наблюдаю и при редком прослушивании музыки с CD. У меня очень маленькая коллекция CD, поэтому и слушаю с него редко. Заключается эта специфика, в лёгкой затемнённости сцены, чуть бОльшей, при сравнении с другими источниками сдержанности на ВЧ, но без потери детальности. В общей сложности, звук можно охарактеризовать как более комфортный. При этом, сейчас, слушая музыку c MA, я ощутил, что сцена и образы на ней, стали более естественными, а между моими АС стала просыпаться преславутая голографичность музыкальных инструментов, и эффект присутствия музыкантов играющих на них.

Таким образом, на последние пару месяцев, основным источником в моей системе стал MA. При всех его недоработках, недостатках, сложностях которые я преодолел на пути к этому моменту(ну тут привет всем Open Source проектам), я каждый вечер получаю дозу удовлетворения не зря проделанной работой. Как мне кажется, это был верный шаг в направлении одного важного для меня вывода… Я стал перебирать в уме варианты, как же так может быть, что музыка подвергшаяся преобразованию на стороне локального компьютера, может в итоге понравиться мне больше, чем при использовании “родных” приложений и транслирующейся прямо с серверов той же самой музыки?

И вот какой я для себя сделал вывод (или скорее предположение). ЦАПы устройств воспроизведения, на каком то этапе, внутри себя, так или иначе преобразуют поступающий в них поток в PCM. Ну то-есть, даже если ЦАП поддерживает FLAC/MP3, он всё равно до преобразования их в аналоговый сигнал, сначала переводит весь поток в PCM. И вот в какая тут получается штука… По умолчанию, мой стример от родного стримингового приложения, на свой вход получает FLAC, а значит он вынужден заниматься его преобразованием в PCM (при этом попутно разжимая его), а в случае с трансляцией потока из МА, в формате wav, стример получает уже почти готовый для “употребления” поток PCM. Я не силён в технической стороне данного вопроса, но толика моих знаний указывает на то, что структурно PCM и WAV, это почти одно и тоже. А значит, вполне логично предположить, что таким образом, процессор стримера, разгружается от лишних преобразований.
Что ж… для себя лично, я объяснил эту часть парадокса.
Но остаётся ещё одна часть. Как так выходит, что мой сервер, на котором работает web-сервер, файловое хранилище, три виртуальных машины, вдруг становится приемлемым по качеству источником? И тут я тоже сумел, для себя найти оправдание. Главный, казалось бы недостаток MA, в том, что он кеширует и преобразовывает все данные перед отправкой их на стример, может оказаться его главным козырем как источника. Ведь он делает кеш файла, выполняет с ним манипуляции, и только после этого отправляет, как я уже сказал выше, готовый для ЦАП поток. Выходит, что благодаря кешу, нивелируются помехи вносимые другими процессами в обработку сигнала. Возможно тут какую-то роль играет специфика моего конечного устройства воспроизведения - Lyngdorf. Может быть именно с ним, момент преобразования в PCM стал так сильно выражен, а с каким то другим устройством, это уже не сыграет такой критичной роли. Вот и будем посмотреть… :eyes:
Так же, монетой в этой копилочке, может быть тот факт, что по сути, в такой конфигурации, стрим и воспроизведение были разнесены на разные устройства. Это конечно не совсем так(ведь Lyngdorf всё равно принимает служебные сетевые пакеты вместе с wav, а не чистый поток), и это не как протокол RAAT, но… как я написал ранее, тот факт, что в стример приходит wav, а не flac, тут может сыграть положительную роль.

=====================================

С чего начать?

=====================================

Первые шаги с Home Assistan + Music Assistant

Home Assistant, это операционная система созданная для централизованного управления устройствами умного дома. Она основана на Linux дистрибутиве. Поддерживаются устройства Raspberry Pi, Odroid, обычные x86-64 устройства (компьютеры с процессорами Intel и AMD). Так же есть готовые для использования образы для VirtualBox, VMware Workstation, Hyper-V, KVM(в случае, если у Вас есть компьютер с Windows, MAC или Linux, на нём можно запустить виртуальную машину с готовой ОС). На сайте Home Assistant, есть подробные пошаговые инструкции по установке операционной системы HA или её запуске на виртуальных машинах.

Music Assistant, это модуль/плагин, который доустанавливается в Home Assistant, после первоначальной установки самого HA. Есть так же возможность запустить MA отдельно, без HA, но для этого потребуются основы познаний работы в Linux, и запуск Docker-контейнера с MA. Кроме того, такой вариант связан с рядом сложностей в настройке доступа к МА по сети. В общем, наверное с ним нет смысла заморачиваться.

После установки MA, его можно открывать внутри интерфейса HA, а можно запустить его собственную веб-морду.

Далее, в настройках MA необходимо произвести несколько основных манипуляций. Настроить Music Provider и Player Provider:

В первом случае, надо авторизоваться в стриминговых сервисах, либо добавить свои локальные библиотеки:

Во втором, надо активировать протоколы для поиска совместимых плееров, которые можно будет использовать для воспроизведения из MA:

Как и было сказано в начале, такому ассортименту позавидуют очень многие устройства. Далее, или открываем приложение Home Assistant и в нём переходим в MA:

или можно настроить отдельную страницу для MA и открывать сразу её:

В телефоне, я сделал себе отдельный ярлык с этой страницей, и теперь запускаю почти как отдельное приложение MA. Да.. пока что полноценного приложения для Andorid/IOS не имеется. Для десктопов есть приложение Music Assistant Companion в принципе, просто повторяющее веб-интерфейс.

По большому счёту, всё это присказка. Как я сказал вначале, тема обширная, с большим количеством составляющих. Для многих она вовсе будет неинтересна из-за большого количества сложностей, и/или из-за необходимости держать включённым сервер. Кто-то может решить, что сама по себе концепция преобразования исходных треков - неприемлема (или в процессе тестирования, не обнаружит её такой удачной как это вышло в моём случае). Но так как всякие умные дома, всё больше понемногу завладевают своё пространство в наших домах, будет полезно иметь в баре тему, в которой можно обсудить и этот аспект - Home Assistant как централизованное средство управления умным домом, которое, дополнительным бонусом, можно использовать в роли меломанского или просто играющего в фоне проигрывателя(для этого он уж точно годится). Кому то, может оказаться востребован и функционал мультирум-а. Ну и в конце-концов, то с чего началось это приключение у меня - на сегодня, кроме стримера на базе Android, это единственный способ, слушать лосслесс из яндекс.музыка.

=====================================

В общем.. добро пожаловать в тему!!! :tada: :house_with_garden: :hammer: :wrench:




Ниже будет всякая полезная информация для тех, кто только начал изучать эту тему.

Установка Home Assistant

=====================================

Ссылки на статьи и видеоуроки

=====================================

Настройки воспроизведения в Music Assistant

=====================================

О том как не получить ‭«битперфект» и о прочих настройках воспроизведения

Ранее я уже писал, что на самом деле с МА битперфект невозможен. Так или иначе, но МА подвергает преобразованию весь воспроизводимый контент, поэтому битперфект в том виде, как мы к этому привыкли, когда исходный файл в нетронутом виде доставляется в ЦАП, здесь не получится никак. Однако… можно свести преобразования к минимуму. О том как этого достичь(?) и пойдёт речь далее.
Как уже сказано выше, первым делом после установки МА, необходимо настроить две вещи.
Первое это - Music Provider. То-есть источник музыки. Это может быть стриминговый сервис, локальный сервер с музыкой, интернет радио итд. Сводная таблица поддерживаемых источников есть выше.
После этого надо настроить Player Provider. То-есть, протокол в котором работает Ваш плеер, на который Вы собираетесь выводить звук из MA. Можно добавить множество плееров, выбирать каждый из них по отдельности, и/или группировать их для использования в режиме мультирум(но об этом в другой раз).

В моём примере, я буду использовать свой Wiim Pro Plus, с протоколом Squeezelite. Для его активации в MA, достаточно войти в настройки, нажать кнопку “Добавить Player провайдера”, в выпавшем списке выбрать пункт: Squeezelite (slimproto players) и в открывшемся диалоге, нажать кнопку “Сохранить”.

После этого, в настройках Squeezelite на моём Wiim, появился ip-адрес с MA, как доступный для подключения сервер LMS:

Теперь в настройках МА, в разделе плееры:

…появился и мой Wiim. Обратите внимание, что он там представлен в двух вариантах. И как DLNA и как Squeezelite. Если DLNA плеер Вашего устройства, Вас не интересует, то здесь можно его выключить.

Далее переходим в настройки МА для этого плеера. В настройках плеера его можно переименовать в пункте: “Пользовательское название плеера”. Введённое здесь название, заменит его везде в интерфейсе МА:

Далее можно пойти двумя путями. Либо мы настраиваем плеер для фонового прослушивания с мультирумами и прочими неаудиофильскими утехами, либо настраиваем плеер так, чтобы свести преобразования воспроизводимых аудиофайлов к минимуму и постараться достичь максимально возможного качества. Конечно, я буду описывать второй вариант, но постараюсь объяснить суть настроек, так что бы их можно было использовать и для первого варианта.

Итак, снова идём в “Настройки / Плееры / и тут выбираете ваш плеер”.

В настройках каждого плеера есть несколько разделов:

  • Общие настройки
  • Аудио
  • Расширенные настройки
  • Конфигурация объявлений
  • Управление плеером

Пройдёмся по ним, по очереди.
В разделе “Общие настройки” выключаем “Режим потока для очереди”. В этом режиме всё что воспроизводится, МА подводит под одну настройку частоты и битности. Это позволяет делать плавные переходы между треками, лучше синхронизировать между собой несколько плееров с разными поддерживаемыми форматами, но приводит к деградации звука из-за лишней передескритизации.

В разделе “Аудио”, так же выключаем пункты “Включить кроссфейд”, “Включить нормализацию громкости”, “Enable limitting to prevent clipping”. Первые два пункта говорят сами за себя, а третий пункт, позволяет использовать ограничение громкости, если по какой-то причине уровень передаваемого сигнала, станет слишком высоким. Думаю, это может касаться в первую очередь ограничений при работе эквалайзера. Если там перестараться с подъёмом какой либо точки эквализации, это может привести к клиппингу, что в свою очередь может послужить перегрузкой для АС или наших ушей. Так же, в теории и нормализация громкости, наверное может создать такие условия, при которых уровень может подняться выше нормы. Но… я эквалайзер не использую, нормализацию выше я отключил, поэтому у меня и этот пункт выключен. Так же разделе “Аудио” есть пункт DSP. DSP можно использовать для включения параметрического эквалайзера, тон-контроля (темброблок) или для настройки преампа, если например, необходимо подравнять по уровню громкости несколько плееров. По умолчанию DSP выключен, и я его не планирую включать. Но если вы по какой-то причине хотите использовать его, то надо всего лишь включить его и добавить соответствующие фильтры:

После включения эквалайзера, можно приступать к созданию точек эквализации. Или как я писал выше, можно импортировать фильтры REW созданные в текстовом формате.

В разделе “Расширенные настройки”, в первую очередь, необходимо указать те режимы воспроизведения(частота дискретизации и битность), которые поддерживаются Вашим плеером. Обратите внимание, что все частоты дискретизации можно включать отдельно для 16бит и отдельно для 24бит:

Включайте все режимы, в которых умеет играть Ваш плеер.

В пункте “Output Codec to use for streaming audio to the player”, можно выбрать кодек в котором МА будет производить трансляцию. Как я уже указывал выше, по умолчанию здесь включён FLAC, я же предпочёл выбрать WAV.
Пункт Expose this player to Home Assistant позволяет использовать данный плеер в HA, но с настройками MA.
Enable display support, как я понимаю, для вывода визуализации на экран, подключённый к серверу с HA. У меня этот пункт - выключен, и если честно, я даже не пробовал его включать )))

Далее раздел “Конфигурация объявлений”. Я до конца даже не понимаю о чём этот раздел. :thinking: Есть предположение, что он про голосовое управление, так как похожие опции, есть как раз в настройках голосового управления HA. Мой рецепт прост:

Далее раздел “Управление плеером”.
Управление питанием - позволяет вкл/выключать питание плеера с помощью МА (если плеер поддерживает удалённое управление питанием). Опять же, я выключаю этот пункт. Регулировка громкости / Управление отключением звука - позволяют собственно, регулировать громкость плеера из интерфейса МА. Доступные опции зависят от Вашего плеера. Если Ваш плеер имеет управление громкостью и поддерживает удалённое управление ею, то здесь можно выбрать пункт “Нативное управление громкостью”, что позволит прямо из интерфейса МА регулировать громкость. Так же этот пункт может быть полезен тем, у кого плеер подключён прямо к усилителю мощности, без возможности регулировки громкости на усилителе.
В моём Wiim управление громкостью деактивировано вообще, поэтому я отключил регулировку громкости и здесь:


:man_shrugging:

Теперь надо обязательно сохранить настройки, иначе все внесённые изменения не применятся.
После всех этих манипуляций, МА станет подстраивать частоту дискретизации под исходную частоту воспроизводимого контента. Главное, чтоб такую частоту поддерживал Ваш плеер.

=====================================

39 лайков

Молодец! Очень хорошее начало.
Я познакомился с НА когда в приложениях для linkplay (Wiim home и ему подобные) перестал работать vtuner.

3 лайка

Супер!
Отличное начало!

2 лайка

Ну, если это “писатель неважнецкий”, то я даже не знаю :grinning_face:

Тема очень интересная

1 лайк

Уже около пяти лет пользуюсь Home Assistant, на нём же у меня стоит аддон Logitech Media Server. До прочтения вашей статьи даже не приходило в голову использовать Music Assistant — спасибо за материал! Однако столкнулся с проблемой: при попытке воспроизвести треки в формате WAV возникает шипение. Подскажите, пожалуйста, где нужно править настройки — на стороне плеера (picoreplayer) или в самом Music Assistant?

1 лайк

Затрудняюсь с ответом. :thinking:
Чаще всего шипение возникает когда внутренняя тактовая частота ЦАПа не соответствует поступающему в него сигналу (или этот формат просто им не поддерживается). Возможно, стоит отключить регулировку громкости в настройках плеера в МА? В общем, кто тут виновник, надо разбираться в контексте.

Как бы я искал причины.
Для начала, надо проверить на какую частоту в момент начала воспроизведения настроен ЦАП (у Вас я так понимаю это шляпа). Если на ней нет явной индикации, то наверное как-то можно это проверить в интерфейсе picoreplayer-a? Я им не пользуюсь, поэтому точно не смогу подсказать.
Далее, надо убедиться, что МА транслирует в соответствующей частоте дискретизации. Для этого, надо нажать на значок pipline в управлении воспроизведением:

В строке Output отображается текущий формат, в котором MA вещает на плеер. Обратите внимание, иногда отображаемая там частота обновляется с задержкой.
Настроить эту частоту можно так:
(здесь будет ссылка на мой следующий пост, в котором я изложу как настраивается частота дискретизации МА, и как её можно подстроить под исходный формат трека)

Почти уверен, что если текущая частота ЦАПа и частота вещания МА совпадут, то шипения не будет. А если даже при таком раскладе шипит, то проблема какая то более фундаментальная.

Цап Topping D10 Balanced+raspberry pi 3B+, на экране цапа частота 44,1 pcm, на выходе МА 44,1/24bits, установил на выходе МА 44,1/16bits заработало.

Не пробовали?

Не пробовал, мне тогда нечем будет её регулировать.

Усилитель без регулировки? Тогда конечно не проверить… Хотя по идее всё равно не должно было бы из-за этого шипеть.

Буду пытаться настраивать picoplayer. А как отключить на выходе МА эквалайзер?

DSP? Пишу как раз пост про настройки звука в MA, там будет и про DSP. В течении часа/двух опубликую.

В первом сообщении добавил большой абзац, в котором обобщил информацию про
Настройки воспроизведения в Music Assistant.

Там же, в первом сообщении (возможно кто-то пропустил), добавил несколько ссылок на информацию про
Установку Home Assistant

===================================

@ostap, попробовал у себя настроить Sqeueezelite в Wiim. У меня с WAV получается та же петрушка. Если трансляция в 24-х битах, то идёт шипение. Если ограничить до 16ти бит, то WAV играет корректно. Во FLAC играет и 16 и 24 бита. А если тот же wiim использовать как DLNA проигрыватель, то шипения нет и в любом режиме нормально играет. С учётом того, что у меня и Lyngdorf как DLNA рендерер без проблем играет WAV 24 бита, то вывод такой, что возможно ограничение на стороне протокола Squeezelite? Попробую создать тикет на гитхабе Music Assistant, м.б. разработчик что-то скажет по этому поводу.

Касаемо Вашего вопроса про то как выключить эквалайзер - в первый пост, в том же разделе с настройками воспроизведения, добавил скрины где включается/выключается DSP.
В настройках проигрывателя, в разделе “Аудио”, надо нажать на кнопку Open DSP Settings, а там переключить в положение “выкл” ползунок “Configuring DSP on: XXXXXXXX” (где XXXXXXXX - это Ваш плеер)
Но по умолчанию он выключен, так что или я Вас не правильно понял, или Вы же его и включили ))

Установил moode вместо picorplayer в нём включил Squeezelite, теперь всё работает, видимо дело не в протоколе.

1 лайк

С другой стороны, не поленился, перекодировал один трек в wav 24 бита и несколько вариантов частоты дискретизации. Из MA они так же с шумом играют. Установил LMS себе на комп, добавил в его библиотеку эти же перекодированные треки, отправил их играть на wiim, играют нормально. Lyngdorf показывает соответствующую частоту и битность. Ну значит точно сам по себе wav 24 бита не проблема для протокола sqeueezelite.

Обратил внимание, что даже если трек идёт в wav 24 бита (с шипением), то в моём усилителе, в который подключён Wiim, всё равно отображается информация, что формат входящего потока 16 битный. То-есть, в wiim отправляется 24 бита, но он по какой то причине, пытается его играть как 16 бит.

Ещё такая проблема возникла с WAV: трек не доигрывает до конца, переключает на следующий, где и что поменять пока не придумал.

Только после включения Enable queue flow mode, треки в WAV перестают прерываться, без включения, даже может перепрыгнуть через трек. Настройки буферов в moode не помогли. Включал в moode DNLA, играет, но не в МА, не в moode, не отображаются названия треков, не работает таймер трека, вообще тишина там, как будто всё отключено, но трек воспроизводится. Пока не нашёл, что установить на raspberry pi, чтобы всё корректно работало, но звук в WAV без лишней передескритизации действительно интереснее.

Это именно со Squeezelite? А если во FLAC то корректно воспроизводится? Я создал запрос на гитхабе по поводу WAV и Squeezelite. Разработчик активно поддерживает проект, так что если найдётся проблема, думаю довольно скоро пофиксит. М.б. и отставания в moode как то связаны с некорректным воспроизведением WAV через squeezelite…

У меня с DLNA бывает МА и плеер рассинхронизируются. Иногда МА вовсе перестаёт считать тайминг трека. Но в основном стабильно. Особенно с Wiim, растудыть его качель )))) Играет хуже чем Lyngdorf, но какие бы эксперименты не проводил - всё надёжнее с ним работает ))
Кстати, в настройках плеера в МА, есть параметр “HTTP Profile used for sending audio”.

Точно не знаю что это, но судя по названию и имеющимся там вариантам, вполне может иметь отношение к стабильности синхронизации и отображения длительности и прогресса воспроизведения. Возможно их изменение как то повлияет?

С FLAC тоже самое. Какие-то новые настройки у вас на скрине, не нашёл у себя таких, как в них попасть?

В настройках плеера, раздел “Дополнительные настройки” или “Advanced settings”. Эти настройки есть у DLNA плеера, но их нет у Squeezelite