It is rather surprising, then, that now music information retrieval has become such a hot topic (as of June 2007), although there are a large number of projects which claim to deal with musical information, most, if not all, do not address the issue of displaying data from performance measurements or musicological analysis in the context of the score.
Expecting musicians to use applications which do not produce results in score form at all useful is like expecting a mathematician or physicist to read a paper in which the use of standard mathematical notation has been disallowed.
At Glasgow University's Centre for Music Technology we have a project which will enable us to describe and store performance aspects of a piece of music using computer databases, and to search these databases using musically-relevant queries. An enabling technology for this activity is PML (Performance Markup Language) which can describe a musical performance in the same way HTML describes the appearance and layout of a web page.
One of the tools emerging from this work gives us the ability to mark up musical scores with detailed performance data. At the summer colloquium Listening to Music, Jennifer MacRitchie played Chopin's A Major Prelude Op 28 No 7. The performance was converted to PML and has been stored in a database.
Now it's your chance!
Compare your performance of Chopin's Prelude with the virtuoso's! The ClickChopin applet above, thanks to Java(TM)'s "Write once, run [almost] anywhere" technology (but if you're using Windows, see the release notes below), you can play like the pros.
Coding any real-time musical instrument places quite severe demands on the host, and this can be manifested by an uncomfortably long delay between the mouse click and the note starting. This is worst on Windows machines, and isn't too good on the Linux machine I used to write the applet (both running version 1.6 of the Sun Java runtime environment). That said, the Linux box has a sound card which cost US$10 or less, so perhaps I shouldn't complain! I couldn't find a Windows machine on which it performed well; if you're on Windows I hope it works for you. The Mac (my Powerbook G4) had no latency I could hear.
This file contains the source code which might be the cause of the problem. If so, it's my fault... My limited understanding of the Java sound system is that there's a class (BufferControl?) with a method to set the audio buffer length (maybe something like BufferControl.setBufferLength(20);?) but since I'm only using the audio system through the MIDI framework, it's not immediately clear to me how to achieve that. If some kind person could tell me, I'd happily incorporate it in the applet! email me here: nick AT n-ism DOT org (making the obvious anti-spam changes) and I'll be most greatful. Preferably the fix shouldn't involve any JMF or other large downloads.
Nick Bailey, June 2007