How are Choralia’s training aids made?

This is a rather frequent question from Choralia’s users. The production process is quite complex, however it makes use of technologies that are available on the market and that anyone can exploit.

Choralia’s training aids are mostly made using commercial software packages, somehow adapted to Choralia’s specific purposes. The most important packages are:

  • Harmony Assistant for music editing and automatic scripting, including the Virtual Singer module that “sings” the lyrics;
  • SharpEye and PhotoScore Ultimate for optical music recognition (i.e., to convert scanned score pages into music files that can be edited with Harmony Assistant);
  • GoldWave for the “stereo check trick” (see details next) and to produce mp3 files in batches.

Let’s now go step-by-step through the production process.

The first step is digitizing the score. In order to ensure that the training aids are consistent with the score actually used by the choir, in most cases I scan the sheet music and digitize it using an optical music recognition program. Some years ago SharpEye was believed to be the best software of this type, and it is still being used at Choralia. Using it the best way, obtaining the maximum recognition performance and the minimum number of errors, requires some experience. The recognition results may vary a lot depending on the print quality of the score. Then, one must check and manually correct the whole score, and this is perhaps one of the most time consuming parts of the work.

SharpEye is not being developed any more by its inventor, so maybe other products that are still being developed can beat SharpEye in terms of recognition accuracy. Choralia is also using Photoscore Ultimate. SharpEye is used as the main tool because its behaviour is very well known, including some tricky items (accidentals, ties) that need to be double-checked. Photoscore Ultimate is generally used for the “stereo check trick” (see details next), when no alternative files made by others are available.

The second step is importing the files resulting from optical music recognition into Harmony Assistant. Again, one has to check that everything is imported correctly, select suitable singers for the “Virtual Singer” module, and so on. Choralia’s virtual singers were developed by a specialist, and then they have been slightly modified to best suit the use as “virtual trainers” (for example, the “glissato” effect between consecutive notes was almost reduced to zero, and the simulation of breathing as well, that are of no help – actually: confusing – for training purposes).

The third step, whenever possible, is to carry out the “stereo check trick”. This is intended to spot any wrong notes, and requires to find over the internet any existing digital files for the same work, in any reasonable format (MIDI, NWC, Finale, …). If an alternative file is found, it is also imported into Harmony Assistant. Each staff is duplicated so as to have one staff for Choralia’s notes, and one staff obtained from the alternative file found on the internet. Choralia’s notes go to the left stereo channel, while the notes from the alternative file go to the right stereo channel. Then, a .wav output file is produced, which is then imported into GoldWave. GoldWave allows to calculate new stereo channels: the difference “left minus right” is placed on the new left channel, and the sum “left plus right” is placed on the new right stereo channel. If there is even only one different note between the two files, it is displayed by GoldWave as a “peak” on the graphical output of the left channel. So, any different notes can be easily spotted, and on can trace whether the difference derives from an optical music recognition error or from an error in the alternative file.

When no alternative files are available to perform the “stereo check trick”, two digitizations are usually made: one using SharpEye; and the other one using Photoscore Ultimate. The digitizations are also usually assign to different persons, to reduce the probability that the same person makes the same error on both files. Then the files are compared using the “stereo check trick” as previously described in order to fix any differences/errors.

The fourth step is a final check about the lyrics being correctly spelled, placed on the correct notes, and fix possible pronunciation problems. This is entirely made manually (i.e., by ear), voice by voice, using Harmony Assistant and Virtual Singer. This is also a rather time-consuming step.

As a result of all the checks performed, each work is classified with respect to the probability of errors, i.e., to the probability that differences exist between the file produced by me and the reference score. Three quality classes are foreseen at Choralia:

  • Class 2: works in this quality class are expected to have one wrong note in the vocal parts every 100 notes or so (i.e., the probability of error is some 1%);
  • Class 3: works in this quality class are expected to have one wrong note in the vocal parts every 1,000 notes or so (i.e., the probability of error is some 0.1%);
  • Class 4: works in this quality class are expected to have one wrong note in the vocal parts every 10,000 notes or so (i.e., the probability of error is some 0.01%).

The quality class is determined on the basis of the print quality of the original score and of the specific production process used (for example, the highest class is achieved by comparing the results of three or more independent tools/sources using the “stereo check trick”). Most works currently produced belong to Class 3, so one may usually expect one wrong note every one thousand notes (or less).

The fifth step is to produce the files with individual voices, emphasised voices, etc. . This is done automatically using some scripts. Harmony Assistant includes a programming language, named MyrScript, that allows to add tailored functions to the program. Some scripts have been written that, with just one keystroke, can create hundreds of files for individual voices in a completely automated manner.

The sixth step is to export files in .wav format. This is also done automatically, in batch, by Harmony Assistant, through a script that is provided as a standard together with the program.

The seventh step is to convert .wav files to mp3 files, in batch. This is done by Goldwave (http://www.goldwave.com), including the LAME mp3 conversion library (http://lame.sourceforge.net). Harmony Assistant can also export files in mp3 format, however Goldwave/LAME appear superior as far as the output format flexibility and conversion quality is concerned.

The eighth and final step is to compile html pages and publish everything on the Choralia server. This is also mostly done using some proprietary scripts written in Basic and in php.