Ankündigung

Einklappen
Keine Ankündigung bisher.

WG (Linux Debian) als Multiroom-System (Code Sammlung)

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

    Zitat von mfd Beitrag anzeigen
    An welcher Stelle im System wird auf die verschiedenen Ausgänge das Signal geroutet?
    in der asound.conf
    in deinem Beispiel hast du mit "dmixer1" "dmixer2" etc. sozusagen virtuelle Soundausgabegeräte definiert. in den Settings dazu unter "bindings" die Kanäle aktiviert, die den Input ausgeben sollen.

    In der "mpd.conf" musst du diese in jeder mpd instanz ebenfalls als output definieren. Mit diversen clients kannst du dann zum testen die einzelnen outputs in der mpd.conf dann aktivieren oder deaktivieren. Innerhalb einer mpd instanz können aber alle outputs nur dieselbe quelle abspielen.

    Zitat von mfd Beitrag anzeigen
    Ich würde gerne einen Internetstream "..". ggf. auch zwei verschiedene Streams auf zwei Ausgänge.
    demnach musst du mehrere mpd instanzen anlegen. die könnten auch alle dieselben outputs in der mpd.conf haben, musst dann mit deinem clienten dann immer die ausschalten, die von der anderen instanz bespielt werden sollen.

    habe testweise den android-client "mpd Control" ausprobiert --> hier kannst du einfach einen Haken für jeden output setzen. relaxx-player hat das auch im "admin-menü".
    Wenn das funktioniert, kann es mit dem plugin weiter gehen.
    Da habe ich aber leider auch noch nicht den zusammenhang der zu setzenden variablen mit der asound.conf bzw. der mpd.conf verstanden.

    Evtl. kann vlamers da nochmal aufklären.

    Grüße!!

    PS: wie sieht die mpf.conf aus --> poste mal.

    Kommentar




      Da war wohl ein Brett vorm Kopf! Aber der Tipp mit der mpd.conf war schon richtig...
      Nachdem mpd Control nur einen Ausgang angezeigt hat habe ich es auch gemerkt - man sollte besser die richtige mpd.conf bzw. alle editieren (in meinem Fall mpd2.conf)! Nun funktionieren auch alle Outputs.

      Also wenn ich das soweit richtig verstehe, für zwei unterschiedliche Streams auf zwei verschiedene Outputs muss ich jeweils eine eigene MPD-Instanz einsetzen?
      Gibt es da eine elegante Lösung das in der CometVisu umzusetzen? Sonst müsste man ja für jede MPD-Instanz eine komplett eigene Senderliste anlegen?!

      Bei wie vielen Instanzen bzw. wie vielen gleichzeitig bespielten Outputs ist beim WG in etwa die Grenze?

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

      Kommentar


        Sorry
        war dienstlich unterwegs.

        Besser als Ziegelstein kann man es nicht in Kurzform erklären!

        Das Plugin dient nur dazu die mpd Instanzen zu steuern...

        Bei ein mir ist bei 3 (inkl 1 Parallelen Ansage über mpg123 ) Schluss mit ruckelfreier Wiedergabe. Mein WG hat aber auch noch ein paar andere Sachen zu tun.

        Gruß

        vlamers

        Kommentar


          Hi,
          Ich bin nun soweit dass ich versuche, dass Plugin zur MPD-Steuerung zum laufen zu bekommen - brauche aber hilfe.
          Bei mir läuft der mpd ja auf einem RPI; Relaxx-Player und Bedienung über einen Browser an einem anderen Rechner funktioniert soweit auch.

          Plugin läuft - aber es scheint so, als wenn die Befehle nicht auf dem PI ankommen.


          PHP-Code:
          ## mpd
          my $mpdname "mpd";        # the name of the mpd instance
          my $IP "192.168.178.24";    # The IP where the mpd Instanz is running
          my $Port "6600";        # Port of the mpd Instanz
          my $volume_anfang "30";     # This Volume will be set for mpd 


          zu den Variablen:
          # Alsa Sound

          my $Kanal = "Front"; # Channel of 7.1 soundcard
          my $Kanal2 = "Rear"; # Channel of the second speaker pair

          --> hier sind nicht die über das dmix plugin in der asound.conf gewälten kanäle gemeint?!
          sondern die, welche über die Info:

          PHP-Code:
          amixer -c1 sget Speaker,
          ergibt:
          PHP-Code:
          pi@raspberrypi ~ $ amixer -c1 sget Speaker,0
          Simple mixer control 
          'Speaker',0
            Capabilities
          pvolume pswitch pswitch-joined penum
            Playback channels
          Front Left Front Right Rear Left Rear Right Front Center Woofer Side Left Side Right
            Limits
          Playback 0 197
            Mono
          :
            
          Front LeftPlayback 158 [80%] [-7.32dB] [on]
            
          Front RightPlayback 158 [80%] [-7.32dB] [on]
            
          Rear LeftPlayback 158 [80%] [-7.32dB] [on]
            
          Rear RightPlayback 158 [80%] [-7.32dB] [on]
            
          Front CenterPlayback 158 [80%] [-7.32dB] [on]
            
          WooferPlayback 158 [80%] [-7.32dB] [on]
            
          Side LeftPlayback 158 [80%] [-7.32dB] [on]
            
          Side RightPlayback 158 [80%] [-7.32dB] [on
          ausgegeben werden. Wie passt das zusammen? Bzw. kann mir einer da den Zusammenhang zwischen dem alsa-mixer und Wirkung auf die gesplittete 7.1 Soundkarte erklären? Wäre mal interessant. Dann habe ich testweise verschiedene Playlisten mit je einem Stream angelegt (Liste1-4) ein wechsel funktioniert leider nicht.

          PHP-Code:
          Playlist my $playlist '9/3/11';    # the playlist number will be send here (value 1 - 255)
          my $pl;
          my $nummer;
          my @playlist;  
          push @playlist, {name=>"Liste1"nummer=>"1"};
          push @playlist, {name=>"Liste2"nummer=>"2"};
          push @playlist, {name=>"Liste3"nummer=>"3"};
          push @playlist, {name=>"Liste4"nummer=>"4"}; 
          Wird über diese Zeile ein Befehl an den MPD gesendet?:

          my $debug = `amixer -c $cardnum set $Speaker $Kanal $vol_alsa && amixer -c $cardnum set $Speaker $Kanal2 $volkanal2`;

          oder diese:
          my $debug = `MPD_PORT=$Port MPD_HOST=$IP mpc volume -$volumestep`;





          Danke vorab für Tipps!!
          Zuletzt geändert von Ziegelstein; 02.09.2015, 20:23.

          Kommentar


            Hi,

            habe in deinem Thread geantwortet

            Gruß

            Kommentar


              nun die zweite Instanz starten:
              Code:
              /etc/init.d/mpd2 start
              ich bin dem Tutorial gefolgt - leider habe ich aber kein Glück beim Starten der 2. MPD Instanz

              Hier die 1. Instanz - läuft
              HTML-Code:
              volumio@kueche:~$ sudo /etc/init.d/mpd status
              ● mpd.service - Music Player Daemon
                 Loaded: loaded (/lib/systemd/system/mpd.service; enabled)
                 Active: active (running) since Sun 2017-01-15 10:06:19 UTC; 40s ago
               Main PID: 968 (mpd)
                 CGroup: /system.slice/mpd.service
                         └─968 /usr/bin/mpd --no-daemon /etc/mpd.conf
              
              Jan 15 10:06:19 kueche systemd[1]: Started Music Player Daemon.
              Jan 15 10:06:19 kueche mpd[968]: zeroconf: No global port, disabling zeroconf
              Jan 15 10:06:20 kueche mpd[968]: client: [0] opened from ::ffff:127.0.0.1:39420
              Hint: Some lines were ellipsized, use -l to show in full.
              Hier die 2. Instanz - läuft nicht
              Code:
              volumio@kueche:~$ sudo /etc/init.d/mpd2 status
              ● mpd2.service - Music Player Daemon
                 Loaded: loaded (/lib/systemd/system/mpd2.service; enabled)
                 Active: failed (Result: start-limit) since Sun 2017-01-15 10:06:35 UTC; 4s ago
                Process: 1039 ExecStart=/usr/bin/mpd2 --no-daemon $MPDCONF (code=exited, status=1/FAILURE)
               Main PID: 1039 (code=exited, status=1/FAILURE)
              
              Jan 15 10:06:35 kueche systemd[1]: Unit mpd2.service entered failed state.
              Jan 15 10:06:35 kueche systemd[1]: mpd2.service holdoff time over, scheduli...t.
              Jan 15 10:06:35 kueche systemd[1]: Stopping Music Player Daemon...
              Jan 15 10:06:35 kueche systemd[1]: Starting Music Player Daemon...
              Jan 15 10:06:35 kueche systemd[1]: mpd2.service start request repeated too ...t.
              Jan 15 10:06:35 kueche systemd[1]: Failed to start Music Player Daemon.
              Jan 15 10:06:35 kueche systemd[1]: Unit mpd2.service entered failed state.
              Hint: Some lines were ellipsized, use -l to show in full.
              Wenn ich jedoch über die Shell den 2. MDP so starte, dann klappt es - ich kann mich mit einem Client verbinden

              sudo /usr/bin/mpd2 --stdout --no-daemon --verbose /etc/mpd2.conf

              Nur über den init.d klappt es nicht.
              Wo kann ich hier ansetzen um den Fehler zu lokalisieren?

              Gruß Erich

              P.S: es läuft nun - ich glaube es lag mitunter dass kein Logfolder vorhanden war - sonst wüßte ich nicht was ich verändert hätte

              P.P.S: leider kann ich jetzt aber von den 2 Instanzen nicht das gleiche Output device verwenden - gibt es hier einen Trick, damit 2 Instanzen eine gmeinsame Box haben können

              Code:
              Jan 15 11:36 : client: [1] process command "pause "0""
              Jan 15 11:36 : alsa_output: Failed to open "alsa" [alsa]: Failed to open ALSA device "hw:1,0": Device or resource busy
              Jan 15 11:36 : output: Failed to open audio output
              Zuletzt geändert von eriche; 15.01.2017, 12:40.

              Kommentar


                Zitat von eriche Beitrag anzeigen
                P.P.S: leider kann ich jetzt aber von den 2 Instanzen nicht das gleiche Output device verwenden - gibt es hier einen Trick, damit 2 Instanzen eine gmeinsame Box haben können
                Sofern mehrere Outputs korrekt definiert wurden sollte das an sich schon funktionieren.

                Mal überprüfen ob in der asound.conf alles stimmt. Hast du dein Setup mit oder ohne PulseAudio gemacht?
                Gruß -mfd-
                KNX-UF-IconSet since 2011

                Kommentar


                  Hallo Miteinander,

                  vielen Dank für das Tutorial. Es hat mir als Anfänger in Debian sehr geholfen. Mittlerweile bin ich soweit gekommen, dass die erste MPD-Instanz läuft (auch mit relaxx).
                  Schon das finde ich klasse.
                  Die zweite Instanz konnte ich bisher nicht zum laufen bringen. Ich habe wie im Tutorial beschrieben alle Änderungen in der mpd2.conf, init.d/mpd2, default/mpd2 usw. vorgenommen.
                  beim ausführen der 2. Instanz erhalte ich folgende Fehlermeldung:
                  PHP-Code:
                  root@wiregatexxx:/etc/default# mpd2
                  Failed to bind to '127.0.0.1:6600'Address already in use 
                  Er verwendet immer den Port in der mpd.conf anstatt den Port, welchen ich in der mpd2.conf angegeben habe.
                  Hat jemand eine Idee, was ich noch tun kann?

                  Beste Grüße
                  Marco

                  Kommentar


                    Hallo,
                    das ist jetzt schon ne geraume Zeit her.
                    Aber ich vermute mal, dass die zweite Instanz versucht den selben Port wie die erste zu verwenden.
                    In der config der zweiten Instanz müsstest du einen anderen Port wählen. Bei mir wars der 6601

                    Gruß

                    Volker

                    Kommentar


                      Danke Volkers,
                      dass du dich nach so langer Zeit immer noch um die Anwendung kümmerst.
                      Die Ports hatte ich unterschiedlich verteilt (MPD->6601; MPD2->6602). Obwohl es in der Konsole zu o.g. Fehlermeldung kommt, habe ich mal dein Plugin zum steuern der Ausgabe über Taster ausprobiert und siehe da: es funktioniert trotzdem. Es dauert lediglich ein bisschen lang (ca. 10 Sekunden) bis die Boxen die ersten Töne von sich geben. Da der Verstärker dauerhaft an ist, könnte dies am Internetstream des Radio liegen oder am restart des mpd, bin mir aber nicht sicher...

                      Beste Grüße
                      Marco

                      Kommentar


                        Hi Zusammen,

                        ich versuche mich seit ein paar Tagen auch an Spielerein mit Multiroom, dies scheint ja echt vielversprechend zu sein. Bin über das Hausautomationsbuch also von Stefan.H darauf gestoßen. Mich wundert etwas dass es um dieses Thema irgendwie ruhig geworden ist, als ob es schon eine Neuere bessere Alternative zum" MPD" gibt. Also ich meine nicht die kaufbaren Fertiglösungen ala "Russound" etc.


                        Zum Thema:

                        Ich habe auch 4 MPD Daemons laufen und scheinen auch zu funzen, kann Sie über Clients ansteuern etc.

                        Was mich nur wundert, dass alle logs immer nur in die mpd.log geschrieben werden. Ich habe aber in der Mpd1.conf / Mpd1.conf / Mpd2.conf / Mpd4.conf jeweils die eigene Logpfade definiert.

                        Ich werde noch Irre, ich habe schon das ganze Dateisystem abgesucht wo noch etwas definiert sein könnte, warum alles in die MPD.log geschrieben wird. grrrr.


                        Was mir auch aufgefallen ist, vielleicht hilft das bei der Fehlersuche:

                        Ich habe nur in der MPD.conf den MixerType auf "Software" gestellt. In den anderen MPDx.conf`s ist noch Hardware definiert und trotzdem wirkt es sich auf die anderen Instanzen aus, hääääää? Wie kann das sein?

                        Als ob die Infos aus MPD.conf irgenwo hingeschrieben werden und dann wieder auf die Daemons verteilt werden, so ließe sich das Phänomen auch mit den Logs`s erklären .

                        Kann mir jemand helfen, ich bin am verzweifeln.

                        Danke Euch.

                        Kommentar


                          solbald ich zuhausse bin, schicke ich mal noch die configfiles und paar systeminfos. Vielleicht bin ich schon sooo blind

                          Kommentar


                            Zitat von Mikemacer Beitrag anzeigen
                            Mich wundert etwas dass es um dieses Thema irgendwie ruhig geworden ist, als ob es schon eine Neuere bessere Alternative zum" MPD" gibt. Also ich meine nicht die kaufbaren Fertiglösungen ala "Russound" etc.
                            Besser nicht unbedingt - Alternativen, ja.
                            Beispiel hier (von mir):
                            8 Kanal Multiroom Audio auf piCorePlayer Basis

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

                            Kommentar


                              anbei, eine Übersicht der mpd.conf`s:

                              mpd.conf:

                              music_directory "/var/lib/mpd/music"
                              playlist_directory "/var/lib/mpd/playlists"
                              db_file "/var/lib/mpd/tag_cache"
                              log_file "/var/log/mpd/mpd.log"
                              pid_file "/run/mpd/pid"
                              state_file "/var/lib/mpd/state"
                              sticker_file "/var/lib/mpd/sticker.sql"
                              ################################################## #############################
                              user "mpd"
                              port "6600"
                              log_level "secure"

                              mpd1.conf:

                              music_directory "/var/lib/mpd/music"
                              playlist_directory "/var/lib/mpd/playlists"
                              db_file "/var/lib/mpd/tag_cache"
                              log_file "/var/log/mpd/mpd1.log"
                              pid_file "/run/mpd/mpd1.pid"
                              state_file "/var/lib/mpd/mpd1.state"
                              sticker_file "/var/lib/mpd/sticker.sql"
                              ################################################## #############################
                              user "root"
                              port "6601"
                              log_level "secure"


                              Auszug aus der mpd aus /etc/init.d/...

                              PATH=/sbin:/bin:/usr/sbin:/usr/bin
                              NAME=mpd
                              DESC="Music Player Daemon"
                              DAEMON=/usr/bin/mpd
                              MPDCONF=/etc/mpd.conf

                              Auszug aus der mpd.1 aus /etc/init.d/...


                              PATH=/sbin:/bin:/usr/sbin:/usr/bin
                              NAME=mpd1
                              DESC="Music Player Daemon 1"
                              DAEMON=/usr/bin/mpd1
                              MPDCONF=/etc/mpd1.conf


                              Zusatz: ich habe allen MPD mir bekannten Dateien und Ordner Vollzugriff (777) für alle gegeben um auszuschließen dass es irgendwie an den Rechten liegt.

                              Status MPD:


                              root@tinkerboard:~# sudo service mpd status
                              ● mpd.service - Music Player Daemon
                              Loaded: loaded (/lib/systemd/system/mpd.service; enabled; vendor preset: enabled)
                              Active: active (running) since Tue 2018-11-27 16:59:39 UTC; 28s ago
                              Docs: man:mpd(1)
                              man:mpd.conf(5)
                              file:///usr/share/doc/mpd/user-manual.html
                              Main PID: 7118 (mpd)
                              CGroup: /system.slice/mpd.service
                              └─7118 /usr/bin/mpd --no-daemon /etc/mpd.conf

                              Status MPD1:

                              root@tinkerboard:~# sudo service mpd1 status
                              ● mpd1.service - Music Player Daemon
                              Loaded: loaded (/lib/systemd/system/mpd1.service; disabled; vendor preset: enabled)
                              Active: active (running) since Tue 2018-11-27 16:59:29 UTC; 2min 38s ago
                              Docs: man:mpd(1)
                              man:mpd1.conf(5)
                              file:///usr/share/doc/mpd/user-manual.html
                              Main PID: 7075 (mpd)
                              CGroup: /system.slice/mpd1.service
                              └─7075 /usr/bin/mpd --no-daemon /etc/mpd.conf



                              Hat jemand eine Idee, warum die Log für mpd1 nicht geschrieben wird?

                              Kommentar

                              Lädt...
                              X