Ohne Musik

24.02.2015 13:00 | 2 Kommentare

Ohne Musik, da wäre das Leben doch um einiges weniger unterhaltsam und schon eher traurig. Aus diesem Grund möchte ich heute mal auf meinen :fa-lastfm: LastFM Account hinweisen und mein Musik-Setup in meiner Wohnung erörtern. Ich hatte früher schonmal einen Account bei LastFM. Der wurde im Zuge meines "Account-Lösch-Wahnsinns" aber entfernt. Ich habe nun aber den Sinn neu erkannt: gute Empfehlungen!

LastFM zeigt euch Empfehlungen zu neuen Bands und Alben. Diese werden an eurem bisherigen Hörverhalten ermittelt, indem ihr in eurem Musicplayer zu LastFM eure Songs, die ihr hört, übermittelt (geht automatisiert und nennt sich "Scrobbeln"). Schön ist aber, dass ich dort z.B. Threshold entdeckt habe. Eine Band, die mich seit dem ersten Hören begleitet, wie ihr vielleicht schon wisst (super Konzert!). :-)

Richtig interessant ist aber der Vergleich der Qualität der Empfehlungen. Habe seit gut drei Monaten nun Spotify im Premium-Abo. Bin damit übrigens sehr zufrieden, auch wenn es kein ACDC gibt und es im Studententarif doch noch 4,99€ kostet :-(. Die Empfehlungen von Spotify sind so schlecht. Grauenhaft! LastFM hingegen zeigt mir durchaus passable Sachen, wo ich auch schon die ein oder andere Band neu entdeckt habe. Probiert es mal aus, vielleicht könnt ihr so euren musikalischen Horizont noch erweitern und das mit wenig Arbeit (Anmeldung und Einstellung ändern in eurem Player). :-)

Diesen Eintrag schreibe ich allerdings nicht nur, weil ich die Werbetrommel für LastFM rühren will, sondern weil ich mich seit einiger Zeit schon nach einer guten Lösung für das Problem der Musik in meiner Wohnung suche. Ich hatte als Anforderung, dass

  • ich nur eine Soundanlage habe, wo alle Endgeräte (PCs, TV, Android) Ton abspielen können
  • ich von meinem Server Musik streamen kann auf die Endgeräte (und natürlich an die Anlage selbst)
  • ich auf allen Endgeräten die Soundanlage steuern kann
  • ich auch auf Spotify zugreifen kann per Webinterface

Zusammenfassend sollte es eben möglich sein, von jedem Gerät alles zu streamen, zu hören und zu steuern. Es ist mir gelungen! :-) Die folgenden Anweisungen funktionieren übrigens auch, falls ihr keinen Server zuhause rumstehen habt, sondern nur ein Desktop-PC.

Hardware: 1 Soundanlage, viele Klienten

Meine (schlechten, aber bald zu ersetzende, mehr dazu später) Boxen stehen am TV. Ich habe am PC nur ein Headset. Klingt erst mal gewöhnungsbedürftig, erweist sich aber als durchaus praktisch, da ich nicht immer umstecken muss oder sowas. Jedes Audiosignal (Playback, nicht Streaming) läuft über meinen Server an die Boxen.

Software: PulseAudio, MPD und Mopidy

Jetzt wird es etwas technischer. Irgendwie brauche ich Software auf dem Server, der lokale Musik und Spotify abspielen kann. Außerdem muss die Ausgabe der Musik an andere Quellen (Stream) funktionieren. Zusätzlich sollte man Audio zum Server schicken können, der das dann über die Boxen ausgibt. Fangen wir mal mit dem einfachen an.

  • mpd: Zuständig für lokale Dateien (bei mir auf dem Server). Kann von ympd (Webinterface) oder auch anderen Clients (MuPeace für Android) gesteuert werden. Neben dem Abspielen von Musik beherrscht MPD auch Streaming. So kann ich z.B. Musik vom Server per MuPeace nicht nur steuern, sondern auch auf meinem Handy abspielen. Genial! Für den Betrieb mit ArchLinux musste ich allerdings die Startskripte anpassen, damit er den Service richtig startet und Zugriff auf die Soundkarte funktionierte.
/etc/systemd/system/mpd.service
[Unit]
After=network.target
After=sound.target
[Service]
User=musicstreamer
PAMName=system-local-login
ExecStart=/usr/bin/mpd --no-daemon
[Install]
WantedBy=multi-user.target

/etc/systemd/system/mpd.service.d/mpd.conf
[Service]
User=musicstreamer
PAMName=system-local-login

Das ist wichtig für den Soundoutput. Bei mopidy muss das auch so. Ich möchte euch natürlich den Webclient nicht vorenthalten.

ympd

  • mopidy:

