MPD Linux на одноплатнике в качестве медиа источника и плеера в авто

Решили изучить тему глубже, чемс это делалось ранее и нами и не нами.

Действительно, одноплатные компьютеры (Raspbery, Orange, Nano, Banana и прочие из семействи Pi) достойны внимания, ибо завоёвывают embedded рынок полным ходом.

Преимущества MPD на одноплатном компьютере

Использовать одноплатный компьютер в роли проигрывателя музыкальных файлов это дейтсвительно очень перспективное решение:

а) Дешево: стоимость печенек на рынке от 1 до 5 т.р. в зависимости от жирности и мощей железа. Простую и страую плату Orange Pi zero можно купить на авито за тысячу рублей. Это конечно не современный Orange pi zero 2 на процессоре Allwinner H5, но для экспериметнов самое то!

б) Возможности полноценного компьютера (ну почти) сетевой интерфейс, вайфай, USB. Подключай что хочешь и как хочешь.

в) Возможносить воспроизведения любых форматов аудио: flac, ape, DSD. Он переварит любой без проблем. Вообще!

г) Управление практически любым устройством в сети.

д) Надежность и низкое энергопотребление устройства

е) Надежность софта, так как в основе Linux.

ж) Готовые модули ЦАП и преобразователей цифрового выхода (Pifi DiGi+).

з) Высокая частота дискретизации выходного сигнала по шине i2s. По идее этот пункт должен быть первым. Ибо именно эта возможность и является тем героином, которого ради трясуться все аудиофилы. Простых плееров, способных выдать 44,1 / 48 или даже 96 килогерц дескритизации звукового сигнала вагон и еще вагон тележек.

Но это не то, нам же надо хотя бы 192, а лучше 384. Особым извращенцам, промывающим направленные провода от старого тока вовсе 512 и 768 Khz. Зачем? 

и) Готовый софт Plug & Play, тот же самый готовый образ VOLUMIO можно скачать для (практически) любого одноплатного компьютера и сразу получить готвый высококачественный плеер!

А так же множество аналогичных программных решений, клонов волумио, RUNEAUDIO, DiePi, Mopidy.

Сами пока не знаем, но говорят это круто. Сделаем послушаем!

 

Список будет пополняться...

 

Минусы MPD на одноплатнике для автомобиля

Тепепь пройдемся по болячкам этого решения. Они к сожалению то же есть.

а) Linux — для новичка это будет сложным порогом вхождения.

б) Нужно конструировать качественный модуль преобразователя сигнала и выхода из i2s шины (в оптику или SPDIF, или аналоговый выход ЦАПА прямо на усилитель)

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

г) Возможность работы источника только в режиме i2s Master. По аудиофильским понятием это стрёмно. Об этому лушче им не говорить, если у тебя система на Мастере. Ибо качественно играет только Slave ЦАПЫ, со своим тактированием. А Слейвом одноплатники быть не умеют, кро BBB — Beagle Bone Black. Но он старый и уже давно на пенсии, говорят даже его перестали поддержвать. По этому надежда на молодёжь (Nano pi и их одноклассники).

д) Питание. Ой. Тут всё, если дома еще сочинили аудиофильское напрочь изолированное питание, то для авто тут просто пустота.

е) Управление. Да, с телефона по WIFI (если он есть на плате, хотя если нет, вставляем USB свисток) можно полноценно рулить плеером в машине, но за рулем это и не удобно и не безопасно. По жтому и минус, нет пульта, который бы спас ситуацию и закрыл этот пункт. Пока минус.

ж) ...

 

В целом, не так все и плохо, так как платформы одноплатных компьютеров являются открытыми проектами, операционная система Linux тоже полностью открыта и имеет возможности, органиченные только знанем её пользователя. Можно сделать систему такую, как она вам индивидуально нужна.

Управление MPD / MPC в автомобиле

Управление MPD можно сделать следующими способами. 

По проводной сети через ethernet, тут потребуется навыки работы с железками Arduino. Схема проверенная и рабочая (будт дополнение).

По беспрводной сети. С помощью любого гаджета, смартфон, планшет.

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

Посредством UART серийного порта tty. Тут опять таки нужно будет установить Python модуль со всеми необходимыми зависимостиями, что бы он нормально запустился. Затем написать модуль обработки получаемых команд по серийному порта и их интепретацию в конкретные действия (реацию на действия).

С помощью Bluetooth соеднения, версия пока еще не проверенная, но есть потенция использовать имеющися в бльютусе слой протокола A2DP и AVRCP.

Что такое A2DP и AVRCP 

A2DP (Advanced Audio Distribution Profile) – обеспечивает передачу стерео аудиосигналов. (качество гораздо лучше, чем при кодировке моно, используемой для HSP и HFP).

AVRCP (Audio / Video Remote Control Profile) – используется для передачи команд (например, быстрый переход вперед, пауза, воспроизведение) с блока управления (например, стереогарнитуры) необходимому устройству (например, от ПК к проигрывателю Media).

