Inhaltsverzeichnis:

Spielen Sie dieselbe Musik in mehreren Räumen ab - Gunook
Spielen Sie dieselbe Musik in mehreren Räumen ab - Gunook

Video: Spielen Sie dieselbe Musik in mehreren Räumen ab - Gunook

Video: Spielen Sie dieselbe Musik in mehreren Räumen ab - Gunook
Video: Top 5 - Die besten Sonos Tipps 2024, Juli
Anonim
Spielen Sie dieselbe Musik in mehreren Räumen
Spielen Sie dieselbe Musik in mehreren Räumen

Hallo allerseits, Ich weiß nicht, wie es dir geht, aber ich mag es, in meiner ganzen Wohnung die gleiche Musik zu hören, ohne den Ton zu laut zu machen. Also habe ich mich nach einiger Recherche zu diesem Problem entschlossen, mehrere Lautsprecher zu konstruieren, die alle über WLAN mit demselben Musikserver verbunden sind, um in mehreren Räumen und insbesondere im Badezimmer die gleiche Musik gleichzeitig abzuspielen.

Das System basiert auf der GStreamer-Technologie, die die Basis einiger großartiger Software wie VLC ist, und auf einem Lautsprecher mit WLAN-Fähigkeit, der einen Raspberry Pi verwendet.

Schritt 1: Bauen Sie einen Lautsprecher für das Badezimmer

Einen Lautsprecher für das Badezimmer bauen
Einen Lautsprecher für das Badezimmer bauen
Einen Lautsprecher für das Badezimmer bauen
Einen Lautsprecher für das Badezimmer bauen
Einen Lautsprecher für das Badezimmer bauen
Einen Lautsprecher für das Badezimmer bauen

Stückliste:

  • ein badezimmertauglicher Lautsprecher
  • ein 2W-Verstärker (arbeitet an 12V)
  • ein Raspberry Pi Zero (arbeiten an 5v)
  • ein Pimoroni Phat DAC
  • eine SD-Karte
  • eine EIN/AUS-Taste
  • ein 12-V-Netzteil + ein kompatibler Stecker
  • ein DC/DC-Abwärtswandler (12V->5V)
  • ein Elektrokasten
  • einige Kabel

Der Aufbau ist ziemlich einfach.

Folgen Sie auf der elektronischen Seite diesem ASCII-Diagramm.

  • DC-Stecker EIN/AUS-Tastenverstärker
  • EIN/AUS-Taste DC/DC-Abwärtsschritt Raspberry Pi
  • Raspberry Pi Phat DAC Verstärkerlautsprecher

Auf der mechanischen Seite alle benötigten Löcher in den Schaltkasten schneiden, alles hineinstecken und das ist alles.

Mit dieser Technik können Sie alle Arten von Lautsprechern erstellen, die Sie möchten.

Schritt 2: Die Softwareseite

Die gesamte Softwareseite basiert auf dem Open-Source-Multimedia-Framework GStreamer. Ich habe nur Linux verwendet, aber es existiert auf verschiedenen Betriebssystemen, daher kann ich mir vorstellen, dass alles für andere Betriebssysteme angepasst werden kann.

Zunächst muss man Raspbian Lite auf dem Pi, dem PHAT DAC und dem GStreamer 1.0 mit den "guten" Plugins installieren. Auf dem als Musikserver verwendeten Computer benötigen Sie denselben GStreamer. Ich werde diese Teile nicht detailliert beschreiben, weil andere dies besser gemacht haben als ich. Als letztes müssen der Pi und der Musikserver per Kabel oder WLAN mit demselben Netzwerk verbunden sein.

Um zu testen, ob GStreamer korrekt installiert ist, können Sie diese Befehlszeilen verwenden.

Am Lautsprecher:

$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, Kanäle=(int)1, Nutzdaten=(int)96' ! rtpL16depay ! Audiokonvertieren! Autoaudiosink

