ï~~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.