Innholdsfortegnelse:

Spill samme musikk i flere rom: 3 trinn
Spill samme musikk i flere rom: 3 trinn

Video: Spill samme musikk i flere rom: 3 trinn

Video: Spill samme musikk i flere rom: 3 trinn
Video: Staysman & Lazz - En godt stekt pizza 2024, November
Anonim
Spill samme musikk i flere rom
Spill samme musikk i flere rom

Hei alle sammen, Jeg vet ikke om deg, men jeg liker å ha den samme musikken over hele leiligheten min uten å slå lyden for høyt. Så etter litt undersøkelser om dette problemet, bestemte jeg meg for å konstruere flere høyttalere som alle var koblet via wifi til den samme musikkserveren for å spille den samme musikken samtidig i flere rom og spesielt på badet.

Systemet er basert på GStreamer -teknologien som er grunnlaget for fantastisk programvare som VLC og høyttaler med wifi -funksjon ved bruk av en Raspberry Pi.

Trinn 1: Bygg en høyttaler for badet

Å bygge en høyttaler til badet
Å bygge en høyttaler til badet
Å bygge en høyttaler til badet
Å bygge en høyttaler til badet
Å bygge en høyttaler til badet
Å bygge en høyttaler til badet

Deleliste:

  • en baderomsikker høyttaler
  • en 2W forsterker (arbeider på 12v)
  • en Raspberry Pi Zero (jobber med 5v)
  • en Pimoroni Phat DAC
  • et SD -kort
  • en PÅ/AV -knapp
  • en 12v strømadapter + en kompatibel plugg
  • en DC/DC nedtrapping (12v-> 5v)
  • en elektrisk boks
  • noen kabler

Konstruksjonen er ganske grei.

Følg dette ASCII -diagrammet på den elektroniske siden.

  • Forsterker for DC -plugg ON/OFF -knapp
  • PÅ/AV-knapp DC/DC nedtrapping av Raspberry Pi
  • Raspberry Pi Phat DAC forsterkerhøyttaler

På den mekaniske siden, kutt alle hullene som trengs i den elektriske boksen, legg alt inni og det er alt.

Ved å bruke denne teknikken kan du lage alle slags høyttalere du vil ha.

Trinn 2: Programvaresiden

All programvareside er basert på multimedieramme for åpen kildekode, GStreamer. Jeg brukte bare Linux, men det finnes på forskjellige operativsystemer, så jeg kan tenke meg at alt kan tilpasses andre operativsystemer.

For starteren må du installere Raspbian Lite på Pi, PHAT DAC og GStreamer 1.0 med de "gode" pluginene. På datamaskinen som brukes som musikkserver, trenger du den samme GStreamer. Jeg vil ikke detaljere disse delene fordi andre har gjort dette bedre enn meg. Det siste som trengs er at Pi og musikkserveren må være koblet til det samme nettverket via kabel eller wifi.

For å teste om GStreamer er riktig installert, kan du bruke disse kommandolinjene.

På høyttaleren:

$ 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, kanaler = (int) 1, nyttelast = (int) 96 '! rtpL16betaling! lydkonvertering! autoaudiosink

På PC -en:

$ gst-launch-1.0 audiotestsrc! lydkonvertering! lyd/x-raw, format = "(streng) S16BE", layout = "(streng) sammenflettet", kanaler = 1, rate = 44100! rtpL16pay! udpsink host = RASPBERRYPI_IP port = 5000

Etter at du har lagt den gode IP -adressen i stedet for "RASPBERRYPI_IP", bør du høre en sinusformet lyd på høyttaleren. Det er ikke noe du vil like å høre på lenge, så ikke sett volumet for høyt.

Noen forklaringer: PC-en produserer sinusformet lyd ved hjelp av "audiotestsrc", "audioconvert! Audio/x-raw, format =" (string) S16BE ", layout =" (string) interleaved ", channel = 1, rate = 44100" convert lyden i det gode formatet forstått av "rtpL16pay" som lager lydpakker og til slutt "udpsink" sender pakkene ved hjelp av UDP -protokollen. På høyttaleren er den den samme, men inverterte, "udpsrc" gjenoppretter lydfluksen, "rtpL16depay" de-pakker og "audioconvert! Autoaudiosink" konverterer lyden for å matche formatet til det automatiske lydkortet og spiller selvfølgelig den.

Så nå som de grunnleggende tingene fungerer, er det på tide å gå videre. Målet er å fange opp lyden til et program for å sende det gjennom nettverket.

- Vi lager en falsk utgang

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

- Vi kobler en inngang til den falske utgangen (taus den valgte applikasjonen (input))

$ pacmd list-sink (utgangsliste)

$ pacmd list-sink-innganger (inngangsliste)

$ pacmd move-sink-input %input %output (erstatt %input og %output med en av de tilsvarende listene)

- Vi setter lydkortet maksimalt

$ pactl set-sink-volume 0 100%

- Vi tester på PCen måten å gjenopprette den falske utgangen (gjenopprette lyden)

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! lydkonvertering! autoaudiosink

Du bør høre lyden til programmet du har valgt igjen.

Flott! Nå er det på tide å gå til de siste kommandolinjene. Her er kommandolinjene for to høyttalere med lyden som spilles av PC -en.

På hver høyttaler:

$ 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, nyttelast = (int) 96 '! rtpL16betaling! lydkonvertering! autoaudiosink

På PC -en:

$ gst-launch-1.0 pulsesrc device = multiHP.monitor! lydkonvertering! lyd/x-raw, format = "(streng) S16BE", layout = "(streng) sammenflettet", kanaler = 2, rate = 44100! rtpL16pay! tee navn = t t. ! kø! udpsink host =%addrpi1 port = 5000 t. ! kø! udpsink host =%addrpi2 port = 5000 t. ! kø! lydkonvertering! autoaudiosink

Trinn 3: Konklusjon

Dette instruerbare er bare det første trinnet til et komplett prosjekt. Det var bare for å forklare prinsippet. Nå kan du automatisere ved å lage et skript på Raspberry Pi -støvelen og på PC -en. Du kan tilpasse GStreamer -kommandoen avhengig av ditt behov. Jeg personlig endret min forrige instruerbare (BRAND NEW OLD RADIO) for å bruke den som høyttaler. Det er uendelig mange ting å gjøre for å forbedre dette lydsystemet med flere rom. Spesielt er ikke alle høyttalerne synkronisert, så du har litt variasjon når du bytter fra et rom til et annet.

Jeg håper at du vil prøve å forbedre dette instruerbare.

Ikke nøl med å stille spørsmål hvis du trenger detaljer.

Bra tinker!

Anbefalt: