Skip to content

bucciarati/mpc123

Repository files navigation

mpc123

mpc123 is a command-line Musepack player and decoder. You can use it for listening to Musepack (*.mpc) files, or for converting them to .wav.

$ mpc123 [...] Usage: mpc123 [options] [file1 [file2 [..]]] Options supported: --verbose or -v Increase verbosity --quiet or -q Quiet mode (no title or boilerplate) --gain N or -g N Set gain (audio volume) to N (0-100) -o dt Set output devicetype to dt --audiodevice N or -a N Use N for audio-out --au N or -u N Use au file N for output --cdr N or -c N Use raw file N for output --wav N or -w N Use wave file N for output --list N or -@ N Use playlist N as list of Musepack files --random or -Z Play files randomly until interrupted --shuffle or -z Shuffle list of files before playing [...]

Installation

Compilation requires libmpcdec-dev and libao-dev; Regular use requires libmpcdec and libao;

You can find those packages in your apt repository:

# apt-get install libmpcdec{6,-dev} libao{,-dev}

Or on their respective websites:

Code

$ git clone git@github.com:bucciarati/mpc123.git

Compiling the bits:

Only tested on GNU/Linux, please report eventual successes/failures on other OSs.

$ make

At this point you should have an mpc123 binary. Place it where you want it to live.

Usage

mpc123 can play files from command line arguments and from playlists. A brief usage message is shown if you use the -h flag.

Specify path on the command line

$ mpc123 /path/to/file /example/stream.mpc

mpc123 will play the files in the specified order

Include it into a playlist file

$ mpc123 -@ /path/to/playlist

mpc123 will play files specified in the file /path/to/playlist. The format is trivial (each line identifies a stream), you can easily generate a playlist with the find(1) command:

$ find /path/to/musicroot -iname \*.mpc -fprint /path/to/playlist

During playback, you can have the player pass to the next playlist element (or a random one if the -z or -Z options were specified), by sending SIGINT to the process (this usually happens with ^C).

Each -v option increases the program verbosity. The default verbosity is 0, which means mpc123 will produce output only in case of errors;

The -g option modifies the output volume. Allowed values range from 0 (silent) to 100 (default value, sounds at full power); If you for example want to play at half the sample's original gain, just use -g 50;

The -z option randomly sorts the playlist once in the program lifetime (it is called shuffle);

The -Z option selects a random playlist element each time (this feature instead is called random);

The -q option resets the verbosity level to its default 0;

The -@ option requires an argument, specifying the path to the playlist;

AO (Audio Output) command line options

These options control the behavior of the audio output layer;

The -o option selects the desired audio output driver (defaults to oss). Examples:

$ mpc123 -o oss -a /dev/dsp1 # to select the second OSS sound card $ mpc123 -o alsa09 # use alsa09 as output driver, sets the output # device to "default" $ mpc123 -o esd # use the esd daemon for output (the daemon # must be running, of course ..) $ mpc123 -o null # for debugging purposes, outputs nothing

The -a option specifies the output device for the selected driver (defaults to /dev/dsp)

Of course -o and -a options are related. You can use only the -o option to select the alsa09 (for example) driver, and the program will default the output device to some usable value (/dev/dsp for oss, default for alsa)

Hacking with mpc123

Clone the Git repository. Be sure to turn the debug flags on. This can be done in a couple of ways:

% make DEBUG=1

or

% export DEBUG=1 % make

The binary file ``mpc123'' will be compiled with debugging symbols enabled, and some useful debugging macros defined; the macros are:

debug()

Is to be used to produce output with debugging activated. Takes only one argument, which is the string to print.

debugf()

The same as debug(), except it takes a format string as its first argument. You can use it just like printf().

Both debugging macros automatically add a newline at the end of the given string, so you don't need to add \n.

License

/*  * mpc123 - Musepack Console audio player  * Copyright (C) 2005-2008 Fernando Vezzosi <github-mpc123 at repnz.net>  *  * This program is free software; you can redistribute it and/or modify  * it under the terms of the GNU General Public License as published by  * the Free Software Foundation; either version 2 of the License, or  * (at your option) any later version.  *  * This program is distributed in the hope that it will be useful,  * but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the  * GNU General Public License for more details.  *  * You should have received a copy of the GNU General Public License  * along with this program; if not, write to the Free Software Foundation,  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */

About

Musepack Console audio player

Topics

Resources

License

GPL-2.0, Unknown licenses found

Licenses found

GPL-2.0
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Packages

No packages published