Mercurial > dottes
view makeWebAudio.sh @ 738:69a7499817c8 build-default-284
On Nook and A5 prints, start a new page with each tune and centre vertically..
A5 mostly did, but ran into trouble with longer comments on a tune.
This may give blank space after tunes where a long comment overflows
onto another page, but I think for now it's better to have each tune
at the top of the page.
Or rather, and this is the other change, in the middle of the page. Centre
the page content for A5 and Nook.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Thu, 12 Oct 2017 14:50:51 +0100 |
parents | cb7a4eff9d5b |
children | ce5c7214f9aa |
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 # Make MP3 and OGG files for the input .abc. Since we're listening to # a doorbell playing the tunes, go for lowest quality (and hence smallest) # MP3 and OGG. $1 is the input filename, $2 is optional args for timidity. makeaudiofiles() { name=`basename $1 .abc` abc2midi $1 -o $builddir/${name}.mid timidity -OwM $2 -o $builddir/${name}.wav $builddir/${name}.mid lame -m m -V 9 --quiet $builddir/${name}.wav $builddir/${name}.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 -q 0 -o $builddir/${name}.ogg $builddir/${name}.wav rm $builddir/${name}.wav } # Make audio for a new tempo for the abc file $1, giving the output files # the same name with a prefix $2. The new tempo is the original tempo # (120 used if not specified), multiplied by $3 and divided by $4. # These audio files are for Learner use; I've found that having the # chords thumping away can make it hard to distinguish the melody, so # arrange for timidity to mute everything except the melody track. makeaudiofortempo() { name=`basename $filename .abc` newspeedfilename="$2-${name}.abc" # Prepare new speed audio files. # The tempo is either a plain number, or <notelen>=<number>. tempo=`$dir/abcfield.py --field Q $1` if [ -z $tempo ]; then echo "Warning: $1 has no tempo. Using 120." tempo="120" fi pos=`expr index $tempo '='` numtempo=${tempo:pos} notelenprefix=${tempo:0:pos} # Calculate new tempo. newtempo=$(( ( $numtempo * $3 ) / $4 )) # Insert new tempo and delete old. Old may not exist, # so do this rather than overwrite. sed -e "/^Q:/d" -e "/^K:/aQ: ${notelenprefix}${newtempo}" $1 > $builddir/$newspeedfilename makeaudiofiles $builddir/$newspeedfilename --mute=0,-1 rm $builddir/$newspeedfilename } # Generate audio files and slow speed (currently half speed) audio files. find $booke -name "*.abc" | sort | while read filename do makeaudiofiles $filename # Now make 1/4, 1/2 and 3/4 speed audio. makeaudiofortempo $filename "veryslow" 1 4 makeaudiofortempo $filename "slow" 2 4 makeaudiofortempo $filename "littleslow" 3 4 makeaudiofortempo $filename "normal" 4 4 done