Multiroom mit mehreren Soundkarten an einem Rechner

Moin Zusammen,

da mir hier nun auch schon einige Male geholfen wurde, möchte ich hier nun auch mal was Vorstellen.
Zu meiner Konfiguration: Ich habe mein Haus komplett mit einer S7 1200 Automatisiert. Vor ein Paar Tagen habe ich IPS entdeckt und bin begeistert. Also IPS 4 auf Win10 über Netzwerk an S7 1200 Dazu noch ein paar ADAM 6050 als I/O die über die S7 angesteuert werden.
Seit längerem bin ich schon auf der Suche nach einem geeignetem Multiroom System. Dabei standen bei mir auch die Kosten im Vordergrund.
Meine Anforderungen:
-Alles über einen Rechner mit Mehreren Soundkarten.
-In Allen Räumen Synchron dieselbe Quelle wiedergeben
-In allen Räumen unterschiedliche Quellen
-Alle Räume separat in der Lautstärke regeln
-XBMC mit einbinden
Habe lange nach einer Lösung gesucht aber nichts gefunden.

Nun, mit IPS habe ich es folgendermaßen gelöst:
Ich bin im Netz auf „Virtuell Audi Cable“ gestoßen. Hierbei gibt es die Möglichkeit Audiorouter sowie Audio Cable einzurichten. VAC

Um es einfacher zu beschreiben, erkläre ich es hier mit 3 „Quellen“, also Playern und 2 Räumen.
Mit dem Virtuell Audio Cable (VAC) Können Audiogeräte also „Virtuelle Soundkarten alias Cable“ erstellt werden. Diese können entsprechend konfiguriert werden ( Stereo oder 5.1 usw…)

Den Einzelnen Playern kann nun als Ausgabegerät je eine Cable zugeordnet werden.
Wenn das soweit fertig ist, muss der Sound geroutet werden. Hierfür stehen bei VAC Repeater bereit. IN ist hierbei das jeweilige Cable, das den Playern zugeordnet ist. OUT ist die Soundkarte auf der der Sound ausgegeben wird.
Hier als Beispiel XBMC wird auf der Sounkarte Wohnzimmer ausgegeben.

Bild2.jpg

Man kann nun für jeden Raum einen Repeater starten um den Sound zu routen:
Wohnzimmer: XBMC >Wohnzimmer oder Player1 > Wohnzimmer oder Player2>Wohnzimmer
Das gleiche auch für den zweiten Raum.
Dies soll jetzt aus IPS geschehen. Ich habe es folgendermaßen gelöst:

<?
//Wenn Routing gestartet erst Stoppen
If(getValue(35457 /*[Wohnzimmer\Multimedia\Variablen/Scripte\StatAudioWohn]*/)==true)
{
IPS_ExecuteEx("C:\Program Files\Virtual Audio Cable\audiorepeater.exe", ' /CloseInstance:Wohnzimmer',true, false, -1);
}
//Start routing
IPS_ExecuteEx("C:\Program Files\Virtual Audio Cable\audiorepeater.exe", ' /Input:"Player1_IN (Virtual Audio Cable" /Output:"Wohnzimmer (Realtek High Defini" /BufferMs:50 /SamplingRate:44100 /Priority:high /Autostart /WindowName:Wohnzimmer',true, false, -1);

// Statusvariable setzen
SetValueBoolean(35457 /*[Wohnzimmer\Multimedia\Variablen/Scripte\StatAudioWohn]*/,true)
?>

Die Variable 35457 ist hierbei einfach eine Statusvariable ob erst eine Verbindung gestoppt werden muss oder ob keine besteht. Input und Output müssen bei der Programmübergabe exakt dem Namen entsprechen der auch im Auswahlmenü des Repeaters aufgeführt ist.
In meinem Fall habe ich nun 3 Scripte pro Raum die ich starten kann um ein Soundrouting zu erstellen. Jeweils mit den unterschiedlichen Input und Output Namen. Das ganze kann mit Variablen und Übergaben bestimmt noch Pfiffiger erstellen aber dafür reichen meine Programmierkentnisse bisher nicht aus :wink: .Den Buffer habe ich auf 50ms gestellt um möglichst wenig Verzögerung (TV) zu bekommen.
Folgende Werte können der audiorepeater.exe übergeben werden:

/Input:
/Output:
/SamplingRate:
/BitsPerSample:
/Channels:
/ChanCfg:
/BufferMs:
/Buffers:
/Priority:
/WindowName:
/min
/AutoStart
/CloseInstance:

:o
Eine Haken hat die ganze Sache aber noch… Das VAC Programm ist Shareware… und kostet 49$

Die Lautstärkeregelung der einzelnen Soundkarten erkläre ich gleich auch nochmal.

Gruß
Thomas

Hier noch die Lautstärkeregelung:

Die Lautstärke der einzelnen Soundkarten (Räume) regle ich über die nircmd.exe.
Dies wurde hier auch schon öfter beschrieben. Ich habe lange gebraucht bis ich es hinbekommen habe die Masterlautstärke der Sondkarte zu regeln, die nicht als standartausgabegerät konfiguriert ist.
Mit den Befehlen der Nircmd mit entsprechender Sondkarten ID hat es nicht geklappt. Ich habe es nun so gelöst, dass ich in dem Script erst die Standartkarte auf die zu steuernde ändere und dann die Lautstärke anpasse. Das funktioniert, ist aber vielleicht nicht die schönste Art.
Sollte jemand eine bessere Lösung haben, lasse ich mich gerne belehren.
Das Script wird bei Änderung des Sliders Aufgerufen.
Die erste Funktion berechnet den Stellwert.
Hier das Script. Es muss für jeden Raum eins erstellt werden.

<?

SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);


$Wert=65500/100*GetValueInteger(14072 /*[Wohnzimmer\Multimedia\Lautstärke Wohnzimmer]*/);

//Device setzen
IPS_ExecuteEx("C:\\Program Files\\Virtual Audio Cable\
ircmd-x64\
ircmd.exe","setdefaultsounddevice Wohnzimmer",true,false,-1);
IPS_Sleep(200);

//Mastervolume einstellen
IPS_ExecuteEx("C:\\Program Files\\Virtual Audio Cable\
ircmd-x64\
ircmd.exe","setsysvolume $Wert",true,false,-1);

?>

Soweit erstmal… :wink:

Hallo Thomas,

kurze Frage. Ist es möglich z. B. von einer 7.1 Soundkarte die Ausgabe auf einzelne Kanäle umzuleiten? Dann hätte man bei einer 7.1 Soundkarte 8 Monokanäle zur verfügung.

Ich hab das aktuell mit einem Raspberry PI 2+, einer 7.1 USB Soundkarte und Max2Play mit Multisqueez als Test aufgebaut. Dies hat den Vorteil dass man 6 Player einrichten kann. Jeder Player ist über Airplay etc. ansteuerbar und ich kann rein theoretisch 8 einzelne Monokanäle ansteuern. Nächster schritt wäre dann IPS 4 mit dem Squeezbox Modul für TTS etc.

Die Windowslösung hat mich bisher immer wegen den benötigten Soundkarten abgeschreckt.

Schöne Grüße
Stephan

Mich würde mal die Langzeiterfahrung interesieren

Ich hatte mal so eine Lösung im Homserver 2011 aber nur Probleme.
Abstürze, Hänger etc.
Habs dann das wieder verworfen und mir eine Hardware Matrix besorgt.

Hallo Zusammnen

@da8ter:
Ich weiß es nicht, da ich es nicht ausprobiert habe. Man kann bei dem Routing auch eine Kanalkonfiguration mit Übergeben. In wie weit das aber wirklich möglich ist bleibt zu prüfen.

Ich habe einfach mehrere Soundkarten dran. Die kosten ja nun nicht die Welt und bisher habe ich auch keine Probleme gehabt…

@wibo050447:
Bisher läuft es ohne Hänger und Probleme. Kann ja in einem Jahr nochmal berichten… :slight_smile:

Gruß
Thomas

Das habe ich in der Anleitung zur Channel Konfiguration gefunden…

das sieht doch schon mal recht vielversprechend aus.

Hab gerade noch durch Zufall ein Programm für den Mac gefunden was ähnlich wie VAC funktioniert. Inkl. Custom Channel Mapping.

Vielleicht ist es ja für jemanden interessant:
Rogue Amoeba | Loopback: Cable-Free Audio Routing

Gruß Stephan