======= 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** | | [[raeume:start#Aerie]] | 10.42.1.139 | mpd.lounge.foobar.local | 6600 | lounge | | [[raeume:elab:start]] | 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 ===== * Installiere ''paprefs'' und/oder ggf. auch ''pulseaudio-zeroconf''. * Klicke im ersten Tab die Option "Make Discoverable"/"Pulseaudio-Netzwerk-Audio-Geräte auffindbar machen" * Alternativ in ''/etc/pulse/default.pa'' eintragen: load-module module-native-protocol-tcp load-module module-zeroconf-discover * Wähle eines der angezeigten sinks aus: ''lounge'' ''baellebad'' ''cantina'' ===== 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 [[http://github.com/spotifyd/spotifyd|Spotifyd]]. Das ermöglicht das abspielen von Spotify tracks über Spotify connect. Zum abspielen wird ein Spotify Premium account benötigt. ===== ToDo ===== * forked-daapd deployen https://github.com/ejurgensen/forked-daapd ===== 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 [[raeume:start#Aerie]] gibt es nun einen zentralen MPD, der Outputs für alle Räume hat. Die Konfiguration für MPD und alsa findet man [[https://git.chaospott.de/aeris/mpd-lounge|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 [[https://www.spotify.com/de/connect/|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 [[http://www.mikrocontroller.net/articles/MOTOROLA_VIP1710|MOTOROLA VIP1710]] mit [[http://thinksilicon.de/59/Die-VIP1710-als-Internetradio.html|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.)