ABCDE(1)

NAME
abcde - Grab an entire CD and compress it to Ogg, Flac or MP3 format.

SYNOPSIS
abcde [options] [tracks]

DESCRIPTION
Ordinarily, the process of grabbing the data off a CD and encoding it, then tagging or commenting it, is a very involved process. abcde is designed to automate this. It will take an entire CD and convert it into a compressed audio format - Ogg Vorbis, Free Lossless Audio Codec or MPEG Audio Layer III. 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 Ogg, Flac or MP3 format

*   Comment or ID3 tag it

*   Give it an intelligible filename

*   Delete the intermediate WAV file

*   Repeat until finished

OPTIONS

-a [actions]
    Comma-delimited list of actions to perform. Can be one or more of: cddb, read, encode, tag, move, playlist, clean. Encode implies read. Tag implies cddb, read, encode. Move implies cddb, read, encode, tag.

-c [filename]
    Specifies an additional configuration file to parse. Configuration options in this file override those in /etc/abcde.conf or $HOME/.abcde.conf.

-C [discid]
    Allows you to resume a session for disc id discid when you no longer have the CD available (abcde will automatically resume if you still have the CD in the drive). You must have previously finished at least the "read" step during the previous session.

-d [devicename]
    CD-ROM block device that contains audio tracks to be read.

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

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

-l  Use the low-diskspace algorithm. See the LOWDISK configuration variable.

-o [filetype]
    Select output type. Can be either "ogg", "flac" or "mp3". See the OUTPUTTYPE configuration variable.

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

-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 and VAOUTPUTFORMAT variables 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 'oggenc' (default for oggs), 'vorbize', 'flac' (default for flacs), 'lame' (default for mp3s), '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 Ogg, Flac or MP3 filenames. Variables are included using standard shell syntax. Allowed variables are ALBUMFILE, ARTISTFILE, TRACKFILE, and TRACKNUM. Default is '${ARTISTFILE}/${TRACKFILE}.${OUTPUTTYPE}'. Make sure to use single quotes around this variable. TRACKNUM is automatically zero-padded.

VAOUTPUTFORMAT
    Just like OUTPUTFORMAT but for Various Artists discs. Default is whatever OUTPUTFORMAT is set to.

PATHNAMES
    The following configuration file options specify the pathnames of their respective utilities: LAME, GOGO, BLADEENC, L3ENC, XINGMP3ENC, MP3ENC, VORBIZE, OGGENC, FLAC, ID3, ID3V2, CDPARANOIA, CDDA2WAV, WGET, CDDISCID, CDDBTOOL, EJECT, DISTMP3, and VORBISCOMMENT.

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, GOGOOPTS, BLADEENCOPTS, L3ENCOPTS, XINGMP3ENCOPTS, MP3ENCOPTS, VORBIZEOPTS, OGGENCOPTS, FLACOPTS, ID3OPTS, ID3V2OPTS, CDPARANOIAOPTS, CDDA2WAVOPTS, WGETOPTS, CDDBTOOLOPTS, EJECTOPTS, 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
    If set to y, conserves disk space by encoding tracks immediately after reading them. This is substantially slower than normal operation but requires several hundred MB less space to complete the encoding of an entire CD. Use only if necessary.

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.

COMMENT
    Specifies a comment to embed in the ID3 or Ogg comment field of each finished track. Can be up to 28 characters long. Supports the same syntax as OUTPUTFORMAT. Flac doesn't support comments or ID3s yet.

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, translating spaces and forward slashes to underscores, and translating colons to an underscore and a hyphen.
    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 Ogg, Flac or MP3 Encoder (oggenc, vorbize, flac, lame, gogo, bladeenc, l3enc, mp3enc)

*   An audio CD reading utility (cdparanoia, cdda2wav)

*   cd-discid, a CDDB DiscID reading program.

*   wget, an HTTP retrieval program.

*   (for MP3s) id3, an id3 tagging program.

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

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

AUTHOR
Robert Woodcock <rcw@debian.org>