The Gemnotes project nears completion. Gemnotes is a live music notation system written in Pure Data (PD). It generates symbolic notation on the screen for musicians to play, and can also be used as a sound-to-notation device for improvisation and music education as well.
The seeds of the project were sown in 1997 while at the University of Hertfordshire, when a vocal score was created for projection on an overhead projector, as a roll of acetate wound by hand. At this point I was fairly unsure of, and over-ambitious in my musical ideas, and so although this was used in rehearsal it never made it to the final performance. The rehearsal was, incidently, much more successful than the performance which used a rather scrappy A3 score sheet. This led me to consider the idea of writing all my scores in proportional notation (which I subsequently did, and I have developed a system of polyrhythm rulers to do so). Originally it was conceived that scores should be created in proportional notation, with an evenly-spaced black-white broken line at the bottom so that opto-mechanical devices could be invented to synchronize and control the speed of scrolling paper or transparent film scores on motor-driven rollers.
This evolved into the concept of computer-graphical representations of symbolic music, and a prototype image-based scrolling score was created at the University of East Anglia using Max in 2001. However, the refresh rate of the graphics made the symbolic notation jerky and hard to read, although the horizontal lines were obviously clear. At around this time I was becoming interested (and using) Pure Data, Miller Puckette’s successor to Max/MSP.
In 2008 I began to experiment with truetype fonts in GEM – the Graphics Environment for Multimedia for Pure Data. At first I was able only to print a stave, a clef and a note, then with an accidental. The idea was to develop a system that musicians could use based on musical information (note value, duration of note values, pitch and clef) that was relatively easy to program a score. For the past year I have been intensely developing this system, and for the past 6 months I have been building an extremely complex rhythm register and notation object counter. This object is now complete, and the system is evolving to show beamed groups, ties, rests and chords. These are projected in realtime, and can be made to change at any time, on a computer screen.
The system uses dynamic patching in PD – effectively a PD patch that builds another PD patch (the graphical score) using pre-made abstractions (PD patches saved in the same folder as the root patch) that contain the commands to create a graphical representation of music. For such a complex system (music notation) it has been necessary to create an object in the C programming language that manages the number of objects, which objects are linked to which, and how music-specific elements (such as ties and tuples) are displayed. This object (the gemnotes_counter object) consists of over 800 lines of code and took 6 months to write, but there is much, much more to add to it (dynamics, articulation). The emphasis so far has been to encapsulate all of the features of Western musical notation…but, because it is written in PD with GEM, it is open to less literal expositions of notated music, since anything (including video) can be projected in the same graphical space as the notation, and even anchored to a stave in gemnotes.
You can see a couple of older screenshots in the previous post, but here is a gallery of the latest version with rests, barlines, chords and correctly beamed groups:

- Two of the dynamic object creation windows.

- The latest Gemnotes at 17th December 2010

- Gemnotes – December 16th 2010

- The brain of gemnotes!