All pastes #1361385 Raw Edit

burn_audio (shell script)

public shellscript v1 · immutable
#1361385 ·published 2009-03-15 11:55 UTC
rendered paste body
## burn_audio -- A script for converting MP3s to WAVs for burning with cdrdao.## REQUIRES: cdrdao (for burning); lame (for decoding MP3s)# NOTE: Make sure /etc/cdrdao.conf contains a line specifying the device, e.g.:#	write_device: "/dev/cdrw0"# This is a modified version of the loops posted on the Arch Linux Wiki at:# http://wiki.archlinux.org/index.php/Creating_gapless_audio_CDs_from_MP3_HOWTO## USAGE:# ./burn_audio [-gap | -nogap] FILES_PATH TEMP_PATH# ARGUMENTS:# 	-gap		Add a 2-second silence before each track.#	-nogap		No silence will be added before tracks (i.e. gapless).#if [ -z $3 ] ; then	echo "ERROR: Not enough arguments."	echo "You need to specify the following:"	echo "  - either -gap or -nogap,"	echo "  - the path to the directory with the MP3s you want to burn, and"	echo "  - the path to a working directory (which will be created by this script)."	echo	echo "e.g.:  ./burn_audio -nogap ~/music /tmp/to_burn"	exit 1fiif [ ! -z $4 ] ; then	echo "ERROR: Too many arguments."	echo "You provided more than 3 arguments (the 4th argument you entered was: $4)."	exit 1fiif [ $1 == "-gap" ] ; then	echo "A 2-second silence will be added before each track."	BURN_WITH_GAP = "true"else 	if [ $1 == "-nogap" ] ; then		echo "The tracks will be written gaplessly."	else		echo "ERROR: Invalid argument: $1"		echo "Either -gap or -nogap is required as the first argument."		exit 1	fifiif [ ! -d $2 ] ; then    echo "ERROR: The FILES_PATH does not exist."    exit 1fiFILES_PATH="$2"TEMP_PATH="$3"mkdir -p $TEMP_PATHfor file in $FILES_PATH/*.mp3 ; do   lame --decode "$file" "$TEMP_PATH/$file.wav"donecd $TEMP_PATH{  echo "CD_DA"  for file in *.wav ; do    echo "TRACK AUDIO"    if [ $BURN_WITH_GAP = "true" ] ; then    	echo "PREGAP 00:02:00"    else    fi    echo "FILE \"$file\" 0"  done} > TOCecho "Please review the TOC file created before burning."less TOCecho "Begin burning to disc? [y/n] "readif [ $REPLY == "y" || $REPLY == "Y" ] ; then	echo "Executing command: cdrdao write TOC"	cdrdao write TOCelse	echo "Aborting."	exit 0fi