Am PC:

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

Nachdem Sie die gute IP-Adresse anstelle von "RASPBERRYPI_IP" eingegeben haben, sollten Sie einen sinusförmigen Klang auf dem Lautsprecher hören. Das wird man lange Zeit nicht gerne hören, also stelle die Lautstärke nicht zu hoch ein.

Einige Erklärungen: Der PC erzeugt den sinusförmigen Klang mit "audiotestsrc", "audioconvert ! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", channel=1, rate=44100" convert der Ton im guten Format, das von "rtpL16pay" verstanden wird, das die Audiopakete erstellt und schließlich "udpsink" die Pakete mit dem UDP-Protokoll sendet. Auf dem Lautsprecher ist es das gleiche, aber invertiert, "udpsrc" stellt den Audiofluss wieder her, "rtpL16depay" entpackt und "audioconvert ! autoaudiosink" wandelt den Ton in das Format der automatischen Soundkarte um und spielt ihn natürlich ab.

Nun, da die grundlegenden Dinge funktionieren, ist es an der Zeit, weiter zu gehen. Ziel ist es, den Ton einer Anwendung abzufangen, um ihn über das Netzwerk zu senden.

- Wir erstellen eine gefälschte Ausgabe

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

- Wir verbinden einen Eingang mit dem gefälschten Ausgang (die ausgewählte Anwendung (Eingabe) zum Schweigen bringen)

$pacmd list-sinks (Ausgabeliste)

$pacmd list-sink-inputs (Eingabeliste)

$pacmd move-sink-input %input %output (ersetzen Sie %input und %output durch eine der entsprechenden Listen)

- Wir haben die Soundkarte auf Maximum gestellt

$pactl set-sink-volume 0 100%

- Wir testen auf dem PC, wie man die gefälschte Ausgabe wiederherstellen kann (den Ton wiederherstellen)

$gst-launch-1.0 pulsesrc device=multiHP.monitor ! Audiokonvertieren! Autoaudiosink

Sie sollten wieder den Ton der ausgewählten Anwendung hören.

Groß! Jetzt ist es Zeit für die letzten Befehlszeilen. Hier die Kommandozeilen bei 2 Lautsprechern mit dem auch vom PC abgespielten Ton.

Auf jedem Lautsprecher:

$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, Nutzlast=(int)96' ! rtpL16depay ! Audiokonvertieren! Autoaudiosink

Am PC:

$gst-launch-1.0 pulsesrc device=multiHP.monitor ! Audiokonvertieren! audio/x-raw, format="(string)S16BE", layout="(string)interleaved", Kanäle=2, rate=44100 ! rtpL16pay ! Teename=t t. ! Warteschlange ! udpsink-Host=%addrpi1-Port=5000 t. ! Warteschlange ! udpsink-Host=%addrpi2-Port=5000 t. ! Warteschlange ! Audiokonvertieren! Autoaudiosink

Schritt 3: Fazit

Dieses instructable ist nur der erste Schritt zu einem kompletten Projekt. Es sollte nur das Prinzip erklären. Jetzt können Sie automatisieren, indem Sie ein Skript auf dem Raspberry Pi-Boot und auf dem PC erstellen. Sie können den GStreamer-Befehl je nach Bedarf anpassen. Ich persönlich änderte mein vorheriges instructable (BRAND NEW OLD RADIO), um es als Lautsprecher zu verwenden. Es gibt unendlich viele Möglichkeiten, dieses Multiroom-Soundsystem zu verbessern. Insbesondere sind nicht alle Lautsprecher synchronisiert, sodass Sie beim Wechsel von einem Raum in einen anderen etwas Abwechslung haben.

Ich hoffe, dass Sie versuchen werden, dieses instructable zu verbessern.

Zögern Sie nicht, Fragen zu stellen, wenn Sie Details benötigen.

Guter Tüftler!

Empfohlen: