INHOUDSOPGAWE:

Speel dieselfde musiek in verskeie kamers: 3 stappe
Speel dieselfde musiek in verskeie kamers: 3 stappe

Video: Speel dieselfde musiek in verskeie kamers: 3 stappe

Video: Speel dieselfde musiek in verskeie kamers: 3 stappe
Video: Die Antwoord - Baita Jou Sabela feat. Slagysta (Official Video) 2024, November
Anonim
Speel dieselfde musiek in verskeie kamers
Speel dieselfde musiek in verskeie kamers

Haai almal, Ek weet nie van jou nie, maar ek hou daarvan om dieselfde musiek in my hele woonstel te hê sonder om die geluid te hard te draai. Na 'n bietjie navorsing oor hierdie probleem, het ek besluit om verskeie luidsprekers te bou wat almal via wifi verbind is met dieselfde musiekbediener om dieselfde musiek gelyktydig in verskillende kamers en veral in die badkamer te speel.

Die stelsel is gebaseer op die GStreamer -tegnologie, wat die basis is van wonderlike sagteware soos VLC en luidsprekers met wifi -vermoëns met behulp van 'n Raspberry Pi.

Stap 1: Bou 'n luidspreker vir die badkamer

Bou 'n luidspreker vir die badkamer
Bou 'n luidspreker vir die badkamer
Bou 'n luidspreker vir die badkamer
Bou 'n luidspreker vir die badkamer
Bou 'n luidspreker vir die badkamer
Bou 'n luidspreker vir die badkamer

Deellys:

  • 'n badkamer bewys luidspreker
  • 'n 2W versterker (werk op 12v)
  • 'n Framboos Pi Zero (werk op 5v)
  • 'n Pimoroni Phat DAC
  • 'n SD -kaart
  • 'n AAN/UIT -knoppie
  • 'n 12V -kragadapter + 'n versoenbare prop
  • 'n DC/DC-afskakeling (12v-> 5v)
  • 'n elektriese boks
  • 'n paar kabels

Die konstruksie is redelik eenvoudig.

Aan die elektroniese kant, volg hierdie ASCII -diagram.

  • DC -aansluiting AAN/UIT -knoppie versterker
  • AAN/UIT-knoppie DC/DC trap-af Raspberry Pi
  • Framboos Pi Phat DAC versterker luidspreker

Aan die meganiese kant, sny al die gate wat in die elektriese boks benodig word, sit alles binne en dit is alles.

Deur hierdie tegniek te gebruik, kan u allerhande luidsprekers skep.

Stap 2: Die sagteware -kant

Al die sagtewarekant is gebaseer op die open source multimedia raamwerk, GStreamer. Ek het slegs Linux gebruik, maar dit bestaan op verskillende bedryfstelsels, so ek verbeel my dat almal vir ander bedryfstelsels aangepas kan word.

Om mee te begin, moet u Raspbian Lite op die Pi, die PHAT DAC en die GStreamer 1.0 installeer met die 'goeie' inproppe. Op die rekenaar wat as die musiekbediener gebruik word, benodig u dieselfde GStreamer. Ek sal nie die dele in detail beskryf nie, omdat ander dit beter as ek gedoen het. Die laaste ding wat nodig is, is dat die Pi en die musiekbediener met dieselfde netwerk via kabel of wifi verbind moet word.

Om te toets of GStreamer korrek geïnstalleer is, kan u die opdragreëls gebruik.

Op die spreker:

$ gst-launch-1.0 udpsrc poort = 5000 caps = 'application/x-rtp, media = (string) klank, kloksnelheid = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 1, kanale = (int) 1, loonvrag = (int) 96 '! rtpL16 betaal! klankomskakeling! outo -oudiosink

Op die rekenaar:

$ gst-launch-1.0 oudiotoetse! klankomskakeling! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", channel = 1, rate = 44100! rtpL16 betaal! udpsink -gasheer = RASPBERRYPI_IP -poort = 5000

Nadat u die goeie IP -adres in plaas van "RASPBERRYPI_IP" geplaas het, moet u 'n sinusvormige geluid op die luidspreker hoor. Dit is nie iets wat u lank sal hoor nie, dus moenie die volume te hard sit nie.

Enkele verduideliking: die rekenaar produseer die sinusvormige klank met behulp van "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channel = 1, rate = 44100" convert die klank in die goeie formaat verstaan deur "rtpL16pay" wat die klankpakkies skep en uiteindelik "udpsink" die pakkies stuur met behulp van die UDP -protokol. Op die luidspreker is dit dieselfde, maar omgekeerd, "udpsrc" herstel die klankvloei, "rtpL16depay" de-pakkies en "audioconvert! Autoaudiosink" skakel die klank om in die formaat van die outomatiese klankkaart en speel dit natuurlik.

Noudat die basiese dinge werk, is dit tyd om verder te gaan. Die doel is om die geluid van 'n toepassing te onderskep om dit deur die netwerk te stuur.

- Ons skep 'n vals uitvoer

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

- Ons koppel 'n inset aan die valse uitvoer (stil die geselekteerde toepassing (invoer))

$ pacmd list-sink (uitsetlys)

$ pacmd list-sink-insette (insetlys)

$ pacmd move-sink-input %input %output (vervang %input en %output deur een van die ooreenstemmende lyste)

- Ons stel die klankkaart maksimum

$ pactl set-sink-volume 0 100%

- Ons toets op die rekenaar hoe om die valse uitset te herstel (herstel die geluid)

$ gst-launch-1.0 pulsesrc-toestel = multiHP.monitor! klankomskakeling! outo -oudiosink

U moet weer die geluid van die gekose toepassing hoor.

Puik! Nou is dit tyd om na die laaste opdragreëls te gaan. Hier is die opdraglyne in die geval van 2 luidsprekers, met die klank wat ook deur die rekenaar gespeel word.

Op elke sprekers:

$ gst-launch-1.0 udpsrc-poort = 5000 caps = 'application/x-rtp, media = (string) klank, kloksnelheid = (int) 44100, encoding-name = (string) L16, encoding-params = (string) 2, loonvrag = (int) 96 '! rtpL16 betaal! klankomskakeling! outo -oudiosink

Op die rekenaar:

$ gst-launch-1.0 pulsesrc-toestel = multiHP.monitor! klankomskakeling! audio/x-raw, format = "(string) S16BE", layout = "(string) interleaved", channel = 2, rate = 44100! rtpL16 betaal! tee naam = t t. ! tou! udpsink gasheer =%addrpi1 poort = 5000 t. ! tou! udpsink -gasheer =%addrpi2 -poort = 5000 t. ! tou! klankomskakeling! outo -oudiosink

Stap 3: Gevolgtrekking

Hierdie instruksies is slegs die eerste stap na 'n volledige projek. Dit was slegs om die beginsel te verduidelik. Nou kan u outomatiseer deur 'n script op die Raspberry Pi -opstart en op die rekenaar te maak. U kan die GStreamer -opdrag aanpas, afhangende van u behoefte. Ek het my vorige instruksies (SPLINTERNUWE OU RADIO) persoonlik aangepas om dit as spreker te gebruik. Daar is 'n oneindige aantal dinge om te doen om hierdie klankstelsel met meer kamers te verbeter. In die besonder is alle luidsprekers nie gesinchroniseer nie, dus u het 'n mate van variasie wanneer u van kamer na kamer verander.

Ek hoop dat u hierdie instruksies sal probeer verbeter.

Moenie twyfel om vrae te stel as u besonderhede benodig nie.

Goeie tinker!

Aanbeveel: