User Tools

Site Tools


projects:pimpd

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"
}

Future Ideas

projects/pimpd.txt · Last modified: 2022/10/05 15:52 by hibby