[gelöst] Mehrere MPD-Instanzen auf zwei Soundkarten

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

[gelöst] Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von Libertiner » 24.02.2022 17:18:20

Hallo alle miteinander,

ich habe schon viele Stunden/Tage mit rumprobieren und lesen verbracht, aber noch keine Lösung gefunden - immer wieder tauchen neue Probleme auf.
Mein Ziel: Ich möchte die Kanäle zweier Soundkarte aufsplitten, so dass verschiedene MPD-Instanzen verschiedene Songs abspielen können:
MPD1 --> Song1 --> Soundkarte1 Kanal 1 + 2 (Stereo)
MPD2 --> Radio --> Soundkarte1 Kanal 3 + 4 (Stereo)
MPD3 --> Song2 --> Soundkarte1 Kanal 5 + 6 (Stereo)
...
Ich will diese Konfiguration nutzen, um in verschiedenen Räumen verschiedene Lieder abzuspielen.
Die MPD-Instanzen sind erstellt und funktionieren nach einem Systemneustart auch einzeln. Wechsle ich aber die Instanz oder will gleichzeitig verschiedene MPD-Instanzen also auch verschiedene Kanäle bespielen, gibt es Probleme.
Ich erhalte in der mpd.log/mpd2.log folgende Fehlermeldung: "ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave" und
"exception: nested: Failed to open ALSA device "kgbad": Device or resource busy"
Ich habe erstmal nur zwei Instanzen installiert und konfiguriert. Meine asound.conf sieht wie folgt aus:

Code: Alles auswählen

pcm_slave.Logi1 {
	pcm "hw:0,0"
	channels 8
	rate 44100
}
pcm.kgbad {
	type plug
	slave.pcm {
		type dmix
		ipc_key 1001
		ipc_key_add_uid false
		ipc_perm 0666
		slave Logi1 
		bindings [ 0 1 ]
	}
}

pcm.kgschlafzimmer {
	type plug
	slave.pcm {
		type dmix
		ipc_key 1002
		ipc_key_add_uid false
		ipc_perm 0666
		slave Logi1
		bindings [ 2 3 ]
	}
}
Stelle ich bei beiden den selben ipc_key ein, erscheint folgende Fehlermeldung in den Logs:
ALSA lib pcm_direct.c:1271:(snd1_pcm_direct_initialize_slave) unable to install hw params
ALSA lib pcm_dmix.c:1120:(snd_pcm_dmix_open) unable to initialize slave
Feb 24 10:40 : exception: Failed to open "kgbad" (alsa)
Feb 24 10:40 : exception: nested: Failed to open ALSA device "kgbad": Broken pipe
Hat jemand von euch eine ähnliche Konfiguration am Laufen?
Über Hilfe würde ich mich sehr freuen - ich habe nämlich keine Ahnung, was ich noch probieren kann.

Beste Grüße
Marco
Zuletzt geändert von smutbert am 08.03.2022 21:44:44, insgesamt 2-mal geändert.
Grund: als gelöst markiert

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von smutbert » 24.02.2022 17:43:37

Hab zwar nicht direkt etwas ähnliches laufen, aber du versuchst mit deinen zwei Instanzen gerade gleichzeitig mit zwei dmix-Instanzen auf die Soundkarte zuzugreifen und das geht nicht. Du bräuchtest eine dmix-Instanz, z.B.

Code: Alles auswählen

pcm_slave.Logi1 {
	type dmix
	ipc_key 1001
	ipc_key_add_uid false
	ipc_perm 0666
	slave {
		pcm "hw:0,0"
		channels 8
		rate 44100
	}
}
und die Zuteilung der Kanäle wie gehabt bei den pcm-Definitionen, die dann auf dieses dmix-Gerät ausgeben

Code: Alles auswählen

