ï~~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
Top of page Top of page