Talaan ng mga Nilalaman:

Patugtugin ang Parehong Musika sa Maramihang Mga Silid: 3 Hakbang
Patugtugin ang Parehong Musika sa Maramihang Mga Silid: 3 Hakbang

Video: Patugtugin ang Parehong Musika sa Maramihang Mga Silid: 3 Hakbang

Video: Patugtugin ang Parehong Musika sa Maramihang Mga Silid: 3 Hakbang
Video: Guddhist Gunatita - 1096 Luv (Official Music Video) prod. by playboi beats 2024, Nobyembre
Anonim
Patugtugin ang Parehong Musika sa Maramihang Mga Silid
Patugtugin ang Parehong Musika sa Maramihang Mga Silid

Kumusta kayong lahat, Hindi ko alam ang tungkol sa iyo ngunit nais kong magkaroon ng parehong musika sa lahat ng aking apartment nang hindi pa masyadong malakas ang tunog. Kaya pagkatapos ng kaunting pagsasaliksik tungkol sa problemang ito, nagpasya akong magtayo ng maraming mga speaker na lahat na konektado sa pamamagitan ng wifi sa parehong music server upang makapagpatugtog ng parehong musika nang sabay-sabay sa maraming mga silid at partikular sa banyo.

Ang sistema ay batay sa teknolohiya ng GStreamer na kung saan ay ang batayan ng ilang mga kahanga-hangang software tulad ng VLC at sa speaker na may kakayahan sa wifi gamit ang isang Raspberry Pi.

Hakbang 1: Pagbuo ng isang Speaker para sa Banyo

Pagbuo ng isang Speaker para sa Banyo
Pagbuo ng isang Speaker para sa Banyo
Pagbuo ng isang Speaker para sa Banyo
Pagbuo ng isang Speaker para sa Banyo
Pagbuo ng isang Speaker para sa Banyo
Pagbuo ng isang Speaker para sa Banyo

Listahan ng Bahagi:

  • isang tagapagsalita ng banyo
  • isang 2W amplifier (nagtatrabaho sa 12v)
  • isang Raspberry Pi Zero (nagtatrabaho sa 5v)
  • isang Pimoroni Phat DAC
  • isang SD card
  • isang pindutang ON / OFF
  • isang 12v power adapter + isang katugmang plug
  • isang DC / DC step-down (12v-> 5v)
  • isang kahon ng kuryente
  • ilang mga kable

Ang konstruksyon ay medyo prangka.

Sa elektronikong panig, sundin ang diagram ng ASCII na ito.

  • DC plug ON / OFF button amplifier
  • ON / OFF button DC / DC step-down na Raspberry Pi
  • Speaker ng amplifier ng Raspberry Pi Phat DAC

Sa panig na mekanikal, gupitin ang lahat ng mga butas na kinakailangan sa kahon ng elektrisidad, ilagay ang lahat sa loob at iyon lang.

Gamit ang diskarteng ito, maaari kang lumikha ng lahat ng uri ng mga speaker na gusto mo.

Hakbang 2: Ang Side ng Software

Ang lahat ng panig ng software ay batay sa bukas na mapagkukunan ng multimedia framework, GStreamer. Gumamit lamang ako ng Linux ngunit mayroon ito sa iba't ibang OS, kaya naiisip ko na ang lahat ay maaaring iakma para sa iba pang OS.

Para sa nagsisimula, kailangan mong i-install ang Raspbian Lite sa Pi, ang PHAT DAC at ang GStreamer 1.0 na may mga "mahusay" na plugin. Sa computer na ginamit bilang music server, kailangan mo ng parehong GStreamer. Hindi ko idetalye ang mga bahaging iyon sapagkat ang iba ay nagawa ito nang mas mahusay kaysa sa akin. Ang huling bagay na kinakailangan ay ang Pi at ang server ng musika ay dapat na konektado sa parehong network sa pamamagitan ng cable o wifi.

Upang masubukan kung ang GStreamer ay na-install nang tama, maaari mong gamitin ang mga linya ng utos.

Sa nagsasalita:

$ 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, mga channel = (int) 1, payload = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Sa PC:

$ gst-launch-1.0 audiotestsrc! audioconvert! audio / x-raw, format = "(string) S16BE", layout = "(string) interleaved", mga channel = 1, rate = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP port = 5000

Matapos mong mailagay ang magandang IP address sa halip na "RASPBERRYPI_IP", dapat kang makarinig ng tunog na sinusoidal sa nagsasalita. Iyon ay hindi isang bagay na nais mong marinig sa mahabang panahon, kaya huwag ilagay ang lakas ng tunog.

Ilang paliwanag: ang PC ay gumagawa ng tunog ng sinusoidal gamit ang "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) na interleaved ", mga channel = 1, rate = 44100" convert ang tunog sa mabuting format na nauunawaan ng "rtpL16pay" na lumilikha ng mga audio packet at sa wakas ay "udpsink" ay nagpapadala ng mga packet gamit ang UDP protocol. Sa nagsasalita, pareho ito ngunit baligtad, "udpsrc" ay nababawi ang audio flux, "rtpL16depay" de-packets at "audioconvert! Autoaudiosink" ang nagko-convert ng tunog upang tumugma sa format ng awtomatikong sound card at syempre, pinatugtog ito.

Kaya't ngayon na gumagana ang pangunahing bagay, oras na upang magpatuloy. Ang layunin ay upang maharang ang tunog ng isang application upang maipadala ito sa pamamagitan ng network.

- Lumilikha kami ng isang pekeng output

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

- Ikinonekta namin ang isang input sa pekeng output (patahimikin ang napiling application (input))

$ pacmd list-sinks (listahan ng mga output)

$ pacmd list-sink-input (listahan ng mga input)

$ pacmd move-sink-input% input% output (palitan ang% input at% output ng isa sa mga kaukulang listahan)

- Inilalagay namin ang sound card sa maximum

$ pactl set-sink-volume 0 100%

- Sinusubukan namin sa PC ang paraan upang mabawi ang pekeng output (mabawi ang tunog)

$ gst-launch-1.0 aparato ng pulsesrc = multiHP.monitor! audioconvert! autoaudiosink

Dapat mong marinig muli ang tunog ng application na iyong napili.

Malaki! Ngayon ay oras na upang pumunta para sa huling mga linya ng utos. Narito ang mga linya ng utos sa kaso ng 2 nagsasalita na may tunog din na nilalaro ng PC.

Sa bawat nagsasalita:

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

Sa PC:

$ gst-launch-1.0 aparato ng pulsesrc = multiHP.monitor! audioconvert! audio / x-raw, format = "(string) S16BE", layout = "(string) na interleaved", mga channel = 2, rate = 44100! rtpL16pay! tee name = t t. ! pila udpsink host =% addrpi1 port = 5000 t. ! pila udpsink host =% addrpi2 port = 5000 t. ! pila audioconvert! autoaudiosink

Hakbang 3: Konklusyon

Ang itinuturo na ito ay ang unang hakbang lamang sa isang kumpletong proyekto. Ito ay upang ipaliwanag lamang ang prinsipyo. Ngayon ay maaari mo nang i-automatize sa pamamagitan ng paggawa ng ilang script sa Raspberry Pi boot at sa PC. Maaari mong iakma ang utos ng GStreamer depende sa iyong pangangailangan. Personal kong binago ang dati kong itinuturo (BRAND NEW OLD RADIO) upang magamit ito bilang isang tagapagsalita. Mayroong isang walang katapusang bilang ng mga bagay na dapat gawin upang mapagbuti ang multi-room sound system na ito. Sa partikular, ang lahat ng mga nagsasalita ay hindi na-synchronize, kaya mayroon kang ilang pagkakaiba-iba kapag nagbago ka mula sa isang silid patungo sa isa pa.

Inaasahan kong subukan mo at pagbutihin ang itinuturo na ito.

Huwag mag-atubiling magtanong kung kailangan mo ng mga detalye.

Magaling na tinker!

Inirerekumendang: