Jump to content

# MOC

From ArchWiki

Music On Console is a lightweight music player similar to MPD, but unlike it, MOC comes with an interface and its server does not support remote access.

## Installation

Install moc-pulseAUR. To use the pulseaudio driver, go to #Using PulseAudio.

## Front-ends

- mocicon — GTK panel applet to control MOC

  https://mocicon.sourceforge.net/ || mociconAUR

- eXo — Qt frontend to MOC, supports scrobbling

  https://github.com/loimu/exo || exo-playerAUR

## Configuration

On mocp first run, the `~/.moc/` directory is created. MOC reads its configuration from the file `~/.moc/config`.

Sample configuration files can be found in `/usr/share/doc/moc/`. To configure, copy the examples to `~/.moc/config` and edit accordingly.

To use MOC with v4.1 OSS, see OSS#MOC.

To change the default key bindings, see `/usr/share/doc/moc/keymap.example`.

### Using PulseAudio

Locate the variable `SoundDriver` and add `PULSEAUDIO:` to the front.

    SoundDriver = PULSEAUDIO:JACK:ALSA:OSS

This ensures that PulseAudio gets loaded with first priority. Listing other sound drivers after this are fallbacks when the previous ones are not available.

### Navigation

To change directories with the arrow keys uncomment in `~/.moc/config`:

    Keymap = keymap

Edit the following in `~/.moc/keymap`:

    go    = ENTER RIGHT
    go_up = U LEFT
    #seek_forward  = RIGHT
    #seek_backward = LEFT

To speed up navigation and detach, set the following in `~/.moc/config`:

    ReadTags = no
    ShowTime = no
    TagsCacheSize = 0

### systemd service

Enable this service for the respective user:

    /etc/systemd/system/moc@.service

    [Unit]
    Description=MOC server
    ConditionPathExists=/usr/bin/mocp
    After=network.target sound.target

    [Service]
    RemainAfterExit=yes
    User=%I
    ExecStart=/usr/bin/mocp -S
    ExecStop=/usr/bin/mocp -x
    WorkingDirectory=/home/%I/

    [Install]
    WantedBy=multi-user.target

### Themes

Several themes for the player GUI are available. To list the available themes and set one, use hotkey `T`. To set one to permanent use the configuration file `~/.moc/config`.

    Theme = laras_theme

A selection of example themes can be found in `/usr/share/moc/themes/`, the installation of mocp-themes-gitAUR adds more of them.

Since themes are just text files, it is easy to create new ones. User defined themes are expected in `~/.moc/themes/`.

Example theme file:

    background                     = white black
    frame                          = white black
    window_title                   = white black
    directory                      = white black
    selected_directory             = white black reverse
    playlist                       = white black
    selected_playlist              = white black reverse
    file                           = white black
    selected_file                  = white black reverse
    selected_info                  = white black reverse
    marked_file                    = white black bold
    marked_selected_file           = white black reverse
    info                           = white black
    marked_info                    = white black bold
    marked_selected_info           = white black reverse
    status                         = white black
    title                          = white black bold
    state                          = white black
    current_time                   = white black bold
    time_left                      = white black bold
    total_time                     = white black bold
    time_total_frames              = white black
    sound_parameters               = white black bold
    legend                         = white black
    disabled                       = white black
    enabled                        = white black bold
    empty_mixer_bar                = white black
    filled_mixer_bar               = white black reverse
    empty_time_bar                 = white black
    filled_time_bar                = white black reverse
    entry                          = white black
    entry_title                    = white black
    error                          = white black bold
    message                        = white black
    plist_time                     = white black

## Usage

Run mocp to start the server and interface. Some useful default shortcuts (press `h` for more):

Start playing at this file or go to this directory | `Enter`
Pause | `Space` or `p`
Play next file | `n`
Play previous file | `b`
Silent seek forward by 5s | `]`
Silent seek backward by 5s | `[`
Switch between playlist and file list | `Tab`
Add a file/directory to the playlist | `a`
Add a directory recursively to the playlist | ``Shift+a``
Delete an item from the playlist | `d`
Clear the playlist | ``Shift+c``
Increase volume by 1% | `>`
Decrease volume by 1% | `<`
Increase volume by 5% | `.` (period)
Decrease volume by 5% | `,` (comma)
Set volume to 10% | `Alt+1`
Set volume to 90% | `Alt+9`
Detach MOC from the server | `q`
Quit | ``Shift+q``

Tip To not wait for detach (as it sometimes takes a moment), `Ctrl+z` can be used instead.

To shut down the server, run the `mocp -x` command.

## Scrobbling

mocp-scrobblerAUR is a Last.fm (and Libre.fm) scrobbler for MOC with support for now-playing notifications, daemonization and cache. It only depends on Python 3.

Note To use Libre.fm instead of Last.fm change `hostname` from `post.audioscrobbler.com` to `turtle.libre.fm`.

Copy the example file to your user configuration directory:

    mkdir ~/.mocpscrob/
    cp /usr/share/doc/mocp-scrobbler/config.example  ~/.mocpscrob/config

Edit `~/.mocpscrob/config` to add your login and password. The password variable will be replaced with `password_md5` on the first run. Its value will be the original value hashed using MD5 algorithm. If you want to change password, just add again password with you new password, and `password_md5` will be replaced.

To scrobble tracks, start mocp-scrobbler as daemon before mocp. You can also use an alias:

    alias mocp='/usr/bin/mocp-scrobbler.py -d; mocp'

In January of 2016 last.fm updated their password requirements, with all new and updated passwords requiring the inclusion of one of the following characters `!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~`, or a space. This is known to cause an authentication error with mocpscrob configurations which specify passwords not conforming to these new specifications. Changing one's password and updating the `~/.mocpscrob/config` password accordingly resolves this issue.

## Troubleshooting

### MOC fails to start

If MOC fails to start, it is most probably because of something wrong in `~/.moc/`. You can try to fix it, or simply delete the whole folder.

### Strange characters

If you see strange-like characters displayed instead of the normal lines (vertical lines to separate space, etc.), you may have a font set incompatible to MOC. Either change the respective font, or edit `.moc/config` to use ASCII for drawing lines:

    ASCIILines = no

### FATAL_ERROR: Layout1 is malformed

If MOC crashes with this error, try adding either line to `.moc/config`:

    Layout1 = directory(0,0,50%,100%): playlist(50%,0,100%,100%)

or

    Layout1 = directory(0,0,50%,100%): playlist(50%,0,FILL,100%)

See original report and Debian bugs.

### Bluetooth not working unless it is connected before MOC is started

When using pipewire, MOC defaults to JACK which appears to be the cause of this issue. Simply changing from jack to ALSA solves this issue through changing the following value within the configuration file:

Default value:

`JACK:OSS:ALSA`

New value:

`ALSA:OSS:JACK`

MOC picks the first working audio driver, thus ALSA will be picked first. This should fix the bluetooth issues.

## See also

- Official documentation

Category:

- Music

MOC
Add topic