commit 2ee0f56f1427f67cf380702bc4b6c4b110f72f57 Author: Guillaume Cassonnet Date: Fri Dec 18 11:19:26 2009 +0100 First commit diff --git a/README b/README new file mode 100644 index 0000000..5790303 --- /dev/null +++ b/README @@ -0,0 +1,10 @@ +cue-split-and-tag + +A simple bash script to split an image file (flac, ape, wav...) and tag the songs according to the cue-file. + +* Usage + cuesplitandtag.sh + +* Notes + - Output files are in FLAC. + - The script was found on Arch Linux forum (can't find the topic anymore though). \ No newline at end of file diff --git a/cuesplitandtag.sh b/cuesplitandtag.sh new file mode 100755 index 0000000..c89bce8 --- /dev/null +++ b/cuesplitandtag.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# split image file (flac, ape, wav, etc.) according to cue-file + +if [ -f "$1" ]; then + i=0 + for cuefile in *.cue; do + i=$(($i + 1)) + done + if [ $i -eq 1 ]; then + # precies 1 cuesheet gevonden + if grep -q "INDEX 01 00:00:00" *.cue ; then + nice shntool split -t "%n %t" -f *.cue "$1" + else + echo "The first track has a pre-gap. Shntool will cut that off and put it in a seperate file." + echo "You don't want that. Please modify the cuesheet from:" + grep -m1 "INDEX 00" *.cue + grep -m1 "INDEX 01" *.cue + echo "to:" + echo " INDEX 01 00:00:00" + exit 1 + fi + elif [ $i -eq 0 ]; then + echo "No cuesheet found in the current directory." + exit 1 + elif [ $i -gt 1 ]; then + echo "$i cuesheets found in the current directory. Please remove the superfluous cuesheets." + exit 1 + fi +else + echo "Split image file (flac, ape, wav, etc.) according to cue-file." + echo "Output files are in FLAC." + echo "Usage: `basename $0` " + exit 1 +fi + +echo +album=`grep -m 1 TITLE *.cue | cut -d\" -f2` +artist=`grep -m 1 PERFORMER *.cue | cut -d\" -f2` + +for file in [0-9]*.wav; do + echo "Encoding $file" + + if [[ ${file:0:1} == 0 ]] ; then + tracknr=${file:1:1} + else + tracknr=${file:0:2} + fi + title=`echo ${file:2} | sed -e "s/.wav$//"` + + nice flac -s -T "artist=$artist" -T "album=$album" -T "title=$title" \ + -T "tracknumber=$tracknr" "$file" && rm "$file" +done + +echo +rm -i "$1"