MP3CD(1p)

πŸ“¦
version 1.27.0 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble

πŸ’Ώ MP3CD(1p) πŸ’Ώ

okay bestie, listen UP, because this one is so good. This is mp3cd, and it's a Perl script (user-contributed Perl documentation, hence the 1p vibe) that burns normalized audio CDs from your lil lists of MP3s/WAVs/Oggs/FLACs. She's a whole pipeline and she's iconic for it. πŸ’…


✨ SYNOPSIS ✨

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

 -s, --stage STAGE  Start at a certain stage of processing:
                        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
                        burn    Burns from the TOC
 -q                 Quits after one stage of processing
 -t, --tempdir DIR  Set working dir (default "/tmp/mp3cd-$USER")
 -d, --device PATH  Look for CDR at "PATH" (default "/dev/cdrecorder")
 -r, --driver TYPE  Use CDR driver TYPE (default up to cdrdao)
 -n, --simulate     Don't actually burn a disc but do everything else.
 -E, --no-eject     Don't eject drive after the burn.
 -L, --no-log       Don't redirect output to "tool-output.txt"
 -T, --no-cd-text   Don't attempt to write CD-TEXT tags to the audio CD
 -c, --cdrdao ARGS  Pass the option string ARGS to cdrdao.
 -S, --skip STAGES  Skip the comma-separated list of stages in STAGES.
 -V, --version      Report which version of the script this is.
 -v, --verbose      Shows commands as they are executed.
 -h, --usage        Shows brief usage summary.
     --help         Shows detailed help summary.
     --longhelp     Shows complete help.

🌸 OPTIONS 🌸

the way that every single one of these matters, I fear. read them all, bestie, no skipping 🫢

  • -s STAGE, --stage STAGE β€” starts processing at a given stage. Use this when you had to stop midway, or a file went missing, or things generally blew up πŸ’€. It's especially clutch when a burn fails, because then you don't have to start totally over and re-WAV everything. Want just one single step? Pair it with --quit to abort right after the stage you asked for with --stage. Also peep --skip.
    • clean β€” the default starting stage. The temp directory gets cleared out. A playlist is required, because we're expecting to move on to the build stage next, and that one needs it.
    • build β€” examines the playlist from the command line and tries to create a list of symlinks from that playlist. As of right now, mp3cd understands .m3u files, XMLPlaylist files, and plain lists of files.
    • decode β€” all the files get converted into WAVs. So far mp3cd knows how to decode MP3, Ogg, and FLAC files. (WAVs just get left as they are during this stage, they're already perfect πŸ’….)
    • correct β€” the WAV files get corrected so they have the right bitrate and number of channels, as required for an audio CD.
    • norm β€” the WAV files' volumes get normalized so that big volume differences between records are less noticeable. no more jumpscare loud songs ✨
    • 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 there's a CDR ready for burning.
    • burn β€” actually performs the burn of all the WAV files onto the waiting CDR. this is the main character moment πŸ‘‘
  • -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 happens. You'll generally need at least 650M free in here (or more, depending on how long your destination CD's recording is).
  • -d PATH, --device PATH β€” use a device path other than "/dev/cdrecorder".
  • -r TYPE, --driver TYPE β€” use a CDRDAO driver other than whatever cdrdao auto-detects. Heads up: some drivers may not support CD-TEXT mode. If that's your situation, try generic-mmc-raw.
  • -c ARGS, --cdrdao ARGS β€” pass the given option string of ARGS to cdrdao during each command.
  • -n, --simulate β€” don't actually write to the disc, but do everything else. pretend-burn, real vibes πŸŽ€
  • -E, --no-eject β€” don't eject the drive after the burn.
  • -L, --no-log β€” don't redirect output to "tool-output.txt". All that info gets redirected to the terminal via standard output (STDOUT) instead. This will display a LOT of low-level detail. like, a LOT 😭
  • -T, --no-cd-text β€” don't attempt to write CD-TEXT tags to the audio CD. Some devices and drivers don't 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. Only use this 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 passing "--skip norm,burn". See --stage and --quit.
  • -V, --version β€” reports which version of mp3cd this is.
  • -v, --verbose β€” shows commands as they're executed.
  • -h, --usage β€” shows a brief usage summary.
  • --help β€” shows a detailed help summary.
  • --longhelp β€” shows the full command line instructions.

πŸ¦‹ DESCRIPTION πŸ¦‹

This script implements the suggested methods outlined in the Linux MP3 CD Burning mini-HOWTO:

<http://tldp.org/HOWTO/MP3-CD-Burning/>

It'll burn a playlist (.m3u, XMLPlaylist, or a command line list) of MP3s, Oggs, FLACs, and/or WAVs onto an audio CD. The .m3u format is genuinely nothing more than a list of fully qualified filenames, that's it, that's the whole format. The script handles making the WAVs sane by resampling if needed, and normalizing the volume across all tracks. so the whole album hits the same, no cap 🌈

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), so if the CD burn fails, it's much nicer not to have to start over from scratch. When you're doing the skip-stages thing, you won't need the m3u file anymore, since the files have already been built. See the list of stages using '-h'.


🧚 PREREQUISITES 🧚


πŸ“ 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

πŸ’œ AUTHOR πŸ’œ

Kees Cook <kees@outflux.net>

Contributors:

  • J. Katz (Ogg support)
  • Alex Rhomberg (XMLPlaylist support)
  • Kevin C. Krinke (filelist inspiration, and countless many patches)
  • James Greenhalgh (flac support)

⭐ SEE ALSO ⭐

perl(1), cdrdao(1), sox(1), oggdec(1), flac(1), sox(1), normalize(1).


Copyright (C) 2003-2011 Kees Cook kees@outflux.net, <http://outflux.net/>

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. <http://www.gnu.org/copyleft/gpl.html>


and that's the whole page, bestie 🫢 this one's running on perl v5.30.0, dated 2020-03-07, and it lives in the manual as MP3CD(1p). go burn something iconic πŸ’–βœ¨

πŸ“¦ where this page comes from