pcm.kgbad {
	type plug
	slave.pcm slave.Logi1
	bindings [ 0 1 ]
}
(Ob das jetzt alles stimmt, besonders ob das mit den bindings für die Aufteilung der Kanäle ausreicht, bin ich alles andere als sicher, aber da muss ich auch erst einmal suchen. Der Grundgedanke ist aber hoffentlich klar.)

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von Libertiner » 24.02.2022 19:46:51

Vielen Dank für den neuen Input.
Übernehme ich den Vorschlag erhalte ich im mpd.log die Meldung:
ALSA lib pcm_plug.c:1286:(_snd_pcm_plug_open) Unknown field bindings
Feb 24 19:36 : exception: Failed to open "kgbad" (alsa)
Ich habe daraufhin die Bindings wie folgt ergänzt:

Code: Alles auswählen

pcm_slave.Logi1 {
	type dmix
	ipc_key 1001
	ipc_key_add_uid false
	ipc_perm 0666
	slave {
		pcm "hw:0,0"
		channels 8
		rate 44100
	}
	bindings {
		0 0
		1 1
		2 2
		3 3
		4 4
		5 5
		6 6
		7 7
	}
}
Die Fehlermeldung bleibt noch die selbe. Aber dank dir smutbert habe ich jetzt wieder eine Idee, wo ich ansetzen kann.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von smutbert » 24.02.2022 22:58:16

dmix ist glaube ich die falsche Stelle um die Kanäle zu sortieren. Allerdings habe ich bei der Suche nach meinem Fehler ein neues Plugin entdeckt: dshare.
Das erfüllt zwar nicht die Funktion von dmix und lässt sich vermutlich auch nicht damit kombinieren, aber dafür erfüllt es genau die Funktion, die du suchst. Ein Beispiel gibt es hier [1], allerdings verstehe ich nicht, wieso dort die erste Variante fehlgeschlagen ist. Es wäre durchaus interessant ob du damit weiterkommst.

[1] https://askubuntu.com/questions/106186/ ... -with-alsa

___

Alternativ habe ich einen Ansatz zu einer Lösung mit dmix und dem Plugin route für die Kanalzuordnung. Ein erster Entwurf sieht so aus

Code: Alles auswählen

pcm.eightchannels {
	type dmix
	ipc_key 1001
	ipc_key_add_uid false
	ipc_perm 0666
	slave {
		pcm "hw:0,0"
		channels 8
		rate 44100
	}
}

pcm.kgbad {
	type route
	slave.pcm "eightchannels"
	ttable {
		0.0 1
		1.1 1
	}
}
	
pcm.kgschlafzimmer {
	type route
	slave.pcm "eightchannels"
	ttable {
		0.0 0
		1.1 0
		0.2 1
		1.3 1
	}
}
und hat bei mir angepaßt für und mit einer virtuellen Loopbacksoundkarte sogar einwandfrei funktioniert.
ttable dient dabei der Kanalzuordnung. Wenn ich einen meiner alten Beiträge zitieren darf:
smutbert hat geschrieben: ↑ zum Beitrag ↑
31.10.2017 21:06:56
[...]
ttable {
0.0 1
1.1 1
}
bedeutet dagegen:
Der linke (erste=0) Kanal der Audioausgabe wird mit 1 multipliziert an den linken (wieder der erste=0) Kanal des Audiogeräts weitergeleitet und der rechte (1) Kanal wird ebenfalls unverändert an den rechten (1) Kanal des Audiogeräts geleitet.
[...]
Das

Code: Alles auswählen

0.0 0
1.1 0
ist bei allen außer dem ersten Stereopaar notwendig, weil sonst per default immer der erste Kanal an den ersten und der zweite an den zweiten weitergeleitet würde – ohne hätte man also auf den ersten beiden Kanälen also die Ausgaben aller Stereosignale.

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von Libertiner » 25.02.2022 21:33:43

