Synchrones Multiroom mit Kodi und AirAudio

synchronHeute ein Update bzgl. meiner Versuche, die Audioausgabe wie im Artikel Multiroom mit Kodi und AirAudio beschrieben, auf mehrere Lautsprecher zu synchronisieren. Das Wichtigste aber schon mal vorweg:

Die Wiedergabe ist nun absolut synchron auf der Musicbox Air von Canton und dem Kodi-Wohnzimmer PC!

Auch wenn ich es in dem ersten Multiroom-Artikel nur als “nice-to-have” bezeichnet habe, hat mich das Problem mit der asynchronen Wiedergabe bzw. dem hochwahrscheinlichen Auseinanderdriften doch nicht in Ruhe gelassen.

Synchrones Multiroom

Martin, der Entwickler der App “AirAudio” hat mich dann von sich aus dankenswerterweise darauf hingewiesen, das die aktuelle Airplay-Implementierung von Kodi keine Audio-Synchronisierung unterstützt. Solange dem so ist, werden alle meine Versuche bzgl. einer synchronen Wiedergabe auf dem mit Kodi-betriebenen Wohnzimmer-PC scheitern – und das unabhängig vom Zuspieler! Also auch die Nutzung von Whaale hätte kein Unterschied gemacht.

Statt der Airplay-Implementierung von Kodi selbst, sollte ich shairplay-sync als AirPlay-Abspieler auf dem Wohnzimmer-PC installieren. Bei shairplay-sync handelt es sich um ein Fork von shairplay. shairplay-sync unterstützt aber zusätzlich die Implementierung der synchronen Audiowiedergabe mittels Airplay.

Für die Installation von shairplay-sync gibt es neben den GIT-Quellen auch ein Paket für verschiedene Linux-Versionen. Da ich beim Wohnzimmer-PC (immer noch) ein Ubuntu 14.04 LTS nutze, konnte ich die Installation mittels PPA durchführen, da hiefür ein Paket bereitgestellt wird. Bei einem Raspberry kann bei der Installation z.B. nach der Anleitung von mikebrady Verfahren werden.

Installation von shairplay-sync

Mit folgendem Befehl werden die von dantheperson bereitgestellten Paketquellen von shairplay-sync im Ubuntu hinzugefügt:

sudo add-apt-repository ppa:dantheperson/shairplay-sync

Das Update der Paketquellen und die eigentliche Installation erfolgt dann wie folgt:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install shairport-sync

Die Konfig-Datei von shairport-sync ist nach erfolgreicher Installation im Verzeichnis etc zu finden. Hier müssen ggf. noch ein paar Anpassungen vorgenommen werden.

sudo vim /etc/shairport-sync.conf

In der Konfig-Datei kann z.B. unter general der Name des “AirPlay-Gerätes” konfiguriert werden.

Audiogerät und -Ausgang ermitteln

Wichtiger sind aber die Einstellungen unter dem Punkt alsa. Hier muss das Device für die Audioausgabe eingetragen werden. So musste ich z.B. schauen, das der S/PDIF-Ausgang genutzt wird.

alsa =
{
    output_device = "hw:0,1";
    mixer_control_name = "PCM";
    mixer_device = "hw:0";
//  audio_backend_latency_offset = 0;
//  audio_backend_buffer_desired_length = 6615;
};

Die entsprechende Hardware für output_device kann über den Alsamixer herausgefunden werden:

alsamixer

Mit F6 werden alle im System verfügbaren Soundkarten angezeigt. Bei mir ist das HDA Intel mit der Nummer “0”. (Ich denke, das die Grafikkarte “1” hier auch wegen der möglichen Audioausgabe über HDMI angezeigt wird).

alsa2

Nun fehlt noch der passende Audioausgang. Dazu mit F2 in den im Bild gezeigten Dialog und den Eintrag mit “devices” auswählen.

alsa3

Im Ergebnis werden alle Audio-Geräte inklusive den vorhandenen Schnittstellen wie S/PDIF oder Klinke ausgegeben. Leider wird dieser Unterschied (zumindest bei mir) nicht in der Übersicht angezeigt.

alsa4

Also heißt es ausprobieren. Es sind ja nur zwei Möglichkeiten geblieben da das eigentliche Gerät mit “0” ja schon bekannt ist. Bleibt in der shairplay-sync-Konfiguration unter output_device nur noch hw:0,0 oder hw:0,1 zu testen. In meinem Fall war der S/PDIF-Ausgang hw:0,1. Die Mixer-Kontrolle ist unter 6 zu finden und in der Konfiguration entsprechend mit hw:0 anzugeben.

Andere Einstellungen habe ich in der Konfiguration nicht verändert. Evtl. paßt aber auch abhängig von der Hardware schon die Default-EInstellung und es sind keine Änderungen an der Konfiguration von shairplay-sync nötig.

Die nötigen Einstellungen können zum Testen auch direkt beim manuellen Start von shairplay-sync mittels Argument mitgegeben werden. Dazu erstmal ein bereits laufendes shairplay-sync mit folgendem Befehl stoppen:

sudo shairport-sync -k

Folgender Aufruf beinhaltet u.a. die von mir angepaßten Parameter:

sudo shairport-sync -vvv -a "Wohnzimmer" -d hw:0,1 -m hw:0 -c PCM

-v schreibt Debuginformationen zur Analyse von Problemen. -vv oder -vvv gibt mehr Informationen preis.
-a definiert den im AirPlay-Zuspieler angezeigten Namen
-d definiert das Gerät zur Audioausgabe. Hier kann dann mit dem im alsamixer gefundenen Geräten experimentiert werden
-c definiert den zu nutzenden Mixer. Dieser gehört in der Regel zum genutzten Gerät.

Eine komplette Liste aller Parameter von shairport-sync ist in der Hilfe oder in den man-Pages zu finden.

shairport-sync -h
man shairport-sync

Ergebnis

Im Ergebnis bin ich nun sehr zufrieden mit meiner Multiroom-Lösung. Neben den schon im ersten Artikel gut funktionierenden Punkten, kam jetzt das absolut synchrone Abspielen auf mehrere Lautsprecher hinzu. Die ganze Lösung ist immer noch sehr anwenderfreundlich. Fehlt mir jetzt noch ein kleiner portabler AirPlay-Lautsprecher für die Terrasse.

Vielen Dank nochmal an Martin von AirAudio für die sehr gute und schnelle Unterstützung!

 

Gruß
Chris

Multiroom mit Kodi und AirAudio

Multiroom ist ja aktuell in aller Munde. Auch ich wollte mich diesem Trend nicht verschliessen und habe einen “kleinen” Küchenlautsprecher angeschafft – die Canton Musicbox Air 3 in schickem Hochglanz-Weiß, passend zur Küche. Der Lautsprecher verfügt über WLAN mit Airplay und DLNA-Unterstützung. Vor allem aber hat sie genug Leistung und einen gutem Klang (vielleicht sogar etwas zu viel Wumms für die Küche…).

IMG_8769
Canton Musicbox Air 3

Gut, alleine mit dem Kauf des Canton-Lautsprechers war ich noch weit weg von Multiroom. Irgendwie muß “Multiroom” in meiner bereits vorhandenen Infrastruktur umgesetzt werden. Diese besteht aus einem mit Kodi betriebenem Wohnzimmer-PC und daran angeschlossenem 5.1 Receiver mit 5 Lautsprechern.

Was bedeutet Multiroom?

Für den einen bedeutet Multiroom die Wiedergabe der gleichen Tonquelle auf beliebig vielen Lautsprechern. Oder aber auch die Wiedergabe verschiedener Quellen auf einzelne Lautsprecher oder auch gruppiert auf unterschiedliche Lautsprecher.

Multiroom ist aber auch die Möglichkeit zur Auswahl der Wiedergabe von einer Tonquelle auf einem bestimmten Lautsprecher. Im ersten Anlauf tendiere ich zu diesem Ansatz, da ich nicht das komplette Haus beschallen muss und mich meistens in einem Raum aufhalte.

Die verschiedenen Hersteller wollen natürlich auch alle ein Stück vom Kuchen den Sonos mit seiner “PLAY”-Reihe angeschnitten hat und beschert dem Markt verschiedenen Mutliroom-Lösungen. Neben Sonos wäre da z.B. Teufel mit seiner Raumfeld-Reihe, Denon mit “HEOS”, Yamaha mit MusiCast und vielen mehr zu nennen.

Da ich im Wohnzimmer mit einem Denon-Receiver und den ELAC-Lautsprechern schon eine vernünftige Basis habe, schied für mich ein neues Komplettset der oben genannten Kandidaten aus. Ausser der Raumfeld-Reihe haben die meisten Multiroom-Sets auch eher “Plastik-Charm”, weshalb ich die ELAC-Lautsprecher bevorzuge.

Bedeutet Multiroom synchrone Musikwiedergabe?

Im Fall der oben beschriebenen Multiroom-Lösungen sollte der Ton schon synchron aus den Lautsprechern kommen. Schliesslich soll damit unter anderem auch 5.1/7.1/usw. umgesetzt werden. Das erledigt bei mir der Denon-Receiver ja schon. Bleibt noch die Synchronität zwischen Lautsprechern die z.B. in verschiedenen Räumen aufgestellt sind. Primär die Räume, die auch “akustisch verbunden” sind. Das war erstmal nicht mein Ziel, da es mir im ersten Anlauf um die Beschallung des Wohnzimmers oder der Küche basierend auf der Musikdatenbank des Wohnzimmer-PCs geht. Bei Filmen benötige ich den Ton nicht in der Küche oder sonstwo im Haus. Natürlich habe ich mich auch mit dem synchronen Abspielen der Musik beschäftigt aber dazu später mehr.

Mehr lesen

Wohnzimmer PC

Wer kennt das nicht: Die Musik landet heutzutage auf Handys und Festplatten und der gute alte CD-Player geht in Rente. Die Hersteller bietet verschiedene Lösungen an um MP3 & Co. im Wohnzimmer abzuspielen z.B. mit dem Handy und Bluetooth-Lautsprecher aber das finde ich alles nicht wirklich brauchbar und zu unflexibel.

Ein kleiner Media-PC für´s Wohnzimmer musste her. Meine Wahl fiel auf einen Zotac ZBOX ID41. Das ist nicht mehr der neuste Rechner, dafür aber relativ preiswert und von der Leistung völlig ausreichend für meine Zwecke. Alternativen mit diesem Formfaktor gibt es aber aktuell viele…von Zotac, die Intel NUCs und andere…

zbox

Der Rechner hat einen 1,8 GHz Atom mit 512 MB Hautpspeicher, eine nvidia Grafikkarte und jede Menge Schnittstellen. Als Betriebssystem habe ich ein Ubuntu 14.04 LTS installiert. Als Mediacenter kommt XBMC (demnächst “Kodi”) in der Version aktuell “13.2 Gotham” zum Einsatz.

Die Steuerung des Rechners geschieht über einen rahmenlosen 19″ Touchscreen von ELO den ich günstig in der Bucht gesteigert habe. Der Touchscreen sollte in die Wand eingelassen werden, der Rechner sollte irgendwo hinter der Couch verschwinden.

Unser Hausbau kam gelegen um alles ordentlich im Wohnzimmer zu integrieren. Oben links im Bild ist die Ausparung für den Monitor. Per Kabelkanal geht es an eine Ausgangsdose die später hinter der Coach ist. In den Kabelkanal kommt ein DVI-Kabel, ein USB-Kabel für den Touchscreen und ein Steuerkabel um bei dem ELO-Monitor das externe Bedienelement für Helligkeit, Kontrast etc. bei Bedarf anschliessen zu können.

IMG_1756

Den Monitor habe ich mit einem ausgeschnittenen Alu-Rahmen verschraubt den ich den Verputzern als Maß für die Ausparung gegeben hatte. das Netzteil des Monitors habe ich hinter dem Monitor in einer extra Vertiefung verstaut.

IMG_1832

Durch das dicke Leerrohr am Boden kamen ein HDMI-Kabel für den Fernsehanschluss (der ist in der Ecke wo das Abflussrohr steht), und ein mit 10m relativ langes optisches TOS-Link-Kabel welches aber problemlos funktioniert.

IMG_1834

Der Alu-Ramen inkl. Monitor habe ich mit Montagekleber in die Aussparung geklebt. Das hält sehr gut, ich bekomme es aber auch wieder (mit etwas Gewalt) ab.

Fertig eingebaut schaut das Ganze dann so aus. Um den Halterahmen zu verdecken ist um den Monitor ein weißer Alurahmen der mit doppelseitigem Klebeband befestigt ist. Für beide Rahmen nochmal vielen Dank an Ingo für das Schneiden mit dem Waterjet:-)

xbmc1

Der Rechners startet direkt per Autostart ins XBMC. Die Daten (Bilder, Musik, Videos) liegen auf einem NAS im Keller. Als Skin für den XBMC kommt der Touchscreen-freundliche “Joggler” zum Einsatz. Ohne Tastatur geht es leider nicht immer daher hängt eine sehr kleine Bluetooth-Tastatur von Keysonic (KSK-3200 RF) mit integriertem Trackball dran.

xbmc2

XBMC zeigt nach wenigen Minuten ohne Touch und weitere Eingaben eine Diashow als “Bildschirmschoner” mittels entsprechendem Slideshow-Plugin. Nach einer Stunde geht der Monitor in Standby.

Leider unterstützt XBMC (noch) keine vernünftige Dualscreen-Lösung so das ich Filme per VLC, etc. direkt aus dem Ubuntu schaue.

Da der Rechner fast immer läuft wenn jemand Zuhause ist, bietet er sich auch für die Startseite der Hausautomatisierung im Browser-Vollbildmodus an.

Gruß

Chris