Saturday, August 16, 2008

HowTo: Musicpd (Music Player Daemon) on FreeBSD

MPD stands for Music Player Daemon. It is made to control music through a very unique way. MPD has support for MP3, Ogg, FLAC, AAC, Mod, and wav files.

Let's proceed with the steps needed to install musicpd from ports:
  • % su
  • # cd /usr/ports/audio/musicpd ; make install clean
  • if you want select additional audio formats such as AAC and MOD files
Now let's move onto the configuration by copying the port's supplied example and editing from there:
  • # cp /usr/local/share/doc/mpd/mpdconf.example /usr/local/etc/mpd.conf
  • # chmod 644 /usr/local/etc/mpd.conf
  • # vi /usr/local/etc/mpd.conf
music_directory "/mnt/music"
playlist_directory "~/playlists"
db_file "~/database"
log_file "~/log"
error_file "~/error"
pid_file "~/pid"
state_file "~/state"
user "musicpd"

port "6600"
bind_to_address "127.0.0.1"

audio_output {
type "oss"
name "OSS"
}
To prevent MPD running as root we can setup a new user (musicpd):
  • # adduser
Username: musicpd
Full name: Music Player Daemon
Uid (Leave empty for default):
Login group [musicpd]:
Login group is musicpd. Invite mpd into other groups? []:
Login class [default]: daemon
Shell (sh csh tcsh bash rbash nologin) [sh]: nologin
Home directory [/home/musicpd]:
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: yes
Username : musicpd
Password :
Full Name : Music Player Daemon
Uid : 1002
Class : daemon
Groups : musicpd
Home : /home/musicpd
Shell : /usr/sbin/nologin
Locked : yes
OK? (yes/no): yes
Add another user? (yes/no): no
Goodbye!
  • # mkdir -p /home/musicpd/playlists
  • # chown muiscpd:musicpd /home/musicpd/playlists
To start MPD at boot time:
  • # echo 'musicpd_enable="YES"' >> /etc/rc.conf
Finally we start MPD and create the database:
  • # /usr/local/bin/mpd --create-db /usr/local/etc/mpd.conf
Now that we have the daemon up and running we need to put it to good use. I use the NCMPC client for the job.

To install NCMPC from ports:
  • # cd /usr/ports/audio/ncmpc ; make install clean

11 comments:

  1. Awesome! Thank you so much, this worked. I've always been trying to make musicpd (mpd) work on FreeBSD. And now does.

    ReplyDelete
  2. :)

    Thanks for the positive feedback.

    ReplyDelete
  3. mpd is now named musicpd on ports, and in general the binary is musicpd, do you know why? Just asking because am a bit confused seeing you are running it as mpd

    ReplyDelete
  4. I'm not sure I follow...

    In the Linux world Music player Daemon is known by its acronym MPD thus the application is named mp in all distribution repositories.

    In the FreeBSD side of things there is a mpd in the base system in FreeBSD 9. To distinguish both the ports team opted to name it musicpd in the ports tree.

    In short, mpd (Linux) = musicpd (FreeBSD).

    ReplyDelete
  5. thank you for the quick reply. :)

    ReplyDelete
  6. Nice job!
    M(usic)PD is so light & fast so I love it ;)
    A time ago got it on my ubuntu - now ill try it with a BSD

    Thanks.

    ReplyDelete
  7. Thanks for the feedback :)

    Though this howto is a few years old it should largely (if not completely) apply.

    ReplyDelete
  8. create-db
    is deprecated, how should i create the database file now?

    ReplyDelete
  9. Matthew,

    This how-to was created in 2008, roughly 7 years ago and I'm sure MPD changed much since.

    I don't use MPD these days so I'd suggest having a look at the manpage or using a search engine.

    Regards,
    tangram.

    ReplyDelete
  10. Hi Tangram.

    May I just ask, if you don't use MPD anymore, what then do you use as its replacement? I ask because I'm evaluating the use of 'xmms2d', and so far, MPD seems a nicer, cleaner option.

    Best,
    Paul Kotschy

    ReplyDelete
  11. TBH nothing :) I hardly listen to music these days -.-

    ReplyDelete