Управление MPD плеером в автомомбиле через Bluetooth штатной магнитолой

Теория: вставляем BT USB свисток в одноплатник, ставим модуль блютуса под линукс, и должно работать управление плеером прямо с штатной магнитолы имеющий конопки на руле, громксть, треки и так далее.

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

 

Черновик технического задания на разработку медиаплеера на базе Linux+MPD+MPC

Новая версия документа (от 14.03.2019 г.)

Техническое задание на сборку медиа плеера на основе ядра Linux


Стоит задача запустить медиаплеер для воспроизведения музыкальных файлов на базе одноплатного компьютера NanoPi Neo Core2 Plus (семейство Raspberry Pi/ Orange Pi) с цифровым выходом по шине i2s в двух режимах Master / Slave.


Функционал плеера:


1.  Воспроизведение файлов в формате MP3, APE, FLAC, WAV, DSF, DSD.

управление плейлистами, чтение карт CUE.


2. Спящий режим по управляющему сигналу посредством GPIO контакта (замыканием на массу или кратковременной подачей + 5 / 3,3 v на контакт GPIO). Для использования в автомобиле с понижением потребления в suspend mode.


3. Перед переходом операционной системы в спящий режим, плеер должен запомнить текущий воспроизводимый трек, его позицию, поставить воспроизведение на паузу.

(на текущий момент готовое решение — MPD)


4. При повторной подаче управляющего сигнала на GPIO операционная система выходит из режима сна/ожидания. Запускается программа / служба плеера, возобновляется воспроизведение ранее сохраненного трека и позиции с момента перевода в спящий режим.


5. Возможность создавать и управлять текущим плейлистом. Браузер файлов, в котором выбирается папка с файлами для воспроизведения, добавление файлов из папки в плейлист, удаление из плейлиста.

(на текущий момент готовое решение — MPD)


6. Поддержка USB накопителей Flash, HDD с которых будут воспроизводиться музыкальные файлы.

(на текущий момент готовое решение — MPD)


7. Наличие модуля/библиотеки для ресемплинга в формат 44/48/88/96/192/384 kHz выходного сигнала и 16/24/32 Bit (Alsa, SOXr)


8. Наличие управляющего WEB интерфейса (по аналогии Volumio).

(на текущий момент готовое решение — MPD)


9. Внешний экран для отображения / управления воспроизведением плеера. Собственный интерфейс управления через LCD Touch экран.


Время ухода в режим сна допустима от 5 до 10 секунд. Время выхода из сна так же от 5 до 10 секунд.

Ищем разработчика/программиста на linux (arhlinux)

Нужна доработка медиа плеера volumio на базе os linux (raspberry pi)
Техническое задание на доработку медиа плеера https://volumio.org/ на базе операционной системы linux


Для операционной системы медиаплеера VOLUMIO на базе Linux требуются доработки.

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

1.Воспроизведение с момента аварийного отключения питания или при программном выключении. То есть программно нужно запоминать текущее положение трека и позиции, хранить его в файле. Откуда считывать при загрузке ОС. (Есть такой плагин, но работает как-то глючно).


2.Реализовать программное отключение посредством замыкания программируемых контактов GPIO. Есть такой плагин для VOLUMIO однако нет такой функции именно для выключения или перевода системы в спящий режим https://github.com/tomatpasser/gpio-buttons 


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


http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Core2


https://pcminipro.ru/nanopi/nanopi-neo-core2-nanopi-neo-2-bez-razemov-odno-yadro-no-s-emmc-pamyatyu-i-zashhitoj-ot-esd/


4.Копирование загрузочного образа системы с внешней SD карты на внутреннюю микросхему памяти eMMC.


Дополнительные сведения к задачам:

Сборка образа операционной системы взята из этой темы: http://forum.vegalab.ru/showthread.php?t=79888&page=3

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

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

Для решения этих задач ищу опытного спецалиста. 

Готов предоставить макетную сборку для теста доработок операционной системы. 

 



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

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

Готов ответить на вопросы для уточнения и понимания данного ТЗ.



 

 

Предложения присылайте на maksim@nabiullin.com или ВКОНТАКТЕ

Бюджетный стример/плеер на основе мини-платы ARM Raspberry Pi (собираем сами!)

Зачем это все?
Это попытка собрать за небольшие деньги (70-400$) собрать готовый сетевой источник или сетевой плеер (сразу аналоговый сигнал на усилитель). Такой сетевой источник поддерживает игру файлов с сетевых папок, NAS, поддерживает Airplay и играет музыку из стриминговых сервисов Tidal, Qobuz, Spotify.
Очень попытка удачная!

Для ясности, ARM — это тип процессора, вот у вас в ноутбуке стоит процессор Intel, а на мини-платах стоит ARM-процессор. Такой процессор потребляет очень мало энергии, выделяет мало тепла, ему не нужен вентилятор. Вся мини-плата обычно размером с кредитную карту. Мощности такой мини-платы хватает на воспроизведение аудио высокого разрешения, в том числе формата DSD.

