makeWebAudio.sh
author Jim Hague <jim.hague@acm.org>
Wed, 28 Aug 2013 11:54:45 +0100
changeset 369 e5f59f0e7dd5
parent 223 0ef955669a9a
child 393 c5d404bf68a3
permissions -rwxr-xr-x
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.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     1
#!/bin/bash
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     2
#
223
0ef955669a9a Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents: 197
diff changeset
     3
# Make audio required for the website but not for the book.
43
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     4
# They go into web/<book>.
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     5
#
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     6
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     7
if [ $# != 1 ]; then
223
0ef955669a9a Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents: 197
diff changeset
     8
    echo "Usage: makeWebAudio.sh <book dir name>"
43
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
     9
    exit 1
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    10
fi
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    11
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    12
dir=`pwd`
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    13
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    14
booke=$dir/$1
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    15
builddir=$dir/web/$1
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    16
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    17
mkdir -p $builddir
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    18
223
0ef955669a9a Make transposed tunes use the original audio.
Jim Hague <jim.hague@acm.org>
parents: 197
diff changeset
    19
# Now, for each tune, make the tune bitmap and sound. Do this to temp
48
6f4667d1372d Try to make web item updates atomic-ish.
Jim Hague <jim.hague@laicatc.com>
parents: 43
diff changeset
    20
# files and rename into place to make updates as atomic as possible.
43
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    21
find $booke -name "*.abc" | sort |
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    22
    while read filename
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    23
    do
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    24
        name=`basename $filename .abc`
61
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    25
        tmpname=${name}.tmp
43
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    26
61
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    27
        abc2midi $filename -o $builddir/${tmpname}.mid
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    28
        timidity -Ow -o $builddir/${tmpname}.wav $builddir/${tmpname}.mid
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    29
        lame --quiet $builddir/${tmpname}.wav $builddir/${tmpname}.mp3
369
e5f59f0e7dd5 Add audio player to tune web page.
Jim Hague <jim.hague@acm.org>
parents: 223
diff changeset
    30
        # Timidity can generate OGG directly. But we need to generate WAV
e5f59f0e7dd5 Add audio player to tune web page.
Jim Hague <jim.hague@acm.org>
parents: 223
diff changeset
    31
        # for lame, and oggenc produces smaller output. OGG is needed for
e5f59f0e7dd5 Add audio player to tune web page.
Jim Hague <jim.hague@acm.org>
parents: 223
diff changeset
    32
        # Firefox's audio tag. FF doesn't support MP3, some others support
e5f59f0e7dd5 Add audio player to tune web page.
Jim Hague <jim.hague@acm.org>
parents: 223
diff changeset
    33
        # MP3 but not OGG.
e5f59f0e7dd5 Add audio player to tune web page.
Jim Hague <jim.hague@acm.org>
parents: 223
diff changeset
    34
        oggenc -Q -o $builddir/${tmpname}.ogg $builddir/${tmpname}.wav
48
6f4667d1372d Try to make web item updates atomic-ish.
Jim Hague <jim.hague@laicatc.com>
parents: 43
diff changeset
    35
61
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    36
        mv $builddir/${tmpname}.mid $builddir/${name}.mid
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    37
        mv $builddir/${tmpname}.mp3 $builddir/${name}.mp3
369
e5f59f0e7dd5 Add audio player to tune web page.
Jim Hague <jim.hague@acm.org>
parents: 223
diff changeset
    38
        mv $builddir/${tmpname}.ogg $builddir/${name}.ogg
61
3464d5154f49 Fix temp file name to convert.
Jim Hague <jim.hague@acm.org>
parents: 48
diff changeset
    39
        rm $builddir/${tmpname}.wav
43
d92717f8130c First go at producing a very simple website.
Jim Hague <jim.hague@laicatc.com>
parents:
diff changeset
    40
    done