All pastes #1077922 Raw Edit

jipe

public text v1 · immutable
#1077922 ·published 2008-07-20 23:21 UTC
rendered paste body
#!/bin/bash#cue2tracksOPTSTRING=c:i:o:hwhile getopts ${OPTSTRING} NAME; do	case ${NAME} in 		h) echo "usage: cue2tracks -c <cuefile> -i <input format> -o <output format> | -h" ;;		c) CUE=${OPTARG} ;;		i) INFORMAT=${OPTARG} ;;		o) OUTFORMAT=${OPTARG} ;;	esacdonecase ${INFORMAT} in 	mp3) which lame &>/dev/null || (echo lame required to decode mp3 files, exiting; exit 50) ;;	ogg) which oggdec &>/dev/null || (echo oggdec required to decode ogg files, exiting; exit 51) ;;	wav) : ;;	ape) which mac &>/dev/null || (echo mac required to decode ape files, exiting; exit 52) ;;	mpc) which mppdec &>/dev/null || (echo mppdec required to decode mpc files, exiting; exit 53) ;;	flac) which flac &>/dev/null || (echo flac required to decode flac files, exiting; exit 54) ;; 	*) echo "cue2tracks can't handle this input format"; exit 60 ;; esaccase ${OUTFORMAT} in 	mp3) which lame &>/dev/null || (echo lame required to encode mp3 files, exiting; exit 55) ;;	ogg) which oggenc &>/dev/null || (echo oggenc required to encode ogg files, exiting; exit 56) ;;	wav) : ;;	ape) which mac &>/dev/null || (echo mac required to encode ape files, exiting; exit 57) ;;	mpc) which mppenc &>/dev/null || (echo mppenc required to encode mpc files, exiting; exit 58) ;;	flac) which flac &>/dev/null || (echo flac required to encode flac files, exiting; exit 59) ;; 	*) echo "cue2tracks can't handle this output format"; exit 61 ;; esac[ -e "${CUE}" ] || (echo "cue2tracks can't find ${CUE}", exit 62)INFILE="${CUE%cue}${INFORMAT}"; [ -e "${INFILE}" ] || (echo "cue2tracks can't find ${INFILE}"; exit 63)which sox &>/dev/null || (echo sox is required  by cue2tracks, exiting; exit 64)gettracksnames() {	n=1	while read TRACK; do 		eval TRACK${n}=\"$(printf "%02d - ${TRACK}" $n)\"		((n++))	done <<<"$(awk -F'"' '/ TITLE/{print $2}' "${CUE}")"	NUMBER=$((n-1)); BNUMBER=$n}gettracksnamesgettrackslengths() {	n=1; 	while read TIME; do 		set ${TIME//:/ }		case $# in 			3) eval OFFSET${n}=$(((60*10#$1)+10#$2))${3/$'\r'} ;; 			4) eval OFFSET${n}=$(((3600*10#$1)+(60*10#$2)+10#$3))${4/$'\r'} ;;		esac		((n++))	done <<<"$(awk '/INDEX 01/{print $3}' "${CUE}")"}gettrackslengthstowav() {	TMPWAV="${INFILE%${INFORMAT}}"wav	erase=1	case ${INFORMAT} in		wav) erase=0 ;;		mp3) lame --decode "${INFILE}" "${TMPWAV}" ;;		ogg) oggdec "${INFILE}" -o "${TMPWAV}" ;;		ape) mac "${INFILE}" "${TMPWAV}" -d ;;		mpc) mppdec "${INFILE}" "${TMPWAV}" ;;		flac) flac -d "${INFILE}" ;;	esac}towavgettotallength() {	LENGTH=$(sox "${TMPWAV}" -e stat 2>&1 | awk '/Length/{print $3}')	set ${LENGTH/./ }	eval OFFSET$BNUMBER="${1}${2:0:2}"}gettotallengthsplitandconvert() {	for ((n=1,m=2;n<=NUMBER;n++,m++)); do		eval debut=\${OFFSET$n}		eval fin=\${OFFSET$m}		eval trackname=\${TRACK$n}		duree=$((fin-debut))		offset1=$((debut/360000)):$((debut%360000/6000)):$((debut%360000%6000/100)).$((debut%360000%6000%100))		offset2=$((duree/360000)):$((duree%360000/6000)):$((duree%360000%6000/100)).$((duree%360000%6000%100))		sox "${TMPWAV}" "${trackname}".wav trim "${offset1}" "${offset2}"		case ${OUTFORMAT} in			mp3) lame --preset insame "${trackname}".wav "${trackname}".mp3 ;;			ogg) oggenc -q 10 "${trackname}".wav -o "${trackname}".ogg ;;			wav) : ;;			ape) mac "${trackname}".wav "${trackname}".ape -c5000 ;;			mpc) mppenc --xtreme "${trackname}".wav ;;			flac) flac -8 "${trackname}".wav ;;		esac		((erase)) && rm -f "${trackname}".wav	done}splitandconvert((erase)) && rm -f "${TMPWAV}"exit 0