(Last Updated On: March 6, 2018)

In this guide, we’re going to look at how to Install and configure mpd and ncmpcpp on MacOS. This will cover installation of packages, generation of configuration files and some tweakings for both Mpd and Ncmpcpp.

For Linux users, especially Arch, have a look at

How to configure mpd and ncmpcpp on Linux

What is Mpd?

For those new to Mpd, it is referred to as Music Player Daemon in full. Mpd is a flexible, powerful, server-side application for playing music. Through plugins and libraries, it can play a variety of sound files while being controlled by its network protocol. Mpd allows you to remotely play your music, handle playlists, deliver music (HTTP streams with various sub-protocols) and organize playlists.

What is Ncmpcpp?

Ncmpcpp is an mpd client for Mpd with a UI interface similar to the one on ncmpc. It also has some good features such as support for regular expressions for library searches, extended song format, items filtering, the ability to sort playlists, and a local filesystem browser.

To be able to use ncmpcpp, you need to have a running mpd service since this is a client/server relationship.

Installing Mpd and Ncmpcpp on macOS

Installation of Mpd and Ncmpcpp on mac is done using brew. If you don’t have a brew command on your Mac, refer to my previous article Install OpenOffice and LibreOffice on MacOS SierraIt has the steps to install Homebrew.

You can search for the packages using:

$ brew search mpd ncmpcpp
==> Searching local taps...libmpdclient ✔ libmpd mpdscribble rtmpdump
mpd ✔ mpdas mpdviz==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...

$ brew search ncmpcpp 
==> Searching local taps...ncmpcpp ✔
==> Searching taps on GitHub...==> Searching blacklisted, migrated and deleted formulae...

Now that you have Homebrew installed, run the following commands to install mpd and ncmpcpp.

$ brew install mpd ncmpcpp

Configure Mpd and Ncmpcpp on macOS

Once the installation is done, we need to do some configurations before we can run the applications. We’ll start with Mpd then move to ncmpcpp.

Create Mpd media directories.

$ mkdir -p ~/.mpd/playlists
$ touch ~/.mpd/{mpd.conf,mpd.db,mpd.log,mpd.pid,mpdstate}
$ ls ~/.mpd/
mpd.conf mpd.db mpd.log mpd.pid mpdstate playlists

Now create a valid and working ~/.mpd/mpd.conf file which is processed whenever you start mpd daemon. My configuration looks like below, you can modify it to your liking.

$ cat ~/.mpd/mpd.conf

music_directory "~/Music"
playlist_directory "~/.mpd/playlists"
db_file "~/.mpd/mpd.db"
log_file "~/.mpd/mpd.log"
pid_file "~/.mpd/mpd.pid"
state_file "~/.mpd/mpdstate"
auto_update "yes"
auto_update_depth "2"
follow_outside_symlinks "yes"
follow_inside_symlinks "yes"

audio_output {
 type "osx"
 name "CoreAudio"
 mixer_type "software"

decoder {
 plugin "mp4ff"
 enabled "no"

bind_to_address ""
port "6600"
user "jmutai"

# Visualizer
audio_output {
 type "fifo"
 name "my_fifo"
 path "/tmp/mpd.fifo"
 format "44100:16:2"
 auto_resample "no"
 use_mmap "yes"

For ncmpcpp, create the directory for its configurations.

$ mkdir ~/.ncmpcpp/
$ touch ~/.ncmpcpp/error.log

The configuration file for ncmpcpp will look something like below.

$ cat ~/.ncmpcpp/config

# Files
 mpd_music_dir = "~/Music"
 lyrics_directory = ~/.ncmpcpp/lyrics
 ncmpcpp_directory = ~/.ncmpcpp
 mpd_host = "localhost"
 mpd_port = "6600"
 mpd_connection_timeout = "5"
 mpd_crossfade_time = "5"

# Playlist
 playlist_disable_highlight_delay = "0"
 playlist_display_mode = "columns"
 playlist_show_remaining_time = "yes"

browser_display_mode = "columns"
 autocenter_mode = "yes"
 fancy_scrolling = "yes"
 follow_now_playing_lyrics = "yes"
 display_screens_numbers_on_start = "yes"
 ignore_leading_the = "yes"
 lyrics_database = "1"
#song_columns_list_format = "(10)[blue]{l} (30)[green]{a} (30)[magenta]{b} (50)[yellow]{t}"
 song_columns_list_format = "(8f)[250]{l} (32)[magenta]{b} (42)[cyan]{t}|{f} (18)[blue]{ar}"
 colors_enabled = "yes"
 main_window_color = "white"
 main_window_highlight_color = "blue"
 header_window_color = "cyan"
 volume_color = "red"
 progressbar_color = "cyan"
 statusbar_color = "white"
 active_column_color = "cyan"
 active_window_border = "blue"

alternative_header_first_line_format = "$0$aqqu$/a {$7%a - $9}{$5%t$9}|{$8%f$9} $0$atqq$/a$9"
alternative_header_second_line_format = "{{$6%b$9}{ [$6%y$9]}}|{%D}"
song_list_format = "{$3%n │ $9}{$7%a - $9}{$5%t$9}|{$8%f$9}$R{$6 │ %b$9}{$3 │ %l$9}"
user_interface = "alternative"
#user_interface = "classic"
default_place_to_search_in = "database"

# visualizer
visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "my_fifo"
visualizer_sync_interval = "12"
visualizer_type = "wave" (spectrum/wave)
#visualizer_type = wave
visualizer_in_stereo = "yes"
visualizer_look = "+|"
# visualizer_look = "▋▋"

## Navigation ##
cyclic_scrolling = "yes"
header_text_scrolling = "yes"
jump_to_now_playing_song_at_start = "yes"
lines_scrolled = "2"

## Other ##
system_encoding = "utf-8"
regular_expressions = "extended"

## Selected tracks ##
selected_item_prefix = "* "
discard_colors_if_item_is_selected = "no"

## Seeking ##
incremental_seeking = "yes"
#seek_time = "1"

## Visivility ##
header_visibility = "yes"
statusbar_visibility = "yes"
titles_visibility = "yes"

progressbar_look = "=>-"
#progressbar_look = "─╼─"
progressbar_elapsed_color = "white"

#now_playing_prefix = "> "
now_playing_prefix = "$b$2▶ "

song_status_format = " $2%a $4⟫$3⟫ $8%t $4⟫$3⟫ $5%b "
autocenter_mode = "yes"
centered_cursor = "yes"

# Misc
display_bitrate = "yes"
# enable_window_title = "no"
follow_now_playing_lyrics = "yes"
ignore_leading_the = "yes"
empty_tag_marker = ""

Starting Mpd

Start mpd service using the command:

$ mpd

Mpd process can be killed by running the command.

$ mpd --kill

To update mpd, execute the command,

$ mpd update

Accessing ncmpcpp interface

You can access your ncmpcpp interface by using the command below on your terminal.

$ ncmpcpp

You should get something like this.

All my dotfiles for MacOS are available on my gitbub dotfiles repository. Thanks for checking out the Install and configure mpd and ncmpcpp on MacOS guide.