Про мой сетап Hi-Fi звука.

Тут большая, длинная история про то, как я себе собирал сетап с hi-fi звуком.

Это просто описание личного опыта, который, может быть, кому-то будет полезен. Не претендую на какое-то технарское новшество.

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

Если нет, просто почитайте о том, как страдают эти ваши аудиофилы.

Всё началось с того, что снял квартиру с хорошим звуком - лендлорд оставил мне свой усилок, напольные колонки и CD проигрыватель.

Проигрыватель был сразу убран, потому что ну какие диски, камон.

Но вот на базе усилка и колонок хотелось собрать что-то такое, на чём я смогу слушать Hi-Fi звук, и желательно диджитально, то есть управляя через приложение стриминговой музыкой.

Сам по себе усилок довольно старый, в нём нет никакх мозгов, которые могли бы ходить в сервисы Hi-Fi стриминга (я использую Tidal).

Но, раз нет в нём, значит нужно подключить к нему что-то такое, что могло бы ходить, брать бы оттуда звук, и передавать на усилок. И, повторюсь, этим хочется управлять через приложение с любого устройства.

А ещё, у Tidal есть свой контейнер для Hi-Fi музыки, который называется MQA - это ещё один кодек на стероидах, который заявляет, что файлы в нем будут "ЛУЧШЕ ЗВУЧАТЬ"))

А это значит, что мой девайс должен мочь прожевывать MQA.

Сначала мой выбор пал на технологию Tidal Connect. Это как раз протокол, по которому тот самый Tidal может трансилровать свою музыку на конечные устройства (обычно это ЦАПы).

ЦАП с поддержкой Tidal Connect стоит каких-то ну совсем конских денег, но с ним есть прикол - разработчики, почему-то, где-то моргнули, где-то зевнули, и случайно опубликовали исходники в публичный git репозиторий. Опомнились довольно быстро, и удалили, но было уже поздно - существовала уже куча форков, и люди просто скачали себе.

Так вот, я попробовал завести Tidal Connect на Raspberry Pi, и это не вкатило - я сидел несколько дней, добился того, что Tidal видел мой девас с RPi, и даже говорил, что транслирует на него музыку, но звука не было.

Я решил отстать от Tidal Connect, и посмотреть, что есть ещё. А ещё был плеер Roon, который даже не совсем плеер, а целая инфраструктура для Hi-Fi звука (я расскажу, почему инфраструктура). И Roon поддерживал Tidal, то есть, умел ходить внутри себя в Tidal, и пускать его треки в свой аудиотранспорт. И нёс на борту декодер для MQA (чтобы проиграть MQA нужен декодер и рендерер, об этом тоже расскажу).

Короче, выбрал Roon, начал разворачивать.

У Roon, как у инфраструктуры, есть три типа устройств:

  1. Ядро (core) - ходит за музыкальными файлами, декодирует, применяет эквалайзер, рендерит интерфейс, и так далее.

  2. Конечное устройство (endpoint) - то, что берёт цифровой аудиопоток, и конвертирует его в аналоговый.

  3. Дисплей (display) - отображает то, что происходит, и транслирует через chromecast/airplay это туда, куда попросишь.

И вот эту всё можно запустить на локальном устройстве, например на ноуте, но есть один минус - погасишь устройство, погаснет весь сетап. Нужно было делать что-то серверное, чтобы оно всегда работало.

Тут, в историю, нужен добавить ещё один девайс (я понимаю, вы уже сто раз запутались, но надо) - внешний ЦАП (цифро-аналоговый преобразователь). Это девайс, который берет цифровой поток от Roon/Tidal, рендерит его, и отправляет по проводу в усилок, который отправляет это в колонки.

Я решил, что я все три класса девайсов из Roon подниму на одном компьютере, Intel NUC, благо у меня был, и особо не использовался. И к нему же прицеплю внешний ЦАП.