Vielen Dank smutbert - dein Lösungsvorschlag mit dem route plugin funktioniert. Ich bin richtig happy :D .
Es ist jetzt möglich mit vier mpd Instanzen vier Kanäle unterschiedlich zu bespielen.
Demnächst probiere ich noch, eine zweite Soundkarte einzubinden und aus einem Stereokanal zwei Monokanäle zu machen. In zwei Zimmern habe ich nämlich nur eine Box.
Könntest du mir aber vielleicht noch bei einem Problem helfen, dass immer mal wieder auftaucht:
Nach dem Start der verschiedenen MPD-Instanzen mit systemctl start mpd/mpd2 ... erscheint im entsprechenden log:
Feb 25 21:11 : avahi: Service 'mpd1 @ shserver' successfully established.
Feb 25 21:11 : client: [0] opened from 127.0.0.1:45658
Beende ich die Soundausgabe, kommt manchmal (aber nicht immer):
Feb 25 21:13 : client: [0] closed
Wenn dies im Log erscheint, reagiert die entsprechende MPD-Instanz nicht mehr. Auch ein Stop und anschließender Neustart mit systemctl bringt nichts. Nur ein kompletter Neustart des Systems bringt Abhilfe.
Daher meine Frage, wie verhindere ich, dass sich der client schließt bzw. wie kann ich den Client wieder öffnen.
Ich weiß nicht wo die Ursache des Fehlers zu suchen ist. Alle MPD-Instanzen sind gleich konfiguriert - der Fehler tritt aber unregelmäßig auf, bei manchen fast gar nicht.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von smutbert » 25.02.2022 22:17:10

Wenn ich nichts überlesen habe, hast du nicht verraten welchen Client du verwendest.

Die Meldung sagt jedenfalls erst einmal nur, dass die Verbindung mit dem mpd-Client beendet oder abgebrochen worden ist. Das passiert unter anderem, wenn der Client die Verbindung beendet, die Netzwerkverbindung abreißt oder der Client zu lange verbunden ist ohne etwas gemacht zu haben (connection_timeout in der mpd-Konfiguration). Ich glaube es gibt in der mpd-Konfiguration auch eine konfigurierbare maximale Zahl an Clients, die gleichzeitig verbunden sein dürfen.
Die Clients, die ich kenne verbinden sich allerdings nach einem Verbindungsabbruch einfach wieder mit dem mpd-Server.

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von Libertiner » 25.02.2022 22:44:55

Ich nutze als Client ein Programm zur Haussteuerung (SmarthomeNG), dass ein MPD-Plugin enthält. Leider nutzt das MPD-Plugin fast niemand in der entsprechenden Community. Wenn ich dich richtig verstanden habe, liegt das Problem also wahrscheinlich auf Client Seite. Zumal ich verschiedene Instanzen nutze und jeweils nur ein Client auf eine Instanz zugreift.
Ich werde mir das Plugin mal genauer anschauen - den Code zu verstehen, wird für mich aber nicht einfach.
Danke für deine bisherige Hilfe :THX:

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von smutbert » 25.02.2022 23:03:58

Passt denn das mit dem Beenden der Verbindung bei längerer Inaktivität zum Verhalten (der Default ist glaube ich 60 Sekunden)?

Du könntest es ja mit einer Zeile wie

Code: Alles auswählen

connection_timeout		"6000"
in der mpd.conf versuchen. Wenn es dann nicht mehr auftritt ist es das.

Bei meinem Projekt hat auch die Limiterung auf 10 Clients (ich glaube das ist der Default) für Probleme gesorgt, weil bei mir zumindest gelegentlich offentlich nach einem timeout hinausgeworfene Clients noch mitgezählt wurden (zumindest kann ich mir das anders nicht erklären), wobei ich allerdings schon im Normalbetrieb mit einigen Clients unterwegs war (ein „normaler“, einer für die Desktopbenachrichtigung, ein selbst geschriebener Client, einer am Tablet,...). Das könntest du eventuell mit

Code: Alles auswählen

