dottes/makeWebAudio.sh

41 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
#
# Make audio required for the website but not for the book.
# They go into web/<book>.
#
if [ $# != 1 ]; then
echo "Usage: makeWebAudio.sh <book dir name>"
exit 1
fi
dir=`pwd`
booke=$dir/$1
builddir=$dir/web/$1
mkdir -p $builddir
# Now, for each tune, make the tune bitmap and sound. Do this to temp
# files and rename into place to make updates as atomic as possible.
find $booke -name "*.abc" | sort |
while read filename
do
name=`basename $filename .abc`
tmpname=${name}.tmp
abc2midi $filename -o $builddir/${tmpname}.mid
timidity -Ow -o $builddir/${tmpname}.wav $builddir/${tmpname}.mid
lame --quiet $builddir/${tmpname}.wav $builddir/${tmpname}.mp3
# Timidity can generate OGG directly. But we need to generate WAV
# for lame, and oggenc produces smaller output. OGG is needed for
# Firefox's audio tag. FF doesn't support MP3, some others support
# MP3 but not OGG.
oggenc -Q -o $builddir/${tmpname}.ogg $builddir/${tmpname}.wav
mv $builddir/${tmpname}.mid $builddir/${name}.mid
mv $builddir/${tmpname}.mp3 $builddir/${name}.mp3
mv $builddir/${tmpname}.ogg $builddir/${name}.ogg
rm $builddir/${tmpname}.wav
done