Information Technology Reference
In-Depth Information
Box 1. MX spine
<spine>
<eventid=”timesig _ 0”timing=”0”hpos=”0”/>
<eventid=”keysig _ 0”timing=”0”hpos=”0”/>
<eventid=”clef _ 0”timing=”0”hpos=”0”/>
<eventid=”clef _ 1”timing=”0”hpos=”0”/>
<eventid=”p1 _ 0”timing=”0”hpos=”0”/>
<eventid=”p2 _ 0”timing=”0”hpos=”0”/>
<eventid=”p1 _ 1”timing=”256”hpos=”256”/>
<eventid=”p1 _ 2”timing=”256”hpos=”256”/>
<eventid=”p1 _ 3”timing=”256”hpos=”256”/>
<eventid=”p1 _ 4”timing=”256”hpos=”256”/>
</spine>
more than an ordered list of event identifiers,
whereas the events are later described in Logic
layer as regards their musical meaning. Events
correspond to the music entities of the piece we
want to describe. This definition is intentionally
vague, as our approach is aimed at allowing a
high degree of flexibility. In general, events are all
the notes, rests, time signatures, key signatures,
clefs, and symbols of the score; but the aforemen-
tioned definition allows also to map only the C
notes in the trumpet part or the dotted crotchets
of string instruments. The choice of what should
be referenced by the spine list of events is very
subjective, and depends on the characteristics
of the piece and on the purpose of the descrip-
tion. For instance, in jazz improvisation only the
harmonic grid can be mapped; in this case, spine
contains identifiers for chords instead of including
identifiers for single notes.
In Box 1, the first 10 events of an MX spine
are shown.
A first problem is: how can we put in a one-
dimensional ordered list a two-dimensional se-
quence of events? Notes, rests and other symbols
in a score are disposed according to a vertical jux-
taposition (related to harmony) and to a horizontal
development (corresponding to temporal evolution
of music). Our solution is referring each event in
spine to the previous one, following a path that
scans music in vertical from upper staves to lower
staves; when all the simultaneous events have been
considered, we move to the next event on the right,
and so on. In a certain sense, the list of events
achieved by this process “meanders” through the
score, from top to bottom and from left to right.
Timing and hpos attributes (shown in the example)
are calculated in function of previous events:
timing = “0” means simultaneous occurrence in
time, and hpos = “0” means vertical alignment.
Values are expressed in virtual timing units and
in virtual positioning units, in order to achieve
a high degree of abstraction. In this layer, music
is equally spaced in time and space by applying
a concept similar to beat spacing. The actual oc-
currences of music events inside digital objects
such as scores and clips will be mapped inside
Notational, Performance and Audio layers.
Now we have described what spine contains.
But how does spine provide synchronization to
the whole multilayer structure? Each music event,
later described in any MX layer, is listed inside the
spine and associated to a unique identifier. This
identifier represents the key that other layers use in
order to refer to such particular event. In this way,
all the layers reference (and are referenced by) a
common structure that relates them from a spatial
and temporal point of view. Figure 3 illustrates the
principle spine is based on: by a number of links
between spine and other layers, it is possible to
create a global net of relationships. For the sake of
Search WWH ::




Custom Search