Inhaltsverzeichnis

MPD

Das Musikmopped sorgt für Musik im Space. Die Musik wird über den Music Player Daemon (MPD) abgespielt, was bedeutet, dass das Musikmopped mit jedem MPD-Klienten gefahren werden kann. Der Verstärker muss dafür auf den jeweiligen Output gestellt werden.

Wo Adresse hostname Port Spotify Name
Aerie 10.42.1.184 mpd.lounge.foobar.local 6600 lounge
elab 10.42.1.125 mpd.elab.foobar.local 6600 elab

v5.0 - RPi3 + Pulseaudio + AirPlay + Spotify Connect

Nun funktioniert auch das Einspeisen von eigenem Audio über Pulseaudio und von Apple Geräten und das abspielen von Tracks über Spotify.

Anleitung

MPD

Der Mpd verfügt über mehrere Outputs, welche die Wiedergabe über die gesamte Etage verteilen können. Falls in einem Raum schon über Pulseaudio oder Airtunes Musik abgespeilt wird, wird der Output einfach darübergelegt.

Spotify Connect

Auf beiden Pis läuft Spotifyd. Das ermöglicht das abspielen von Spotify tracks über Spotify connect. Zum abspielen wird ein Spotify Premium account benötigt.

ToDo

Beispiele

Folgendes Kommando spielt eine Wav- (ffmpeg -acodec pcm_s16le -ar 44100) kodierte Datei file.wav in der Lounge ab:

paplay -s tcp:10.42.1.139:4713 -d lounge --volume 65535 --rate 44100 file.wav -vvv

Um überflüssige Transkodierungslast zu vermeiden empfiehlt sich das Format s16le bei 44100 Hz.

v4.0 - RaspberryPi 3 (aerie)

In Aerie gibt es nun einen zentralen MPD, der Outputs für alle Räume hat. Die Konfiguration für MPD und alsa findet man hier. Gerade gibt es leider keine Möglichkeit Raumbezogen Musik über Pulseaudio einzuspielen. Dies muss in der nächsten Version auf jeden Fall funktionieren.

v3.0 - RaspberryPi B+

Durch ersetzen des RasPi B durch nen B+ ist die Soundkarte weggefallen. Zusätzlich konnte die Festplatte durch ne Sambafreigabe auf dem Storageserver ersetz werden (Musik und Playlisten) um mehrere Pi's von der gleichen Datenbasis zu befeuern.

Die MPD's sind per DNS und v6 erreichbar. Alternativ könnt ihr auch die v4 Adresse direkt eintragen (v6 aktivieren macht euch das Leben aber deutlich einfacher ;))

Um dort Musik hinzubekommen verbindet euch mit storage.chaospott.de per smb (Windowsfreigabe) und kopiert eure Musik in den music Ordner. Wenn das passiert ist, müsst ihr dem MPD sagen das er seine Datenbank updaten soll (euer Client sollte eine Funktion dafür bereitstellen, macht der MPD aber auch bei jedem start selbst). Nach nen paar Minuten sollte euer Kram verfügbar sein.

v2.0 - RaspberryPi B

In der zweiten Version des Musikmoppeds übernimmt ein RaspberryPi B die Aufgabes des VIP1710. Eine externe USB-Soundkarte behebt die mangelhafte Audioausgabe der Onboard-Hardware. Der USB-Stick wurde durch eine externe Festplatte ersetzt. Als Betriebssystem wird Rasbian verwendet.

Config

Pulseaudio

sudo apt-get install pulseaudio pulseaudio-module-zeroconf avahi-daemon
sudo adduser pi pulse-access

Setze in

/etc/default/pulseaudio

:

PULSEAUDIO_SYSTEM_START=1

Füge zur

/etc/pulse/system.pa

hinzu:

### Network-Available   
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;10.0.0.0/8 
load-module module-zeroconf-publish

An dieser Stelle solltest du rebooten. (

sudo reboot

). Es können jetzt Sounds über das Netzwerk wiedergegeben werden.

Festplatte

sudo apt-get install mpd
sudo adduser mpd pulse-access

Schließ die Musikfestplatte an.

Lege einen Mountpoint für die Platte an:

sudo mkdir /media/musik
sudo chown pi /media/musik

Trage in der

/etc/fstab

ein:

/dev/sda1       /media/musik    ext3    defaults,noatime  0       3

Jetzt wird die Platte bei Systemstart gemountet. Um sie ohne Reboot zu mounten, führe aus:

mount -a

MPD

Öffne

/etc/mpd.conf

und mache aus

#audio_output {
#       type            "pulse"
#       name            "My Pulse Output"
#       server          "remote_server"         # optional
#       sink            "remote_server_sink"    # optional
#}
audio_output {
       type            "pulse"
       name            "MPD PulseAudio Output"
#       server          "remote_server"         # optional
#       sink            "remote_server_sink"    # optional
}

Weiterhin muss folgende Zeile auskommentiert werden, damit der MPD über das Netzwerk erreichbar ist:

bind_to_address                "localhost"

Als letztes Setze die korrekten Verzeichnisse in der Datei:

music_directory         "/media/musik/musik"
playlist_directory      "/media/musik/playlists"
db_file                 "/media/musik/db/tag_cache"

Anschließend kann der MPD neu gestartet werden und sollte komplett laufen.

sudo service mpd restart

Spotify

Um Lieder über Spotify abzuspielen, muss lediglich das entsprechende Device über das Spotify Connect Menü ausgewählt werden.

Shairplay / AirPort

Damit kann man von Apple-Devices auf das Musikmopped streamen.

sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl
cd 
git clone https://github.com/hendrikw82/shairport.git
cd shairport
make

Net::SDP für Perl installieren.

sudo make install
sudo cp shairport.init.sample /etc/init.d/shairport
sudo cd /etc/init.d
sudo chmod a+x shairport
sudo update-rc.d shairport defaults
adduser root pulse-access

Jetzt nur noch die

/etc/init.d/shairport

bearbeiten und bei DAEMON_ARGS die Zeile durch

DAEMON_ARGS="-w $PIDFILE -a Musikmopped"

ersetzen.

Jetzt kann Shairport gestartet werden und startet auch bei Systemstart.

sudo service shairport restart

v1.0 - VIP1710

Für die erste Version des Musikmoppeds wurde ein MOTOROLA VIP1710 mit mediadistro ausgestattet und für unsere Zwecke angepasst. Ein USB-Stick in Micro-Bauform hält sowohl das Image des Betriebssystems als auch die Musikdaten.

Kernel

Es gab immer wieder Probleme mit dem ext2-Dateisystem auf dem USB-Stick.

Mediadistro kommt ohne Unterstützung des ext3-Dateisystems. Das ext3-Modul wurde mit der Cross-Toolchain kompiliert und in die Distribution integriert.

Replay Gain

Vor dem Hinzufügen neuer Dateien sollten Replay Gain-Informationen zu den ID3v2-Tags hinzugefügt werden.

Um alle MP3-Dateien im aktuellen Ordner damit auszustatten, kann folgender Befehl verwendet werden:

find . -type f -iname '*.mp3' -print0 | parallel --eta -0 mp3gain -p -s i

(Benötigt GNU Parallelpactl set-sink-volume 0 20% und mp3gain.)