max_connections		"100"
als Fehlerquelle ausschließen.

Abgesehen davon würde ich aber doch eher am Client suchen, speziell wenn mpd-Server und -Client auf demselben System laufen, was sie bei dir zu tun scheinen?

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf eine Soundkarte

Beitrag von Libertiner » 26.02.2022 13:11:35

Ich bin mir jetzt sicher, dass der Client nach einem stop-Signal die Verbindung schließt und im Anschluss nicht wieder öffnen kann. Die Ursache hierfür versuche ich noch zu beheben - In der Zwischenzeit kann ich mit dem "Pause" Signal die Verbindung offen halten.
Um parallele Abbrüche durch die mpd.conf auszuschließen habe ich deine Tipps in die mpd.conf's eingebaut - danke hierfür. Ich kannte beide Codezeilen vorher noch nicht.
Beim Einrichten der asound.conf auf 8 Instanzen habe ich Fortschritte gemacht. Ich kann Jetzt auf einer Soundkarte 2 Stereo und 4 Monokanäle ausgeben - also insgesamt 6 MPD-Instanzen ausgeben.
Die zwei restlichen Instanzen (eg2 & og2) muss ich über eine zweite Soundkarte ausgeben.
Aplay -l gibt folgendes Aus:
smarthome@shserver:~$ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Device_1 [USB Sound Device], Gerät 0: USB Audio [USB Audio]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Karte 1: Device [USB Sound Device], Gerät 0: USB Audio [USB Audio]
Sub-Geräte: 1/1
Sub-Gerät #0: subdevice #0
Meine asound.conf hierfür sieht wie folgt aus (ein Ausschnitt):

Code: Alles auswählen

pcm.Logi1 {
	type dmix
	ipc_key 1001
	ipc_key_add_uid false
	ipc_perm 0666
	slave {
		pcm "hw:0,0"
		channels 8
		rate 44100
	}
}

pcm.Logi2 {
	type dmix
	ipc_key 2001
	ipc_key_add_uid false
	ipc_perm 0666
	slave {
		pcm "hw:1,0"
		channels 8
		rate 44100
	}
}

pcm.eg1 {
	type route
	slave.pcm "Logi1"
	ttable {
		0.0 1
		1.1 1
	}
}

pcm.eg2 {
	type route
	slave.pcm "Logi2"
	ttable {
		0.0 1
		1.1 1
	}
}
	
pcm.og2 {
	type route
	slave.pcm "Logi2"
	ttable {
		0.0 0
		1.1 0
		0.2 1
		1.3 1
	}
}
Wenn ich die Instanzen nacheinander abspiele, wird alles auf dem richtigen Kanal ausgegeben. Spiele ich aber Instanzen beider Soundkarten gleichzeitig ab (z.B. eg1 & eg2) dann erscheint im Log die Meldung:
Feb 26 12:58 : player: problems opening audio device while playing "http://stream.antenne1.de/90er/livestream2.mp3"
ALSA lib pcm_direct.c:1271:(snd1_pcm_direct_initialize_slave) unable to install hw params
ALSA lib pcm_dmix.c:1120:(snd_pcm_dmix_open) unable to initialize slave
Feb 26 12:58 : exception: Failed to open "eg2" (alsa)
Feb 26 12:58 : exception: nested: Failed to open ALSA device "eg2": Broken pipe
Ich habe auch schon die selben ipc_keys für Logi1 und Logi2 ausprobiert - die Fehlermeldung ist gleich.
Hat jemand schon mal sound auf zwei Karten gleichzeitig ausgegeben oder sieht den Fehler?

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von smutbert » 27.02.2022 00:22:13

Beim kurzen Überfliegen habe ich zuerst gedacht, zwei Instanzen auf derselben Soundkarte kämen sich in die Quere, aber dass das bei zwei unterschiedlicher Soundkarten passiert finde ich überraschend.

Klar ist einmal der ipc_key darf nicht bei beiden Soundkarten derselbe sein, aber konkrete Idee warum es auch mit unterschiedlichen ipc_keys nicht klappt habe ich erst einmal keine und würde das Problem fast eher bei mpd suchen. Ob mein Verdacht stimmt könntest du recht einfach testen, indem du einen mpd auf der einen Soundkarte etwas spielen lässt, z.B. auf eg1 und währenddessen mit einem anderen Programm versuchst auf eg2 eine wav-Datei mit einem anderen Programm wiederzugeben, z.B. eine Testdatei mit aplay

Code: Alles auswählen

aplay -D plug:eg2 /usr/share/sounds/alsa/Front_Left.wav
Laufen die mpd-Instanzen eigentlich alle unter demselben Benutzeraccound (wahrscheinlich mpd)?

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von Libertiner » 27.02.2022 10:43:05

Zuerst mal Danke, dass du mir immer noch weiterhilfst smutbert.
Der Client und MPD-Server laufen auf dem selben Gerät (APU-Server). Es hängen zwei gleiche LogiLink USB 7.1 Soundkarten dran. Alle mpd-Instanzen laufen unter Benutzer "root" - auf "mpd" lief es aber auch.

Ich lasse auf der einen Soundkarte mit Instanz "eg1" ein Radio laufen. Bei der zweiten Instanz spiele ich mit aplay den Sound ab (systemctl ist für diese mpd Instanz noch nicht gestartet). Folgende Meldung kommt:
smarthome@shserver:~$ aplay -D plug:eg2 /usr/share/sounds/alsa/Front_Left.wav
ALSA lib pcm_direct.c:1271:(snd1_pcm_direct_initialize_slave) unable to install hw params
ALSA lib pcm_dmix.c:1120:(snd_pcm_dmix_open) unable to initialize slave
aplay: main:828: Fehler beim Öffnen des Gerätes: Datenübergabe unterbrochen (broken pipe)
Sound höre ich nicht.
Zweiter Versuch nach einem Neustart: Ich starte noch keine mpd-Instanz mit systemctl und gebe nur "aplay -D plug:eg2 /usr/share/sounds/alsa/Front_Left.wav" ein:
Es blinken kurz beide Soundkarten - Sound wird aber nur bei der gewünschten zweiten Soundkarte über den entsprechenden Kanal ausgegeben.
Starte ich aplay ein zweites Mal. Blinkt nur noch die gewünschte Soundkarte mit entsprechender Soundausgabe.
Meine Schlussfolgerung: mpd.conf ist nicht für das Problem verantwortlich. Die Zuordnung in asound.conf scheint grundsätzlich zu passen. Dennoch wird ein erstes Signal ungeordnet auf beide Karten geschickt. Dies führt zum "broken pipe". Seltsam, dass es beim zweiten Abspielen scheinbar problem funktioniert.
Nach "broken pipe" lässt sich die betroffene Instanz zwar mit systemctl starten, reagiert aber nicht mehr auf Befehle über den Client.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von smutbert » 27.02.2022 11:22:04

Dann habe ich erst einmal keine brauchbare Idee woran das liegen könnte, aber in Folge des Fehlers wird die mpd-Instanz wahrscheinlich die Ausgabe deaktivieren
Libertiner hat geschrieben: ↑ zum Beitrag ↑
27.02.2022 10:43:05
Nach "broken pipe" lässt sich die betroffene Instanz zwar mit systemctl starten, reagiert aber nicht mehr auf Befehle über den Client.
und zwar noch sehr wohl reagieren, aber nichts mehr abspielen solange die Ausgabe deaktiviert ist. (Hab ich bei der Fehlersuche oft übersehen.)

Ganz vage frage ich mich ob das etwas damit zu tun haben könnte, dass es sich um zwei gleiche Soundkarten handelt (Sinn ergibt das natürlich keinen, aber es ergibt auch keinen Sinn, dass ein dmix-Plugin die Wiedergabe über ein anderes verhindert). Nachdem bei dir alles unter demselben Benutzer läuft, könntest du wohl auch testweise

Code: Alles auswählen

ipc_key_add_uid true
setzen (ergibt aber auch keinen Sinn).

Die meisten Workarounds, die mir in den Sinn kommen sind so abenteuerlich, dass ich sie gar nicht verraten will

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von Libertiner » 27.02.2022 16:34:48

Ich habe nochmal eine alternative Asound.conf konfiguration ausprobiert, die gekürzt so aussieht:

Code: Alles auswählen

pcm.logilink1 {
    type hw
    card Device_1 #Alternativ auch mit 0 probiert
    device 0 
} 

ctl.logilink1 {
    type hw
    card 0
    device 0
}

pcm.dmixer1 {
    type dmix
    ipc_key 1024            # must be unique number on your system
    ipc_perm 0666            # neccesary for normal user to have access
#    ipc_key_add_uid true
    slave.pcm "logilink1"
    slave {
        period_time 0
        period_size 1024
        buffer_size 4096
        rate 44100
        channels 8
    }
    bindings {
        0 0
        1 1
        2 2
        3 3
        4 4
        5 5
        6 6
        7 7
        }

}

pcm.eg1 {
    type plug
    slave {
        pcm "dmixer1"
        channels 8
    }
    ttable.0.0 1
    ttable.1.1 1
}

pcm.logilink2 {
    type hw
    card Device
    device 0
}


ctl.logilink2 {
    type hw
    card Device	#Alternativ auch mit 1 probiert
    device 0
}

pcm.dmixer2 {
    type dmix
    ipc_key 2024            # must be unique number on your system
    ipc_perm 0666            # neccesary for normal user to have access
#    ipc_key_add_uid true
    slave.pcm "logilink2"
    slave {
        period_time 0
        period_size 1024
        buffer_size 4096
        rate 44100
        channels 8
    }
    bindings {
        0 0
        1 1
        2 2
        3 3
        4 4
        5 5
        6 6
        7 7
        }

}

pcm.eg2 {
    type plug
    slave {
        pcm "dmixer2"
        channels 8
    }
}

Ich erhalte leider immer wieder dieselbe Fehlermeldung. Auch der Code

Code: Alles auswählen

ipc_key_add_uid true
ändert leider nichts.

Ich überlege, ob ich mir eine zweite andere externe soundkarte zulege und nochmal probiere. Ich bleibe dran.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von smutbert » 27.02.2022 17:49:44

Ein paar Gedanken habe ich mir noch gemacht. Dass es mit der gleichen Soundkarte zusammenhängt, ist ja sowieso eine merkwürdige Idee von mir, aber ausschließen könntest du es auch ohne eine Soundkarte zu kaufen:
  1. eine virtuelle soundkarte (Loopback-Soundkarte) erstellen, dazu muss nur ein Kernelmodul geladen werden

    Code: Alles auswählen

    # modprobe snd-aloop
  2. eine der beiden Logi-Einträge auf die Loopback-Soundkarte umbiegen

    Code: Alles auswählen

    pcm.Logi2 {
    	type dmix
    	ipc_key 2001
    	ipc_key_add_uid false
    	ipc_perm 0666
    	slave {
    		pcm "hw:Loopback,0"
    		channels 8
    		rate 44100
    	}
    }
    
  3. sicherheitshalber die mpd-Instanzen neu starten, damit sie auf jeden Fall die neue Konfiguration verwenden
  4. und schließlich eine Wiedergabe starten, die auf dem „umgebogenen“ Gerät landet und dann versuchen zusätzlich eine auf dem anderen Logi-Gerät, also in dem Beispiel Logi1 zu starten (oder umgekehrt).
Aber eigentlich wäre es schon sehr überraschend wenn dabei etwas anderes herauskäme als mit den beiden echten Soundkarten.

edit, noch eine kleine Ergänzung:
Bei mir verhält es sich anders als du beschrieben hast. Der Fehler tritt bei mir auf, wenn Wiedergabe gleichzeitig an mehreren Kanälen bzw. Kanalpaaren einer Soundkarte erfolgen soll – bei der gleichzeitigen Wiedergabe auf je einem Kanalpaar beider Soundkarten tritt bei mir kein Fehler auf, was mir vielleicht leichter erklärbar scheint.


Das andere was ich mir (wieder) gedacht habe, ist, dass es ja auch ohne dmix gehen sollte, weil auf keinem der Kanäle mehrere Ausgaben gemischt werden sollen. Da wären wir dann bei der Konfiguration mit dshare aus meinem Link (viewtopic.php?t=183646#p1296270), aber ich bin noch nicht dazu gekommen das auszuprobieren.

edit nummer 2, noch eine Ergänzung:
Ziemlich genau dieselbe Herausforderung hatten wir hier viewtopic.php?t=168058 schon einmal, ebenfalls mit meiner Beteiligung. Damals hat die Variante mit dmix scheinbar gar nicht geklappt, keine Ahnung warum und die dshare-Variante hatte dasselbe Problem, das wir jetzt mit der dmix-Variante haben – nicht sehr ermutigend.
Mit pulseaudio hat es schließlich geklappt (genauso würde es wahrscheinlich mit ecasound funktionieren oder mit jack oder...). Sollte ich zufällig noch auf eine Lösung stossen sage ich natürlich bescheid, aber andernfalls habe ich mit Alsa keine Ideen mehr.

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von Libertiner » 28.02.2022 08:53:42

Dein Tipp mit der Loopback-Karte bringt mich der Lösung näher. Während ich auf der externen Soundkarte radio abspiele, konnte ich mit aplay auf der Loopback-Karte den .wav Sound abspielen ohne dass ein Fehler kam. Ich habe mir jetzt eine andere externe Soundkarte bestellt und hoffe es mit dieser hinzukriegen.
Ich habe auch nochmal dshare ausprobiert - aber ohne Erfolg. Es erscheint die gleiche Fehlermeldung wie bereits oben zitiert.

Libertiner
Beiträge: 9
Registriert: 24.02.2022 17:03:28

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von Libertiner » 07.03.2022 20:59:25

Kurzes Update: Bei mir laufen jetzt 9 Instanzen, die verschiedene Räume bespielen. Bisher läuft alles sehr gut. 5 Instanzen (3 Stereo und 2 Mono) laufen über die 7.1 Soundkarte und je zwei Instanzen über zwei externe usb stereo adapter.
Ich hatte es vorher auch mit einer zweiten externen 7.1 Soundkarte probiert, dies ergab aber das selbe Fehlerbild. Meine Vermutung: Der Konflikt entsteht, wenn beide Soundkarten denselben Chip verwenden. In meinem Fall war es der Chip CM6206 von CMedia. Ich habe bei meiner Recherche keine 7.1 Soundkarte gefunden, die einen anderen Chip verwendet. Es gibt noch den Chip CM6206-lx. Diesen habe ich aber nicht getestet. Die zwei externen usb stereo adapter haben verschiedene Chips und mit denen funktioniert es bisher wunderbar.
Also für mich ist alles bestens und vielen Dank an dich smutbert - ohne deine Hilfe hätte ich wahrscheinlich schon aufgegeben.
Beste Grüße
Marco

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Mehrere MPD-Instanzen auf zwei Soundkarten

Beitrag von smutbert » 08.03.2022 21:43:20

Gerne, das mit den gleichen Soundkarten/-chips ist schon sehr merkwürdig.

ich markiere den Thread dann als gelöst.
(Das kann auch jeder selbst machen, indem er den Eröffnungsbeitrag editiert und dort dem Titel ein [gelöst] voranstellt.)

Antworten