From The Munich Maker Lab's Wiki
Revision as of 12:04, 10 September 2022 by C22 (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Attention.png You are visiting an old space documentation. The information found on "SpaceMusic" might be out of date.

Release status: obsolete [box doku]

Author(s)  Severin

What is it?

We have an awesome sound system at the space. It is attached to the Docker running an instance of mpd (music player daemon), as well as targets for AirPlay, UPnP and Spotify Connect.


  • Hostname:
  • IP:
  • Port: 6600
  • Password: none

How to use

You can control mpd using a media player client software. We recommend gmpc for Mausschubsers and ncmpc for the nerds.

ncmpc -h

Alternatively, there's a webinterface at

MQTT Control

The MPD can also be controlled via MQTT. Therefore, we have a service running that translates MQTT messages into MPD commands. It's currently running on the Docker machine (, and the code that's used can be found at


  • mumalab/mpd/command: understands the following commands: play, pause, next, previous, toggle, volume up, volume down

Implementation Details

On docker01, we are running the following services:

  • shairport-sync for AirPlay
    • Installed via the standard Debian repository
    • Changed name in /etc/shairport-sync.conf
  • Rygel for UPnP Streaming
    • Installed from Debian repository
    • Configuration see below
  • spotifyd for Spotify Connect
    • Compiled from source, see below
  • MPD
    • Installed from Debian repository
  • YMPC as MPD Web Frontend
    • Running as a docker container


  • Install via Debian repo
apt install rygel rygel-playbin
  • Create dedicated user and group
mkdir /var/lib/rygel
groupadd -r rygel
useradd -r -d /var/lib/rygel -g rygel -G audio rygel
chown rygel:rygel /var/lib/rygel
  • Create Unitfile /lib/systemd/system/rygel.service
Description=Rygel DLNA server

# ExecStart=/usr/bin/wrap-dbus /usr/bin/rygel

  • Enable and start systemd service
systemctl daemon-reload
systemctl enable rygel
systemctl start rygel


  • Install prerequisites
apt install libasound2-dev libssl-dev libpulse-dev libdbus-1-dev
git clone
cd spotifyd
cargo build --release
cp target/release/spotifyd /usr/local/bin/
  • Create group and user
mkdir /var/lib/spotifyd
groupadd -r spotifyd
useradd -r -d /var/lib/spotifyd -g spotifyd -G audio spotifyd
chown spotifyd:spotifyd /var/lib/spotifyd
  • Create Configuration file /etc/spotifyd.conf
# The name that gets displayed under the connect tab on
# official clients. Spaces are not allowed!
device_name = Soundsystem@MuMaLab

# The audio bitrate. 96, 160 or 320 kbit/s
bitrate = 160
  • Create Unit file /lib/systemd/system/spotifyd.service
Description=Spotify Connect server

ExecStart=/usr/local/bin/spotifyd --no-daemon

  • Enable and start systemd service
systemctl daemon-reload
systemctl enable spotifyd
systemctl start spotifyd