Vorstellung Multiroomaudio mit LMS - Player piCore, Squeezebox Android, Windows und Amazon Music Wiedergabe

  • Hallo,

    anbei möchte ich nach und nach mein Setup für Multiroom Audio vorstellen, nachdem ich hier im Forenchat darauf hingewiesen worden bin.

    Ich nutze eigentlich überall Kodi, aber bin mit den Musikfähigkeiten nie warm geworden. Der Ausgangspunkt ist also ein Ubuntu-Server im Keller, eine Android MiBox im Wohnzimmer mit externen DAC, sowie in der Küche ein RPi2 per Volumio. Windows Systeme haben auch Kodi.

    Als erstes habe ich LMS auf meinem Server mittels Docker installiert, um eine zentrale Möglichkeit zu haben. Hierzu nutze ich docker-compose


    Als Besonderheit leite ich über die Devices die Soundkarte in das Docker rein, und fahre das Netzwerk im Hostmodus, damit UPNP funktioniert.


    Damit läuft LMS erstmal und ich habe meine Musik als Readonly eingetragen.

    Hiermit sehe ich sogar die Kodigeräte per UPNP, leider klang das super asynchron.


    Android-Tv
    Für das Wohnzimmer nutze ich die Android App SB-Player SB Player – Apps bei Google Play
    Das kann im Autostart mit Android laufen und verbindet sich mit dem Server und kann vernünftig gesteuert werden. Lustigerweise kann ich sogar einen Film per Kodi/ Netflix schauen und überlagert Musik.

    Windows
    Auf den Windowssystemen funktioniert die App Squeezelite-X https://www.microsoft.com/store/productId/9PBHMTNP9037
    Nun sind auch alle Windows-Maschinen synchron, und können auch alle anderen Player steuern.

    Raspberry
    Nun zum Küchenradio. Wie gesagt nutze ich hier einen RPI2 mit USB Soundkarte. Bisher lief Volumio2 drauf, ich war nach dem Update auf v3 unzufrieden. Viele Updates sind noch nicht migriert und der Start dauert über eine Minute (bis Ton kommt). Man kann zwar GPIO und Squeezebox selbst aus v2 reinbasteln, es läuft aber nicht gut.

    Also bin ich zu piCore Player gewechselt. Installiert und funktioniert.

    Zur Steuerung des Players nutze ich 4 GPIO Taster, für vor/zurück/lauter/leiser
    Und so kann man diese auch verwenden.

    Wir brauchen die Module python3.8-rpi-gpio.tcz und python3.8
    Diese können über LMS in den Playereinstellungen installiert werden, oder per SSH.

    Ich habe folgende Datei unter /home/tc/button.py angelegt und ausführbar gemacht.


    In den Einstellungen des piCore muss diese in den Nutzerspezifischen Starteinstellungen mit /home/tc/button.py eingetragen werden.


    Optional: Amazon Music auf LMS

    Nun wollte ich noch die Möglichkeit Amazon Musik auf den Geräten wiederzugeben. Leider gibt es hier nur einen Alexaskill für 5€ monatlich (will ich nicht zahlen).
    Also habe ich die Soundkarte des Servers in das Docker gemappt.

    In meiner Grabbelkiste befanden sich noch folgende Dinge:

    Soundkarte TERRATEC AUREON XFIRE 8.0 HD PC Soundkarte extern 8-Kanal USB Soundbox – optischer Tos-Link Ein-Ausgang - für bis zu 8 Lautsprecher - analoge und Digitale Audiogeräte – Windows u. Mac: Amazon.de: Elektronik & Foto [Anzeige]

    Chromecast Ultra aus einem Stadia Deal

    HDMI Audio extractor: HDMI 2.0 Audio Extractor 4K 60Hz PS5 1080P 120Hz 4:4:4 HDCP 2.2 18 Gbit/s D-olby Vision HDR DE-Embed SPDIF Optical 5.1CH 3.5mm Stereo L/R Audio Breakout Digital Audio EDID Management, Scaler 4k 1080P : Amazon.de: Elektronik & Foto [Anzeige]


    Alle Geräte werden über USB des Servers gespeist. Der Chromecast kommt in den Audioextraktor und dann geht es per SPDIF optisch in die Soundkarte. Es ist wichtig eine Soundkarte mit digitalen Eingang zu verwenden. Per Klinke klang es schrecklich.
    Die Soundkarte kann über das wavin Plugin des LMS an alle Lautsprecher verteilt werden.

    Hierzu muss nur ein Favorit angelegt werden mit folgendem Inhalt:


    Code
    wavin:plughw:CARD=HD,DEV=1


    Das ist der Soundeingang der Karte, die über aplay -L ermittelt werden.

    Ob das ganze funktioniert, lässt sich über


    docker exec -ti lms alsamixer

    ermitteln (lms heißt der LMS Docker bei mir).


    Nun kann ich von jedem Handy den Sound zum Chromecast schicken und habe synchrones Amazon Audio (kostenfrei ;) ). Die Player müssen dann nur den Favoriten abspielen.

    Haupsysteme: Server: Asrock N3160ITX, Ubuntu 24.04, TvH /// DVBSky 952 /// Wohnzimmer: Nvidia Shield Pro 2019
    Nebensysteme 1: Telestar Digibit R1 mit sat-axe25 /// Wohnzimmer: Asrock N3700, Libreelec 12 /// TvH @RPI4 Server /// Gästezimmer: Corelec 2 Tanix TX3
    Nebensysteme 2: Server: Asrock N3455M, OpenMediaVault7, TvH, Telestar Digibit R1 /// 4 Clients: Coreelec S905X

    7 Mal editiert, zuletzt von tavoc (20. Januar 2022 um 14:01)

  • Alte Hardware: Squeezebox 2 und Squeezebox Receiver

    Aus einem anderen Fundus habe ich noch eine alte Squeezebox2 gefunden, die sich direkt nach Eingabe der ServerIP verbinden lässt.
    Schwieriger ist es mit einem Squeezebox Receiver, insbesondere wenn man die Fernbedienung nicht hat. Hier gibt es eine alternative Möglichkeit das Gerät einzurichten.

    Dazu braucht man das Paket robinbowes/net-udap: Net::UDAP is a Perl module to configure the Logitech SqueezeBox Receiver (SBR) from a PC, i.e. without requiring a SqueezeBox Controller (SBC) (github.com)

    Das einmal auf Linux/Windows runterladen. Ich habe es auf Linux gemacht, weil bei mir Perl vorhanden ist.

    Das Skript mit der IP des Servers/der Maschine aufrufen:

    Code
    cd /path/to/net-udap
    ./scripts/udap_shell.pl -a 192.168.9.100


    Dann 5 Sekunden den Button des Receivers drücken, sodass dieser rot leuchtet.

    in der Shell dann

    Code
    UDAP> discover
    
    
    info: *** Broadcasting adv_discovery message to MAC address 00:00:00:00:00:00 on 255.255.255.255
    info:   adv_discovery response received from 123456
    info: *** Broadcasting get_ip message to MAC address 123456 on 255.255.255.255
    info:   get_ip response received from 123456
    info: *** Broadcasting get_data message to MAC address 123456 on 255.255.255.255
    info:   get_data response received from 123456
    Code
    UDAP> list
    
    
    
    
     #    MAC Address    Type       Status
    == ================= ========== ===============
     1 12345 squeezebox init
    Code
    UDAP [1] (squeezebox 123456)> reset


    Dies muss man jedes Mal wiederholen, wenn man sein Netzwerk ändert.

    Haupsysteme: Server: Asrock N3160ITX, Ubuntu 24.04, TvH /// DVBSky 952 /// Wohnzimmer: Nvidia Shield Pro 2019
    Nebensysteme 1: Telestar Digibit R1 mit sat-axe25 /// Wohnzimmer: Asrock N3700, Libreelec 12 /// TvH @RPI4 Server /// Gästezimmer: Corelec 2 Tanix TX3
    Nebensysteme 2: Server: Asrock N3455M, OpenMediaVault7, TvH, Telestar Digibit R1 /// 4 Clients: Coreelec S905X

    Einmal editiert, zuletzt von tavoc (20. Januar 2022 um 10:56)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!