Rehearsal Tracks

When I first started singing, I was pretty insecure about my skills. To help me overcome this, I (naturally) applied a software solution. I developed a Windows program, dubbed Virtual Accompanist, that can take music transcribed into ABC notation and play it back with various controls.

(Transcribing music into text form was nothing new to me. In the 8th grade my science fair project was called “Music in the Computer Age,” and I ended up transcribing some 3-part Bach inventions onto several 8-bit computer systems to test their sound capabilities.)

The Virtual Accompanist UI is pretty minimal, but it allows me to dynamically alter the tempo of the piece, plus adjust the relative volumes of the accompaniment and of each individual voice part. It also supports bookmarks that can be used to quickly jump to key points in the piece.

For the first few years of singing, this method was sufficient to help me gain confidence. I would begin by rehearsing with my part emphasized over all the other parts. As I gained familiarity with a given piece of music, I would equalize all the voices, and eventually tune out my part completely to be sure I could hold my own without assistance.

Even once I’d mastered a piece, having the ability to call up an accompaniment whenever I wanted was still invaluable for practicing.

After a couple of years, I joined the Sacred Music Chorale and quickly realized that such a system would be helpful for others I was singing with. Each season I would transcribe the pieces we were singing into ABC notation, and then use Virtual Accompanist to export the tracks to WAV format, which I then burned onto CDs.

Unfortunately, this was very labor intensive. Plus, since space was limited, I only exported the version that had each part emphasized, and left off the ones where all the parts are equalized or where you heard everything except a single part.

Since I was also the web manager for SMC, I realized that with a little JavaScript and PHP I could host all the tracks interactively online as MP3s. With some additional information exported by Virtual Accompanist, I was also able to add markers for each measure, page, and rehearsal mark.

Given all this extra information, I was able to make the online versions much easier to use for rehearsing. Now you could easily jump to any location within the piece, though due to the limitations of MP3s, adjusting the tempo dynamically was no longer an option. For some pieces I manually created slowed down versions to compensate.

Eventually I moved the online implementation to its own website,, so that I could share my efforts with other groups I was connected with. If you’d like to see it in action, view the demo rehearsal page.

Since entering in music by hand—especially major choral works—is a time-consuming operation, I began to seek out existing MIDI files online to use as starting points. Assuming I can find the MIDI files for the piece I’m interested in, I can use a utility I wrote to convert the MIDI into ABC and use that as a starting point.

Recently Sacred Music Chorale moved to a different style of rehearsal track which is sung, so I have updated the website to support this style as well with the same easy-to-use interface.