diff --git a/acatcher/convert_audio.sh b/acatcher/convert_audio.sh index 264a579..2e9a063 100755 --- a/acatcher/convert_audio.sh +++ b/acatcher/convert_audio.sh @@ -3,26 +3,54 @@ # # use "play" command to play back audio -if [ -z "$1" ]; then +# store location that this script is in +D="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +RAW_DIR="$D/audio/raw" +COOKED_DIR="$D/audio/cooked" +FLAC_DIR="$D/audio/cooked/flac" +MP3_DIR="$D/audio/cooked/mp3" + +cd "$RAW_DIR" +for DIR in *; do + if [ ! -d "$FLAC_DIR/$DIR" ]; then + mkdir -p "$FLAC_DIR/$DIR" + fi + if [ ! -d "$MP3_DIR/$DIR" ]; then + mkdir -p "$MP3_DIR/$DIR" + fi + cd "$DIR" + echo "working in $DIR" + cd .. for INFILE in *.raw; do + echo "working on $INFILE" FIX="`echo $INFILE | sed -e 's/^\[.*\] //g'`" - OUTFILE="`basename \"$FIX\" .raw`.wav" - if [ -f "$OUTFILE" ] ; then - FUDGE="$RANDOM" - OUTFILE="`basename \"$OUTFILE\" .wav`-$FUDGE.wav" - FIX="`basename \"$FIX\" .raw`-$FUDGE.raw" - fi - echo "converting $INFILE to $OUTFILE" + BASENAME="`basename \"$FIX\" .raw`" + TEMP_OUTFILE="$BASENAME.wav" + echo "...converting to intermediate format $TEMP_OUTFILE" #sox -r 44100 -e unsigned -b 8 -c 1  - sox -r 22050 -e signed -b 16 -L -c 1 "$INFILE" "$OUTFILE" - mv "$INFILE" "$FIX" + sox -r 22050 -e signed -b 16 -L -c 1 "$INFILE" "$TEMP_OUTFILE" + echo "...converting it to FLAC" + if [ -f "$FLAC_DIR/$BASENAME.flac" -o "$MP3_DIR/$BASENAME.mp3" ] ; then + FUDGE="$RANDOM" + FLAC_FILE="$FLAC_DIR/$BASENAME-$FUDGE.flac" + MP3_FILE="$FLAC_DIR/$BASENAME-$FUDGE.mp3" + else + FLAC_FILE="$FLAC_DIR/$BASENAME.flac" + MP3_FILE="$FLAC_DIR/$BASENAME.mp3" + fi + if [ ! -f "$FLAC_FILE" ]; then + echo "...converting it to FLAC: $FLAC_FILE" + flac -8 "$TEMP_OUTFILE" "$FLAC_FILE" + else + echo "...already converted" + fi + if [ ! -f "$MP3_FILE" ]; then + echo "...converting it to MP3: $MP3_FILE" + lame --preset studio "$TEMP_OUTFILE" "$MP3_FILE" + else + echo "...already converted" + fi + rm -f "$TEMP_OUTFILE" done -else - INFILE="$1" - FIX="`echo $INFILE | sed -e 's/^\[.*\] //g'`" - OUTFILE="`basename \"$FIX\" .raw`.wav" - echo "converting $INFILE to $OUTFILE" - #sox -r 44100 -e unsigned -b 8 -c 1  - sox -r 22050 -e signed -b 16 -L -c 1 "$INFILE" "$OUTFILE" - mv "$INFILE" "$FIX" -fi + cd .. +done