ï~~DATA STRUCTURES IN THE NOTE PROCESSOR
J. Stephen Dydo
The Music Factory
584 Bergen Street
Brooklyn, NY 11238
(718) 636-2109
Abstract:
The Note Processor is a music printing program, to be released this fall.
Although developed to provide engraving-quality music, the design of the program and
data structure allows for applications in composition, database storage, education,
etc.
It is an "open" system, in that the design of the program permits user access
at several different points and in different ways. Input of the data is either
through DARMS code, MIDI code, or graphic input; each method produces the same
internal representation. This data is then processed by separate modules which,
respectively, paginate, break the data down into font elements, perform vertical
formatting, and print. The user has graphic access to the data at each of these
points; further, the code may be edited, stored, or examined, and new code
introduced, all along the way. Thus, external programs may process or generate the
data at these points.
The internal representation of the music data is a kind of canonical DARMS.
As such, it may be read easily by humans; but its structure allows very quick
interpretation by machines as well. It is also compact. The graphic editor allows
mouse-driven editing of the code either purely graphically or by editing actual
lines.
When the data has been broken down into font elements, it becomes less "userfriendly" and more specific. A second editor allows editing of the font list with the
same interface as the canonical DARMS editor. This is extremely useful for
specialized notational situations which would be incomprehensible to the
DARMS-oriented parts of the program (such as graphs). It may be edited or generated
by outside programs, including text editors.
The Program:
The Note Processor was originally designed to serve a single purpose,
high-quality music printing. This forthright task, the simplicity of which will be
readily apparent to anyone who has been involved with font design, horizontal
justification, vertical formatting, beam slanting, slur drawing, printer control,
graphic editing, and general input/output in a musical context, still is not an
absolute piece of cake until one has concocted an appropriate structure for storing
and retrieving music data. Thus, before I sat down to spend a couple of afternoons
designing and coding the program which I have been using to print publication-quality
music, I actually spent more than that amount of time designing the data structure.
1987 ICMC Proceedings
311
0