Mundarija:

Xuddi shu musiqani bir nechta xonalarda ijro eting: 3 qadam
Xuddi shu musiqani bir nechta xonalarda ijro eting: 3 qadam

Video: Xuddi shu musiqani bir nechta xonalarda ijro eting: 3 qadam

Video: Xuddi shu musiqani bir nechta xonalarda ijro eting: 3 qadam
Video: GREEN71 SHARMANDA BO‘LDI | HAYOT R23 MENSIMANDI | BUNAQASI BO‘MAGAN | GREEN71 VERSUS QILAMAN DEDI 2024, Noyabr
Anonim
Ko'p xonalarda bir xil musiqani ijro eting
Ko'p xonalarda bir xil musiqani ijro eting

Hammaga salom, Men siz haqingizda bilmayman, lekin men butun kvartiramda bir xil musiqani eshitishni yoqtiraman, lekin ovozni balandlatib yubormayman. Bu muammoni biroz o'rganib chiqqach, men bir vaqtning o'zida bir nechta xonalarda, xususan, hammomda bir xil musiqani ijro etish uchun bir xil musiqa serveriga wifi orqali ulangan bir nechta dinamiklarni o'rnatishga qaror qildim.

Tizim GStreamer texnologiyasiga asoslangan bo'lib, u VLC kabi ajoyib dasturiy ta'minot va Raspberry Pi yordamida wifi -ga ega dinamikga asoslangan.

1 -qadam: Hammom uchun karnay qurish

Hammom uchun karnay qurish
Hammom uchun karnay qurish
Hammom uchun karnay qurish
Hammom uchun karnay qurish
Hammom uchun karnay qurish
Hammom uchun karnay qurish

Qismlar ro'yxati:

  • hammomga chidamli dinamik
  • 2 Vt kuchaytirgich (12 V da ishlaydi)
  • a Raspberry Pi Zero (5v da ishlaydi)
  • Pimoroni Phat DAC
  • SD -karta
  • ON/OFF tugmasi
  • 12V quvvat adapteri + mos keladigan vilka
  • DC/DC pasayishi (12v-> 5v)
  • elektr qutisi
  • ba'zi kabellar

Qurilish juda oddiy.

Elektron tomondan, ushbu ASCII diagrammasini bajaring.

  • DC vilkasini yoqish/o'chirish tugmasi kuchaytirgichi
  • ON/OFF tugmasi DC/DC Raspberry Pi-ni pasaytiradi
  • Raspberry Pi Phat DAC kuchaytirgich dinamik

Mexanik tomondan, elektr qutisiga kerak bo'lgan barcha teshiklarni kesib oling, hamma narsani ichkariga soling va hammasi shu.

Ushbu texnikadan foydalanib, siz xohlagan dinamiklarni yaratishingiz mumkin.

2 -qadam: dasturiy ta'minot tomoni

Dasturning barcha tomonlari ochiq manbali multimediya GStreamer asosiga asoslangan. Men faqat Linuxdan foydalanardim, lekin u har xil OSda mavjud, shuning uchun hammasini boshqa OS uchun moslashtirish mumkin deb o'ylayman.

Boshlash uchun siz Raspbian Lite -ni Pi, PHAT DAC va GStreamer 1.0 -ni "yaxshi" plaginlari bilan o'rnatishingiz kerak. Musiqa serveri sifatida ishlatiladigan kompyuterda sizga bir xil GStreamer kerak. Men bu qismlarni batafsil aytmayman, chunki boshqalar buni mendan yaxshiroq qilishgan. Oxirgi narsa - Pi va musiqa serveri bitta tarmoqqa kabel yoki Wi -Fi orqali ulanishi kerak.

GStreamer to'g'ri o'rnatilganligini tekshirish uchun siz buyruq satrlaridan foydalanishingiz mumkin.

Karnayda:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application/x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, kanallar = (int) 1, foydali yuk = (int) 96 '! rtpL16depay! audio konvertatsiya! avtomatik ovoz

Kompyuterda:

$ gst-launch-1.0 audiotestsrc! audio konvertatsiya! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", kanallar = 1, tezlik = 44100! rtpL16pay! udpsink hosti = RASPBERRYPI_IP porti = 5000

"RASPBERRYPI_IP" o'rniga yaxshi IP -manzil qo'yganingizdan so'ng, karnayda sinusoidal ovoz eshitiladi. Bu sizni uzoq vaqt eshitishni yoqtirmaydi, shuning uchun ovoz balandligini balandlatmang.

Ba'zi tushuntirishlar: kompyuter sinusoidal ovozni "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", kanallar = 1, tezlik = 44100" konvertatsiya qilish yordamida ishlab chiqaradi. "rtpL16pay" tushunadigan yaxshi formatdagi ovoz, bu audio paketlarni yaratadi va nihoyat "udpsink" paketlarni UDP protokoli yordamida yuboradi. Dinamikda xuddi shunday, lekin teskari, "udpsrc" audio oqimini tiklaydi, "rtpL16depay" paketlarini o'chiradi va "audio konvert! Autoaudiosink" ovozni avtomatik ovoz kartasi formatiga moslashtiradi va albatta o'ynaydi.

Shunday qilib, endi asosiy narsalar ishlayotganda, oldinga borish vaqti keldi. Maqsad - tarmoq orqali yuborish uchun ilovaning ovozini ushlab qolish.

- Biz soxta chiqishni yaratamiz

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

- Biz kirishni soxta chiqishga ulaymiz (tanlangan ilovaning ovozini o'chiring)

$ pacmd list-lavabolar (chiqishlar ro'yxati)

$ pacmd list-sink-inputs (kirish ro'yxati)

$ pacmd move-sink-input %input %output (%kirish va %chiqishni mos keladigan ro'yxatlardan biriga almashtiring)

- Biz ovoz kartasini maksimal darajada qo'yamiz

$ pactl set-sink-volume 0 100%

- Biz kompyuterda soxta chiqishni tiklash usulini sinab ko'ramiz (ovozni tiklash)

$ gst-launch-1.0 pulsesrc qurilma = multiHP.monitor! audio konvertatsiya! avtomatik ovoz

Siz tanlagan ilovaning ovozini qayta eshitishingiz kerak.

Ajoyib! Endi oxirgi buyruq satrlariga o'tish vaqti keldi. Mana buyruq satrlari, 2 ta karnay bo'lsa, ovozi ham kompyuter o'ynaydi.

Har bir ma'ruzachida:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application/x-rtp, media = (string) audio, clock-rate = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, yuk = (int) 96 '! rtpL16depay! audio konvertatsiya! avtomatik ovoz

Kompyuterda:

$ gst-launch-1.0 pulsesrc qurilma = multiHP.monitor! audio konvertatsiya! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", kanallar = 2, tezlik = 44100! rtpL16pay! tee nomi = t t. ! navbat! udpsink host =%addrpi1 port = 5000 t. ! navbat! udpsink host =%addrpi2 port = 5000 t. ! navbat! audio konvertatsiya! avtomatik ovoz

3 -qadam: Xulosa

Bu ko'rsatma to'liq loyihaga faqat birinchi qadamdir. Bu faqat printsipni tushuntirish edi. Endi siz Raspberry Pi yuklash qurilmasida va kompyuterda skript yozib, avtomatlashtirishingiz mumkin. Siz ehtiyojingizga qarab GStreamer buyrug'ini moslashtira olasiz. Men shaxsan oldingi ko'rsatmalarni (BRAND NEW OLD RADIO) dinamik sifatida ishlatish uchun o'zgartirdim. Bu ko'p xonali ovoz tizimini yaxshilash uchun cheksiz ko'p ishlar qilish kerak. Xususan, barcha karnaylar sinxronlanmaydi, shuning uchun siz xonadan boshqasiga o'tishda sizda biroz farq bor.

Umid qilamanki, siz ushbu ko'rsatmalarni yaxshilashga harakat qilasiz.

Agar sizga tafsilotlar kerak bo'lsa, savol berishdan tortinmang.

Yaxshi ta'zimchi!

Tavsiya: