ocarina/tests/Music/gen_tracks.sh

48 lines
1.0 KiB
Bash

#!/bin/bash
function check_cmd()
{
echo -n "Checking for $1 ... "
CMD=$(which $1 2>/dev/null)
if [ $? != 0 ]; then
echo "$1 not found"
exit 1
fi
echo $CMD
}
check_cmd ffmpeg
check_cmd vorbiscomment
TRACK=1
FFMPEG="ffmpeg -hide_banner -nostdin -f s16le -i /dev/zero -codec libvorbis -loglevel warning"
while read -r line; do
if [ -z "$ARTIST" ]; then
ARTIST="$line"
elif [ -z "$ALBUM" ]; then
YEAR=$(echo "$line" | cut -f 1 -d ' ')
ALBUM=$(echo "$line" | cut -f 1 -d ' ' --complement)
mkdir -p "$ALBUM"
elif [ -z "$GENRE" ]; then
GENRE="$line"
else
LENGTH=$(echo "$line" | cut -f 1 -d ' ')
TITLE=$(echo "$line" | cut -f -1 -d ' ' --complement)
NUMBER=$(printf "%02d" $TRACK)
FILE="$ALBUM/$NUMBER - $TITLE.ogg"
if [ ! -f "$FILE" ]; then
echo "$FILE"
$FFMPEG -t "$LENGTH" "$FILE"
vorbiscomment -w "$FILE" -t "TITLE=$TITLE" \
-t "ARTIST=$ARTIST" \
-t "ALBUM=$ALBUM" \
-t "GENRE=$GENRE" \
-t "DATE=$YEAR" \
-t "TRACKNUMBER=$NUMBER"
fi
let TRACK=$TRACK+1
fi
done < $1