Music on Console
|Original author(s)||Damian Pietras|
|Stable release||2.5.0 / August 30, 2014|
|Preview release||2.6-alpha1 / September 6, 2014|
|License||GNU General Public License|
Music On Console (MOC) is an ncurses-based console audio player for Linux/UNIX. It was originally written by Damian Pietras, and is currently maintained by John Fitzgerald. It is designed to be powerful and easy to use, with an interface inspired by the Midnight Commander console file manager. The default interface layout comprises a file list in the left pane with the playlist on the right. It is configurable with customizable key bindings, color schemes and interface layouts. MOC comes with several themes defined in text files, which can be modified to create new layouts. It supports ALSA, OSS or JACK outputs.
MOC has a single playlist (which can be saved in m3u format) and has the concept of a 'music directory' but it has no library file where metadata is saved. Instead this information is read as needed from ID3 tags in the files themselves, either upon access or during idle CPU time. If the playlist has extended m3u information, that will be read as well. If the playlist is saved, any read metadata will be stored.
Its text-only nature consumes very little system resources, and it uses an output buffer in a separate thread to avoid skipping under high system loads and to enable gapless playback. Normally, exiting the program only closes the interface - the program daemonizes itself so the audio continues playing in the background.
This client/server architecture is similar to MPD and XMMS2, but unlike those players, the MOC daemon is not accessible over a network, and does not have an open API to communicate with alternate clients. This has both advantages and disadvantages as, while MOC can't be controlled by a remote graphical client (it can, of course, be used via SSH), it can securely range the entire filesystem, which is not advisable by a remotely and anonymously accessible server such as MPD.
The binary is named mocp for "MOC Player" because of a conflict with a Qt utility called moc.