Оглавление:

Слушайте одну и ту же музыку в нескольких комнатах: 3 шага
Слушайте одну и ту же музыку в нескольких комнатах: 3 шага

Видео: Слушайте одну и ту же музыку в нескольких комнатах: 3 шага

Видео: Слушайте одну и ту же музыку в нескольких комнатах: 3 шага
Видео: Этот звук слышат только подростки #Shorts 2024, Ноябрь
Anonim
Слушайте одну и ту же музыку в нескольких комнатах
Слушайте одну и ту же музыку в нескольких комнатах

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

Система основана на технологии GStreamer, которая является основой такого замечательного программного обеспечения, как VLC, и динамика с возможностью Wi-Fi с использованием Raspberry Pi.

Шаг 1. Создание динамика для ванной

Создание динамика для ванной
Создание динамика для ванной
Создание динамика для ванной
Создание динамика для ванной
Создание динамика для ванной
Создание динамика для ванной

Список запчастей:

  • динамик для ванной
  • усилитель 2Вт (работает от 12в)
  • Raspberry Pi Zero (работает от 5 В)
  • ЦАП Pimoroni Phat
  • SD-карта
  • кнопка ВКЛ / ВЫКЛ
  • адаптер питания 12 В + совместимый штекер
  • понижающий DC / DC (12 В -> 5 В)
  • электрическая коробка
  • некоторые кабели

Конструкция довольно проста.

Что касается электронной части, следуйте этой схеме ASCII.

  • Штекер постоянного тока Кнопка включения / выключения усилителя
  • Кнопка включения / выключения DC / DC понижающий Raspberry Pi
  • Динамик усилителя ЦАП Raspberry Pi Phat

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

Используя эту технику, вы можете создавать любые колонки, какие захотите.

Шаг 2: программное обеспечение

Вся программная часть основана на мультимедийном фреймворке с открытым исходным кодом GStreamer. Я использовал только Linux, но он существует в другой ОС, поэтому я думаю, что все можно адаптировать для других ОС.

Для начала вам необходимо установить Raspbian Lite на Pi, PHAT DAC и GStreamer 1.0 с «хорошими» плагинами. На компьютере, который используется в качестве музыкального сервера, вам понадобится тот же GStreamer. Я не буду подробно описывать эти части, потому что другие сделали это лучше меня. Последнее, что нужно, - это подключить Pi и музыкальный сервер к одной сети с помощью кабеля или Wi-Fi.

Чтобы проверить, правильно ли установлен GStreamer, вы можете использовать эти командные строки.

По динамику:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (строка) 1, каналы = (int) 1, полезная нагрузка = (int) 96 '! rtpL16depay! аудиоконвертировать! автозвук

На ПК:

$ gst-launch-1.0 audiotestsrc! аудиоконвертировать! audio / x-raw, format = "(строка) S16BE", layout = "(строка) с чередованием", каналы = 1, rate = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP порт = 5000

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

Некоторое объяснение: ПК воспроизводит синусоидальный звук, используя "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channels = 1, rate = 44100" convert звук в хорошем формате, понятном «rtpL16pay», который создает аудиопакеты и, наконец, «udpsink» отправляет пакеты, используя протокол UDP. На динамике он такой же, но в инвертированном виде: udpsrc восстанавливает аудиопоток, депакет «rtpL16depay», а «audioconvert! Autoaudiosink» преобразует звук в формат, соответствующий формату автоматической звуковой карты, и, конечно же, воспроизводит его.

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

- Создаем фейковый вывод

$ pactl load-module модуль-нуль-приемник имя_приемника = multiHP

- Подключаем вход к фейковому выходу (отключение выбранного приложения (входа))

$ pacmd list -inks (список выходов)

$ pacmd список-приемник-входы (список входов)

$ pacmd move -ink-input% input% output (замените% input и% output одним из соответствующих списков)

- Ставим звуковую карту на максимум

$ pactl набор-мойка-объем 0 100%

- Тестируем на ПК способ восстановления фейкового вывода (восстановление звука)

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! аудиоконвертировать! автозвук

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

Большой! Теперь пора перейти к финальным командным строкам. Вот командные строки в случае 2 динамиков со звуком, также воспроизводимым ПК.

По каждому спикеру:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (строка) 2, полезная нагрузка = (int) 96 '! rtpL16depay! аудиоконвертировать! автозвук

На ПК:

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! аудиоконвертировать! audio / x-raw, format = "(строка) S16BE", layout = "(строка) с чередованием", каналы = 2, rate = 44100! rtpL16pay! имя тройника = t t. ! очередь ! udpsink host =% addrpi1 порт = 5000 т. ! очередь ! udpsink host =% addrpi2 порт = 5000 т. ! очередь ! аудиоконвертировать! автозвук

Шаг 3: Заключение

Это руководство - лишь первый шаг к завершенному проекту. Это было только для объяснения принципа. Теперь вы можете автоматизировать, создав скрипт при загрузке Raspberry Pi и на ПК. Вы можете адаптировать команду GStreamer в зависимости от ваших потребностей. Я лично модифицировал свой предыдущий инструктаж (СОВЕРШЕННО НОВОЕ СТАРЫЕ РАДИО), чтобы использовать его в качестве динамика. Есть бесконечное множество вещей, которые нужно сделать, чтобы улучшить эту многокомнатную звуковую систему. В частности, все динамики не синхронизированы, поэтому при переходе из комнаты в комнату возможны некоторые отклонения.

Я надеюсь, что вы постараетесь улучшить это руководство.

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

Хороший повозник!

Рекомендуемые: