mp3cd(1p)

mp3cd1p

Burns normalized audio cds from lists of mp3s/wavs/oggs/flacs

Usage

mp3cd [OPTIONS] [{playlist | files ...}]

clean Start fresh (default, requires playlist)

build Does not clean (requires playlist)

decode Turns MP3s/Oggs/FLACs into WAVs

correct Fix up any WAV formats

norm Normalizes WAV volumes

toc Builds a Table of Contents from WAVs

toc_ok Checks TOC validity

cdr_ok Checks for a CDR

Options

-s STAGE, --stage STAGE

Starts processing at a given stage. This is used in case you had to stop processing, or a file was missing, or things generally blew up. It is especially useful if a burn fails because then you don't have to start totally over and re-WAV the files. If you just want to perform a single step, use --quit to abort after the stage you request with --stage. Also see --skip.

clean

This is the default starting stage. The temp directory is cleared out. A playlist is required, since we expect to move to the build stage next, which requires it.

build

This stage examines the playlist from the command line, and tries to create a list of symlinks from the given playlist. So far, "mp3cd" can understand ".m3u" files, XMLPlaylist files, and lists of files.

decode

All the files are converted into WAVs. So far, "mp3cd" knows how to decode MP3, Ogg, and FLAC files. (WAVs will be left as they are during this stage.)

correct

The WAV files are corrected to have the correct bitrate and number of channels, as required for an audio CD.

norm

The WAV files' volumes are normalized so any large differences in volume between records will be less noticeable.

toc

Generates a Table of Contents for the audio CD.

toc_ok

Validates the TOC, just in case something went really wrong with the WAV files.

cdr_ok

Verifies that there is a CDR ready for burning.

burn

Actually performs the burn of all the WAV files to the waiting CDR.

-q, --quit

Aborts after one stage of processing. See --stage.

-t DIR, --tempdir DIR

Use a working directory other than "/tmp/mp3cd-username". This is where all the file processing occurs. You will generally need at least 650M free here (or more depending on the recording length of your destination CD).

-d PATH, --device PATH

Use a device path other than "/dev/cdrecorder".

-r TYPE, --driver TYPE

Use a CDRDAO driver other than what cdrdao automatically detects. Note that some drivers may not support CD-TEXT mode. In this case, try "generic-mmc-raw".

-c ARGS, --cdrdao ARGS

Pass the given option string of ARGS to cdrdao during each command.

-n, --simulate

Do not actually write to the disc but simulate the process instead.

-E, --no-eject

Don't eject drive after the burn.

-L, --no-log

Don't redirect output to "tool-output.txt". All information will instead be redirected to the terminal via standard output (STDOUT). This will cause a lot of low-level detail to be displayed.

-T, --no-cd-text

Don't attempt to write CD-TEXT tags to the audio CD. Some devices and drivers do not support this mode. See --driver for more details.

-S STAGES, --skip STAGES

While processing, skips the stages listed in the comma-separated list of stages given in STAGES. This would only be used if you really know what you're doing. For example, if the audio is already normalized and you didn't want to burn a CD, you could skip the normalizing and burning stages by giving "--skip norm,burn". See --stage and --quit.

-V, --version

Report which version of mp3cd this is.

-v, --verbose

Shows commands as they are executed.

-h, --usage

Show brief usage summary.

--help

Show detailed help summary.

--longhelp

Shows the full command line instructions.

Overview

This script implements the suggested methods outlined in the Linux MP3 CD Burning mini-HOWTO:
<http://tldp.org/HOWTO/MP3-CD-Burning/>

This will burn a playlist (.m3u, XMLPlaylist or command line list) of MP3s, Oggs, FLACs, and/or WAVs to an audio CD. The ".m3u" format is really nothing more than a list of fully qualified filenames. The script handles making the WAVs sane by resampling if needed, and normalizing the volume across all tracks.

If a failure happens, earlier stages can be skipped with the '-s' flag. The file "tool-output.txt" in the temp directory can be examined to see what went wrong during the stage. Some things are time-consuming (like decoding the audio into WAVs) and if the CD burn fails, it's much nicer not to have to start over from scratch. When doing this, you will not need the m3u file any more, since the files have already been built. See the list of stages using '-h'.

Prerequisites

Requires "cdrdao", and that /dev/cdrecorder is a valid symlink to the /dev/sg device that cdrdao will use. Use .cdrdao to edit driver options. (See "man cdrdao" for details.)

Requires "sox" to decode MP3 and check/correct WAV formats.
http://www.spies.com/Sox/

Requires "normalize" to process the audio.
http://www.cs.columbia.edu/~cvaill/normalize/

Optionally requires "oggdec" to decode Ogg to WAV files.
http://www.gnu.org/directory/audio/ogg/OggEnc.html/

Optionally requires "flac" to decode flac to WAV files.
http://flac.sourceforge.net/

Optionally requires "Config::Simple" Perl module if you want to use the .mp3cdrc file.
http://search.cpan.org/~sherzodr/Config-Simple/

Files

~/.mp3cdrc

Default options can be recorded in this file. The option names are the same as their command line long-name. Command line options will override these values. All options are run through perl's eval. For example:
tempdir: /scratch/mp3cd/$ENV{'USER'}
device: /dev/burner

Releases

10 releases since Debian 4.0 (Etch); the text changed 5 times.

  1. 4.0
  2. 5.0
  3. 6.0
  4. 7–8
  5. 9–10
  6. 11–13

--driver since Debian 6.0 (Squeeze); --no-cd-text since Debian 6.0 (Squeeze); --verbose since Debian 6.0 (Squeeze); -T since Debian 6.0 (Squeeze); -r since Debian 6.0 (Squeeze); -v since Debian 6.0 (Squeeze).

Author

 Kees Cook <[email protected]>
 Contributors:
 J. Katz (Ogg support)
 Alex Rhomberg (XMLPlaylist support)
 Kevin C. Krinke (filelist inspiration, and countless many patches)
 James Greenhalgh (flac support)

From mp3cd 1.27.0-5 in Debian 13 (Trixie). Parsed by carta from the page's man source.