А чтобы оно всё работало с веб мордой на одном компьюетере, и имело драйвера для ЦАПа, нужна полноценная ОС, Windows/Mac. Ну ладно, проблем то, поставил на NUC Windows, поставил в Windows Roon, подключил в него Tidal, всё должно быть гуд. Включаю. И слышу кучу шумов в звуке. Особенно слышно, когда ничего не играет. Не буду останавливаться на том, как долго я это искал, но в конце нашел, что видимо, в NUCе пробило где-то электрику, и на USB порты приходит что-то лишнее, что мешает ЦАПу. Короче, стало понятно, что NUC точно не может быть конечным устройством, оно должно быть другим. Но NUC по прежнему может ядром, которое делает самые ресурсно затратные штуки.

Ну а раз NUC теперь ядро, то ему не нужен интерфейс, не нужна работа с ЦАП-ом, и значит, не нужна винда - снёс её, поставил специальный линукс от команды roon, который сразу несёт в себе Roon Server. Пока ставил, тоже нашёл всяких проблем (например, на моём NVME SSD диске не создавались ext4 партиции, поменял диск), но всё получилось, первый девайс из цепочки у меня появился.

Дальше нужно было сообразить какой-то ендпоинт и дисплей.

Благо, так как Roon задуман как инфраструктура, у него было спеицальное решение для endpoint - программа для того, чтобы ловить музыкальный декодированный и обработанный аудиопоток с сервера, и отправлять его на внешний ЦАП. Называется это всё Roon Bridge, и его можно развернуть на Raspberry Pi. Благо, RPI у меня тоже были, и я попробовал. Взял родной линукс для RPI 4, и поставил на него руками Roon Bridge - это не вкатило, Roon Server не видел мой девайс. Погуглил ещё, и нашёл готовые дистрибутивы для Raspberry Pi, в которые уже вшит Roon Bridge (RoPieee). Накатил такую штуку, и это вкатило - Roon Server начал видеть мой эндпойнт, и даже смог проигрывать через него звук, и даже корректно передавал на него MQA (это я видел по индикатору на внешнем ЦАПе - когда он работает с roon, цвет индикатора меняется).

Короче, на этом этапе я собрал два девайса из трёх - у меня был сервер, и у меня был эндпоинт. Оставалось научиться отображать это всё на телевизоре (так как он стоит как раз там же, где весь музыкальный сетап, и не дело ему простаивать).

Сначала я решил, что я буду отображать это всё на телевизоре родным приложением Roon для Android. Взял NVIDIA Jetson Nano, накатил туда Android (оказывается, Jetson Nano официально поддерживается в Lineage OS), на андроид поставил приложение Roon, и столкнулся с былинным отказом - приложении roon не умеет в навигацию по пульту, только тачскрин (которого на телике нет).

Погуглил ещё, и нашел в roon поддержку дисплеев через chromecast. Убрал Jetson Nano, ибо тумач по мощности, взял Xiaomi TV Stick 4K, подключил его, и, о чудо, roon увидел его, и предложил рендерить на нём. Я согласился, и это вкатило.

И вот так я собрал прям полный сетап - музыка добывается из серверов tidal, декодируется на roon сервере, отправляется на roon bridge, который передаёт её на внешний ЦАП, который передаёт её на усилок, и тот уже на колонки. Я вижу, что происходит, на телевизоре, и управляю этим всем через приложение на любом устройстве внутри своей wifi сети.

Это была супер потная катка, но я супер доволен тем, что получилось - я слушаю музыку в хорошем качестве, нигде ничего не теряяя по дороге, и выжимая максимум из своего сетапа.

И бонусом ещё идет то, что Roon умеет ходить за музыкой не только в стриминги, но и в какие-то свои папки. У меня на роутере висит сетевой диск, на который я скачал Юрия Антонова (которого нет на стримингах), и попросил Roon ходить на музыкой ещё и на сетевой диск. Теперь я могу слушать Антонова в hi-res и кайфовать.

Выбрал быть счастливым, короче.

Надеюсь, вам было интересно читать)

Ниже фотки и видео того, что получилось, и что участвует в процессе.

Это вот видео того, как оно в итоге работает

Это эндпоинт с внешним ЦАПом на базе RPI4

Это сервер на базе Intel NUC

Это интерфейс приложения на macOS

А это интерфейс приложения на iOS

Ну и закончу пост финальной мыслью - в итоге, всё получилось так красиво и бесшовно, что гости даже не догадываются, как сильно пришлось ради этого всего запотеть.

