Inhoudsopgave:

Dezelfde muziek afspelen in meerdere kamers: 3 stappen
Dezelfde muziek afspelen in meerdere kamers: 3 stappen

Video: Dezelfde muziek afspelen in meerdere kamers: 3 stappen

Video: Dezelfde muziek afspelen in meerdere kamers: 3 stappen
Video: “DANSEN” 🎧 - Luan Bellinga [OFFiCiAL MUSiC ViDEO] 2024, Juli-
Anonim
Speel dezelfde muziek in meerdere kamers
Speel dezelfde muziek in meerdere kamers

Hallo iedereen, Ik weet niet hoe het met jullie zit, maar ik vind het leuk om overal in mijn appartement dezelfde muziek te hebben zonder het geluid te hard te zetten. Dus na een beetje onderzoek naar dit probleem, besloot ik om verschillende luidsprekers te bouwen die allemaal via wifi zijn verbonden met dezelfde muziekserver om dezelfde muziek tegelijkertijd af te spelen in verschillende kamers en met name in de badkamer.

Het systeem is gebaseerd op de GStreamer-technologie die de basis is van geweldige software zoals VLC en op een luidspreker met wifi-mogelijkheid met behulp van een Raspberry Pi.

Stap 1: Een luidspreker bouwen voor de badkamer

Een luidspreker bouwen voor de badkamer
Een luidspreker bouwen voor de badkamer
Een luidspreker bouwen voor de badkamer
Een luidspreker bouwen voor de badkamer
Een luidspreker voor de badkamer bouwen
Een luidspreker voor de badkamer bouwen

Onderdelen lijst:

  • een badkamerbestendige luidspreker
  • een 2W versterker (werkend op 12v)
  • een Raspberry Pi Zero (werkend op 5v)
  • een Pimoroni Phat DAC
  • een SD-kaart
  • een AAN/UIT-knop
  • een 12v voedingsadapter + een compatibele stekker
  • een DC/DC step-down (12v->5v)
  • een elektriciteitskast
  • sommige kabels

De constructie is vrij eenvoudig.

Volg aan de elektronische kant dit ASCII-diagram.

  • DC-stekker AAN/UIT-knop versterker
  • AAN/UIT-knop DC/DC step-down Raspberry Pi
  • Raspberry Pi Phat DAC-versterkerluidspreker

Aan de mechanische kant, snijd alle benodigde gaten in de elektriciteitskast, stop alles erin en dat is alles.

Met deze techniek kunt u alle soorten luidsprekers maken die u maar wilt.

Stap 2: De softwarekant

Alle software is gebaseerd op het open source multimedia framework, GStreamer. Ik heb alleen Linux gebruikt, maar het bestaat op verschillende besturingssystemen, dus ik kan me voorstellen dat alles kan worden aangepast voor andere besturingssystemen.

Om te beginnen moet je Raspbian Lite installeren op de Pi, de PHAT DAC en de GStreamer 1.0 met de "goede" plug-ins. Op de computer die als muziekserver wordt gebruikt, heb je dezelfde GStreamer nodig. Ik zal die onderdelen niet in detail beschrijven omdat anderen dit beter hebben gedaan dan ik. Het laatste dat nodig is, is dat de Pi en de muziekserver via kabel of wifi met hetzelfde netwerk verbonden moeten zijn.

Om te testen of GStreamer correct is geïnstalleerd, kunt u deze opdrachtregels gebruiken.

Op de luidspreker:

$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, kanalen=(int)1, lading=(int)96' ! rtpL16depay ! audio converteren! autoaudiosink

Op de pc:

$gst-launch-1.0 audiotestsrc ! audio converteren! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100 ! rtpL16betalen ! udpsink host=RASPBERRYPI_IP-poort=5000

Nadat je het goede IP-adres hebt ingevoerd in plaats van "RASPBERRYPI_IP", zou je een sinusvormig geluid op de luidspreker moeten horen. Dat is niet iets wat je lang wilt horen, dus zet het volume niet te hard.

Enige uitleg: de pc produceert het sinusoïdale geluid met behulp van "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=1, rate=44100" convert het geluid in het goede formaat dat wordt begrepen door "rtpL16pay" dat de audiopakketten maakt en tenslotte "udpsink" verzendt de pakketten met behulp van het UDP-protocol. Op de luidspreker is het hetzelfde, maar omgekeerd, "udpsrc" herstelt de audiostroom, "rtpL16depay" de-packets en "audioconvert ! autoaudiosink" converteert het geluid naar het formaat van de automatische geluidskaart en speelt het natuurlijk af.

Dus nu de basisdingen werken, is het tijd om verder te gaan. Het doel is om het geluid van een applicatie te onderscheppen om deze door het netwerk te sturen.

- We maken een nep-output

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

- We verbinden een ingang met de nep-uitgang (stil de geselecteerde applicatie (ingang))

$pacmd list-sinks (outputlijst)

$pacmd list-sink-inputs (inputs lijst)

$pacmd move-sink-input %input %output (vervang %input en %output door een van de overeenkomstige lijsten)

- We zetten de geluidskaart op maximum

$pactl set-sink-volume 0 100%

- We testen op de pc de manier om de nep-uitvoer te herstellen (herstel het geluid)

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

U zou opnieuw het geluid moeten horen van de toepassing die u hebt geselecteerd.

Super goed! Nu is het tijd om voor de laatste opdrachtregels te gaan. Hier zijn de opdrachtregels in het geval van 2 luidsprekers waarbij het geluid ook door de pc wordt afgespeeld.

Op elke luidspreker:

$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, laadvermogen=(int)96' ! rtpL16depay ! audio converteren! autoaudiosink

Op de pc:

$gst-launch-1.0 pulsesrc device=multiHP.monitor ! audio converteren! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channels=2, rate=44100 ! rtpL16betalen ! tee naam=t t. ! rij ! udpsink host=%addrpi1 poort=5000 t. ! rij ! udpsink host=%addrpi2 poort=5000 t. ! rij ! audio converteren! autoaudiosink

Stap 3: Conclusie

Dit instructable is slechts de eerste stap naar een compleet project. Het was alleen om het principe uit te leggen. Nu kun je automatiseren door een script te maken op de Raspberry Pi-boot en op de pc. U kunt het GStreamer-commando aanpassen aan uw behoefte. Ik heb persoonlijk mijn vorige instructable (GLOEDNIEUWE OUDE RADIO) aangepast om het als luidspreker te gebruiken. Er is oneindig veel te doen om dit multiroom geluidssysteem te verbeteren. Met name zijn niet alle luidsprekers gesynchroniseerd, dus je hebt wat variatie als je van de ene kamer naar de andere gaat.

Ik hoop dat je dit instructable zult proberen en verbeteren.

Aarzel niet om vragen te stellen als u details nodig heeft.

Goede knutselaar!

Aanbevolen: