• Объявления

    • admin

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

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

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

  • записей
    18
  • комментариев
    250
  • просмотра
    7 342

Сетевой аудиоплеер на основе 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

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Помедитировал над чётными гармониками в спектре уся -гипотеза состоит в том, что несимметрия возникает из-за коллекторной модуляции плеч: драйвер нижнего плеча работает при полном напряжении и без модуляции, а драйвер верхнего плеча - при половинном напряжении и глубокой коллекторной модуляции. Вставил каскоды. Модуляция ушла - чётные гармоники ушли от слова совсем. Остались только нечётные, переключательные по происхождению (уменьшаются при увеличении начального тока в двухтактном выходном АВ-каскаде). Общий уровень гармоник снизился на 15...20 дБ.   Оно, конечно, замечательно - но вот с фазой стало намного труднее: первый полюс поднялся высоко-высоко - ушёл 30 30 дБ. Тоже какбэ замечательно - но при этом фазу скорректировать правильно пока не удаётся: на 0 дБ фаза уходит за 200 градусов, да и на рабочем усилении 20 дБ за тоже достаточно далеко за буйками (за 180 градусов убегает гарантированно). В пику этому, одноэтажный вариант (без каскода) корректируется славно - на усилении +20 дБ фаза не более 120 градусов (!).   Так, что каскод пока не в кассу - всё равно его преимущества не получается реализовать: придётся закорректировать вусмерть и съехать на полюс 1 кГц. Что резко ухудшит верха...   ХИНТ: в целом - усь наиболее симметричный из всех, которые знаю...
    • Добрый день.
      Решил сгруппировать найденную по сети информацию на данную автоматику в одно место, чтобы облегчить себе жизнь.
      По возможно буду добавлять информацию.......   Каскад-колов-Thermona1.pdf Порядок проведения работ при вводе в эксплуатацию котлов с автоматикой HDIMS01-TH01.pdf Руководство по обслуживанию котлов THERM DUO 50.pdf
    • Добрый вечер.
      Во всех своих постах я демонстрировал Турбированый вариант обвязки платы.
      Теперь хочу Вам "показать", как с данной платы сделать Атмосферный вариант. Хотя все это есть и в инструкции на котел. 
      Достаточно поставить термостат "таблетку" на нужную температуру, Нормально замкнутую, и подключить ее к разъему Х16 выводы 65/63 и у Вас плата станет для атмосферного котла.
      На столе, при запуске платы, я просто установил перемычку на данные выводы разъема. Реле вентилятора при этом будет включаться, через него идет на проц одна обратная связь и потенциал сети идет на контакты реле газового клапана. Работа реле К4 обязательна. Так будет проще обвязывать плату и тестировать ее, так как исключается один пункт с выдержкой времени имитации датчика прессостата. 
    • Добрый день.
      Попалась ко мне плата практически новая, не разу не юзаная от Декабря 15 года. Я с начало не понял, почему данная плата не на котле, оказывается при сборке на заводе робот не "установил" перемычку на разъеме Х7 выводы 26/27, они отвечают за комнатный термостат. У робота видимо закончилась проволока, до отверстия он довел проволоку, но вот в отверстие не завел. Поставил перемычку, установил в котел и плата начала работать, подарок судьбы. Побольше таких ремонтов.  Так выпала возможность, то решил описать как работает модуляция на данной плате. Добавил фото и видео работы.
      Модуляция. Режим ее работы. Принцип работы описан платы на столе. На котле возможно плата будет вести себя чутка иначе.
      Перемычка JP1 установлена на природный газ. Настройки платы по умолчанию. Забигаю вперед, если установит перемычку на пропан, то поведение модулятора не изменилось.
      В качестве модуляционной катушки у меня была лампочка накаливания на 24В мощностью 4,8W. Разъем Х9 выводы 58 (+) и 57 (-)
      Обвязываем плату.
      Запускаем плату, подаем питание 220В. Происходит самотест платы, приблизительно 5 сек., появляется надпись oFF, если переключатель режимов был на 0. При этом ни на один имполнительный механиз не поступает напряжение. Плата находится в режиме ожидания.
      Группа безопсности термостатов замкнута.
      С помощью выбора режимов, переключаем на летный режим. На дисплее загорается текущая температура в градусах и значек солнышко. В это время не одно реле не щелкнуло, на модуляцию катушки поступает 0В.
      С помощью переключателя режимов выбираю отопление. Включается реле насоса. На дисплее появляется значек батареи. Имитирую реле протока. Включается реле вентилятора. Параллельно с этим на модуляционную катушку начинает поступать напряжение 2,5В. Параллельно лампочки "модуляции" подключен мультиметр, выбран режим 200В постояного напряжения.
      Имитирую прессостат. В это время включается трансформатор розжига и реле газового клапана. На модуляционную катушку, в течении 1 секунды, плавно наростает напряжение с 2,5В до 16В. 
      После имитации наличия пламени, на дисплее появляется значек пламя и напряжение на модуляционной катушке в течении 1 сек., плавно опускается до 1,9В. После этого автоматика включает режим модуляции, очень плавно, с шагом 0,3В, начинает расти напряжение на катушке с 1,9В до 23В.
      Если в работе потеряется пламы, то автоматика полностью выключит реле газового клапана и модулятора, на обоих будет 0В. Модуляция_катушки_платы_DIMS01-TH01.mp4
  • Записи блога