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.
Nun funktioniert auch das Einspeisen von eigenem Audio über Pulseaudio und von Apple Geräten und das abspielen von Tracks über Spotify.
paprefs
und/oder ggf. auch pulseaudio-zeroconf
./etc/pulse/default.pa
eintragen: load-module module-native-protocol-tcp load-module module-zeroconf-discover
lounge
baellebad
cantina
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.
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.
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.
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.
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.
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.
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.
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
Ö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
Um Lieder über Spotify abzuspielen, muss lediglich das entsprechende Device über das Spotify Connect Menü ausgewählt werden.
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
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.
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.
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.)