changeset 567:cb7a4eff9d5b

Have learner tunes play only the melody. Do this by telling timidity to mute all tracks but the first.
author Jim Hague <jim.hague@acm.org>
date Tue, 06 Sep 2016 20:48:32 +0100
parents 912d53652d8d
children c6568aedca9e
files dottes.html.learnertune makeWebAudio.sh
diffstat 2 files changed, 14 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/dottes.html.learnertune	Tue Sep 06 20:27:01 2016 +0100
+++ b/dottes.html.learnertune	Tue Sep 06 20:48:32 2016 +0100
@@ -21,8 +21,8 @@
 
     <div class="grid_12 dottes-body">
       <div class="dottes-tune-display">
-        <img src="../img/learner.png">Work out the tune or play along
-        with these audio players. They play the tune repeatedly. There's
+        <img src="../img/learner.png">Work out the melody or play along
+        with these audio players. They play the melody repeatedly. There's
         a variety of speeds to choose from. You can also download the
         audio files.
       </div>
@@ -59,14 +59,14 @@
             </div>
             <div class="dottes-tune-footer-centre">
               <audio controls loop>
-                <source src="../@MASTERBOOKE@/@TUNE@.mp3" type="audio/mpeg" />
-                <source src="../@MASTERBOOKE@/@TUNE@.ogg" type="audio/ogg" />
+                <source src="../@MASTERBOOKE@/normal-@TUNE@.mp3" type="audio/mpeg" />
+                <source src="../@MASTERBOOKE@/normal-@TUNE@.ogg" type="audio/ogg" />
                 <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="autoplay" value="false" />
                   <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="autoplay" value="false" />
                     <param name="playCount" value="100000" />
--- a/makeWebAudio.sh	Tue Sep 06 20:27:01 2016 +0100
+++ b/makeWebAudio.sh	Tue Sep 06 20:48:32 2016 +0100
@@ -18,13 +18,13 @@
 
 # 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.
+# 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 -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
     # Timidity can generate OGG directly. But we need to generate WAV
     # for lame, and oggenc produces smaller output. OGG is needed for
@@ -38,6 +38,9 @@
 # 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`
@@ -58,7 +61,7 @@
     # 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
+    makeaudiofiles $builddir/$newspeedfilename --mute=0,-1
     rm $builddir/$newspeedfilename
 }
 
@@ -70,6 +73,7 @@
 
         # Now make 1/4, 1/2 and 3/4 speed audio.
         makeaudiofortempo $filename "veryslow" 1 4
-        makeaudiofortempo $filename "slow" 1 2
+        makeaudiofortempo $filename "slow" 2 4
         makeaudiofortempo $filename "littleslow" 3 4
+        makeaudiofortempo $filename "normal" 4 4
     done