ï~~Figure 1. Music descriptors used by the MusicDB. An Event is a singular musical sound, occurring at a specific point in time'. Chords are two or more events, which occur at the same onset time (ED)2, and a VoiceSegment is a horizontal sequence of Events and/or Chords, confined to a single MIDI channel. The decision to keep the voices in polyphonic parts together, where such parts are confined to a single MIDI channel, was a consequence of our desire to preserve, wherever possible, any special characteristics of idiomatic instrumental writing present in the source music. Groups constitute vertical 'slices' of the score, marked by static harmonic structures. In the MusicDB, the smallest Group duration is 1/8th-note. If the harmony remains static, Groups will extend for the entire duration of that harmony, and will always be lengthened in 1/8th-note increments. Groups are identified by an entryPitch vector, which is a sorted set of all pitches in the Group's harmonic structure. Phrases are the largest component objects in the MusicDB, and are generally made from a combination of VoiceSegments and Groups. As the name suggests, a Phrase is a complete, semantically integrated, segment of music. Phrases are determined as sequences of Groups3, and hold references to all VoiceSegments found to intersect their Group sequence. The MusicDB uses Cope's technique of SPEAC analysis [9] to parse the horizontal aspects of a score into VoiceSegments and Phrases. The SPEAC system offers a simple, elegant, and surprisingly powerful method for extracting formal information from symbolic, or 'scored' music4. SPEAC can be used to generate a hierarchical analysis of musical form, making 1 The event's time is taken directly from the MIDI file, and is defined as the event's location in MIDI ticks (i.e., "timestamp"). 2 We adopt the frequently used concept of Entry Delay (ED), to identify the onset time of an event, calculated as the time passed since the previous event's onset. 3 Phrases can also be made from sequences of other Phrases, which will be shown later in the paper. 4 Our implementation of the SPEAC system is well suited to the analysis of symbolic representations of music, not to audio recordings. it easy to look at an analysed work from the level of individual Groups, Phrases, or sequences of Phrases (i.e., 'sections'), and also as a complete formal 'tree.' The hierarchical nature of SPEAC analysis is exploited by the MusicDB's search engine, which will be discussed later. 2.2. Data Structure The three primary objects used in the MusicDB's data structure-VoiceSegments, Groups, and Phrases-are tightly linked by object referencing. VoiceSegments hold a reference to the Phrase in which they originally appeared (their "root" Phrase), and also hold references to the sequence of Groups found to occur over their musical duration. Further, each VoiceSegment stores references to its "preceding" and "target" (following) VoiceSegment. In a similar manner, Groups hold a reference to their root Phrase, references to preceding and target Groups, and a list of VoiceSegments found to be playing during the vertical 'slice' from which the Group was taken. Phrases store references to all VoiceSegments active during their total duration, and the sequence of either Groups (in the case of "foreground" Phrases), or Phrases (in the case of "background" Phrases) from which they are made. Phrases also store references to their parent Phrases, where appropriate. This proliferation of references makes it computationally trivial to locate and extract a great deal of information about the musical form of a piece, given even the smallest aspect of its content. It is this interconnectivity by object referencing that is exploited by the MusicDB during the search process. 2.3. Query System Data is extracted from the MusicDB using a six-part query syntax (Figure 2). Figure 2. Format of a search query. Searches are carried out on VoiceSegment, Group, and Phrase objects, which hold the following fields5: * VoiceSegment: Pitch List, Melodic Interval List, Pitch Contour, Chroma, ED List, ED Contour, Kinesis, Periodicity * Group: Harmonic Interval List, Harmonic Tension, Harmonic Motive * Phrase: Harmonic Tension, Kinesis, Periodicity, Chroma, Pitch Grid The search Type can be chosen from a number of options: 1) PitchList: an ordered list of pitch values 2) MelodicintervalList: an ordered list of interval values 5 All objects also hold a field for their Statistical Representation.
Top of page Top of page