Beyond MIDI: The Handbook of Musical Codes
The purpose of MuseData code is to represent the logical content of musical scores in a software-neutral fashion. The code is currently being used in the construction of full-text databases of music for several composers, including J. S. Bach, Beethoven, Corelli, Handel, Haydn, Mozart, Telemann, and Vivaldi. It is intended that these full-text databases be used for music printing, music analysis, and production of electronic sound files.
Although MuseData code is intended to be generic, we have developed software of various kinds in order to test its effectiveness. MuseData programs print scores and parts which have been used by professional performing groups and music publishers. They compile Standard MIDI Files which may be used with standard sequencer software. They facilitate high-speed searches of the data for specific rhythmic, melodic, and harmonic patterns.
MuseData code is designed to represent both notational and sound information, but in both cases the representation is not intended to be fully complete. It is envisioned that MuseData files would serve as source files for generating page-specific graphics files and MIDI performance files, which might then be further edited as the user sees fit. The reasons for this position are two-fold:
(1) When we encode a musical work, what we are encoding is not the score itself but the logical content of the score. To encode the score would mean encoding the exact position of every note on the page; but our view is that such an encoding would actually contain more information than the composer intended to convey.
(2) We cannot anticipate all of the uses to which this data might be put, but we can be fairly sure that each user will have his or her own special needs and preferences. It does not make sense, therefore, to try to encode detailed information about how a graphic realization of the data should look or how a sound realization of the data should sound.
On the other hand, it sometimes can be helpful to make suggestions about how the graphics and the sound should be realized. The important thing is to identify suggestions as a separate data type, which can easily be ignored by application software or stripped entirely from the data. Our own software makes use of these print and sound suggestions in the process of generating SCORE parameter files and MIDI performance files.