Съдържание:

Пускайте една и съща музика в няколко стаи: 3 стъпки
Пускайте една и съща музика в няколко стаи: 3 стъпки

Видео: Пускайте една и съща музика в няколко стаи: 3 стъпки

Видео: Пускайте една и съща музика в няколко стаи: 3 стъпки
Видео: Три нимфы на фоне моря_Рассказ_Слушать 2024, Юли
Anonim
Пускайте една и съща музика в няколко стаи
Пускайте една и съща музика в няколко стаи

Здравейте всички, Не знам за вас, но обичам да имам една и съща музика в целия си апартамент, без да превръщам звука твърде силно. Затова след малко проучване на този проблем реших да конструирам няколко високоговорителя, всички свързани чрез wifi към един и същ музикален сървър, за да възпроизвеждам една и съща музика едновременно в няколко стаи и по -специално в банята.

Системата се основава на технологията GStreamer, която е в основата на страхотен софтуер като VLC и на високоговорител с възможност за wifi, използващ Raspberry Pi.

Стъпка 1: Изграждане на високоговорител за банята

Изграждане на високоговорител за банята
Изграждане на високоговорител за банята
Изграждане на високоговорител за банята
Изграждане на високоговорител за банята
Изграждане на високоговорител за банята
Изграждане на високоговорител за банята

Списък на частите:

  • високоговорител за баня
  • 2W усилвател (работи на 12v)
  • Raspberry Pi Zero (работи на 5v)
  • DAC Pimoroni Phat
  • SD карта
  • бутон ON/OFF
  • 12v захранващ адаптер + съвместим щепсел
  • DC/DC стъпка надолу (12v-> 5v)
  • електрическа кутия
  • някои кабели

Конструкцията е доста проста.

От електронна страна следвайте тази ASCII диаграма.

  • Усилвател с бутон за включване/изключване на DC щепсел
  • Бутон ON/OFF DC/DC стъпка надолу Raspberry Pi
  • Raspberry Pi Phat DAC усилвател високоговорител

От механична страна изрежете всички необходими отвори в електрическата кутия, поставете всичко вътре и това е всичко.

Използвайки тази техника, можете да създавате всички видове високоговорители, които искате.

Стъпка 2: Софтуерна страна

Цялата софтуерна страна се основава на мултимедийната рамка с отворен код, GStreamer. Използвах само Linux, но той съществува на различна операционна система, така че си представям, че всичко може да се адаптира за друга операционна система.

За начало трябва да инсталирате Raspbian Lite на Pi, PHAT DAC и GStreamer 1.0 с „добрите“плъгини. На компютъра, използван като музикален сървър, имате нужда от същия GStreamer. Няма да детайлизирам тези части, защото други са направили това по -добре от мен. Последното необходимо нещо е, че Pi и музикалният сървър трябва да бъдат свързани към една и съща мрежа чрез кабел или wifi.

За да проверите дали GStreamer е правилно инсталиран, можете да използвате тези командни редове.

На високоговорителя:

$ gst-launch-1.0 udpsrc порт = 5000 caps = 'application/x-rtp, media = (низ) аудио, тактова честота = (int) 44100, encoding-name = (низ) L16, encoding-params = (низ) 1, канали = (int) 1, полезен товар = (int) 96 '! rtpL16depay! аудиоконвертиране! автомивка

На компютъра:

$ gst-launch-1.0 audiotestsrc! аудиоконвертиране! аудио/x-raw, формат = "(низ) S16BE", оформление = "(низ) преплетени", канали = 1, скорост = 44100! rtpL16pay! udpsink хост = RASPBERRYPI_IP порт = 5000

След като поставите добрия IP адрес вместо „RASPBERRYPI_IP“, трябва да чуете синусоидален звук върху високоговорителя. Това не е нещо, което ще обичате да чувате дълго време, така че не поставяйте силата на звука твърде силно.

Някои обяснения: компютърът произвежда синусоидален звук, използвайки "audiotestsrc", "аудиоконвертиране! Аудио/x-raw, формат =" (низ) S16BE ", оформление =" (низ) преплетени ", канали = 1, скорост = 44100" конвертиране звукът в добрия формат, разбираем от "rtpL16pay", който създава аудио пакетите и накрая "udpsink" изпраща пакетите, използвайки UDP протокола. На високоговорителя той е същият, но обърнат, "udpsrc" възстановява аудио потока, "rtpL16depay" депакети и "audioconvert! Autoaudiosink" преобразува звука, за да съответства на формата на автоматичната звукова карта и, разбира се, го възпроизвежда.

Така че сега, когато основните неща работят, е време да отидем по -нататък. Целта е да се прихване звука на приложение, за да се изпрати през мрежата.

- Създаваме фалшив изход

$ pactl load-module module-null-sink sink_name = multiHP

- Свързваме вход към фалшивия изход (заглушаване на избраното приложение (вход))

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

$ pacmd list-sink-inputs (списък с входове)

$ pacmd move-sink-input %input %output (заменете %input и %output с един от съответните списъци)

- Поставихме звуковата карта на максимум

$ pactl set-sink-volume 0 100%

- Тестваме на компютъра начина за възстановяване на фалшивия изход (възстановяване на звука)

$ gst-launch-1.0 pulsesrc устройство = multiHP.monitor! аудиоконвертиране! автоаудиомивка

Трябва да чуете отново звука на избраното от вас приложение.

Страхотен! Сега е време да преминем към последните командни редове. Ето командните редове в случай на 2 високоговорителя със звук, който се възпроизвежда и от компютъра.

За всеки говорител:

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

На компютъра:

$ gst-launch-1.0 pulsesrc устройство = multiHP.monitor! аудиоконвертиране! аудио/x-raw, формат = "(низ) S16BE", оформление = "(низ) преплетени", канали = 2, скорост = 44100! rtpL16pay! име на тениска = t t. ! опашка ! udpsink хост =%addrpi1 порт = 5000 t. ! опашка ! udpsink хост =%addrpi2 порт = 5000 t. ! опашка ! аудиоконвертиране! автомивка

Стъпка 3: Заключение

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

Надявам се, че ще опитате да подобрите тази инструкция.

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

Добър калайджия!

Препоръчано: