Method and apparatus for representing musical information2010-03-26 00:00:00available from Apple Computer, Inc. The functioning of the data processing means 12 is controlled by means of control information in the form of a software program that stores and retrieves data utilizing the common data structure described hereinafter. Those skilled in the art will recognize that various software functions utilizing the common data structure could be programmed in a variety of ways or could also be accomplished by equivalent hardware.
THE COMMON DATA STRUCTURE
The music processing apparatus 10 may be used by a musician or composer to enter, retrieve, edit, analyze and output musical information. In order to accomplish these tasks, the musical information must be stored in a machine-readable format so that it may be processed by the data processing means 12. For purposes of the present invention, musical information represented in this manner will be referred to as music data. The common data structure that the music processing apparatus 10 uses to represent music data in the memory means of the data processing means 12 is a new way of storing musical information in a machine-readable format such that the graphic aspects of the music data are related to the acoustic aspects of the music data in a music/logical type of representation. By accommodating both the graphic and acoustic aspects of the music data as related elements in a common data structure, changes to the graphic information can be automatically reflected in changes to the acoustic information, and vice versa. The common data structure allows the present invention to overcome the problems inherent in the prior art where the graphic and acoustic representations of music data are treated as separate and distinct pieces of information. The particular structure and organization of the common data structure also allow the present invention to overcome the problems inherent in the current systems that attempt to utilize a music/logical type of representation of musical information.
Unlike the prior art, the present invention does not define a specific coding scheme for representing each of the four types of musical information. Instead, a common data structure, a logical array called the Music Framework, is established in which elements of music data for any of the four types of musical information listed above may be represented. Moreover, these elements of music data are preferably represented in the logical array with the same basic format for each element, the Enigma Format. By using the same basic format or various types of music data and storing all of the music data in a common data structure, the storage and manipulation of the music data is simplified and the overall performance of the music processing apparatus is improved.
To further utilize the flexibility and other advantages of the common data structure (the Music Framework) and the basic format for storing music data (the Enigma Format) the present invention also provides for several novel methods and structures for representing the music data within the Music Framework. These begin with the way in which individual music data values are represented and extend to how groups of music data are placed in the Music Framework. First, although the Music Framework provides a method for relating instruments (or other sound sources) and measures (or portions of measures) in time, there is also a need to provide a time relationship among the notes, chord, and rests that are the heart of the music data for each measure. Because musicians and composers tend to create music data in a non-linear fashion, in the present invention the core of the music data (i.e., the notes, chords, and rests) is stored in a flexible, sequentially linked organization, the Entry Pool, that allows for easy insertion, deletion, or modification of the music data. Next, because certain types of music data are physical measured values (e.g., pitch, duration, position) that a musician may wish to systematically modify, as by transposition, rearrangement, or resizing, the present invention chooses to represent the individual value for any type of measured music data as a relative value expressed in terms of an offset or displacement from a user-selected or default absolute value, or expressed in terms of relative units multiplied by a base resolution value. This Relative Representation method allows for quicker manipulations and additional flexibility in representing the individual measured values of the music data, particularly for representation of pitch values by the Tone Center Displacement method. Finally, because composers often use the same music data in different measures and for different instruments, the present invention facilitates this reuse or tieing together of music data by using a Frame Assignment method to associate individual measures of music data for a particular instrument with nodes or intersection points in the Music Framework. This method also
leads to certain storage and processing efficiencies in the music processing apparatus 10.
THE MUSIC FRAMEWORK
As shown in FIG. 2, all of the music data in the common data structure is organized within a Music Framework 30, a multi-dimensional array having Time 32 as its first dimension and Sound 34 as its second dimension. The Music Framework 30 is a kind of time-based organizational chart in which the method and apparatus of the invention places all the various types of musical information the music processing apparatus 10 must manage. Conceptually, the musical information is connected to the various Framework Intersections 36 created by the intersection of discrete values of the two dimensions, Time 32 and Sound 34, of the Music Framework 30. All of the music data represented in the memory means of the data processing means 12 is organized according to a music data hierarchy defined in association with the Music Framework 30. The hierarchical categories of music data represented in the Music Framework 30 include: Page-Related Data 40, Instrument-Related Data 42, and Measure-Related Data 44 represented in the Framework Margin 35, and Frame-Related Data 46 and Entry-Related Data 48 represented at the Framework Intersections 36.
Page-Related Data
Page-Related Data 40 includes all information about any specific page of a composition, including the dimensions of the page size, the page margins, a...