diff --git a/makeWebAudio.sh b/makeWebAudio.sh index 9bf017c..42139e7 100755 --- a/makeWebAudio.sh +++ b/makeWebAudio.sh @@ -39,29 +39,41 @@ makeaudiofiles() rm $builddir/${tmpname}.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. +makeaudiofortempo() +{ + name=`basename $filename .abc` + newspeedfilename="$2-${name}.abc" + + # Prepare new speed audio files. + # The tempo is either a plain number, or =. + 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 + 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 - name=`basename $filename .abc` - slowspeedfilename="slowspeed-${name}.abc" - - # Prepare slow speed audio files. - # The tempo is either a plain number, or =. - tempo=`$dir/abcfield.py --field Q $filename` - if [ -z $tempo ]; then - echo "Warning: $filename has no tempo. Using 120." - tempo="120" - fi - pos=`expr index $tempo '='` - numtempo=${tempo:pos} - notelenprefix=${tempo:0:pos} - # Make new tempo half original speed. - newtempo=$(( $numtempo / 2 )) - # 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}" $filename > $builddir/$slowspeedfilename - makeaudiofiles $builddir/$slowspeedfilename + # Now make 1/4, 1/2 and 3/4 speed audio. + makeaudiofortempo $filename "veryslow" 1 4 + makeaudiofortempo $filename "slow" 1 2 + makeaudiofortempo $filename "littleslow" 3 4 done