Have learner tunes play only the melody.

Do this by telling timidity to mute all tracks but the first.
This commit is contained in:
Jim Hague 2016-09-06 20:48:32 +01:00
parent fbb29b836b
commit 11ed898309
2 changed files with 14 additions and 10 deletions

View File

@ -21,8 +21,8 @@
<div class="grid_12 dottes-body"> <div class="grid_12 dottes-body">
<div class="dottes-tune-display"> <div class="dottes-tune-display">
<img src="../img/learner.png">Work out the tune or play along <img src="../img/learner.png">Work out the melody or play along
with these audio players. They play the tune repeatedly. There's with these audio players. They play the melody repeatedly. There's
a variety of speeds to choose from. You can also download the a variety of speeds to choose from. You can also download the
audio files. audio files.
</div> </div>
@ -59,14 +59,14 @@
</div> </div>
<div class="dottes-tune-footer-centre"> <div class="dottes-tune-footer-centre">
<audio controls loop> <audio controls loop>
<source src="../@MASTERBOOKE@/@TUNE@.mp3" type="audio/mpeg" /> <source src="../@MASTERBOOKE@/normal-@TUNE@.mp3" type="audio/mpeg" />
<source src="../@MASTERBOOKE@/@TUNE@.ogg" type="audio/ogg" /> <source src="../@MASTERBOOKE@/normal-@TUNE@.ogg" type="audio/ogg" />
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> <object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95">
<param name="FileName" value="@TUNE@.mp3" /> <param name="FileName" value="normal-@TUNE@.mp3" />
<param name="autoStart" value="false" /> <param name="autoStart" value="false" />
<param name="autoplay" value="false" /> <param name="autoplay" value="false" />
<param name="playCount" value="100000" /> <param name="playCount" value="100000" />
<object type="audio/mpeg" data="@TUNE@.mp3"> <object type="audio/mpeg" data="normal-@TUNE@.mp3">
<param name="controller" value="true" /> <param name="controller" value="true" />
<param name="autoplay" value="false" /> <param name="autoplay" value="false" />
<param name="playCount" value="100000" /> <param name="playCount" value="100000" />

View File

@ -18,13 +18,13 @@ mkdir -p $builddir
# Make MP3 and OGG files for the input .abc. Since we're listening to # 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) # a doorbell playing the tunes, go for lowest quality (and hence smallest)
# MP3 and OGG. # MP3 and OGG. $1 is the input filename, $2 is optional args for timidity.
makeaudiofiles() makeaudiofiles()
{ {
name=`basename $1 .abc` name=`basename $1 .abc`
abc2midi $1 -o $builddir/${name}.mid abc2midi $1 -o $builddir/${name}.mid
timidity -OwM -o $builddir/${name}.wav $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 lame -m m -V 9 --quiet $builddir/${name}.wav $builddir/${name}.mp3
# Timidity can generate OGG directly. But we need to generate WAV # Timidity can generate OGG directly. But we need to generate WAV
# for lame, and oggenc produces smaller output. OGG is needed for # for lame, and oggenc produces smaller output. OGG is needed for
@ -38,6 +38,9 @@ makeaudiofiles()
# Make audio for a new tempo for the abc file $1, giving the output files # 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 # 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. # (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() makeaudiofortempo()
{ {
name=`basename $filename .abc` name=`basename $filename .abc`
@ -58,7 +61,7 @@ makeaudiofortempo()
# Insert new tempo and delete old. Old may not exist, # Insert new tempo and delete old. Old may not exist,
# so do this rather than overwrite. # so do this rather than overwrite.
sed -e "/^Q:/d" -e "/^K:/aQ: ${notelenprefix}${newtempo}" $1 > $builddir/$newspeedfilename sed -e "/^Q:/d" -e "/^K:/aQ: ${notelenprefix}${newtempo}" $1 > $builddir/$newspeedfilename
makeaudiofiles $builddir/$newspeedfilename makeaudiofiles $builddir/$newspeedfilename --mute=0,-1
rm $builddir/$newspeedfilename rm $builddir/$newspeedfilename
} }
@ -70,6 +73,7 @@ find $booke -name "*.abc" | sort |
# Now make 1/4, 1/2 and 3/4 speed audio. # Now make 1/4, 1/2 and 3/4 speed audio.
makeaudiofortempo $filename "veryslow" 1 4 makeaudiofortempo $filename "veryslow" 1 4
makeaudiofortempo $filename "slow" 1 2 makeaudiofortempo $filename "slow" 2 4
makeaudiofortempo $filename "littleslow" 3 4 makeaudiofortempo $filename "littleslow" 3 4
makeaudiofortempo $filename "normal" 4 4
done done