Sadržaj:

Reproducirajte istu muziku u više soba: 3 koraka
Reproducirajte istu muziku u više soba: 3 koraka

Video: Reproducirajte istu muziku u više soba: 3 koraka

Video: Reproducirajte istu muziku u više soba: 3 koraka
Video: Одна в городе_Рассказ_Слушать 2024, Juli
Anonim
Puštajte istu muziku u više soba
Puštajte istu muziku u više soba

Zdravo svima, Ne znam za vas, ali volim imati istu muziku po cijelom stanu, a da ne pojačavam glas. Stoga sam nakon malo istraživanja o ovom problemu odlučio izgraditi nekoliko zvučnika koji su svi povezani WiFi mrežom na isti muzički server kako bi se istovremeno reproducirala ista muzika u nekoliko soba, a posebno u kupaonici.

Sistem je zasnovan na GStreamer tehnologiji koja je osnova nekog sjajnog softvera kao što je VLC i na zvučniku s mogućnošću wifi koji koristi Raspberry Pi.

Korak 1: Izgradnja zvučnika za kupaonicu

Izgradnja zvučnika za kupaonicu
Izgradnja zvučnika za kupaonicu
Izgradnja zvučnika za kupaonicu
Izgradnja zvučnika za kupaonicu
Izgradnja zvučnika za kupaonicu
Izgradnja zvučnika za kupaonicu

Lista dijelova:

  • zvučnik za kupatilo
  • pojačalo od 2 W (radi na 12V)
  • Raspberry Pi Zero (radi na 5V)
  • a DAC za Pimoroni Phat
  • SD karticu
  • dugme za uključivanje/isključivanje
  • adapter za napajanje 12v + kompatibilni utikač
  • DC/DC step-down (12v-> 5v)
  • električna kutija
  • neki kablovi

Konstrukcija je prilično jednostavna.

Na elektronskoj strani slijedite ovaj ASCII dijagram.

  • Pojačalo sa dugmetom ON/OFF sa utikačem
  • Dugme za uključivanje/isključivanje DC/DC postepeno spuštanje Raspberry Pi
  • Raspberry Pi Phat DAC zvučničko pojačalo

Na mehaničkoj strani izrežite sve rupe potrebne u električnoj kutiji, stavite sve unutra i to je sve.

Pomoću ove tehnike možete stvoriti sve vrste zvučnika koje želite.

Korak 2: Sa strane softvera

Sva softverska strana zasnovana je na otvorenom multimedijalnom okviru, GStreamer. Koristio sam samo Linux, ali postoji na različitim OS -ima, pa pretpostavljam da se sve može prilagoditi za druge OS.

Za početak, morate instalirati Raspbian Lite na Pi, PHAT DAC i GStreamer 1.0 sa "dobrim" dodacima. Na računaru koji se koristi kao muzički server potreban vam je isti GStreamer. Neću detaljno opisivati te dijelove jer su drugi to učinili bolje od mene. Posljednja stvar koja je potrebna je da Pi i muzički server moraju biti povezani na istu mrežu kablom ili wifi -jem.

Da biste provjerili je li GStreamer ispravno instaliran, možete koristiti te naredbene retke.

Na zvučniku:

$ 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, kanali = (int) 1, korisni teret = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Na računaru:

$ gst-launch-1.0 audiotestsrc! audioconvert! audio/x-raw, format = "(niz) S16BE", izgled = "(niz) isprepleten", kanali = 1, brzina = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP port = 5000

Nakon što postavite dobru IP adresu umjesto "RASPBERRYPI_IP", trebali biste čuti zvuk sinusoida na zvučniku. To nije nešto što ćete dugo voljeti čuti, stoga nemojte pojačati zvuk previše.

Neka objašnjenja: PC proizvodi sinusni zvuk koristeći "audiotestsrc", "audiokonvertiranje! Audio/x-raw, format =" (niz) S16BE ", izgled =" (niz) isprepleten ", kanali = 1, brzina = 44100" pretvori zvuk u dobrom formatu koji razumije "rtpL16pay" koji stvara audio pakete i na kraju "udpsink" šalje pakete koristeći UDP protokol. Na zvučniku je isti, ali obrnut, "udpsrc" obnavlja audio tok, "rtpL16depay" raspakira i "audiokonvertiraj! Autoaudiosink" pretvara zvuk u format automatske zvučne kartice i naravno reproducira ga.

Dakle, sada kada osnovne stvari funkcioniraju, vrijeme je da idemo dalje. Cilj je presresti zvuk aplikacije kako bi se poslao putem mreže.

- Mi stvaramo lažni ispis

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

- Priključujemo ulaz na lažni izlaz (utišajte odabranu aplikaciju (ulaz))

$ pacmd list-sink (lista izlaza)

$ pacmd list-sink-inputs (lista ulaza)

$ pacmd move-sink-input %input %output (zamijenite %input i %output jednom od odgovarajućih lista)

- Zvučnu smo karticu postavili na maksimum

$ pactl set-sink-volume 0 100%

- Testiramo na računaru način oporavka lažnog izlaza (oporavak zvuka)

$ gst-launch-1.0 pulsesrc uređaj = multiHP.monitor! audioconvert! autoaudiosink

Ponovo biste trebali čuti zvuk aplikacije koju ste odabrali.

Odlično! Sada je vrijeme za konačne naredbene retke. Evo naredbenih linija u slučaju 2 zvučnika sa zvukom koji reproducira i računalo.

Na svakom zvučniku:

$ 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, korisni teret = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Na računaru:

$ gst-launch-1.0 pulsesrc uređaj = multiHP.monitor! audioconvert! audio/x-raw, format = "(niz) S16BE", izgled = "(niz) isprepleten", kanali = 2, brzina = 44100! rtpL16pay! ime tee = t t. ! red! udpsink host =%addrpi1 port = 5000 t. ! red! udpsink host =%addrpi2 port = 5000 t. ! red! audioconvert! autoaudiosink

Korak 3: Zaključak

Ovo uputstvo je samo prvi korak do potpunog projekta. Samo je trebalo objasniti princip. Sada možete automatizirati tako što ćete napraviti neku skriptu na pokretačkom sistemu Raspberry Pi i na računaru. Naredbu GStreamer možete prilagoditi ovisno o vašim potrebama. Lično sam izmenio svoj prethodni instruktor (NOVI STARI RADIO) da bih ga koristio kao zvučnik. Postoji beskonačan broj stvari koje treba učiniti kako biste poboljšali ovaj zvučni sistem s više soba. Konkretno, svi zvučnici nisu sinkronizirani, pa imate neke varijacije pri prelasku iz sobe u drugu.

Nadam se da ćete pokušati poboljšati ovo uputstvo.

Ne ustručavajte se postavljati pitanja ako su vam potrebni detalji.

Good tinker!

Preporučuje se: