Ankündigung

Einklappen
Keine Ankündigung bisher.

8-Kanal Multiroom Audio Controller+Verstärker auf piCorePlayer Basis

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Zitat von blaum Beitrag anzeigen
    ich würde gerne mehr als eine (Logilink) Soundkarte an einem Raspberry (mit piCorePlayer 7) betreiben.
    Hat das schon jemand gemacht? Ich schätze, es muss etwas getan werden, um die Reihenfolge der USB-Boxen fest zu machen...
    Einmal schreib ich's noch.Mit MusicServer4Home (music-server.net) ist dies einfach möglich... Die Squeezeclients können mittels WebGUI erstellt werden.

    Kommentar


      Hat jemand mal für mich aktuelle Bezugsquellen für die Komponenten.
      Das wäre super lieb...

      Kommentar


        Zitat von blaum Beitrag anzeigen
        Ich schätze, es muss etwas getan werden, um die Reihenfolge der USB-Boxen fest zu machen...
        Zitat von tomster2 Beitrag anzeigen
        Ja, hat jemand. Durchsuche einfach Mal diesen Thread.
        Ich habe tatsächlich den kompletten Thread durchgeackert. Es gibt einige alsa configs mit mehreren Soundkarten - aber das übergeordnete Problem, dass die Reihenfolge der Karten, auf die in der alsa.conf referenziert wird, prinzipiell beliebig sein kann, habe ich leider keine Antwort gefunden. Anscheinend ist die Reihenfolge mit dem piCorePlayer (zufällig?) immer konstant.

        Kommentar


          Ich steck zwar alles andere als im Detail in der ALSA-Konfig, aber letztendlich machst du in der asound.conf doch genau das. Du definierst mit card und device die jeweilige Soundkarte, respektive deren "Hardwareadresse". Zumindest solang Du die Soundkarten nicht dauernd umsteckst, bleibt die Reihenfolge doch gleich.

          --edit wegen nomml nachgedacht--
          Wenn die Karten an einem USB-Hub angeschlossen sind (oder umgesteckt werden), kann das natürlich anders ausschauen. Da wechseln die Zuweisungen schon gerne Mal. Ich hatte das in einem anderen Fall (vor Jahren) über eine "feste" Zuweisung der tty-devices mittels udev-Rules gemacht. Keine Ahnung, ob das auf tinycore linux auch geht (oder in konkretem Fall hilft). Ich vermute aber schon.
          So in etwa:
          https://www.meintechblog.de/2020/09/...en-ansprechen/

          --edit vom edit--
          Anscheined adressiert ALSA dieses Problem wohl selbst:
          Module ordering problems


          It may be that the sound card order is wrong after booting, but running (as root)

          /etc/init.d/alsasound restart
          or

          /sbin/alsa force-reload
          gives the wanted card order.

          This can happen because udev is loading some sound driver before alsasound, and alsasound gets confused. A restart will first unload all the sound modules and when restarting, alsasound will work as expected.
          Quelle: https://alsa.opensrc.org/MultipleCar....conf_and_udev

          Von daher vermute ich, dass picoreplayer beim Start genau DAS macht. Einfach ALSA am Ende des Bootvorgangs neu zu starten.
          Zuletzt geändert von tomster2; 29.06.2021, 13:20.

          Kommentar


            Hallo alle zusammen

            So Teile sind bestellt und dann kann es losgehen ans Nachbauen. Hat jemand von euch vielleicht ein Bestückungsplan für die Platine ? Wo ich mich etwas dran halten kann ? Sprich wo der Kondensator hinkommt. Wie habt ihr diese gestaltet ?

            Gruß
            Marhal

            Kommentar


              Hallo zusammen,

              mein Setup läuft seit längerem absolut stabil und zuverlässig. Auch die kürzliche Erweiterung um eine zweite Soundkarte um 10 Lautsprecher bedienen zu können, hat problemlos geklappt.

              Aber, wie ich festgestellt habe, füllen die durch rc.local gestarteten Skripts kontinuierlich meine Logging-Dateien auf bis der Speicherplatz meiner SD-Karte des Raspberry vollständig gefüllt ist.

              Meine rc.local Datei schaut folgendermaßen aus:
              Code:
              #!/bin/sh -e
              #
              # This script is executed at the end of each multiuser runlevel.
              # Make sure that the script will "exit 0" on success or any other
              # value on error.
              
              FLAG="/opt/afterfirstboot.lock"
              FIRSTBOOT="/boot/first-boot.sh"
              
              # Only executed after first boot
              if [ ! -f "$FLAG" ]; then
              echo "[openHABian] Flag file 'afterfirstboot.lock' not found, continuing with '$FIRSTBOOT' script."
              if [ ! -f "$FIRSTBOOT" ]; then "[openHABian] 'first-boot.sh' not found, Exiting."; exit 0; fi
              if (/bin/bash "$FIRSTBOOT"); then
              echo "[openHABian] Finishing up... "
              echo "[openHABian] Created after first boot script succeeded (see /etc/rc.local). Do not delete." > "$FLAG"
              else
              echo "[openHABian] Script '$FIRSTBOOT' failed."
              fi
              fi
              (/bin/sleep 15 && sudo systemctl start knxd)
              (sudo systemctl stop openhab)
              (/bin/sleep 90 && sudo mount 192.168.178.25:/ /mnt/nas)
              (/bin/sleep 100 && sudo systemctl start knxd)
              (squeezelite -n "Hobbyraum" -o stereofront2 -a 80:::0: -m ab:cd:ef:12:34:60 -z)
              (squeezelite -n "Küche" -o stereosurround2 -a 80:::0: -m ab:cd:ef:12:34:61 -z)
              (squeezelite -n "Bad EG" -o monocenterr2 -a 80:::0: -m ab:cd:ef:12:34:62 -z)
              (squeezelite -n "Bad DG" -o monocenterl2 -a 80:::0: -m ab:cd:ef:12:34:63 -z)
              (squeezelite -n "Garage" -o stereoback2 -a 80:::0: -m ab:cd:ef:12:34:64 -z)
              (squeezelite -n "Fitness" -o stereofront1 -a 80:::0: -m ab:cd:ef:12:34:65 -z)
              (sudo /home/tc/muting_power.sh)
              exit 0
              Im Detail füllt das muting_power.sh Skript sowohl "boot.log" auf als auch "syslog", bspw. mit folgenden Loggings:
              Code:
              $
              [ 282.501908] rc.local[657]: + [ 1 = 0 ]
              Stopped ab:cd:ef:12:34:61. Mute GPIO10. . Count: 1
              [ 282.503582] rc.local[657]: + [ 0 -ge 3 ]
              [ 282.514338] rc.local[657]: + COUNT1=1
              [ 282.515837] rc.local[657]: + echo Stopped ab:cd:ef:12:34:60 or ab:cd:ef:12:34:65. Mute GPIO9. . Count: 1
              [ 282.519399] rc.local[657]: + echo ab:cd:ef:12:34:61 status 0 0
              [ 282.521009] rc.local[657]: + echo exit
              [ 282.526613] rc.local[657]: + nc 192.168.178.25 9090
              [ 282.528257] rc.local[657]: + RESULT=ab%3Acd%3Aef%3A12%3A34%3A61 status 0 0 player_name%3AK%C3%BCche player_connec$
              [ 282.530332] rc.local[657]: + + echo ab%3Acd%3Aef%3A12%3A34%3A61 status 0 0 player_name%3AK%C3%BCche player_connec$
              [ 282.533546] rc.local[657]: playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A0 playlist_cur_index%3A0 playli$
              [ 282.535575] rc.local[657]: + [ 1 = 0 ]
              [ 282.537345] rc.local[657]: + [ 0 -ge 3 ]
              [ 282.539227] rc.local[657]: + COUNT2=1
              [ 282.540589] rc.local[657]: + echo Stopped ab:cd:ef:12:34:61. Mute GPIO10. . Count: 1
              [ 282.542285] rc.local[657]: + echo ab:cd:ef:12:34:62 status 0 0
              [ 282.544530] rc.local[657]: + echo exit
              Stopped ab:cd:ef:12:34:62 or ab:cd:ef:12:34:63. Mute GPIO11. . Count: 1
              [ 282.546525] rc.local[657]: + nc 192.168.178.25 9090
              [ 282.554855] rc.local[657]: + RESULT=ab%3Acd%3Aef%3A12%3A34%3A62 status 0 0 player_name%3ABad%20EG player_connecte$
              [ 282.558283] rc.local[657]: + + echo ab%3Acd%3Aef%3A12%3A34%3A62grep status mode%3Aplay 0
              [ 282.562666] rc.local[657]: 0 player_name%3ABad%20EG player_connected%3A1 player_ip%3A192.168.178.44%3A48876 powe$
              [ 282.564523] rc.local[657]: + [ 1 = 1 ]
              Stopped ab:cd:ef:12:34:64. Mute GPIO25. . Count: 1
              All players stopped. Count power off: 1
              KNXD füllt dahingegen "daemon.log" auf:
              Code:
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 0 [18:C.tpuarts/log 0.006] Start
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 0 [20:C.tpuarts/log 0.006] Start
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 0 [19:C.tpuarts/TPU_ser 0.007] Opened /dev/ttyAMA0 with baud 19200
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 2 [19:C.tpuarts/TPU_ser 0.007] Opened
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 2 [19:C.tpuarts/TPU_ser 0.007] Buffer Setup on fd 4
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 0 [20:C.tpuarts/log 0.007] Started
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 8 [17:C.tpuarts/LowF 0.007] state: new > start
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 0 [17:C.tpuarts/LowF 0.007] SendReset 01
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 0 [20:C.tpuarts/log 0.007] Send(001): 01
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 4 [15:C.tpuarts/Conn 0.007] >up
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 3 [12:B.unix/local 0.007] Start: cfg:B.unix
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 5 [12:B.unix/local 0.007] down => >up
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 8 [12:B.unix/local 0.007] OpenLocalSocket /tmp/knx
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 8 [12:B.unix/local 0.008] LocalSocket opened
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 5 [12:B.unix/local 0.008] >up => up
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 4 [12:B.unix/local 0.008] up
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 5 [12:B.unix/local 0.008] Started
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 4 [12:B.unix/local 0.008] up
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 3 [ 9:A.tcp/inet 0.008] Start: cfg:A.tcp
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 5 [ 9:A.tcp/inet 0.008] down => >up
              Sep 29 17:17:10 openHABianPi knxd[646]: Layer 8 [ 9:A.tcp/inet 0.008] OpenInetSocket 6720
              Hat jemand eine Idee wo dieses Logging aktiviert sein könnte bzw. wie es sich deaktivieren lässt?


              Kommentar


                Zitat von marhal Beitrag anzeigen
                Hallo alle zusammen

                So Teile sind bestellt und dann kann es losgehen ans Nachbauen. Hat jemand von euch vielleicht ein Bestückungsplan für die Platine ? Wo ich mich etwas dran halten kann ? Sprich wo der Kondensator hinkommt. Wie habt ihr diese gestaltet ?

                Gruß
                Marhal
                Hi

                hast Du eventuell eine Teileliste ?

                Kommentar


                  Guten Morgen zusammen,

                  ich habe diesen Thread schon sicher 2 Jahre in meinen Favoriten und jetzt kommt es so langsam in die Richtung einer Umsetzung. Vielen Dank für die vielen Infos!!
                  Ich hätte dennoch 2 Fragen:
                  • Ich möchte das ganze nicht mit einem Pi sondern einem Container unter Proxmox umsetzen. USB Soundkarte durchreichen und Squeezelite Instanzen anlegen sollte hier nicht das Problem sein. Wie kann ich allerdings die Mute-Schaltung umsetzen? Könnte man das auch mit einem Aktor lösen?
                  • Wir nutzen im offenen Küchenbereich sehr oft einen Echo um über Amazon Musik zu hören. Wie wird das in diesem Setup eingebunden bzw. hat das jemand am laufen.
                    Ich dachte an den Input eines Echo Dot über Klinke an den Mic Eingang der Soundkarte. Dann bin ich über das Waveinput Plugin des LMS gestolpert. Wenn das funktioniert, müsste allerdings der Player das Waveplugin "Track" dauerhaft spielen, egal ob der Echo gerade eine Ausgabe hat oder nicht?
                  Bin für Hinweise offen.

                  Kommentar


                    Zitat von znaeb Beitrag anzeigen
                    [*]Ich möchte das ganze nicht mit einem Pi sondern einem Container unter Proxmox umsetzen. USB Soundkarte durchreichen und Squeezelite Instanzen anlegen sollte hier nicht das Problem sein. Wie kann ich allerdings die Mute-Schaltung umsetzen? Könnte man das auch mit einem Aktor lösen?
                    Klar könnte das auch über einen Aktor erfolgen, allerdings ist dann zusätzliche Logik erforderlich bzw. muss der Aktor ja irgendwo her den Schaltbefehl erhalten wenn eine Verstärkereinheit an- oder abgeschaltet werden soll. Technisch ist das gar nicht zwingend notwendig, aus Stromspargründen aber zu empfehlen.

                    Gruß -mfd-
                    KNX-UF-IconSet since 2011

                    Kommentar


                      Zitat von znaeb Beitrag anzeigen
                      Guten Morgen zusammen,

                      ich habe diesen Thread schon sicher 2 Jahre in meinen Favoriten und jetzt kommt es so langsam in die Richtung einer Umsetzung. Vielen Dank für die vielen Infos!!
                      Ich hätte dennoch 2 Fragen:
                      • Ich möchte das ganze nicht mit einem Pi sondern einem Container unter Proxmox umsetzen. USB Soundkarte durchreichen und Squeezelite Instanzen anlegen sollte hier nicht das Problem sein. Wie kann ich allerdings die Mute-Schaltung umsetzen? Könnte man das auch mit einem Aktor lösen?
                      • Wir nutzen im offenen Küchenbereich sehr oft einen Echo um über Amazon Musik zu hören. Wie wird das in diesem Setup eingebunden bzw. hat das jemand am laufen.
                      • ich habe das so ähnlich am laufen bei mir, allerdings habe ich das mit MPD realisiert:
                        - Virtualisierung: XCP-ng (open soruce XenServer)
                        - VM als Medienzentrale mit durchgereichter 8-Kanal USB-Soundkarte
                        - Soundkarte ist in 4x2 Kanäle aufgeteilt für bis zu 4 Zimmer (natürlich beliebig erweiterbar)
                        - Jedes Zimmer hat einen Verstärker, der an einem Aktor hängt -> Edomi-logik über MPD-client-Erweiterung ist dafür natürlich notwendig -> wird ein Zimmer ausgewählt, schaltet der Aktor den Verstärker ein
                        - es gehen natürlich auch alle Zimmer parallel
                        - Ist auch kein Zimmer mehr aktiv, wird der MPD-client abgeschaltet
                        - in MPD sind aktuell eingebunden: lokale Musikdatenbank, webradio
                        - die wichtigesten features sind dabei direkt in edomi realisiert (Lautstärke, Zimmerauswahl, Start, Stop, Vor, Zurück, cover, etc.), den Rest öffne ich bei Bedarf über eine eingebundene website und "MYMPD"


                        Zitat von znaeb Beitrag anzeigen

                        Ich dachte an den Input eines Echo Dot über Klinke an den Mic Eingang der Soundkarte. Dann bin ich über das Waveinput Plugin des LMS gestolpert. Wenn das funktioniert, müsste allerdings der Player das Waveplugin "Track" dauerhaft spielen, egal ob der Echo gerade eine Ausgabe hat oder nicht?

                      Die Einbindung von amazon echo könnte dabei über das "upmpdcli" erfolgen, damit ist es möglich UPNP input beim MPD server zu realisieren.

                      Airplay -> upmpdcli -> mpd-server -> abspielen im gewünschten Zimmer

                      Habe ich schon mal erfolgreich getestet. Allerdings gibt es das Problem, dass es dabei zu einer gewissen Latenz kommt, was dem UPNP geschuldet ist. Das ist für mich aber nicht ok, somit habe ich das nicht weiter verfolgt. Mangels Zeit habe ich mich hier auch noch nicht weiter drum gekümmert. Der Rest läuft super stabil.

                      Kommentar


                        Genau, so wie du das mit EDOMI beschreibst, hätte ich mir das auch gedacht. In Pseudocode so irgendwie. Beliebig komplexer.
                        Code:
                        If playing
                            set on
                          Else
                            set off
                        end
                        Und dann muten oder ganz an/aus? Ploppt das dann?

                        Ich hätte schon echt große Lust so ein Setup nachzubauen. Aber die Integration von Amazon music ist bei unserem Usecase Zuhause ein KO-Kriterium.
                        In dem Fall hilft nur eine echte Audio-Matrix. Oder gibt es ein anderes Bauteil, das 2 Audiosignale ferngesteuert umschalten kann?

                        Kommentar


                          Über Edomi, das MPD_plugin und mympd-api-call lässt sich bei mir alles abfragen / schalten / visualisieren. Man muss ja nicht nur denn Aktor anwählen, sondern muss dem mpd-client auch sagen, er möge auf der soundkarte jetzt diesen Kanal "aktiv" schalten. Das geht aber ganz einfach per shell-skript, da ist der mpd-client wirklich super stabil zu betreiben. Man kann bei jedem Schaltvorgang in edomi bzw. beim Start von edomi die Stati abfragen und das dann über die Edomi-Logik abbilden. In dem Fall mit einem Amazon-Echo würde ich mal einen http-input-stream (digitale Variante) oder wie oben beschrieben, den Mikrofoneingang, nutzen. Hab ich aber tatsächlich noch nie ausprobiert.

                          Knacken/ploppen tut bei mir natürlich nix, weil bei mir die "Bastellösung" nur auf der softwareseite liegt. Als hardware verwende eine ich eine echte Audio-Matrix mit recht günstiges PA-euqipment (weil kompatibel zum 19" Schaltschrankformat) mit softstart-Funktion -> damit es eben nicht knackt. Ein Abwählen des Zimmers in Edomi bewirkt zum einen das softwareseitige Deaktivieren des Soundkanals und parallel ein richtiges Abschalten der Endstufe.

                          Natürlich kostet das ganz mehr als eine Bastellösung, aber wenn mir da mal was abraucht, dann eben Endstufe raus und neue Endstufe rein und weiter geht's. Alles was es im KNX-Bereich für multiroom gibt, kostet um ein Vielfaches mehr.

                          Kommentar


                            echte Audio-Matrix mit recht günstiges PA-euqipment
                            Welche Geräte stecken bei dir konkret denn im Schrank?

                            Kommentar


                              Als USB-Soundkarte verwende ich diese hier, aufgeteilt auf 4x2 Stereo-Kanäle:
                              Renkforce RF-4355800 7.1 Soundkarte

                              Als Verstärker ist es dieses Modell, 1x pro Raum:
                              the t.amp S-75 MK II Endstufe

                              Dazu braucht es dann noch das entsprechende Audio-Kabel:
                              Mini-Klinke-Stereo auf 2x6,3mm Klinke

                              Alternativ wurde mir in einer längeren Diskussion auch dieser hier empfohlen:
                              the t.amp E400 Stereo-Endstufe

                              Hat aus meiner Sicht aber den Nachteil, dass dieser einen aktiven Lüfter hat. Da ich nicht so viel Leistung brauche und die kleinen multiroom-Lautsprecher sowieso nur als Hintergrundbeschallung taugen/verwendet werden, ist die Endstufe bei mir mehr als ausreichend. Die "audiophilen Qualitätsprobleme" liegen hier nicht an der Endstufe sondern an den kleinen Wandlautsprechern.

                              Die USB-Soundkarte ist aktuell eher aus der Not gebohren, mir wäre eine PCIe-Variante eigentlich lieber, da diese verschiedene Vorteile innerhalb der VM hätte, aber ich hab nichts vernünftiges für Linux gefunden, die auch preislich ok wäre. Das ist ggf. noch nicht final und würde ich ändern, wenn ich was besseres finde. Andererseits für die Wandlautsprecher auch vollkommen ausreichend.

                              Kommentar


                                Vorsicht die t.amps rauschen alle samt, und der Stromverbrauch ist auch nicht zu unterschätzen...

                                Etwas besser sollen die Monacor sein, hab ich selbst aber noch nicht verbaut...
                                Wenn es dann wirklich gut werden soll, wäre eineCrown CT 875 noch eine alternative

                                Kommentar

                                Lädt...
                                X