Когда подобный ARM-компьютер за 50$ играет сравнимо или даже лучше чем сетевой стример за условных 2000$ от условной компании Nail или Limm, то у людей случается настоящий когнитивный диссонанс («So, is it bye-bye Naim NDX»; «couldn’t tel a difference between Pi and my Naim NDX», «My ND5 in to Naim DAC/XPS vs Raspberry Pi with HiFiBerry Digi+ in to the same». )

Я ничего не понял! Объясните!

Для старта нужно всего 4 базовых вещи. Дальше возможны улучшения, добавления, оптимизации, но эти 4 вещи нужны для запуска. По времени это занимает от 15 до 30 минут.

  1. Плата Raspberry Pi 3.
  2. Блок питания на 2 Ампера.
  3. Одна из плат расширения (еще её называют шляпой).
  4. Карта Micro SD на 8GB.

1. Плата Raspberry Pi 3 (Малинка :strawberry:)

Чтобы стартовать с ARM-источником нужно купить мини-компьютер. Он называется Raspberry Pi 3.
Стоит такая плата 2200-3000 рублей. Их продают на Avito, на Aliexpress, на eBay. Выбирайте удобный способ покупки.

Выглядит плата так:


2. Блок питания на 2 Ампера

Сгодится блок питания от iPad или Android телефона. Важно, чтобы на нем было больше 2A.
Нужен кабель USB — Micro USB, чтобы запитать Raspberry.


3. Одна из плат расширения (еще её называют шляпой)

Сама по себе плата Raspberry Pi 3 содержит аналоговый выход 3.5", но он только для проверки. Есть еще 4 выхода USB, но они тоже не подходят для вывода цифры на серьезном уровне.

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



Индустрия уже уже выпустила десятки плат расширения (шляп). Эти платы либо выводят аналоговый выход сразу на ваш усилитель, либо выводят цифровой поток на ваш ЦАП. Впрочем есть комбинированные варианты. Цена этих шляп варьируется от 15$ до 250$. Подробнее о шляпах чуть ниже ↓↓↓↓↓

4. Карта памяти Micro SD на 8GB.

Карта памяти нужна, чтобы установить софт (операционную систему с плеером). Сейчас есть 4 основных ОС — Volumio, Moode,DietPi, PiCorePlayer (тут мы их обсуждаем).
Для новичков советую скачать и установить Volumio 11.

Наверное собрать все вместе и запустить это очень сложно? Linux учить надо, да?

Во-первых, когда из разных комплектующих своими руками собирается что-то работающее — это невероятно увлекательно. Во-вторых, это экономично, да, уже сейчас за 399$, 999$ или 9000$ можно купить неплохие стримеры, но это неспортивно.

В третьих, вы создаете гибкий конструктор, в нем можно улучшить тактовый генератор, или поставить другой плеер, или по-другому организовать хранение файлов или подключить новый стимминговый сервис (например, Spotify) — в фирменных источниках все зависит от производителя, со своими источником можно делать всё что угодно. Ну и наконец, это несложно — сложность варьируется от простого прищелкивания платы расширения до небольшой пайки.
Ну и сам Linux не так страшен. Установить на него специальную аудифильскую ОС Linux тоже просто. Дальнейшая настройки и использование не потребуют от вас знания секретных команд. Потребуется время, чуть внимания, но вы это сможете!

Наверняка им неудобно пользоваться? Я всю жизнь выводил звук с компа по USB и мне норм.

Предполагается, что такой ARM-компьютер будет работать без монитора и клавиатуры, подключенным к локальной сети по Wi-Fi или сетевым кабелем, а для удобного управление проигрыванием обязательно нужен iPhone/iPad или телефон/планшет с Android или Windows Phone. Это действительно удобнее, чем тулить у компьютера.

Посмотрите, как это можно быть красиво и удобно:


Платы для вывода цифры/аналога (Шляпы 2018)

Качество результат очень сильно зависит от используемой платы вывода. На рынке есть десятки производителей, но уже сформировались лидеры

Pi2Design 502DAC 100$
Allo Digione
HiFiBerry Pro Digi
Пробуем и другие!


Кино от @yurivv69


Тренды

Я вам легко назову четыре основных тренда в компьютерном аудио прошлого и этого года:

  • использование ARM-плат для создания сетевых источников и сетевых плееров
  • запуск большого количества вспомогательных плат для высококачественного вывода цифры или аналогового сигнала с ARM-платы
  • появления и развитие специальных дистрибутивов ОС Linux (+плееров), заточенных под «аудиофильское» проигрывание файлов
  • Интеграция этих специальных дистрибутивов и сервисов потокового аудио (Spotify, Tidal, Deezer, Qobuz)

Если вы не чувствуете в себе сил, то можно приобрести уже готовое изделие на ARM-платах — Auralic Aries, Audio 359 Player, Sonore μRendu

Приступим!