Mopidy ist im Prinzip auch MPD. Es kann sogar auch lokale Dateien, ich habe mich aber für die getrennte Variante entschieden, da der mpd Playback mit mopidy noch sehr unausgereift ist. Für mich ist es nun mit gleichen Features (Streamen, Steuerung im Webinterface und mit Android) für Radio (TuneIn) und Spotify zuständig. Hier mal ein paar Screenshots, wie es dann im Webinterface aussieht:

moped

mopify

  • pulse(audio):

PulseAudio ist das Herzstück des gesamten Projektes. Ansich ist PulseAudio ein AudioServer, der im Gegensatz zum Standardaudio ALSA unter Linux erweiterte Funktionen beherrscht: Empfang von Audio über das Netzwerk, gleichzeitiges Abspielen von Musikquellen auf einer Soundkarte (overlapping) etc..

Was bringt mir das nun? Nunja, wenn ich lieber auf meinem PC über Boxen Musik hören will, habe ja nur Kopfhörer am PC, schicke ich das Audiosignal über das Netzwerk an PulseAudio auf meinem Server und der spielt es über die Boxen ab. Genial! Das eröffnet viele Möglichkeiten, wie ihr euch denken könnt. Immerhin klappt das mit jedem Audiosignal, also z.B. auch mit dem Audio von Spielen, die ich am PC spiele. Oder auch mit dem Spotifyclient, der hier auf meinem PC läuft und nicht auf dem Server (parallel eben zum Server-Spotify). Auf nachfolgendem Screenshot könnt ihr sehen, wie leicht ich am PC das Signal zum Server umleiten kann (zur Erinnerung: der musicstreamer ist der Benutzer von pulse auf meinem Server).

pulse

Damit das alles so reibungslos klappt, wie es das bei mir tut, müsst ihr auf Client und Server folgende Einstellungen in der default.pa der Pulseaudio-Server einrichten:

load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.1.0/24 auth-anonymous=1
load-module module-zeroconf-publish
load-module module-zeroconf-discover

Außerdem muss der Avahi-Service auf allen Geräten laufen, damit diese sich im Netzwerk selbst finden.

Zusammenfassend betrachtet bin ich so dermaßen zufrieden, wie ich es lange nicht mehr war. Ich kann von jedem Endgerät den Server steuern, kann auf jedes Endgerät Audio streamen oder auf dem Endgerät selbst vom Server abspielen. Jede Richtung geht problemlos. Außerdem haben meine Boxen nun endlich wieder eine gute Verwendung am TV/Server und werden deshalb auch bald ersetzt. :-) Für Partys auch der Hit: überall Musik reinschieben, auch wenn ich in der Küche bin. :-) Oder ein Endgerät in der Küche platzieren, was genau die gleiche Musik abspielt, wie die Boxen oben!

Hoffe, ich konnte euch ein wenig in mein Setup einweihen. Nachbauen erwünscht! Ist wirklich super!


Kommentare

ich verwende auf dem Server und auch auf meinem PC ArchLinux. PulseAudio Streaming zu deinem Server bzw. nur zur VM geht meines Wissens nach auch nur mit Linux, da es PulseAudio nur für Linux gibt. Es existieren zwar Windows Implementierungen, aber die sind in ihrer Funktionalität beschränkt. Ich selbst benutze Streaming zum Server nur von meinem Linux. Unter Windows habe ich mir da noch keine große Mühe gegeben, das zu realisieren, da ich Windows nur ab und zu für Spiele benötige.

Von Linux zu deiner VM sollte das aber problemlos klappen. Die hat ja eine eigene IP usw. im LAN, nehme ich an. Wenn du auf deinem PC allerdings Windows verwendest, da kann ich dir nicht helfen. Vielleicht gibt es auch ein Windows-zu-Windows Äquivalent für diese Streaming Sache.

Mit meinem Blog versuche ich Einblicke in sowas zu geben. Eine Schritt für Schritt Anleitung ist zeitintensiv. Außerdem war es bei mir auch nur Pakete aus dem AUR (ArchLinux User Repository) zu installieren und zwei bis drei Konfigurationsänderungen vorzunehmen


avatar
Stephan H. | vor 3 Jahren |

Hallo,

mich würde interessieren, welches Betriebssystem verwendest du auf dem PC auf den du streamst? Ich habe mir auf meinem Windowsserver eine virtuelle Maschine mit Ubuntu eingerichtet. Auch Pulseaudio habe ich da in Betrieb. Nur was ich ums verrecken nicht schaffe, ist, auf meinen Windows PC zu streamen??? Hast du da vielleicht eine Idee wie ich das hinbekomme? Muss ich hier was spezielles beachten?? Danke schon mal für einen Tipp!

Würde jetzt auch gerne auf Mpoidy umsteigen, fände es toll wenn es ein Tutorial bezüglich der Installation und Einrichtung gäbe, auf deutsch am Besten.

Grüße Stephan


Mit dem Absenden des Formulars akzeptiere ich die Datenschutzbestimmungen dieses Dienstes.