view makeWebAudio.sh @ 369:e5f59f0e7dd5

Add audio player to tune web page. Add an <audio> tag to the bottom centre of the tune web page. Give it options for MP3 and OGG files. Most browsers will play MP3, and the ones that won't (Firefox) will play OGG. Since we now have to generate OGGs, add a download link as well.
author Jim Hague <jim.hague@acm.org>
date Wed, 28 Aug 2013 11:54:45 +0100
parents 0ef955669a9a
children c5d404bf68a3
line wrap: on
line source

#!/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