Выглядит всё так, будто бы оно такое классное из коробки.

Комментарии (24)


  1. nafigat
    01.08.2023 16:38
    +1

    Подходил к этой теме лет пять назад. Тогда от Roon отпугнула какая-то нереальная цена. Поэтому остановился на Logitech Media Server . Вариант попроще, но относительно сопоставимый по функционалу.


    1. pistoletov
      01.08.2023 16:38
      +1

      Я свою систему мультирум тоже на базе lms построил. Все хорошо жаль только яндекс музыку туда не интегрировать...

      PS за Антонова уважуха-)


  1. sterr
    01.08.2023 16:38
    +1

    Большие сомнения, что Антонов есть в хай-рес. Копии с пластинок? CD?

    Лимит комментов извините. (Тупейшее ограничение)

    Оцифровка пластинок, да

    То есть копия копии. Причем достаточно плохая. И это вы называете хайрес?


    1. windoozatnick Автор
      01.08.2023 16:38

      Оцифровка пластинок, да


  1. stalinets
    01.08.2023 16:38

    Мне нравится по-старинке слушать mp3 с кнопочного ява-телефона Sony Ericsson, но столкнулся с проблемой: современные чрезмерно умные плееры с блютузом и блютуз-колонки не хотят просто держать коннект в роли гарнитуры и играть то, что передаёт телефон, они начинают индексировать без спроса музыку на телефоне (что вызывает лютые тормоза телефона вплоть до зависания и остановку музыки, а если и проиндексируют - сами начинают рандомно играть из коллекции всё подряд, отменяя то, что я сам поставил играть). Причём минут 10 всё может работать хорошо, а потом начинается индексация и всё падает. Или по блютузу дают команду на запуск на телефоне родного плеера (которым я не люблю пользоватся, предпочитая включать потреково из файлового менеджера), что тоже мешает. По сути блютуз-колонка не хочет быть просто гарнитурой-усилителем и сама начинает переключать треки и лезть в телефон по блютузу. Поэтому приходится подключать телефон кабелем... В телефоне вроде есть запрет на эти дела по блютузу, но не помогает. А слушать со смартфона мне неудобно.


    1. YegorP
      01.08.2023 16:38

      В блютузе разве есть протокол для "индексации музыки"? Колонки обычно реализуют A2DP для получения аудиопотока, AVRCP для управления (пауза, вперед, назад) и HSP/HFP для звонков. Ни в чём из этого я не припомню средств для листинга музыки. Только листинг контактов для звонков.


      1. stalinets
        01.08.2023 16:38

        Ну, видимо, колонка составляет плейлист чтобы начать его играть, и затем по AVRCP начинает сама переключать по этому плейлисту треки. А телефончик древний, внутренние шины хилые, блютуз в нём медленный, а карточка стоит гигантского для того времени объёма - 16 Гб, полная mp3, вот и начинает всё виснуть.


  1. ilyakruchinin
    01.08.2023 16:38
    +1

    Про MQA написаны уже толмуды - никакого отношения к Hi-Fi этот кодек не имеет (так как является кодеком с потерями).
    Писать об MQA как о "FLAC на стероидах" - это из серии нонсенса.
    Уж либо "без потерь" (тот же FLAC, например), либо "мы тут внесли искажений и потеряли часть звука..." (MQA).

    Вкратце можно посмотреть хотя бы это (на английском):
    https://www.youtube.com/watch?v=pRjsu9-Vznc
    https://www.youtube.com/watch?v=NHkqWZ9jzA0

    Это даже не говоря о том, что компания MQA (патентодержатель) обанкротилась:
    https://www.whathifi.com/features/mqa-has-gone-into-administration-what-does-this-mean-for-tidal-and-supported-products,
    а сама компания Tidal объявила, что отныне FLAC является их приоритетом для аудио высокой четкости (high-resolution audio):
    https://www.techhive.com/article/1974696/tidal-flac-preferred-hi-res-format-not-mqa.html

    Автор - вы действительно понимаете значение слова "Hi-Fi"?
    Судя по статье, возможно, вы - жертва маркетинга.


    1. windoozatnick Автор
      01.08.2023 16:38

      С flac действительно ошибся, признаю. Не помню, где и как это зацепил, но видимо ошибочно. Но, вдаваться в аудиофильские дебаты дальше не готов, увы)


    1. windoozatnick Автор
      01.08.2023 16:38

      Но, вообще, спасибо, интересно, не знал. Совершенно точно я не против получать снова FLAC, который качал еще на старый iPod Classic)

      Только вот качать уже не хочется, хочется в стриминги.


    1. ilyakruchinin
      01.08.2023 16:38

      Впрочем, посмотрев на фото расположения АНАЛОГОВОГО выхода "FiiO M3 MQA" в непосредственной близости от НЕЭКРАНИРОВАННОГО "Raspberry Pi" (наводки? "Нет, не слышали" (с)) сомнения в компетентности автора полностью испарились.

      Желаю приятного прослушивания "Hi-Fi" звука!


      1. windoozatnick Автор
        01.08.2023 16:38

        Эхх, потому и не хочу - тема бездонная, всегда есть что-то, что делает звук "не таким". Уверен, что продолжая этот тред, мы придём к обсуждению того, какой припой лучше звучит.


        1. iskatel
          01.08.2023 16:38

          В студиях аналоговые соединения балансными экранированными кабелями это стандарт, а припой всех волнует исключительно в плане качества и надёжности пайки.


          1. windoozatnick Автор
            01.08.2023 16:38

            Спасибо. У моего ЦАП, кстати, есть балансный выход, но я не нашёл нужный кабель в Белграде, а живу тут. Так что, подключаюсь обычным 3.5


            1. iskatel
              01.08.2023 16:38

              1) закажите в онлайн-магазине 2) закажите, чтобы Вам спаяли 3) спаяйте сами.


              1. windoozatnick Автор
                01.08.2023 16:38

                Из Москвы полетят друзья, с ними передам, да


      1. iskatel
        01.08.2023 16:38

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


        1. windoozatnick Автор
          01.08.2023 16:38

          У rpi металлический кейс, ну и у ЦАПа тоже. Но не думал вообще о экранировании, и не знаю, как это сделать. А как?


          1. iskatel
            01.08.2023 16:38
            +1

            это не самое главное в данном случае.

            Явно слышимая или измеряемая проблема есть ? Если нету, то пока что Вам не о чем волноваться.

            Первоклассный АЦП для измерений стоит порядка $150-200 (разумеется, это не поверенный прибор для лабораторий, те стоят на 2 порядка больше и Вам не нужны), но для первоначальных замеров можно одолжить у кого-то любой вариант попроще.


            1. windoozatnick Автор
              01.08.2023 16:38

              Так мой и стоит где-то 100 с копейками. Но ничего не слышу, да. Слышал, когда подключал с к USB порту с пробитой электрикой, там было явно.


    1. iskatel
      01.08.2023 16:38
      +1

      тем не менее, Tidal надолго и прочно зашкварилась с mqa.

      Иди знай, как они теперь свои flac сделали, может они все у них через mqa прогнаны.


  1. iskatel
    01.08.2023 16:38
    +1

    Roon тот ещё монстр с очень спорной эргономикой управления, но если нравится - почему бы и нет ?

    Tidal далеко не лучший сервис, тот же Qobuz значительно интереснее, и пакостей типа mqa там не было и нет. Клиент для Qobuz, кстати, тоже, плюс есть неофициальные софтины.

    Сама идея цифрового клиента + ЦАП + старые аналоговые усилитель и акустика, правильная, тк. практика показывает, что интегральные устройства всё-в-1, цифроклиент+цап+усилитель (иногда и + колонки), довольно быстро перестают поддерживаться производителями, и вскоре превращаются в тыкву.


    1. windoozatnick Автор
      01.08.2023 16:38

      Спасибо. А как qobuz по наполнению? Там не меньше музыки? Мне ок и переехать, так-то


      1. iskatel
        01.08.2023 16:38
        +1

        По классике и джазу - пожалуй, лучше других, по старому року - один из лучших, по свежей поп-музыке - сложно судить, вроде тоже есть и много.