A Classic yet Nostalgic Music Player: NCMPCPP
Intro
NCurses Music Player Client Plus Plus adalah nama panjang dari NCMPCPP. Ya, seperti namanya, ncmpcpp adalah music player berbasis mpd. MPD? Iya, Music Player Daemon alias MPD adalah pemutar musik. Dengan kata lain, mpd adalah server music player dan ncmpcpp adalah salah satu music player client-nya.
Sengaja saya beri judul “Classic” dan “Nostalgic” untuk ncmpcpp karena memang, ncmpcpp tidak bisa dibandingkan dengan aplikasi atau software-software pemutar musik yang ada saat ini, seperti Spotify. Tidak bisa dibandingkan karena ncmpcpp adalah music player offline berbasis cli yang artinya berjalan di terminal dan tidak memiliki tampilan grafis sementara music player seperti Spotify sudah jelas bahkan bukan hanya sekadar music player, tapi platform musik dan podcast dalam jaringan (online).
Tapi, tidak bisa dibandingkan bukan berarti lebih buruk. Justru, sifat “Classic” dan “Nostalgic”-nya itulah yang memberikan nilai tambah untuk ncmpcpp (walaupun sebetulnya, Spotify juga punya software berbasis cli-nya sendiri (spotify-tui) sehingga bisa menghapus seluruh claim saya untuk ncmpcpp barusan
Install
Instalasinya:
| No | Distro | Install |
|---|---|---|
| 1 | Debian/Ubuntu | sudo apt install ncmpcpp mpd mpc |
| 2 | Arch | sudo pacman -S ncmpcpp mpd mpc |
| 3 | OpenSuse | sudo zypper in ncmpcpp mpd mpc |
| 4 | Fedora | sudo dnf install ncmpcpp mpd mpc |
Note:
mpcadalah command line client untuk MPD, jadi kita perlu meng-install-nya karena nanti juga akan digunakan untuk menampilkan notifikasi.
Configuration
Pertama, kita buat dua direktori untuk mpd dan ncmpcpp:
mkdir -p ~/.config/{mpd,ncmpcpp}MPD Config
Setelah itu, kita isikan beberapa file dan folder yang dibutuhkan oleh mpd, termasuk juga file konfigurasinya: mpd.conf:
cd ~/.config/mpdtouch database log pid state sticker.sql mpd.conf && mkdir lyrics playlistsBerikut adalah isi file mpd.conf milik saya1:
bind_to_address "localhost"port "6600"log_level "default"input { plugin "curl"}audio_output { type "pulse" name "My Pulse Output" options "dev=dmixer"}audio_output { type "fifo" name "My fifo output" path "/tmp/mpd.fifo" format "44100:16:2"}db_file "~/.config/mpd/database"log_file "~/.config/mpd/log"music_directory "~/Music"playlist_directory "~/.config/mpd/playlists"pid_file "~/.config/mpd/pid"state_file "~/.config/mpd/state"sticker_file "~/.config/mpd/sticker.sql"Untuk memastikan file konfigurasi kita sudah sesuai, kita bisa jalankan mpd:
mpdKalau muncul pesan berikut:
decoder: Decoder plugin 'wildmidi' is unavailable: configuration file does not exist: /etc/timidity/timidity.cfgKita hanya perlu membuat file timidity.cfg tersebut:
sudo mkdir /etc/timiditysudo touch /etc/timidity/timidity.cfgKalau sudah, kita bisa menjalankan ulang mpd dan harusnya tidak ada pesan apapun jika mpd sudah berjalan dengan baik.
pkill mpdmpdKita juga bisa memastikan mpd sudah berjalan di port 6600 dengan mengetikkan perintah berikut:
netstat -tupln | grep mpd
NCMPCPP Config
Beralih ke direktori ~/.config/ncmpcpp, kita akan membuat file konfigurasi ncmpcpp, yaitu file config.
cd ~/.config/ncmpcpptouch configBerikut adalah isi file konfigurasi ncmpcpp yang saya miliki2:
ncmpcpp_directory = ~/.config/ncmpcpplyrics_directory = ~/.config/mpd/lyricsmpd_music_dir = ~/Music
screen_switcher_mode = playlist, visualizerstartup_slave_screen = visualizerstartup_slave_screen_focus = yeslocked_screen_width_part = 60user_interface = alternative
visualizer_data_source = /tmp/mpd.fifovisualizer_in_stereo = yesvisualizer_type = spectrumvisualizer_look = "▋▋"visualizer_spectrum_smooth_look = yes
progressbar_look = "╺▶"
enable_window_title = yessong_status_format = {{`%a{ "%b"{ (%y)}}` - }{%t}}|{%f}playlist_display_mode = "classic"playlist_editor_display_mode = classiccolors_enabled = no
execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist%' current)" --icon="/home/wildan/.icons/buuf-nestort/apps/spotify.png"
## For a song format you can use:## %l - length## %f - filename## %D - directory## %a - artist## %A - album artist## %t - title## %b - album## %y - date## %n - track number (01/12 -> 01)## %N - full track info (01/12 -> 01/12)## %g - genre## %c - composer## %p - performer## %d - disc## %C - comment## %P - priority## $R - begin right alignmentNote:
notify-sendadalah sebuah program mengirimkan notifikasi ke desktop. Supaya bisa menggunakannotify-send, kita perlu menginstallnya terlebih dahulu:Terminal window sudo pacman -Sy libnotify
Atau kalian juga bisa menggunakan file konfigurasi default dari ncmpcpp, jadi bisa custom sendiri interface ncmpcpp-nya:
cp /usr/share/doc../images/ncmpcpp/config ~/.config/ncmpcppBerikut adalah tampilan ncmpcpp saya menggunakan config di atas:

Kalian juga bisa menggunakan konfigurasi ncmpcpp milik owl4ce: https://github.com/owl4ce/dotfiles/blob/ng/.config../images/ncmpcpp/main.config
# User's ncmpcpp main configuration.# https://github.com/owl4ce/dotfiles
# MPD# ---mpd_host = "127.0.0.1"mpd_port = "6600"mpd_crossfade_time = "2"
# VISUALIZER# ---visualizer_data_source = "/tmp/mpd.fifo"visualizer_output_name = "Visualizer"visualizer_in_stereo = "no"visualizer_fps = "60"visualizer_type = "wave"visualizer_look = "∗▐"visualizer_color = "199,200,201,202,166,130,94,58,22"visualizer_spectrum_smooth_look = "yes"
# GENERAL# ---lyrics_directory = "~/.config../images/ncmpcpp/lyrics"connected_message_on_startup = "yes"cyclic_scrolling = "yes"mouse_support = "yes"mouse_list_scroll_whole_page = "yes"lines_scrolled = "1"message_delay_time = "1"playlist_shorten_total_times = "yes"playlist_display_mode = "columns"browser_display_mode = "columns"search_engine_display_mode = "columns"playlist_editor_display_mode = "columns"autocenter_mode = "yes"centered_cursor = "yes"user_interface = "classic"follow_now_playing_lyrics = "yes"locked_screen_width_part = "50"ask_for_locked_screen_width_part = "yes"display_bitrate = "no"external_editor = "nano"main_window_color = "default"startup_screen = "playlist"
# PROGRESS BAR# ---progressbar_look = "━━━"#progressbar_look = "▃▃▃"progressbar_elapsed_color = "5"progressbar_color = "black"
# UI VISIBILITY# ---header_visibility = "no"statusbar_visibility = "yes"titles_visibility = "yes"enable_window_title = "yes"
# COLORS# ---statusbar_color = "white"color1 = "white"color2 = "blue"
# UI APPEARANCE# ---now_playing_prefix = "$b$2$7 "now_playing_suffix = " $/b$8"current_item_prefix = "$b$7$/b$3 "current_item_suffix = " $8"
song_columns_list_format = "(50)[]{t|fr:Title} (0)[magenta]{a}"
song_list_format = " {%t $R $8%a$8}|{%f $R $8%l$8} $8"
song_status_format = "$b$6$7[$8 $7]$6 $2 $7{$8 %b }|{$8 %t }|{$8 %f }$7 $8"
song_window_title_format = "Now Playing .."Kurang lebih nanti hasilnya akan seperti ini:

NCMPCPP Keybindings
Beberapa shortcut yang bisa kalian gunakan untuk menampilkan playlist, music visualizer, jam, dan yang lainnya adalah sebagai berikut1:
| Keybind | Function |
|---|---|
1 | Menampilkan playlist saat ini |
2 | Filesystem browser |
3 | Pencarian dalam databases |
4 | Pustaka musik |
5 | Playlist editor |
6 | Tag editor |
7 | Output selector |
8 | Music visualizer |
= | Jam dinding |
F1 | Help |
Beberapa shortcut lainnya1:
| Keybind | Function |
|---|---|
| q | Keluar |
| f | Seek forward |
| b | Seek backward |
| ** | Mengganti tampilan klasik/alternatif |
| # | Menampilkan bitrate pada lagu |
| i | Menampilkan info lagu |
| I | Menampilkan info artis (tersimpan pada file ~/.ncmpcpp/artists/ARTIST.txt) |
| l | Menampilkan lirik untuk lagu yang sedang diputar |
| L | Mencari lirik lagi yang terdapat di database |
| > | Lagu selanjutnya |
| < | Lagu sebelumnya |
| p | Play/Pause |
| + | Menambahkan volume |
| - | Mengurangi volume |
| F1 | Menampilkan keybinding ncmpcpp |
Cheatsheet ncmpcpp bisa dilihat di sini: ncmpcpp cheatsheet3.
Footnotes
Support & Share
If this article helped you, please share or support!











