ABCDE(1)

NAME
abcde - Grab an entire CD and compress it to MP3 format.

SYNOPSIS
abcde [options] [tracks]

DESCRIPTION
Ordinarily, the process of grabbing the data off a CD and encoding it, then tagging it with ID3 information, is a very involved process. abcde is designed to automate this. It will take an entire CD and convert it into a compressed MPEG Audio Layer III format. With one command, it will:

*   Do a CDDB query over the Internet to look up your CD

*   Grab a track from your CD

*   Compress it to MP3 format

*   ID3 tag it

*   Delete the intermediate WAV file

*   Repeat until finished

OPTIONS

-d [devicename]
    CD-ROM block device that contains music to be grabbed.

-D  Capture debugging information (you'll want to redirect this - try 'abcde -D 2>logfile')

-e  Edit retrieved CDDB data before using it.

-j [number]
    Start [number] encoder processes at once. Useful for SMP systems. Overrides the MAXPROCS configuration variable.

-l [number]
    Specify low-diskspace algorithm. See the LOWDISK configuration variable.

-p  Generate an m3u playlist. See the PLAYLIST configuration variable.

-P  Only generate an m3u playlist. Does no ripping or encoding. See the PLAYLISTONLY configuration variable.

-r [hosts...]
    Remote encode on this comma-delimited list of machines using distmp3. See the REMOTEHOSTS configuration variable.

-v  Use Various Artist handling. Will interpret each trackname as "Title / Artist".

-V  Select different parsing for Various Artist handling. Use -V [ reverse, forward-dash, reverse-dash ] to interpret each trackname as "Artist / Title", "Title - Artist", "Artist - Title" respectively. Implies -v.

-x  Eject the CD when all tracks have been read. See the EJECTCD configuration variable.

-h  Get help information.

[tracks]
    A list of tracks you want abcde to process. If this isn't specified, abcde will process the entire CD. Accepts ranges of track numbers - "abcde 1-5 7 9" will process tracks 1, 2, 3, 4, 5, 7, and 9.

OUTPUT
Each track is placed in a separate file in a subdirectory under the current directory named after the artist. Each filename is based on the track title name, and is given an extension of '.mp3'. This can be modified using the OUTPUTFORMAT variable in your abcde.conf.

CONFIGURATION
abcde sources two configuration files on startup - /etc/abcde.conf and $HOME/.abcde.conf, in that order. Here is a list of options abcde will use:

CDDBURL
    Specifies a server to use for CDDB lookups.

ENCODERSYNTAX
    Specifies the style of encoder to use. Valid options are 'lame' (default), 'gogo', 'bladeenc', 'l3enc', and 'mp3enc'. This affects the default location of the binary, the variable to pick encoder command-line options from, and where the options are given.

HELLOINFO
    Specifies the Hello information to send to the CDDB server. The CDDB protocol requires you to send a valid username and hostname each time you connect. The format of this is username@hostname.

OUTPUTDIR
    Specifies the directory to place completed mp3's in.

WAVOUTPUTDIR
    Specifies the directory to store .wav files in temporarily.

OUTPUTFORMAT
    Specifies the format for completed MP3 filenames. Variables are included using standard shell syntax. Allowed variables are ALBUMFILE, ARTISTFILE, TRACKFILE, and TRACKNUM. Default is '${ARTISTFILE}/${TRACKFILE}.mp3'. Make sure to use single quotes around this variable. TRACKNUM is automatically zero-padded.

PATHNAMES
    The following configuration file options specify the pathnames of their respective utilities: LAME, BLADEENC, L3ENC, MP3ENC, ID3, CDPARANOIA, CDDA2WAV, WGET, CDDISCID, and DISTMP3.

COMMAND-LINE OPTIONS
    If you wish to specify command-line options to any of the programs abcde uses, set the following configuration file options: LAMEOPTS, BLADEENCOPTS, L3ENCOPTS, MP3ENCOPTS, ID3OPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, WGETOPTS, and DISTMP3OPTS.

MAXPROCS
    Defines how many encoders to run at once. This makes for huge speedups on SMP systems. You should run one encoder per CPU at once for maximum efficiency, although more doesn't hurt very much.

LOWDISK
    Defines which low-diskspace algorithm to use:
    1. Normal Parallelization (Tracks are ripped all at once, with encoding in the background)
    2. Disk Conservation (Tracks are encoded immediately after they are ripped) This is substantially slower than #1 but requires several hundred MB less space to complete the encoding of an entire CD. Use when necessary.

PLAYLIST
    Creates an m3u-format (one filename per line) playlist file for each track ripped, in order. This lets you play back a CD just like the original.

PLAYLISTONLY
    Only creates an m3u file. Does no ripping or encoding. Useful for creating playlists for CDs you have already ripped.

PLAYLISTFORMAT
    Specifies the format for completed playlist filenames. Works like the OUTPUTFORMAT configuration variable. Default is '${ARTISTFILE}_-_${ALBUMFILE}.m3u'. Make sure to use single quotes around this variable.

PLAYLISTDATAPREFIX
    Specifies a prefix for filenames within a playlist. Useful for http playlists, etc.

ID3COMMENT
    Specifies a comment to embed in the ID3 comment field of each finished track. Can be up to 28 characters long. Supports the same syntax as OUTPUTFORMAT.

REMOTEHOSTS
    Specifies a comma-delimited list of systems to use for remote encoding using distmp3. Equivalent to -r.

mungefilename
    mungefilename() is an abcde shell function that can be overridden via abcde.conf. It takes CDDB data as $1 and outputs the resulting filename on stdout. It defaults to eating control characters, apostrophes and question marks, and translating spaces and forward slashes to underscores.
    If you modify this function, it is probably a good idea to keep the forward slash munging (UNIX cannot store a file with a '/' char in it) as well as the control character munging (NULs can't be in a filename either, and newlines and such in filenames are typically not desirable).

EJECTCD
    If set to "y", abcde will call eject(1) to eject the cdrom from the drive after all tracks have been read.

BACKEND TOOLS
abcde requires the following backend tools to work:

*   An MP3 Encoder (lame, gogo, bladeenc, l3enc, mp3enc)

*   An audio CD reading utility (cdparanoia, cdda2wav)

*   cd-discid, a CDDB DiscID reading program.

*   wget, an HTTP retrieval program.

*   id3, an id3 tagging program.

*   (optional) distmp3, a client/server for distributed mp3 encoding.

SEE ALSO
cdparanoia(1), cdda2wav(1), id3(1), wget(1), cd-discid(1), distmp3(1), distmp3host(1)

AUTHOR
Robert Woodcock <rcw@debian.org>