Orodha ya maudhui:

Cheza Muziki Sawa katika Vyumba Mbalimbali: Hatua 3
Cheza Muziki Sawa katika Vyumba Mbalimbali: Hatua 3

Video: Cheza Muziki Sawa katika Vyumba Mbalimbali: Hatua 3

Video: Cheza Muziki Sawa katika Vyumba Mbalimbali: Hatua 3
Video: MAIDS WAINGIA BILA VIATU UKUMBINI !! NA WANAVYOJUA KURINGA SASA! |GadsonAndSalome |MCKATOKISHA 2024, Novemba
Anonim
Cheza Muziki Sawa katika Vyumba Mbalimbali
Cheza Muziki Sawa katika Vyumba Mbalimbali

Halo kila mtu, Sijui juu yako lakini napenda kuwa na muziki sawa katika nyumba yangu yote bila kugeuza sauti kuwa ya juu sana. Kwa hivyo baada ya utafiti kidogo juu ya shida hii, niliamua kuunda spika kadhaa zilizounganishwa na wifi kwenye seva moja ya muziki ili kucheza muziki huo huo wakati huo huo katika vyumba kadhaa na haswa bafuni.

Mfumo huu unategemea teknolojia ya GStreamer ambayo ni msingi wa programu nzuri kama VLC na spika iliyo na uwezo wa wifi ukitumia Raspberry Pi.

Hatua ya 1: Kujenga Spika kwa Bafuni

Kujenga Spika kwa Bafuni
Kujenga Spika kwa Bafuni
Kujenga Spika kwa Bafuni
Kujenga Spika kwa Bafuni
Kujenga Spika kwa Bafuni
Kujenga Spika kwa Bafuni

Orodha ya Sehemu:

  • spika ya kuthibitisha bafuni
  • kipaza sauti cha 2W (kinachofanya kazi kwenye 12v)
  • Raspberry Pi Zero (inafanya kazi kwenye 5v)
  • Pimoroni Phat DAC
  • kadi ya SD
  • kitufe cha ON / OFF
  • adapta ya umeme ya 12v + kuziba inayoendana
  • kushuka kwa DC / DC (12v-> 5v)
  • sanduku la umeme
  • nyaya zingine

Ujenzi huo ni sawa.

Kwa upande wa elektroniki, fuata mchoro huu wa ASCII.

  • DC kuziba ON / OFF kifungo amplifier
  • ON / OFF kifungo DC / DC hatua Raspberry Pi
  • Spika ya kipaza sauti ya Raspberry Pi Phat DAC

Kwa upande wa mitambo, kata mashimo yote yanayohitajika kwenye sanduku la umeme, weka kila kitu ndani na ndio tu.

Kutumia mbinu hii, unaweza kuunda kila spika unayotaka.

Hatua ya 2: Upande wa Programu

Upande wote wa programu ni msingi wa mfumo wa media chanzo wazi, GStreamer. Nilitumia Linux tu lakini ipo kwenye OS tofauti, kwa hivyo nadhani kwamba zote zinaweza kubadilishwa kwa OS zingine.

Kwa kuanza, lazima usakinishe Raspbian Lite kwenye Pi, PHAT DAC na GStreamer 1.0 na programu-jalizi "nzuri". Kwenye kompyuta inayotumiwa kama seva ya muziki, unahitaji GStreamer sawa. Sitaelezea sehemu hizo kwa sababu wengine wamefanya hii bora kuliko mimi. Jambo la mwisho linalohitajika ni kwamba Pi na seva ya muziki lazima ziunganishwe kwenye mtandao huo huo kwa kebo au wifi.

Ili kujaribu ikiwa GStreamer imewekwa kwa usahihi, unaweza kutumia laini hizo za amri.

Kwenye spika:

$ gst-launch-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, saa-kiwango = (int) 44100, encoding-name = (string) L16, encoding-params = (string 1, vituo = (int) 1, malipo ya malipo = (int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Kwenye PC:

$ gst-uzinduzi-1.0 audiotestsrc! audioconvert! sauti / x-mbichi, fomati = "(kamba) S16BE", mpangilio = "(kamba) imeingiliana", vituo = 1, kiwango = 44100! rtpL16lipa! mwenyeji wa udpsink = RASPBERRYPI_IP bandari = 5000

Baada ya kuweka anwani nzuri ya IP badala ya "RASPBERRYPI_IP", unapaswa kusikia sauti ya sinusoidal kwenye spika. Hilo sio jambo ambalo utapenda kusikia kwa muda mrefu, kwa hivyo usiweke sauti juu sana.

Maelezo mengine: PC hutoa sauti ya sinusoidal kwa kutumia "audiotestsrc", "audioconvert! Audio / x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channels = 1, rate = 44100" convert sauti katika muundo mzuri inayoeleweka na "rtpL16pay" ambayo huunda pakiti za sauti na mwishowe "udpsink" hutuma pakiti hizo kwa kutumia itifaki ya UDP. Kwenye spika, ni sawa lakini imegeuzwa, "udpsrc" hupata utiririshaji wa sauti, "rtpL16depay" de-pakiti na "audioconvert! Autoaudiosink" inabadilisha sauti ili ifanane na fomati ya kadi ya sauti ya kiotomatiki na kwa kweli, inaipiga.

Kwa hivyo sasa kwa kuwa vitu vya msingi hufanya kazi, ni wakati wa kwenda zaidi. Lengo ni kuzuia sauti ya programu ili kuituma kupitia mtandao.

- Tunaunda pato bandia

$ pactl mzigo-moduli moduli-null-sink sink_name = multiHP

- Tunaunganisha pembejeo kwenye pato bandia (nyamazisha programu iliyochaguliwa (pembejeo))

Orodha ya $ pacmd-sinks (orodha ya matokeo)

$ pacmd orodha-pembejeo za kuzama (orodha ya pembejeo)

$ pacmd hoja-sink-input% pembejeo% pato (badala% pembejeo na% pato na moja ya orodha zinazofanana)

- Tunaweka kadi ya sauti kwa kiwango cha juu

$ pactl kuweka-kuzama-kiasi 0 100%

- Tunajaribu kwenye PC njia ya kurudisha matokeo bandia (rejesha sauti)

$ gst-uzinduzi-1.0 kifaa cha pulsesrc = multiHP.monitor! audioconvert! autoaudiosink

Unapaswa kusikia tena sauti ya programu ambayo umechagua.

Kubwa! Sasa ni wakati wa kwenda kwa mistari ya amri ya mwisho. Hapa kuna mistari ya amri katika kesi ya spika 2 na sauti pia iliyochezwa na PC.

Kwenye kila Spika:

$ gst-uzinduzi-1.0 udpsrc port = 5000 caps = 'application / x-rtp, media = (string) audio, saa-kiwango = (int) 44100, encoding-name = (string) L16, encoding-params = (string 2, malipo = = int) 96 '! rtpL16depay! audioconvert! autoaudiosink

Kwenye PC:

$ gst-uzinduzi-1.0 kifaa cha pulsesrc = multiHP.monitor! audioconvert! sauti / x-mbichi, fomati = "(kamba) S16BE", mpangilio = "(kamba) imeingiliana", vituo = 2, kiwango = 44100! rtpL16lipa! jina la tee = t t. ! foleni! mwenyeji wa udpsink =% addrpi1 bandari = 5000 t. ! foleni! mwenyeji wa udpsink =% addrpi2 bandari = 5000 t. ! foleni! audioconvert! autoaudiosink

Hatua ya 3: Hitimisho

Hii inaweza kufundishwa tu ni hatua ya kwanza kwa mradi kamili. Ilikuwa tu kuelezea kanuni. Sasa unaweza kujiendesha kwa kutengeneza maandishi kwenye buti ya Raspberry Pi na kwenye PC. Unaweza kubadilisha amri ya GStreamer kulingana na hitaji lako. Mimi mwenyewe nilibadilisha mafundisho yangu ya awali (BRAND NEW OLD RADIO) ili kuitumia kama spika. Kuna idadi kubwa ya vitu vya kufanya ili kuboresha mfumo huu wa sauti wa vyumba vingi. Hasa, spika zote hazijasawazishwa, kwa hivyo una tofauti wakati unabadilika kutoka chumba kwenda kingine.

Natumaini kwamba utajaribu na kuboresha hii inayoweza kufundishwa.

Usisite kuuliza maswali ikiwa unahitaji maelezo.

Nzuri ya kufikiria!

Ilipendekeza: