mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 19:23:59 +00:00
617 lines
20 KiB
DTD
Executable File
617 lines
20 KiB
DTD
Executable File
<!--
|
|
MusicXML direction.dtd
|
|
|
|
Version 1.1 - 20 May 2005
|
|
|
|
Copyright © 2004-2005 Recordare LLC.
|
|
http://www.recordare.com/
|
|
|
|
This MusicXML work is being provided by the copyright
|
|
holder under the MusicXML Document Type Definition
|
|
Public License Version 1.02, available from:
|
|
|
|
http://www.recordare.com/dtds/license.html
|
|
-->
|
|
|
|
<!--
|
|
This direction component DTD contains the direction
|
|
element and its children. Directions are not note-
|
|
specific, and therefore might attach to a part or the
|
|
overall score. Hence its separate location in this DTD
|
|
to allow multiple compositions of these basic elements.
|
|
|
|
Harmony indications and general print and sound
|
|
suggestions are likewise not necessarily attached to
|
|
particular note elements, and are included here as well.
|
|
-->
|
|
|
|
<!-- Elements -->
|
|
|
|
<!--
|
|
A direction is a musical indication that is not attached
|
|
to a specific note. Two or more may be combined to
|
|
indicate starts and stops of wedges, dashes, etc.
|
|
-->
|
|
<!ELEMENT direction (direction-type+, offset?,
|
|
%editorial-voice;, staff?, sound?)>
|
|
<!ATTLIST direction
|
|
%placement;
|
|
>
|
|
|
|
<!--
|
|
Textual direction types may have more than 1 component
|
|
due to multiple font numbers.
|
|
-->
|
|
<!ELEMENT direction-type (rehearsal+ | segno+ | words+ |
|
|
coda+ | wedge | dynamics+ | dashes | bracket | pedal |
|
|
metronome | octave-shift | harp-pedals | damp |
|
|
damp-all | eyeglasses | scordatura | other-direction)>
|
|
|
|
<!--
|
|
Print style entities apply to the individual
|
|
direction-type, not to the overall direction.
|
|
-->
|
|
|
|
<!--
|
|
Language is Italian ("it") by default. Enclosure is
|
|
square by default.
|
|
-->
|
|
<!ELEMENT rehearsal (#PCDATA)>
|
|
<!ATTLIST rehearsal
|
|
%print-style;
|
|
xml:lang NMTOKEN #IMPLIED
|
|
enclosure (square | circle | none) #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT words (#PCDATA)>
|
|
<!--
|
|
Left justification is assumed if not specified.
|
|
Language is Italian ("it") by default. Enclosure
|
|
is none by default.
|
|
-->
|
|
<!ATTLIST words
|
|
%justify;
|
|
%halign;
|
|
%valign;
|
|
%print-style;
|
|
xml:lang NMTOKEN #IMPLIED
|
|
enclosure (rectangle | oval | none) #IMPLIED
|
|
>
|
|
|
|
<!--
|
|
Wedge spread is measured in tenths of staff line space.
|
|
The type is crescendo for the start of a wedge that is
|
|
closed at the left side, and diminuendo for the start
|
|
of a wedge that is closed on the right side. Spread
|
|
values at the start of a crescendo wedge or end of a
|
|
diminuendo wedge are ignored.
|
|
-->
|
|
<!ELEMENT wedge EMPTY>
|
|
<!ATTLIST wedge
|
|
type (crescendo | diminuendo | stop) #REQUIRED
|
|
number %number-level; #IMPLIED
|
|
spread CDATA #IMPLIED
|
|
%position;
|
|
%color;
|
|
>
|
|
|
|
<!--
|
|
Dashes, used for instance with cresc. and dim. marks.
|
|
-->
|
|
<!ELEMENT dashes EMPTY>
|
|
<!ATTLIST dashes
|
|
type %start-stop; #REQUIRED
|
|
number %number-level; #IMPLIED
|
|
%position;
|
|
%color;
|
|
>
|
|
|
|
<!--
|
|
Brackets are combined with words in a variety of
|
|
modern directions. The line-end attribute specifies
|
|
if there is a jog up or down (or both), an arrow,
|
|
or nothing at the start or end of the bracket. If
|
|
the line-end is up or down, the length of the jog
|
|
can be specified using the end-length attribute.
|
|
The line-type is solid by default.
|
|
-->
|
|
<!ELEMENT bracket EMPTY>
|
|
<!ATTLIST bracket
|
|
type %start-stop; #REQUIRED
|
|
number %number-level; #IMPLIED
|
|
line-end (up | down | both | arrow | none) #REQUIRED
|
|
end-length %tenths; #IMPLIED
|
|
%line-type;
|
|
%position;
|
|
%color;
|
|
>
|
|
|
|
<!--
|
|
Piano pedal marks. The line attribute is yes if pedal
|
|
lines are used, no if Ped and * signs are used. The
|
|
change type is used with line set to yes.
|
|
-->
|
|
<!ELEMENT pedal EMPTY>
|
|
<!ATTLIST pedal
|
|
type (start | stop | change) #REQUIRED
|
|
line %yes-no; #IMPLIED
|
|
%print-style;
|
|
>
|
|
|
|
<!--
|
|
Standard metronome marks. The beat-unit values are the
|
|
same as for a type element, and the beat-unit-dot works
|
|
like the dot element. The per-minute element can
|
|
be a number, or a text description including numbers.
|
|
The parentheses attribute indicates whether or not
|
|
to put the metronome mark in parentheses; its value
|
|
is no if not specified.
|
|
-->
|
|
<!ELEMENT metronome (beat-unit, beat-unit-dot*,
|
|
(per-minute | (beat-unit, beat-unit-dot*)))>
|
|
<!ATTLIST metronome
|
|
%print-style;
|
|
parentheses %yes-no; #IMPLIED
|
|
>
|
|
<!ELEMENT beat-unit (#PCDATA)>
|
|
<!ELEMENT beat-unit-dot EMPTY>
|
|
<!ELEMENT per-minute (#PCDATA)>
|
|
|
|
<!--
|
|
Octave shifts indicate where notes are shifted up or down
|
|
from their true pitched values because of printing
|
|
difficulty. Thus a treble clef line noted with 8va will
|
|
be indicated with an octave-shift down from the pitch
|
|
data indicated in the notes. A size of 8 indicates one
|
|
octave; a size of 15 indicates two octaves.
|
|
-->
|
|
<!ELEMENT octave-shift EMPTY>
|
|
<!ATTLIST octave-shift
|
|
type (up | down | stop) #REQUIRED
|
|
number %number-level; #IMPLIED
|
|
size CDATA "8"
|
|
%print-style;
|
|
>
|
|
|
|
<!--
|
|
The harp-pedals element is used to create harp
|
|
pedal diagrams. The pedal-step and pedal-alter
|
|
elements use the same values as the step and alter
|
|
elements. For easiest reading, the pedal-tuning
|
|
elements show follow standard harp pedal order,
|
|
with pedal-step values of D, C, B, E, F, G, and A.
|
|
-->
|
|
<!ELEMENT harp-pedals (pedal-tuning)+>
|
|
<!ATTLIST harp-pedals
|
|
%print-style;
|
|
>
|
|
<!ELEMENT pedal-tuning (pedal-step, pedal-alter)>
|
|
<!ELEMENT pedal-step (#PCDATA)>
|
|
<!ELEMENT pedal-alter (#PCDATA)>
|
|
|
|
<!-- Harp damping marks -->
|
|
<!ELEMENT damp EMPTY>
|
|
<!ATTLIST damp
|
|
%print-style;
|
|
>
|
|
<!ELEMENT damp-all EMPTY>
|
|
<!ATTLIST damp-all
|
|
%print-style;
|
|
>
|
|
|
|
<!-- Eyeglasses, common in commercial music. -->
|
|
<!ELEMENT eyeglasses EMPTY>
|
|
<!ATTLIST eyeglasses
|
|
%print-style;
|
|
>
|
|
|
|
<!--
|
|
Scordatura string tunings are represented by a series
|
|
of accord elements. The tuning-step, tuning-alter,
|
|
and tuning-octave elements are also used with the
|
|
staff-tuning element, and are defined in the common.dtd
|
|
file. Strings are numbered from high to low.
|
|
-->
|
|
<!ELEMENT scordatura (accord+)>
|
|
<!ELEMENT accord
|
|
(tuning-step, tuning-alter?, tuning-octave)>
|
|
<!ATTLIST accord
|
|
string CDATA #REQUIRED
|
|
>
|
|
|
|
<!--
|
|
The other-direction element is used to define
|
|
any direction symbols not yet in the current version
|
|
of MusicXML. This allows extended representation,
|
|
though without application interoperability.
|
|
-->
|
|
<!ELEMENT other-direction (#PCDATA)>
|
|
<!ATTLIST other-direction
|
|
%print-style;
|
|
>
|
|
|
|
<!--
|
|
An offset is represented in terms of divisions, and
|
|
indicates where the direction will appear relative
|
|
to the current musical location. This is for visual
|
|
appearance only; any sound associated with the
|
|
direction takes effect at the current location.
|
|
If an element within a direction includes a default-x
|
|
attribute, the offset value will be ignored for that
|
|
element.
|
|
-->
|
|
<!ELEMENT offset (#PCDATA)>
|
|
|
|
<!-- Harmony -->
|
|
<!--
|
|
The harmony elements are based on Humdrum's **harm
|
|
encoding, extended to support chord symbols in popular
|
|
music as well as functional harmony analysis in classical
|
|
music.
|
|
-->
|
|
<!--
|
|
A harmony element can contain many stacked chords (e.g.
|
|
V of II). A sequence of harmony-chord entities is used
|
|
for this type of secondary function, where V of II would
|
|
be represented by a harmony-chord with a V function
|
|
followed by a harmony-chord with a II function.
|
|
-->
|
|
<!ENTITY % harmony-chord "((root | function), kind,
|
|
inversion?, bass?, degree*)">
|
|
|
|
<!--
|
|
A root is a pitch name like C, D, E, where a function is
|
|
an indication like I, II, III. Root is generally used
|
|
with pop chord symbols, function with classical
|
|
functional harmony. It is an either/or choice to avoid
|
|
data inconsistency. Function requires that the key be
|
|
specified in the encoding. The root element has a
|
|
root-step and optional root-alter similar to the step
|
|
and alter elements in a pitch, but renamed to
|
|
distinguish the different musical meanings.
|
|
-->
|
|
<!ELEMENT root (root-step, root-alter?)>
|
|
<!ELEMENT root-step (#PCDATA)>
|
|
<!ELEMENT root-alter (#PCDATA)>
|
|
<!ELEMENT function (#PCDATA)>
|
|
|
|
<!--
|
|
Kind indicates the type of chord. Degree elements
|
|
can then add, subtract, or alter from these
|
|
starting points. Values include:
|
|
|
|
Triads:
|
|
major (major third, perfect fifth)
|
|
minor (minor third, perfect fifth)
|
|
augmented (major third, augmented fifth)
|
|
diminished (minor third, diminished fifth)
|
|
Sevenths:
|
|
dominant (major triad, minor seventh)
|
|
major-seventh (major triad, major seventh)
|
|
minor-seventh (minor triad, minor seventh)
|
|
diminished-seventh
|
|
(diminished triad, diminished seventh)
|
|
augmented-seventh
|
|
(augmented triad, minor seventh)
|
|
half-diminished
|
|
(diminished triad, minor seventh)
|
|
major-minor
|
|
(minor triad, major seventh)
|
|
Sixths:
|
|
major-sixth (major triad, added sixth)
|
|
minor-sixth (minor triad, added sixth)
|
|
Ninths:
|
|
dominant-ninth (dominant-seventh, major ninth)
|
|
major-ninth (major-seventh, major ninth)
|
|
minor-ninth (minor-seventh, minor ninth)
|
|
11ths (usually as the basis for alteration):
|
|
dominant-11th (dominant-ninth, perfect 11th)
|
|
major-11th (major-ninth, perfect 11th)
|
|
minor-11th (minor-ninth, perfect 11th)
|
|
13ths (usually as the basis for alteration):
|
|
dominant-13th (dominant-11th, major 13th)
|
|
major-13th (major-11th, major 13th)
|
|
minor-13th (minor-11th, major 13th)
|
|
Suspended:
|
|
suspended-second (major second, perfect fifth)
|
|
suspended-fourth (perfect fourth, perfect fifth)
|
|
Functional sixths:
|
|
Neapolitan
|
|
Italian
|
|
French
|
|
German
|
|
Other:
|
|
pedal (pedal-point bass)
|
|
Tristan
|
|
|
|
The "other" kind is used when the harmony is entirely
|
|
composed of add elements. The "none" kind is used to
|
|
explicitly encode absence of chords or functional
|
|
harmony.
|
|
|
|
The attributes are used to indicate the formatting
|
|
of the symbol. Since the kind element is the constant
|
|
in all the harmony-chord entities that can make up
|
|
a polychord, many formatting attributes are here.
|
|
|
|
The use-symbols attribute is yes if the kind should be
|
|
represented when possible with harmony symbols rather
|
|
than letters and numbers. These symbols include:
|
|
|
|
major: a triangle, like Unicode 25B3
|
|
minor: -, like Unicode 002D
|
|
augmented: +, like Unicode 002B
|
|
diminished: °, like Unicode 00B0
|
|
half-diminished: ø, like Unicode 00F8
|
|
|
|
The text attribute describes how the kind should be
|
|
spelled if not using symbols; it is ignored if use-symbols
|
|
is yes. The stack-degrees attribute is yes if the degree
|
|
elements should be stacked above each other. The
|
|
parentheses-degrees attribute is yes if all the degrees
|
|
should be in parentheses. The bracket-degrees attribute
|
|
is yes if all the degrees should be in a bracket. If not
|
|
specified, these values are implementation-specific.
|
|
-->
|
|
<!ELEMENT kind (#PCDATA)>
|
|
<!ATTLIST kind
|
|
use-symbols %yes-no; #IMPLIED
|
|
text CDATA #IMPLIED
|
|
stack-degrees %yes-no; #IMPLIED
|
|
parentheses-degrees %yes-no; #IMPLIED
|
|
bracket-degrees %yes-no; #IMPLIED
|
|
>
|
|
|
|
<!--
|
|
Inversion is a number indicating which inversion is used:
|
|
0 for root position, 1 for first inversion, etc.
|
|
-->
|
|
<!ELEMENT inversion (#PCDATA)>
|
|
|
|
<!--
|
|
Bass is used to indicate a bass note in popular music
|
|
chord symbols, e.g. G/C. It is generally not used in
|
|
functional harmony, as inversion is generally not used
|
|
in pop chord symbols. As with root, it is divided into
|
|
step and alter elements, similar to pitches.
|
|
-->
|
|
<!ELEMENT bass (bass-step, bass-alter?)>
|
|
<!ELEMENT bass-step (#PCDATA)>
|
|
<!ELEMENT bass-alter (#PCDATA)>
|
|
|
|
<!--
|
|
The degree element is used to add, alter, or subtract
|
|
individual notes in the chord. The degree-value element
|
|
is a number indicating the degree of the chord (1 for
|
|
the root, 3 for third, etc). The degree-alter element
|
|
is like the alter element in notes: 1 for sharp, -1 for
|
|
flat, etc. The degree-type element can be add, alter, or
|
|
subtract. If the degree-type is alter or subtract, the
|
|
degree-alter is relative to the degree already in the
|
|
chord based on its kind element. If the degree-type is
|
|
add, the degree-alter is relative to a dominant chord
|
|
(major and perfect intervals except for a minor
|
|
seventh). The print-object attribute can be used to
|
|
keep the degree from printing separately when it has
|
|
already taken into account in the text attribute of
|
|
the kind element.
|
|
|
|
A harmony of kind "other" can be spelled explicitly by
|
|
using a series of degree elements together with a root.
|
|
-->
|
|
<!ELEMENT degree (degree-value, degree-alter, degree-type)>
|
|
<!ATTLIST degree
|
|
%print-object;
|
|
>
|
|
<!ELEMENT degree-value (#PCDATA)>
|
|
<!ELEMENT degree-alter (#PCDATA)>
|
|
<!ELEMENT degree-type (#PCDATA)>
|
|
|
|
<!--
|
|
The frame element represents a frame or fretboard
|
|
diagram used together with a chord symbol. The
|
|
representation is based on the NIFF guitar grid
|
|
with additional information. The frame-strings and
|
|
frame-frets elements give the overall size of the
|
|
frame in vertical lines (strings) and horizontal
|
|
spaces (frets). The first-fret indicates which fret
|
|
is shown in the top space of the frame; it is fret 1
|
|
if the element is not present. The frame-note element
|
|
represents each note included in the frame. The
|
|
definitions for string, fret, and fingering are found
|
|
in common.dtd.
|
|
-->
|
|
<!ELEMENT frame
|
|
(frame-strings, frame-frets, first-fret?, frame-note+)>
|
|
<!ATTLIST frame
|
|
%position;
|
|
%color;
|
|
height %tenths; #IMPLIED
|
|
width %tenths; #IMPLIED
|
|
>
|
|
<!ELEMENT frame-strings (#PCDATA)>
|
|
<!ELEMENT frame-frets (#PCDATA)>
|
|
<!ELEMENT first-fret (#PCDATA)>
|
|
<!ELEMENT frame-note (string, fret, fingering?, barre?)>
|
|
|
|
<!--
|
|
The barre element indicates placing a finger over
|
|
multiple strings on a single fret. The type is "start"
|
|
for the lowest pitched string (e.g., the string with
|
|
the highest MusicXML number) and is "stop" for the
|
|
highest pitched string.
|
|
-->
|
|
<!ELEMENT barre EMPTY>
|
|
<!ATTLIST barre
|
|
type %start-stop; #REQUIRED
|
|
%color;
|
|
>
|
|
|
|
<!--
|
|
If there are alternate harmonies possible, this can be
|
|
specified using multiple harmony elements differentiated
|
|
by type. Explicit harmonies have all note present in the
|
|
music; implied have some notes missing but implied;
|
|
alternate represents alternate analyses.
|
|
|
|
The harmony object may be used for analysis or for
|
|
chord symbols. The print-object attribute controls
|
|
whether or not anything is printed due to the harmony
|
|
element. The print-frame attribute controls printing
|
|
of a frame or fretboard diagram.
|
|
-->
|
|
<!ELEMENT harmony ((%harmony-chord;)+, frame?,
|
|
offset?, %editorial;, staff?)>
|
|
<!ATTLIST harmony
|
|
type (explicit | implied | alternate) #IMPLIED
|
|
%print-object;
|
|
print-frame %yes-no; #IMPLIED
|
|
%print-style;
|
|
%placement;
|
|
>
|
|
|
|
<!--
|
|
The grouping element is used for musical analysis. When
|
|
the element type is "start", it usually contains one or
|
|
more feature elements. The number attribute is used for
|
|
distinguishing between overlapping and hierarchical
|
|
groupings. The member-of attribute allows for easy
|
|
distinguishing of what grouping elements are in what
|
|
hierarchy. Feature elements contained within a "stop"
|
|
type of grouping may be ignored.
|
|
|
|
This element is flexible to allow for non-standard
|
|
analyses. Future versions of MusicXML may add elements
|
|
that can represent more standardized categories of
|
|
analysis data, allowing for easier data sharing.
|
|
-->
|
|
<!ELEMENT grouping ((feature)*)>
|
|
<!ATTLIST grouping
|
|
type %start-stop; #REQUIRED
|
|
number CDATA "1"
|
|
member-of CDATA #IMPLIED
|
|
>
|
|
<!ELEMENT feature (#PCDATA)>
|
|
<!ATTLIST feature
|
|
type CDATA #IMPLIED
|
|
>
|
|
|
|
<!--
|
|
The print element contains general printing parameters,
|
|
including the layout elements defined in layout.dtd.
|
|
|
|
The new-system and new-page attributes indicate whether
|
|
to force a system or page break, or to force the current
|
|
music onto the same system or page as the preceding
|
|
music. Normally this is the first music data within a
|
|
measure. If used in multi-part music, they should be
|
|
placed in the same positions within each part, or the
|
|
results are undefined. The page-number attribute sets
|
|
the number of a new page; it is ignored if new-page
|
|
is not "yes".
|
|
|
|
Staff spacing between multiple staves is measured in
|
|
tenths of staff lines (e.g. 100 = 10 staff lines).
|
|
This is deprecated in MusicXML 1.1; the staff-layout
|
|
element should be used instead. If both are present,
|
|
the staff-layout values take priority.
|
|
|
|
Layout elements in a print statement only apply to
|
|
the current page, system, staff, or measure. Music
|
|
that follows continues to take the default values
|
|
from the layout included in the <defaults> element.
|
|
-->
|
|
<!ELEMENT print (page-layout?, system-layout?,
|
|
staff-layout*, measure-layout?)>
|
|
<!ATTLIST print
|
|
staff-spacing %tenths; #IMPLIED
|
|
new-system %yes-no; #IMPLIED
|
|
new-page %yes-no; #IMPLIED
|
|
page-number CDATA #IMPLIED
|
|
>
|
|
|
|
<!--
|
|
The sound element contains general playback parameters.
|
|
They can stand alone within a part/measure, or be a
|
|
component element within a direction.
|
|
|
|
Tempo is expressed in quarter notes per minute. If 0,
|
|
the sound-generating program must prompt the user at the
|
|
time of compiling a sound (MIDI) file.
|
|
|
|
Dynamics (or MIDI velocity) are expressed as a percentage
|
|
of the default forte value (90 for MIDI).
|
|
|
|
Dacapo indicates to go back to the beginning of the
|
|
movement. When used it always has the value "yes".
|
|
|
|
Segno and dalsegno are used for backwards jumps to a
|
|
segno sign; coda and tocoda are used for forward jumps
|
|
to a coda sign. If there are multiple jumps, the value
|
|
of these parameters can be used to name and distinguish
|
|
them. If segno or coda is used, the divisions attribute
|
|
can also be used to indicate the number of divisions
|
|
per quarter note. Otherwise sound and MIDI generating
|
|
programs may have to recompute this.
|
|
|
|
A dalsegno or dacapo attribute indicates that the
|
|
jump should occur the first time through; a tocoda
|
|
attribute indicates the jump should occur the second
|
|
time through.
|
|
|
|
Forward-repeat is used when a forward repeat sign is
|
|
implied, and usually follows a bar line. When used it
|
|
always has the value of "yes".
|
|
|
|
The fine attribute follows the final note or rest in a
|
|
movement with a da capo direction. If numeric, the value
|
|
represents the actual duration of the final note or rest,
|
|
which can be ambiguous in written notation and different
|
|
among parts and voices. The value may also be "yes" to
|
|
indicate no change to the final duration.
|
|
|
|
If the sound element applies only one time through a
|
|
repeat, the time-only attribute indicates which time
|
|
to apply the sound element.
|
|
|
|
Pizzicato in a sound element effects all following notes.
|
|
Yes indicates pizzicato, no indicates arco.
|
|
|
|
Pan and elevation allow placing of sound in a 3-D space
|
|
relative to the listener. Both are expressed in degrees
|
|
ranging from -180 to 180. For pan, 0 is straight ahead,
|
|
-90 is hard left, 90 is hard right, and -180 and 180
|
|
are directly behind the listener. For elevation, 0 is
|
|
level with the listener, 90 is directly above, and -90
|
|
is directly below.
|
|
|
|
The damper-pedal, soft-pedal, and sostenuto-pedal
|
|
attributes effect playback of the three common piano
|
|
pedals and their MIDI controller equivalents. Yes
|
|
indicates the pedal is depressed; no indicates the
|
|
pedal is released.
|
|
|
|
MIDI instruments are changed using the midi-instrument
|
|
element defined in common.dtd.
|
|
-->
|
|
<!ELEMENT sound (midi-instrument*)>
|
|
<!ATTLIST sound
|
|
tempo CDATA #IMPLIED
|
|
dynamics CDATA #IMPLIED
|
|
dacapo %yes-no; #IMPLIED
|
|
segno CDATA #IMPLIED
|
|
dalsegno CDATA #IMPLIED
|
|
coda CDATA #IMPLIED
|
|
tocoda CDATA #IMPLIED
|
|
divisions CDATA #IMPLIED
|
|
forward-repeat %yes-no; #IMPLIED
|
|
fine CDATA #IMPLIED
|
|
time-only CDATA #IMPLIED
|
|
pizzicato %yes-no; #IMPLIED
|
|
pan CDATA #IMPLIED
|
|
elevation CDATA #IMPLIED
|
|
damper-pedal %yes-no; #IMPLIED
|
|
soft-pedal %yes-no; #IMPLIED
|
|
sostenuto-pedal %yes-no; #IMPLIED
|
|
>
|