IEEE 1599

Documentation
Alphabetic list of elements (v1.0)

Key_signature and sub-elements

<!ELEMENT key_signature (sharp_num | flat_num) >
<!ATTLIST key_signature
   %spine_ref;>

<!ELEMENT sharp_num EMPTY>
<!ATTLIST sharp_num
   number (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED>

<!ELEMENT flat_num EMPTY>
<!ATTLIST flat_num
   number (0 | 1 | 2 | 3 | 4 | 5 | 6 | 7) #REQUIRED>

<!ELEMENT custom_key_signature (key_accidental)+>
<!ATTLIST custom_key_signature
   %spine_ref;>

<!ELEMENT key_accidental EMPTY>
<!ATTLIST key_accidental
   step (A | B | C | D | E | F | G) #REQUIRED
   accidental %accidental; "none">

Element key_signature and element custom_key_signature represent two different ways to encode key signatures.
The former is used for standard cases: it is sufficient to specify if the key signature uses sharp or flat symbols (sub-elements sharp_num and flat_num respectively) and their number (mandatory attribute number). When a key-signature change is specified, only the new accidentals are encoded, and not the number of natural symbols to neutralize the previous accidentals. An exception arises when the new key signature is C major: in this case, it is possible to employ both number="0" for sharp_num sub-element and number="0" for flat_num.
The latter method allows the encoding of non-traditional key signatures through a number of key_accidental sub-elements. The attributes of key_accidental encode the step to be inflected (attribute step) and the kind of accidental to be used for that step (attribute accidental).

Examples

The example below illustrates the use of key-signature changes referred to a single staff, namely "staff_01". Key signatures occur in correspondence with events "ts1", "ts2" and “ts3"

key_signature

<staff_list>
   <staff id="staff_01" line_number="5">
      <key_signature event_ref="ts1">
         <flat_num number="3"/>
      </key_signature>
      <key_signature event_ref="ts2">
         <sharp_num number="2"/>
      </key_signature>
      <key_signature event_ref="ts3">
         <sharp_num number="0"/>
      </key_signature>
</staff>

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
E-mail: goffredo.haus@unimi.it
  Luca A. Ludovico, PAR1599 vice-chair
Phone: +39 02 50316 382
E-mail: luca.ludovico@unimi.it
  Laboratory
Phone: +39 02 50316 382
E-mail: lim@di.unimi.it