#!/bin/sh echo "`basename $0` (c)2006-2008 Paul T.Threshold" echo " . add an integer to the cmd line to force a bitrate (96/128/160(dft)/192)" echo "" PTT_PARM=$1 IFS=$'\n\t' PTT_TAGFILE=/tmp/_PTT_TEMP_TAG_FILE_$$ for i in `ls -1 *.mp3` ; do echo "Processing \"$i\"..." echo " Extracting tags..." id3v2 -l "$i" > $PTT_TAGFILE PTTID3TAGS=`grep "id3v2 tag" $PTT_TAGFILE` if [ "x$PTTID3TAGS" = "x" ]; then echo -n " File doesn't contain id3v2 tags," PTTID3TAGS=`grep "id3v1 tag" $PTT_TAGFILE` if [ "x$PTTID3TAGS" != "x" ]; then echo -n " converting from v1..." id3v2 -C "$i" > /dev/null id3v2 -l "$i" > $PTT_TAGFILE echo " done. Let's go!" else echo " nor id3v1 ones. Bailing out." exit 1 fi fi PTTTRCKALBUM=`grep "TALB" $PTT_TAGFILE | cut -d":" -f 2` if [ "x$PTTTRCKALBUM" = "x" ]; then PTTTRCKALBUM=`grep "TAL" $PTT_TAGFILE | cut -d":" -f 2` fi PTTTRCKALBUM=`echo ${PTTTRCKALBUM# }` PTTTRCKALBUM=`echo ${PTTTRCKALBUM% }` PTTTRCKAUTH=`grep "TPE1" $PTT_TAGFILE | cut -d":" -f 2` if [ "x$PTTTRCKAUTH" = "x" ]; then PTTTRCKAUTH=`grep "TP1" $PTT_TAGFILE | cut -d":" -f 2` fi PTTTRCKAUTH=`echo ${PTTTRCKAUTH% }` PTTTRCKAUTH=`echo ${PTTTRCKAUTH# }` DYEAR=`grep "TYER" $PTT_TAGFILE | cut -d":" -f 2` if [ "x$DYEAR" = "x" ]; then DYEAR=`grep "TYE" $PTT_TAGFILE | cut -d":" -f 2` fi if [ "x$DYEAR" = "x" ]; then DYEAR=0 fi DGENRE=`grep "TCON" $PTT_TAGFILE | cut -d":" -f 2 | cut -d"(" -f 2 | cut -d")" -f 1` if [ "x$DGENRE" = "x" ]; then DGENRE=`grep "TCO" $PTT_TAGFILE | cut -d":" -f 2 | cut -d"(" -f 2 | cut -d")" -f 1` fi PTTTRCKNMBR=`grep "TRCK" $PTT_TAGFILE | cut -d":" -f 2` if [ "x$PTTTRCKNMBR" = "x" ]; then PTTTRCKNMBR=`grep "TRK" $PTT_TAGFILE | cut -d":" -f 2` fi if [ "x$PTTTRCKNMBR" = "x" ]; then PTTTRCKNMBR=0 fi PTTTRCKNMBR=`echo ${PTTTRCKNMBR% }` PTTTRCKNMBR=`echo ${PTTTRCKNMBR# }` PTTTRCKTITLE=`grep "TIT2" $PTT_TAGFILE | cut -d":" -f 2` if [ "x$PTTTRCKTITLE" = "x" ]; then PTTTRCKTITLE=`grep "TT2" $PTT_TAGFILE | cut -d":" -f 2` fi PTTTRCKTITLE=`echo ${PTTTRCKTITLE% }` PTTTRCKTITLE=`echo ${PTTTRCKTITLE# }` echo " Album: $PTTTRCKALBUM ($PTTTRCKAUTH)" echo " Track: $PTTTRCKNMBR - $PTTTRCKTITLE" echo " Genre: $DGENRE - Year: $DYEAR" echo "" PTT_BITRATE=160 case $PTT_PARM in 32 | 64 | 96 | 128 | 192) PTT_BITRATE=$PTT_PARM ;; *);; esac echo " Decoding: $i ($PTTTRCKNMBR. $PTTTRCKTITLE)" lame --decode "$i" "$i.wav" mv -f "$i" "_PTT_DONE_$i" echo " Encoding: $PTTTRCKNMBR. $PTTTRCKTITLE" lame -b $PTT_BITRATE --ta "$PTTTRCKAUTH" --tl "$PTTTRCKALBUM" --ty $DYEAR --tg $DGENRE --tn $PTTTRCKNMBR --tt "$PTTTRCKTITLE" --add-id3v2 "$i.wav" "$i"; id3v2 -T $PTTTRCKNMBR "$i" rm -f "$i.wav" printf "\a" done printf "\a" sleep 1 printf "\a" rm -f $PTT_TAGFILE ls -l *.mp3 echo "" echo "Do you want to delete original .mp3 files? [y/N]" read reply case $reply in y* | Y*) rm -f _PTT_DONE_*.mp3 ;; *);; esac