ABCDE(1)

NAME
abcde - Grab an entire CD and compress it to Ogg 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 very involved. abcde is designed to automate this. It will take an entire CD and convert it into a compressed audio format - Ogg Vorbis 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 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. Playlist implies cddb. The default is to do all actions except playlist.

-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 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 already finished at least the "read" action 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" 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, by default, placed in a separate file named after the track in a subdirectory named after the artist under the current directory. Each file is given an extension identifying its compression format, '.ogg' or '.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 recognizes:

CDDBURL
    Specifies a server to use for CDDB lookups.

ENCODERSYNTAX
    Specifies the style of encoder to use. Valid options are 'oggenc' (default for Ogg Vorbis), 'vorbize', 'lame' (default for MP3), '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 tracks/playlists in.

WAVOUTPUTDIR
    Specifies the temporary directory to store .wav files in. Abcde may use up to 700MB of temporary space for each session (although it is rare to use over 100MB for a machine that can encode music as fast as it can read it).

OUTPUTFORMAT
    Specifies the format for completed Ogg 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.

OUTPUTTYPE
    Specifies the encoding format to output as well as the default extension and encoder. Defaults to "ogg". Valid settings are "ogg" (Ogg Vorbis) and "mp3" (MPEG-1 Audio Layer 3).

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, 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, 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 your system is low on space and cannot encode as quickly as it can read.

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. Does not currently support ID3v2.

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 or MP3 Encoder (oggenc, vorbize, 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), id3(1), wget(1), cd-discid(1), distmp3(1), distmp3host(1)

AUTHOR
Robert Woodcock <rcw@debian.org>