The following instructions are guidelines for creating an alignment score for Andrews system.

Tapping to a performance

  1. Download (or located on your computer) the compressed file for the recording of the performance which you will reverse conduct.
  2. Run towave.exe to convert file to .wav. In a command-line terminal you can type:
       towave filename
    From windows, if you have a desktop icon for towave.exe, you can drag the icon of the compressed soundfile onto the towave icon to decompress it.
  3. Start Sonic Visualiser (SV) and load the .wav file with the recording to which you will tap. You can load the file by going to the "File" menu in SV and choosing "Import Audio File...".
  4. After the audio file has been loaded into SV, apply two analysis plugins, the first being "Attack detector: Attack detector function" and the second being "PowerCurve: scaled power slope". You apply plugins by choosing them from the menu "Layer->Analysis Plugins...".

    Color the attack detector function black, and set its style to "curve".

    Color the scaled power slope blue, and leave the line style as dots connected with lines.

  5. Add a blank layer for the tapping data: "Layer->Add New Time Instants Layer".
  6. Position cursor at start of sound file
  7. Press space bar to start playing sound
  8. Press Keypad-Enter on the beats of the music. If you are using a laptop without a keypad, you will probably need to open a virtual keyboard to tap with the mouse. To open the virtual keyboard go to the "start" menu at the bottom of the screen in Windows. Then go to the program list and select "Accessories --> Accessibility --> On-screen Keyboard.
  9. When the performance is finished, save the newly created time instant layer by selecting File->Export Annotation Layer...

    Choose the "Save as type" to be "Text file (.txt).

    Save with the pidname of the performance followed by "-raw.txt", or call the file "raw.txt".

  10. Open up a cygwin terminal and change directory to the location of the raw.txt file.
  11. Run the command:
      ./makemeasurelabels file-raw.txt > file-bars.txt
    This will create an annotation file which labels the beats in terms of measures and beats rather than successive counting the beats.

    This step is not necessary, but is useful to make sure that you do not miss a beat in the reverse conducting.

  12. Also save the "Attack detector function" layer to a file, called attacks.txt.
  13. Run the command:
          ./snaptopeaks bars.txt attacks.txt > newtaps.txt
  14. Delete the saved tapped layer in Sonic Visualiser by going to Layer -> Delete Layer

    Make sure that you deactivate the play button on the layer before you delete it.

    Or just change the color of the old tap layer from purple to orange. (and deslect the play option for the layer).

  15. Load the new measure/beat number annotation file: File -> Import Annoation Layer...
  16. The New annotation layer should now be visible with the waveform of the audio for the performance.
  17. Now go through the audio file, adjusting each tapped beat to line up wth the audio event for the beat. Beats which have no event should be about halfway between other beats, or whatever sounds best when playing back the beat taps.

    Time instants can be moved in Sonic Visualiser by clicking on the edit mode button which is in the toolbar and looks like a four-way aarrow. Make sure that you have the tapping layer on top which you change to edit mode.

  18. After correcting the beat locations and verify by listening that the taps are on the beat, save the new annotation file as *-clean.txt, where * is the pid number for the performance.
  19. Note the repetitions occuring in the file (for example, was both the first and second endings played in each section).
  20. At the top of the pid*-clean.txt file, add a header following this template:


      performance-id = performance ID number
    • title = the full title of the piece
    • trial = the trial number (always 01/01)
    • date = the date on which the tapped data was created (year/month/day/) prepend a 0 if there is only one digit in the month or day entry.
    • reverse-conductor = name of the person who did the reverse conducting taps.
    • performer = name of the pianist who played the performance
    • performance-date = year of the performance
    • label = recording label of the CD from which tapping was done.
  21. At this point the data file should be emailed to Craig and Nick. Craig will prepare the data to give to Andrew's program using the following guidelines:

Aligning taps to score and generating data for Andrew's system

  1. Create a directory called .../info/revcond/pid* where * is the pid number of the performance.
  2. copy the pid*-clean.txt file to the new directory.
  3. Change to the new directory and run:
       ln -s ../Makefile.performance Makefile
  4. Copy a humdrum score file for the performance and edit the repeats to match the performance. The file should be called pid*.score
  5. run the command:
       ../bin/sv2revcond pid*-clean.txt 3 > pid*-01.tap
    Where "3" in this case means that the music in the tapping file starts on beat 3 (a pickup beat before the first measure). If there is no pickup beat, you can specify "1" or nothing since the default is to assume starting at the beginning of the measure.
  6. Now type:
       source /etc/profile.d/
       make allsingle
  7. If there were no errors, then go to the parent directory and type
    to build the index with the new directory information listed.

    Updating the cross-referencing on each performance page is not yet automatic, but should be made so in the future.

  8. The final output to give to Andrew's alignment system will be .../info/revcond/pid*/pid*.notes