Robert Strandh



Title: Gsharp, an Extensible Interactive Score Editor



Abstract: Gsharp is an interactive real-time score editor written entirely in Common Lisp which is currently being developed.  It uses CLIM for interaction with the user.

The specifications of Gsharp require it to be able to fully format and present a small number of pages of) a score of several hundred pages at the typing speed of a typical user (less than 100ms). Formating a score is more complicated than formating a text, since a small modification in one part of the score may have global side effects arbitrarily far from the modification.

We thus developed an incremental page-layout algorithm that only requires a small amount of work as a result of a typical interaction from the user.  The challenge was to separate the part of the algorithm responsible for computing page breaks from the part that determines parameters such as spacing between notes.  Using CLOS, we were able to create a protocol that neatly separates these different responsibilities, allowing several different styles of dividing the score into pages (fill the last page, fill an even number of pages, roll of paper) to coexist.