• Объявления

    • admin

      Размещайте материалы своей компании БЕСПЛАТНО!   18.04.2018

      Редакционная политика портала позволяет размещать на бесплатной основе различные типы материалов: интересную информацию, наработки, технические решения, аналитические статьи и т.д. Пример такого блога. Взамен мы рекламируем ваш блог в наших группах в соц. сетях, ну и плюс естественная самореклама от пользователей форума и блогов, которые будут читать ваш блог. К примеру охват одного поста только в нашей группе VK составляет более 10 тыс. человек. Т.е. мы предлагаем бартер - вы ведете у нас блог и публикуете какую-то полезную и интересную информацию связанную с вашим производством, а мы рекламируем ваш блог в наших соц. сетях. Блоги можно полностью кастомизировать: поставить изображение шапки, сделать меню или оглавление, также в своем блоге вы будете модератором - сможете удалять комментарии и т.д. Ведение своего блога требует времени и навыков, но рекламный эффект колоссальный, т.к. это живое общение и отклик. Посты не должны быть рекламой, а также должны соответствовать правилам форума. Для тех компаний, которые будут публиковать интересный контент, права в дальнейшем будут расширяться - сможете публиковать больше ссылок, пресс-релизы, новости компании, анонсы и т.д. Ну а если вы хотите размещать платную рекламу: условия и прайс размещения на сайте и форуме, коммерческая тема на форуме, реклама в группе VK.

Заметки радиолюбителя

  • запись
    21
  • комментариев
    336
  • просмотров
    32 389

Сетевой аудиоплеер на основе Raspberry Pi

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

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

Поиск решения

Как я уже говорил, у меня есть одноплатный компьютер Raspberry Pi 2B. Покупал я его, чтобы поиграться и понять, что это вообще такое. Первым делом сделал из него принт-сервер, благо инструкций в интернете достаточно. А так как принтер и усилитель у меня стоят рядом, то было бы логично использовать Raspberry для воспроизведения звука. Поначалу я искал способ заставить его обнаруживаться моим ноутбуком как внешняя сетевая аудиокарта, чтобы можно было бы все звуки воспроизводить через нее. Но такого я не нашел, зато нашел такую вещь как MPD (music player daemon). Это музыкальный проигрыватель, имеющий клиент-серверную архитектуру.  На стороне Raspberry устанавливается сервер, а на стороне ноутбука клиент - проигрыватель, который звук отправляет на сервер. Вариант рабочий, но ни один плеер мне не нравился.

Смартфон, которым я пользуюсь - iPhone (а также у брата, который тоже пользуется моей стерео-системой). А у Apple есть готовая технология AirPlay, обеспечивающая беспроводную потоковую передача медиаданных, будь то аудио, видео или изображения. Почему бы не попробовать задействовать ее? Для этого нужно решить две проблемы - во-первых, заставить Raspberry работать как AirPlay приемник, во-вторых, найти на Windows плеер, поддерживающий AirPlay. Apple устройства поддерживают эту технологию "из коробки".

Решением первой проблемы является установка приложения Shairport AirPlay. Ниже я привел инструкцию по его установке и по настройке Raspberry Pi в качестве AirPlay приемника.

Вторая проблема решилась очень просто - я нашел и купил для своего плеера foobar2000 плагин Remote Speakers Output (не реклама). Он платный, но стоит не очень дорого. Теперь можно выбрать в качестве приемника (который я назвал Amplifier) наш Raspberry, и на него будет транслироваться копия аудиосигнала. Но основное устройство вывода звука можно совсем отключить, если вы планируете использовать только получившийся сетевой плеер.

image.png.e48237497f98073652cf00c879f315e3.png

Но нужно отметить, что у AirPlay есть ограничение - поддерживается только CD-качество 44,1 кГц 16 бит, поэтому приходиться с этим мириться. С другой стороны, почти все мои аудиозаписи имеют именно такой формат.

Настройка Raspberry Pi как AirPlay-приемника

Монитора и клавиатуры для Raspberry у меня нет, поэтому все действия выполняются через консоль на удаленном ПК. ОС - Raspbian.

1. Откроем аудио микшер, чтобы убедиться, что звук не приглушен и его уровень составляет 0 дБ. Для этого вводится команда:

alsamixer

2. Далее проверим звук, запустив синус для воспроизведения:

speaker-test -t sine

3. Откроем файл конфигурации ALSA командой

sudo nano /usr/share/alsa/alsa.conf

и заменим строку 

pcm.front cards.pcm.front 

на

pcm.front cards.pcm.default

Сохраняем изменения (Ctrl+O) и выходим из редактора (Ctrl+X).

4. Далее установим приложение Shairport AirPlay, которое будет эмулировать конечное устройство AirPlay. Но перед этим необходимо установить несколько дополнительных модулей командами:

sudo apt-get install libao-dev libssl-dev git avahi-utils libwww-perl
sudo apt-get install libcrypt-openssl-rsa-perl libio-socket-inet6-perl libmodule-build-perl

5. После этого создадим каталоги, куда будем устанавливать Shairport AirPlay.

mkdir projects
cd projects
mkdir airplay-audio-project
cd airplay-audio-project

6. При необходимости установим модули для поддержки устройств на iOS6 командами:

git clone https://github.com/njh/perl-net-sdp.git
cd perl-net-sdp
perl Build.PL
./Build
./Build test
sudo ./Build install
cd ..

7. Скопируем Shairport AirPlay из репозитория и запустим следующими командами:

git clone https://github.com/abrasive/shairport.git
cd shairport
make

8. Теперь можно проверить работу приложения. Для этого введите:

./shairport -a RaspberryPi

Если все сделано верно, то на устройстве Apple появится приемник AirPlay с именем RaspberryPi.

9. Теперь установим Shairport AirPlay командой:

sudo make install

Следующие три команды дают возможность делать это автоматически при запуске Raspberry:

sudo cp scripts/debian/init.d/shairport /etc/init.d/shairport
sudo chmod +x /etc/init.d/shairport
sudo update-rc.d shairport defaults

10. Теперь сделаем кое-какие настройки. Для этого откроем файл настроек Shairport:

sudo nano /etc/init.d/shairport

Для автостарта приложения нужно строчку 

DAEMON=/usr/bin/shairport 

заменить на 

DAEMON=/usr/local/bin/shairport

А также строки

USER=shairport
GROUP=nogroup

на 

USER=pi
GROUP=pi

Для смены имени устройства (например на Amplifier) замените строку 

AP_NAME=$(hostname)

на

AP_NAME=Amplifier

11. Для завершения настройки перезагрузите устройство командой

sudo reboot now

photo_2017-08-29_22-41-51.thumb.jpg.985f0b72fd614c9b30f9efbd6a278cbf.jpg

Для вывода звука с Raspberry Pi я использую не ее встроенную звуковую карту, а внешний ЦАП на основе PCM2707. А встроенный аналоговый звук я совсем отключил.

1. Откройте в редакторе файл /boot/config.txt

sudo nano /boot/config.txt

