# ncmpcpp

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- mpd

Ncmpcpp is an mpd client (compatible with mopidy with a UI very similar to ncmpc, but it provides new useful 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 use it, a functional mpd must be present on the system since ncmpcpp/mpd work together in a client/server relationship.

## Installation

Install ncmpcpp from the official repositories.

## Basic configuration

The shell "GUI" for ncmpcpp is highly customizable. Edit `$XDG_CONFIG_HOME/ncmpcpp/config` to your liking. If, after installation, `$XDG_CONFIG_HOME/ncmpcpp/config` has not been created, simply copy the sample config, change owner and edit at the very least the following three configuration options:

- mpd_host - Should point to the host on which mpd resides, can be "localhost", "127.0.0.1" or "::1" if on the same machine. To connect with a password, write "password@host"
- mpd_port - The default of mpd should be "6600"
- mpd_music_dir - The same directory value as specified in "music_directory" in `mpd.conf`

For inspiration, see the following resources:

- Sample configuration file in `/usr/share/doc/ncmpcpp/config`.
- Show your .ncmpcpp/config with screenshot forum thread

## Enabling visualization

For visualization, add a few lines to `/etc/mpd.conf` or `~/.config/mpd/mpd.conf` to enable the generation of the fast Fourier transform data for the visualization:

    audio_output {
        type                    "fifo"
        name                    "my_fifo"
        path                    "/tmp/mpd.fifo"
        format                  "44100:16:2"
    }

Note: You may need to add an `audio_output` section for the normal audio output. See Music Player Daemon#Audio configuration for details.

Additional lines need to be added to `$XDG_CONFIG_HOME/ncmpcpp/config`

    visualizer_data_source = "/tmp/mpd.fifo"
    visualizer_output_name = "my_fifo"
    visualizer_in_stereo = "yes"
    visualizer_type = "spectrum"
    visualizer_look = "+|"

- visualizer_type - Set the visualization to either a `spectrum`/`ellipse`/`wave_filled` analyzer or `wave` form.
- visualizer_look - Set the visualizer's look (string has to be exactly 2 characters long: first one is for wave and whereas second for frequency spectrum, wave_filled and ellipse).

Note: If you experience synchronization issues, change the `buffer_time` in your `mpd` configuration to 100000 or less.

If you use mopidy, visualization is handled via gstreamer's udpsink. Edit the `output` in the `[audio]` block of your `mopidy.conf`:

    output = tee name=t ! queue ! autoaudiosink t. ! queue ! audio/x-raw,rate=44100,channels=2,format=S16LE ! udpsink host=localhost port=5555

This forwards the audio data to port `5555`. For `ncmpcpp` to read from this port, change its `visualizer_data_source` accordingly:

    visualizer_data_source = "localhost:5555"

## Basic usage

This section is being considered for removal.

Reason: Assuming that the internal F1 help also shows these shortcuts, they can be removed here. (Discuss in Talk:Ncmpcpp#Deletion of the key list)

### Loading ncmpcpp

Load ncmpcpp in a shell:

    $ ncmpcpp

### Different views

Partial list of views within ncmpcpp:

- `1` - Current playlist
- `2` - Filesystem browser
- `3` - DB search
- `4` - Library
- `5` - Playlist editor
- `6` - Tag editor (very powerful!)
- `7` - Output selector
- `8` - Music visualizer
- `=` - Clock
- `F1` - Help

### Other UI keys

- `q` - Quit
- `f` - Seek forward
- `b` - Seek backward
- `\` - Switch between classic and alternative views
- `#` - Display bitrate of file
- `i` - Show song info
- `I` - Show artist info (saved in `$XDG_CONFIG_HOME/ncmpcpp/config/artists/ARTIST.txt`)
- `L` - Shuffle between available lyric databases
- `l` - Retrieve song lyrics for current song Show/hide lyrics
- `>` - Next track
- `<` - Previous track
- `p` - Play/Pause
- `+` - Increase volume 2%
- `-` - Decrease volume 2%

### Playback modes

Notice the control panel in the upper right; shown in alternative mode:

    1:40/4:16 1082 kbps                            ──┤ Criminal ├──                                       Vol: 98%
    [playing]                             Disturbed - Indestructible (2008)                               [-z-c--]

And again in classic mode:

    ─────────────────────────────────────────────────────────────────────────────────────────────────────────[zc]─

This corresponds to the playback modes; ordered from left to right, they are:

- `r` - repeat mode [r-----] (Repeats the playlist after reaching the end.)
- `z` - random mode [-z----]
- `y` - single mode [--s---] (Only plays a single track and then stops.)
- `R` - consume mode [---c--] (Removes the current track from playlist after reaching the end.)
- `x` - crossfade mode [----x-]

The final "-" is only active when the user forces an update to the datebase via `u`.

In order to loop a single track, turn on both single and repeat mode.

## Tips and tricks

### Remapping keys

A listing of key bindings and their respective functions is available from within npmpcpp itself via hitting `F1`. Users may remap any of the default keys simply by copying `/usr/share/doc/ncmpcpp/bindings` to `$XDG_CONFIG_HOME/ncmpcpp/` and editing it.

### Autoset Tags from Filename and vice versa

In the Tag Editor you can select a directory with music and then select the `Filename` option in the middle section. This opens a little window with two options: `Get Tags from Filename` and `Rename files`. If you choose `Get Tags From Filename`, a popup with two windows is shown. On the left side you can enter a pattern that extracts the selected information from the filenames. You can also hit `Preview` to see what the result would look like. On the right side you can see the legend containing all the possible keywords to be used for extraction.

A simple Example would be the pattern: `%a - %t`. If your files are named according to this pattern (Artist - Title) then this pattern would extract this information and set the Tags for the File.

The other option `Rename Files` does the exact opposite. It takes the Tags from the audio files and creates a Filename from them.

### Notification on song change

The `execute_on_song_change` command can be coupled with notify-send to generate notifications whenever the song changes (and upon application launch). This is contingent upon having a notification server installed and configured. Edit `$XDG_CONFIG_HOME/ncmpcpp/config`, for example:

    execute_on_song_change = notify-send "Now Playing" "$(mpc --format '%title% \n%artist% - %album%' current)"

## Troubleshooting

The factual accuracy of this article or section is disputed.

Reason: The description does not explain what is the actual issue. Problems with MPD should be covered in Music Player Daemon/Troubleshooting. (Discuss in Talk:Ncmpcpp#)

When encountering a problem where ncmpcpp freezes when tabbing to certain pages (2 for "browse" specifically) it can be frustrating and annoying however to get around this freezing behavior ensure all mpd services are killed and rerun mpd as a user service with `systemctl --user start mpd.service` and enable with the same command replacing `start` with `enable`.

## See also

dotshare.it configurations

Categories:

- Music
- Console applications

Hidden categories:

- Sections flagged with Template:Remove
- Pages or sections flagged with Template:Accuracy