IEEE 1599

Alphabetic list of elements (v1.0)


<!ATTLIST event
   timing CDATA "null"
   hpos CDATA "null">

Element event is one of the most important ones of the whole DTD. It defines and identifies an information unit that is referred to by other parts of the encoding. In a normal case, all chords and rests can be considered events and marked by an id through element event. However, the concept of music event is flexible.
First, even with standard CWN, not all events have to be described through spine events, hence, it is entirely possible to list the notes belonging to a part/voice only, or the crotchets only, or the tenor's superacute notes.
Second, aggregations of "atomic" music events can also be considered music events in some cases: for instance, in jazz improvisation usually only the harmonic grid is known, so the occurrence of a new chord could be considered the most meaningful music event, rather than the occurrence of single notes. In general, chords, measures, phrases etc. can be defined as music events (and marked through an aggregate id) as necessary.
Finally, CWN is not required at all for IEEE 1599 validity, so that IEEE 1599 supports also non-traditional scores. In this case, the description provided in graphical or structural form can be linked to spine, no matter what definition is given to the concept of music event.


  • id, which provides a unique identifier within an IEEE 1599 file. Even if there is no convention about id naming in IEEE 1599, because of its importance in IEEE 1599 encoding the value of this attribute should reflect music semantics. For instance, if a monody is being encoded, names such as "e1", "e2", etc. are appropriate for music events; if many single-voice parts are present, names could be chosen such as "p1_1", "p1_2", etc. and "p2_1", "p2_2", etc.; finally, when the complete hierarchy parts/voices is used, suitable names for music events could be "p1_v1_1", "p1_v2_1", etc.
  • timing, which represents the temporal coordinate of the event: it describes the time offset from the occurrence of the preceding event. Time is expressed in Virtual Time Units (VTU), as described in SMDL specifications. When no value can be attributed to a music event, string "null" can be employed. The measurement unit can be fixed according to the user's need, but all the numeric values must be integer. In general, the minimum integer value should be attributed to the smaller note length. This is a recommended choice, however it is not mandatory. For instance, assume a piece in wich eights, sixteenths and thirty-seconds are present: In this case, the unit can be employed to represent thity-seconds, so that all the other lengths are integer multiples. An exception arises when the minimum length is dotted (in the previous example, dotted thirty-seconds): in this case, the unit should be employed to represent the halved length (sixty-fourths). Finally, when there are irregular groups, all the values for timing should be rearranged in order to allow the representation of all lengths through integer values. Since "0" means simultaneity in our relative system, each event is simultaneous to all the following ones having timing = "0"; besides, if the event itself presents timing = "0", it is also simultaneous to all the preceding events up to the first event with a non-zero value, that event itself included.
  • hpos, which refers to a virtual horizontal dimension. The value is expressed in a relative spatial unit called Virtual PiXels (VPX), which provides reference points for the vertical alignment of different symbols in different voices, parts or staves. The score is considered in this case from an abstract point of view (real scores will be treated in Notational layer). As a consequence, staff systems never generate new lines: there is only one staff system embracing all the symbols on a single line, so that only the horizontal axis is used in establishing vertical alignment. The criteria to define the measurement unit are similar to those employed for timing. If music is equally spaced in regard torhythmic values (meaning that e.g. a double value requires a double space on the pentagram), timing and hpos can take the same values. Once again, "null" is supported for events that have no spatial coordinates, and "0" means vertical alignment.
Laboratorio di Informatica Musicale
Dipartimento di Informatica
Università degli Studi di Milano
Via G. Celoria, 18 - 20133 Milano, ITALY
 Google Maps
Goffredo Haus, PAR1599 chair
Phone: +39 02 50316 222
  Luca A. Ludovico, PAR1599 vice-chair
Phone: +39 02 50316 382
Phone: +39 02 50316 382