и закомментируйте (символом #) строку dtparam=audio=on, отключив тем самым аналоговый аудиовыход.

2. Далее установите USB звуковую карту устройством воспроизведения по умолчанию. Для этого откройте в редакторе файл /lib/modprobe.d/aliases.conf 

sudo nano /lib/modprobe.d/aliases.conf

и закомментируйте строку options snd-usb-audio index=-2

3. Перезагрузите Raspberry Pi.

Заключение

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

  • Лайк 1
  • Одобряю 2


11 комментариев


Рекомендуемые комментарии

Очень полезная заметка!

Ты вывел звук с компа по псевдо AirPlay на малинку, а к малинке подключен транспорт на 2707 через USB, а можно ли использовать тот же ХМОС или Аманеро таким же образом? И конечно минус из этого всего что максимум можно послушать mp3 через это все :( а с IPhone звук идет? В него то можно и alac (если правильно помню) засунуть, или ограничение останется на том же уровне? Надо будет попробовать такую же схему вывода звука с Mac ноута на 2706.

Поделиться комментарием


Ссылка на комментарий
1 hour ago, getshket said:

А spdif можно вывести оттуда?

Можно. У меня к PCM2707 подключён мой ЦАП Mercury по I2S. 

1 hour ago, Artik said:

можно ли использовать тот же ХМОС или Аманеро таким же образом? И конечно минус из этого всего что максимум можно послушать mp3 через это все :( а с IPhone звук идет?

Если удастся установить драйвера, то может быть. Не уверен. 

Почему MP3? FLAC слушаю без проблем. FLAC тоже может быть 44.1 кГц, 16 бит. Перекодировка происходит не плагином, а на конечном устройстве.

С iPhone тоже можно воспроизводить. Правда на нем я музыку не храню, слушаю только из Apple Music. 

Поделиться комментарием


Ссылка на комментарий

Нашел такую информацию:

Quote

If iTunes is playing back a digital multichannel file format like AC3 (Dolby Digital) or DTS, those bitstreams (like the lossy formats) are wrapped in Apple's Lossless compression, encrypted, and then, streamed to the AX. In these cases, the AX would first decode the stream, and then, output the raw AC3 or DTS stream via its optical digital audio port.

Получается, что если воспроизводить lossless (только AC3 и DTS?), то он перекодироваться в 44,1 кГц не должен. Надо проверять.

Поделиться комментарием


Ссылка на комментарий

Миш, я имел ввиду непосредственно малину, без костылей в виде внешнего usb>spdif

Поделиться комментарием


Ссылка на комментарий

Не видел информации по S/PDIF. I2S там есть встроенный. Но без мастерклока.

Поделиться комментарием


Ссылка на комментарий

Мне интересно, можно ли с Mac повторить тоже самое но не с 2707 а с 2706.

 Я так понял для 2707 и 2706 драйверы не нужны, ты просто выбрал постоянный источник воспроизведения - 2707, единственное нужно правильно настроить малинку, Mac сам отправит звук на нее, а малинка уже выведет ее на 2706/07.

А где саму малинку брал?

Изменено пользователем Artik

Поделиться комментарием


Ссылка на комментарий

Да разницы вообще нет 2707 или 2706. На Mac'е вообще, думаю, ничего настраивать не надо.

Малинку на Ибее брал полтора года назад. А описанный плеер работает уже почти год.

  • Лайк 1

Поделиться комментарием


Ссылка на комментарий

Подключил к Raspberry Pi в качестве транспорта плату Combo384. Все запело без установки дополнительных драйверов. Но есть щелчки :unsure: Такие же щелчки в Windows без ASIO.

Поделиться комментарием


Ссылка на комментарий

Нашел отличную программу для моих целей - Airfoil от Rogue Amoeba. Позволяет из-под Windows отправить как весь системный звук, так и звук отдельного приложения на устройство с AirPlay. Правда стоит немного денег.

2017-12-26_17-33-14.png.13c43d317190444b08e6192a225d7cdb.png

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Комментарии блога

    • Добрый день.
      Схема на Блок питания автоматики. В данном БП используется две версии трансформаторов, но плата одна. В каждом варианте трансформаторы подключены по разному.  Фото первого на трансформаторах Уа4.709.125
      Фото второго варианта, на трансформаторах ТСМ3-14УЗ, схема взята из документации на автоматику.
        Схема в *jpg 1000 dpi, DipTrace, PDF, PCB in Lay6.
      Как можно заметить, при разных трансформаторах использовались и разные электролиты. В Версии Уа4. использовались плохого качества конденсаторы, со временем они потрескались, ох и много беды они чуть с автоматикой не натворили, (чуть двигатели не спалили и сгорела цепи питания на одной из модульных плат и унесла за собой пару микросхем ), а вот при использовании трансформатора ТСМ3, конденсаторы поставили покачественней, пластиковая заглушка и еще залиты лаком, емкость оказалась у них в порядке, но все равно были заменены. Так-же в ТСМ3 используется дополнительная экранирующая обмотка, чего нет в Уа4. Схемы на обе версии приложил, схема на Уа4, рисовал сам, а на ТСМ3 взял из документации на автоматику. И Да, я ее нашел и  тоже буду восстанавливать и выложу.
      Некоторые могут спросить, а зачем тогда рисовать схемы, можно ведь выложить сканы оригинала, кстати документация: сканы, и не мучаться. Отчасти в этом есть смысл, но сканы хоть и читаемы, но не везде, так-же на схемах присутствую только нумерация компонентов, но вот номинала нет не на одной, видимо это печаталось на отдельном листе, который к сожалению ко мне не попал. Так-же на печатных платах нет шелкографии и разбираться со схемой придется не мало. 
        Удачного ремонта.   КСУМ-2П БП-1 068.523 (Блок Питания) схема Diptrace.rar КСУМ-2П БП-1 068.523 (Блок Питания) схема.pdf КСУМ-2П БП-1 068.523 (Блок Питания).lay6
    • Пересобрал ЦАП на новой плате. Основные отличия в том, что была добавлена поддержка сигнала переключения генераторов (сигнал F0 у Amanero/Combo384). Его нужно завести на 2 пин входного разъема. И футпринт под трансформаторы сделан универсальным для серий ТП и TEZ. При установке дополнительной платки (которая сейчас в процессе разработки) с генераторами будет поддержка обратного тактирования с автоматическим переключением генераторов. Снял спектры, там по прежнему все отлично. А сетевых наводок даже меньше (левый/правый):   Платы, если что, доступны к заказу.
    • Я распиливал одно своё старое жало, скорее похоже на сталь чем то покрытую сверху. И у меня форма не такая. Сейчас попробовал - магнитом притягивается.
    • Пришлось как-то перезатачивать поеденные ортофосфорной кислотой жала от Proskit  Внутри они оказались латунными. Также латунные конические жала от дешевых китайских паяльников.
    • Может быть на обычном паяльнике ею паять хорошо, но на паяльной станции пайка получается как будто глиной прилеплено. Это видимо из-за плохой теплопроводности.
  • Записи блога