abcde - Grab an entire CD and compress it to Ogg or MP3 format.
Ordinarily, the process of grabbing the data off a CD and encoding it, then
tagging or commenting it, is very involved.
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
- -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
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.
Capture debugging information (you'll want to redirect this - try 'abcde -D
- -j [number]
Start [number] encoder processes at once. Useful for SMP systems. Overrides
the MAXPROCS configuration variable.
Use the low-diskspace algorithm. See the LOWDISK configuration variable.
- -o [filetype]
Select output type. Can be either "ogg" or "mp3". See the OUTPUTTYPE
- -r [hosts...]
Remote encode on this comma-delimited list of machines using distmp3. See
the REMOTEHOSTS configuration variable.
Eject the CD when all tracks have been read. See the EJECTCD configuration
Get help information.
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.
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.
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:
Specifies a server to use for CDDB lookups.
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
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.
Specifies the directory to place completed tracks/playlists in.
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).
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
Make sure to use single quotes around this variable. TRACKNUM is
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).
Just like OUTPUTFORMAT but for Various Artists discs. Default is whatever
OUTPUTFORMAT is set to.
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.
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.
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.
Specifies the format for completed playlist filenames. Works like the
OUTPUTFORMAT configuration variable. Default is
Make sure to use single quotes around this variable.
Specifies a prefix for filenames within a playlist. Useful for http
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.
Specifies a comma-delimited list of systems to use for remote encoding using
distmp3. Equivalent to -r.
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).
If set to "y", abcde will call eject(1) to eject the cdrom from the drive
after all tracks have been read.
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.
Robert Woodcock <email@example.com>