MOC - Console audio player
mocp [OPTIONS] [FILE|DIR ...]
MOC is a console audio player with simple ncurses interface. It
supports OGG, WAV, MP3 and other formats. Just run mocp, go to some
directory using the menu and press enter to start playing the file. The
program will automatically play the rest of the files in the directory.
With no options and no file arguments the program begins in
current directory, or in MusicDir if the StartInMusicDir
option is set in the configuration file. If you give a directory on the
command line, MOC will try to go there. If a playlist is given, then it is
loaded. With multiple files, playlists or directories, everything will be
added to the playlist recursively (including the contents of any playlist
given). (Note that relative paths in playlists are resolved with respect to
the directory of the playlist, or of the symlink being used to reference
it.)
If an option can also be set in the configuration file the command
line overrides it (but see the -O option for the list-valued
configuration file options exception).
- -D, --debug
- Run MOC in debug mode. The client and server log a lot of information to
debug files. Don't use this; the server log is large. This is only
available if MOC was compiled without --disable-debug.
- -S, --server
- Run only the server and exit.
- -F,
--foreground
- Implies -S. Run the server in foreground and log everything to
stdout.
- -R NAME[:...],
--sound-driver NAME[:...]
- Use the specified sound driver(s). They can be OSS, ALSA,
JACK, SNDIO or null (for debugging). Some of the
drivers may not have been compiled in. This option is called
SoundDriver in the configuration file.
- -m,
--music-dir
- Start in MusicDir (set in the configuration file). This can be also
set in the configuration file as StartInMusicDir.
- -q, --enqueue
- Add files given after command line options to the queue. Don't start the
interface.
- -a, --append
- Append files, directories (recursively) and playlists given after command
line options to the playlist. Don't start the interface.
- -c, --clear
- Clear the playlist.
- -p, --play
- Start playing from the first item on the playlist.
- -l, --playit
- Play files given on the command line without modifying the clients'
playlists.
- -f, --next
- Request playing the next song from the server's playlist.
- -r,
--previous
- Request playing the previous song from the server's playlist.
- -s, --stop
- Request the server to stop playing.
- -x, --exit
- Bring down the server.
- -P, --pause
- Request the server to pause playing.
- -U, --unpause
- Request the server to resume playing when paused.
- -G,
--toggle-pause
- Toggle between play and pause.
- -k
[+|-]N, --seek
[+|-]N
- Seek forward (positive) or backward (negative) by N seconds in the
file currently being played.
- -T THEME,
--theme THEME
- Use a theme file. If the path is not absolute, the file will be searched
for in /usr/share/moc/themes/ (depends on installation prefix),
~/.moc/themes/ and the current directory.
- -C FILE,
--config FILE
- Use the specified configuration file (which must be readable) instead of
the default. As this file can specify commands which invoke other
applications MOC will refuse to start if it is not owned by either root or
the current user, or if it is writable by anyone other than its
owner.
- --no-config
- Do not read any configuration file but use the built-in defaults.
- -O
NAME[+]=VALUE, --set-option
NAME[+]=VALUE
- Override configuration file option NAME with VALUE. This option can be
repeated as many times as needed and the option name is not case
sensitive. Most option values are set before the configuration file is
processed (which allows the new values to be picked up by substitutions);
however, list-valued options are overridden afterwards (which gives the
choice of whether the configured values are replaced or added to).
- See the example configuration file (config.example) for a
description of the options available.
Examples: -O AutoNext=no
-O messagelingertime=1 -O XTerms+=xxt:xwt
- Note that MOC does not perform variable substitution as it does for values
read from the configuration file.
- -M DIR,
--moc-dir DIR
- Use the specified MOC directory instead of the default. This also causes
the configuration file from that directory to be used. This can also be
specified in the configuration file using the MOCDir option.
- -y, --sync
- This copy of the interface will synchronize its playlist with other
clients. This option is called SyncPlaylist in the configuration
file.
- -n, --nosync
- This copy of the interface will not synchronize its playlist with other
clients (see above).
- -A, --ascii
- Use ASCII characters to draw lines. (This helps on some terminals.)
- -i, --info
- Print the information about the file currently being played.
- -Q FORMAT_STRING,
--format FORMAT_STRING
- Print information about the file currently being played using a format
string. Replace string sequences with the actual information:
%state State
%file File
%title Title
%artist Artist
%song SongTitle
%album Album
%tt TotalTime
%tl TimeLeft
%ts TotalSec
%ct CurrentTime
%cs CurrentSec
%b Bitrate
%r Rate
- It is also possible to use variables from the FormatString
configuration file option.
- -e,
--recursively
- Alias of -a for backward compatibility.
- -h, --help
- Print a list of options with short descriptions and exit.
- --usage
- Print a synopsis of the mocp command and exit.
- -V, --version
- Print the program version and exit.
- --echo-args
- Print the POPT-interpreted command line arguments and exit.
- -v
[+|-]N, --volume
[+|-]N
- Adjust the mixer volume. You can set (-v 50) or adjust (-v
+10, -v -10).
- -t
OPTION[,...], --toggle
OPTION[,...]
- -o
OPTION[,...], --on OPTION[,...]
- -u
OPTION[,...], --off OPTION[,...]
- Followed by a list of identifiers, these will control MOC's playlist
options. Valid identifiers are shuffle, repeat and
autonext. They can be shortened to 's', 'r' and
'n' respectively. Both the identifiers and short forms are case
insensitive.
Example: -t shuffle,R,n
would toggle shuffle, repeat and autonext all at once.
- -j
N{s|%}, --jump
N{s|%}
- Jump to some position in the current file. N is the number of
seconds (when followed by an 's') or the percent of total file time
(when followed by a '%').
MOC uses the POPT library to process its command line. This allows
users to assign MOC options and arguments to an alias of their choosing. The
aliases are just lines in the ~/.popt text file and have the general
form:
mocp alias newoption expansion
This works as if expansion textually replaces
newoption on the command line. The replacement is recursive; that is,
other newoptions can be embedded in the expansion. The
expansion is parsed similarly to a shell command, which allows \,
", and ' to be used for quoting. If a backslash is the final character
on a line, the next line in the file is assumed to be a logical continuation
of the line containing the backslash, just as in the shell. The
newoption can be either a short or long option, and any syntactically
valid name the user wishes to use.
If you add a description for the new option and/or for any
argument by appending the special POPT options --POPTdesc and
--POPTargs, then the option will be displayed in the output of
--help and --usage. The value for these two options are
strings of the form $"string".
So, for example:
mocp alias --single -D --set-option autonext=no \
--POPTdesc=$"Play just the file selected"
would allow the user to turn on logging (-D) and override
the configuration file's AutoNext option setting just by using
--single as an option to the mocp command.
Sometimes you may wish to provide values to aliased options from
the command line. If just one aliased option has such a value, then it's a
simple matter of placing it last:
mocp alias --yours --sound-driver OSS --theme
when used like this:
would result in:
mocp --sound-driver OSS --theme your_theme
But aliasing multiple options with such values means making use of
the special construct !#:+ (and quoting carefully):
mocp alias -1 "-R !#:+" "-T my_theme" "-O !#:+"
when used like this:
mocp -1 OSS shuffle=yes ~/my_music
would result in:
mocp -R OSS -T my_theme -O shuffle=yes ~/my_music
There is also a ~/.popt entry which allows for the
execution of a different program when the associated option is used. For
this, an exec is used in place of the alias and the
expansion is the program to be executed:
mocp exec --help /usr/bin/man 1 mocp \
POPTdesc=$"Provide the man page instead of help"
This would override the usual MOC --help output and use the
system's man program to present this man page instead.
Note that while ~/.popt (or /etc/popt) is the
default POPT configuration file, you can nominate specific file(s) to be
used instead via the MOCP_POPTRC environment variable.
The following environment variables are used directly by MOC.
Additional variables may be relevant to the libraries MOC uses. Also, any
environment environment variable may be substituted into a configuration
file option value (see the 'config.example' file for details).
- ESCDELAY
- An ncurses(3X) variable which specifies the delay (in milliseconds) after
which it will treat an ESC as a standalone key and not part of an escaped
character sequence (such as is generated by function keys). MOC sets this
value to 25ms by default, which is sufficient for most systems.
- HOME
- Tells MOC where your home directory is located and is used for various
purposes, including the default location of the MOC directory.
- MOCP_OPTS
- The value of this variable will be prepended to the command line options
before they are processed.
- MOCP_POPTRC
- A colon-separated list of POPT configuration files which will be loaded in
sequence by MOC during initialisation. If the variable is unset then the
default POPT configuration file will be used. If the variable is set but
empty then no POPT configuration file will be loaded. If the variable is
set then those files which exist will be loaded and those which don't will
be skipped.
- As these files can specify commands which invoke other applications, MOC
will refuse to start if they are not owned by root or the current user, or
they are writable by anyone other than their owner.
- TERM and
WINDOW
- Used by MOC to distinguish between X-terminals, screen(1) and console
terminals. MOC uses the configuration file options XTerms and
ScreenTerms to help make this determination.
- ~/.moc
- MOC directory for the configuration file, socket, the pid file and other
data.
- ~/.moc/config
- Configuration file for MOC. The format is very simple; to see how to use
it look at the example configuration file (config.example)
distributed with the program. The example file fully describes all the
configuration options, and so is a useful reference when using the
-O option. As this file can specify commands which invoke other
applications MOC will refuse to start if it is not owned by either root or
the current user, or if it is writable by anyone other than its
owner.
- ~/.popt
- /etc/popt
- The default files POPT reads to obtain aliased options. As these files can
specify commands which invoke other applications, MOC will refuse to start
if it is not owned by root or the current user, or if it is writable by
anyone other than its owner. (Also see the MOCP_POPTRC environment
variable above.)
- ~/.moc/themes
- /usr/share/moc/themes
- Default directories for the theme files.
- /usr/share/moc/decoder_plugins
- Default directories for the audio decoder plugins.
- mocp_client_log
- mocp_server_log
- Client and server log files. These files are created in the directory in
which the client and server are started. (Also see the -D
option.)
Command line options that affect the server behaviour (like
--sound-driver) are ignored if the server is already running at the
time of executing mocp. The user is not warned about this.
Damian Pietras <daper@daper.net>
MOC Maintainer(s) <mocmaint@daper.net>