It's mostly manual work at this point, although it's not too bad because of some javascript that I wrote that makes it really straightforward to partition a score into time intervals...
And yes, I might actually write a blog post about this so make sure you have signed up on the site :)
First off, really nice job. Secondly, if you're not aware, audacity has a segment labeling feature - (I'm just throwing this out here because it might be easier than what you're doing). Select time boundaries and [ctrl+b] will label it. Labels can snap to abut each other. Each label might represent the span of a beat. The labels can be exported as an easy to parse .txt file and can be used to determine cursor position as a function of time.
Sonic Visualiser [1] can---or, at least, it makes an attempt to.
It's a highly useful tool for the analysis of music recordings.
I, too, am highly interested in the extent to which matching recordings to scores can be automated, as are a lot of music theorists. I hope you can publish a write-up of the process for syncing the audio and the score.
If there is a significant human spend required, then developing an open tool for community contributions would greatly speed up the creation of a corpus of scores.
I think a good case could be made for such an automatic system... although it's probably a somewhat too complex / labor intensive task at this particular stage for this particular project!
As for the write-up however, the process I currently use is very simple (and it's pretty much all "manual labor").
To partition a score into time intervals, I have a couple of lines of javascript that record the time the audio is at, together with where in the score I click (and where I aim to click on the note currently being played).
It doesn't take too much time and effort to partition a score this way actually, unless the piece is slightly complex. Beethoven's 5th took a little more effort than Air for example ;)
Hope this helps for now! And I am planning to publish a more detailed write up of everything, so please stay expect that in the next month or so (easiest to hear about via Twitter or by submitting your email to the site).
I wouldn't recommend using this structure directly since it requires the project to have a specific structure. There are some scheme callbacks in the writeSpaceTimeDumper function which you can use directly to extract the information that you can use.
Either way, it would be cool to see a writeup about how you implemented this.