Table of Contents
PiMPD
Music in the space is controlled by a VM on Alford running MPD. hibby is responsible for this project. It used to live on a Pi, hence the name.
The address for the Pi MPD is 'pimpd.57north.org.uk
' or '172.23.152.9
'
Controlling the Music
You can connect to the player using the webpage interface or via an MPD client. Clients for some architectures are listed below:
Webpage
Visit http://pimpd.57north.org.uk or http://172.23.152.9 and use the UI to select/queue as required.
iOS
MPod is available for iOS.
Android
MPDroid is available in the Play Store. You will need to enter the IP of the Pi - 172.23.152.9 and just leave all the rest of the details at default.
Linux
ncmpc is available in the Debian GNU/Linux repositories and likely in other Linux distributions too. To run it, you will need to pass the arguments: “-h 172.23.152.9”. You could create an alias like so:
alias pimpd="ncmpc -h 172.23.152.9"
to run ncmpc pointing at the Pi MPD without having to type the arguments out every time.
Adding music
Adding music to MPD is done via our anonymous FTP service on Alford!
FTP
It appears to be the fashion to make yourself a user folder, so if you don't have one, do that!
Adding via CLI
First navigate to the folder on your computer that where you have music kept:
> cd /path/to/music
Then connect to Alford via ssh:
> sftp username@172.23.152.7
'cd' to your directory:
> cd username
Use the put command to copy tracks across: (You may want to do this on the wired network if you have a large amount of files to transfer)
> put *.mp3
For additional help with commands you can view the sftp man page or enter:
> sftp --help
Other methods
You can also add tracks to your folder with an alternative application such as Filezilla which is an open-source (GNU GPL) (S)FTP client for Windows, Mac OS X and GNU/Linux.
NFS
Use NFS to mount alford.57north.org.uk:/usr/filestore/Music
or 172.23.152.9:/usr/filestore/Music
if you're on our network.
Listening to the music
Speakers
Currently, the playback-pi is configured to play whatever mpd is pushing to snapcast.
This is connected to the loudspeakers at the media workstation, on the audio switch input 1.
Snapclient
The mpd server uses snapcast to broadcast audio to the network and ensure all players are in sync.
On Debian, you only need to do the following while on our network to make your laptop sing in sync:
# apt install snapclient
# systemctl start snapclient
To shut it up,
# systemctl stop snapclient
HTTP Stream
It also broadcasts on the space network via HTTP. To listen in, use an icecast player (VLC works well) and play the following network address:
http://172.23.152.9:8000/Stream.m3u (Note the uppercase S)
This will lag the snapcast stream by some undefined quantity of time.
Blame
To figure out who is to blame for adding a track that is currently playing you want (to run bash and then run) either:
dirname $(mpc -h 172.23.152.9 search Title "`pimp -h 172.31.4.11 current | tr " - " "\n" | tail -n 1`")
or:
dirname $(pimp -h 172.23.152.9 current)
if the track didn't have any tags and the current was returning the file name. It should be possible to have a machine decide which command was needed…
VM Config
The VM is a standard Debian Testing install, granted 1 core and 1GB RAM. Alford exposes the music share folder as NFS read only, which is mounted in the vm at /mnt/music
MPD is run using the stock systemd unit shipped by Debian. Graphical frontend is myMPD started at boot using the default systemd unit it ships with. It is configured to not provide an ssl service due to certificates being hard.
Snapcast is provided by snapserver from Debian, and requires the following config in /etc/mpd.conf
:
audio_output { type "fifo" name "my pipe" path "/tmp/snapfifo" format "44100:16:2" mixer_type "software" }