VocalEasel/musicxml11/note.dtd
2011-09-02 02:45:26 +02:00

1027 lines
30 KiB
DTD
Executable File

<!--
MusicXML note.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
-->
<!--
The note component DTD contains the note representations
for MusicXML. This section of the DTD can then be used
within a partwise or timewise MusicXML score. This DTD
contains the note element, all its children elements,
and related entities.
-->
<!-- Entities -->
<!-- Structures -->
<!--
The common note elements between cue/grace notes and
regular (full) notes: pitch, chord, and rest information,
but not duration (cue and grace notes do not have
duration encoded here). Unpitched elements are used for
unpitched percussion, speaking voice, and other musical
elements lacking determinate pitch.
-->
<!ENTITY % full-note "(chord?, (pitch | unpitched | rest))">
<!-- Elements -->
<!--
Notes are the most common type of MusicXML data. MusicXML
keeps the MuseData distinction between elements used for
sound information and element used for notation
information (e.g., tie is used for sound, tied for
notation). Thus grace notes do not have a duration
element. Cue notes have a duration element, as do forward
elements, but no tie elements. Having these two types of
information available can make interchange considerably
easier, as some programs handle one type of information
much more readily than the other.
-->
<!ELEMENT note
(((grace, %full-note;, (tie, tie?)?) |
(cue, %full-note;, duration) |
(%full-note;, duration, (tie, tie?)?)),
instrument?, %editorial-voice;, type?, dot*,
accidental?, time-modification?, stem?, notehead?,
staff?, beam*, notations*, lyric*)>
<!--
The position and printout entities for printing
suggestions are defined in common.dtd.
The dynamics and end-dynamics attributes reflect MIDI's
Note On and Note Off velocities, respectively. They are
expressed in terms of percentages of a standard MIDI
forte volume of 90. The attack and release attributes
are used to alter the staring and stopping time of the
note from when it would otherwise occur based on the
flow of durations - information that is specific to a
performance. They are expressed in terms of divisions,
either positive or negative. If a note is played only
one time through a repeat, the time-only attribute
shows which time to play the note. The pizzicato
attribute is used when just this note is sounded
pizzicato, vs. the pizzicato and arco elements.
-->
<!ATTLIST note
%print-style;
%printout;
dynamics CDATA #IMPLIED
end-dynamics CDATA #IMPLIED
attack CDATA #IMPLIED
release CDATA #IMPLIED
time-only CDATA #IMPLIED
pizzicato %yes-no; #IMPLIED
>
<!--
Pitch is represented as a combination of the step of the
diatonic scale, the chromatic alteration, and the octave.
The step element uses the English letters A through G.
The alter element represents chromatic alteration in
number of semitones (e.g., -1 for flat, 1 for sharp).
Decimal values like 0.5 (quarter tone sharp) may be
used for microtones. The octave element is represented
by the numbers 0 to 9, where 4 indicates the octave
started by middle C.
-->
<!ELEMENT pitch (step, alter?, octave)>
<!ELEMENT step (#PCDATA)>
<!ELEMENT alter (#PCDATA)>
<!ELEMENT octave (#PCDATA)>
<!--
The cue and grace elements indicate the presence of
cue and grace notes. The slash attribute for a grace
note is yes for slashed eighth notes. The other grace
note attributes come from MuseData sound suggestions.
Steal-time-previous indicates the percentage of time
to steal from the previous note for the grace note.
Steal-time-following indicates the percentage of time
to steal from the following note for the grace note.
Make-time indicates to make time, not steal time; the
units are in real-time divisions for the grace note.
-->
<!ELEMENT cue EMPTY>
<!ELEMENT grace EMPTY>
<!ATTLIST grace
steal-time-previous CDATA #IMPLIED
steal-time-following CDATA #IMPLIED
make-time CDATA #IMPLIED
slash %yes-no; #IMPLIED
>
<!--
The chord element indicates that this note is an
additional chord tone with the preceding note. The
duration of this note can be no longer than the preceding
note. In MuseData, a missing duration indicates the same
length as the preceding note, but here we require the
duration for chord records too.
-->
<!ELEMENT chord EMPTY>
<!--
The unpitched element indicates musical elements that are
notated on the staff but lack definite pitch, such as
unpitched percussion and speaking voice. Like notes, it
uses step and octave elements to indicate placement on
the staff, following the current clef. If percussion clef
is used, the display-step and display-octave are
interpreted as if in treble clef, with a G in octave 4
on line 2. If not present, the note is placed on the
middle line of the staff, generally used for one-line
staffs.
-->
<!ELEMENT unpitched ((display-step, display-octave)?)>
<!ELEMENT display-step (#PCDATA)>
<!ELEMENT display-octave (#PCDATA)>
<!--
The rest element indicates notated rests or silences.
Rest are usually empty, but placement on the staff can
be specified using display-step and display-octave
elements.
-->
<!ELEMENT rest ((display-step, display-octave)?)>
<!--
Duration is specified in division units. This is the
intended duration vs. notated duration (for instance,
swing eighths vs. even eighths, or differences in dotted
notes in Baroque-era music). Differences in duration
specific to an interpretation or performance should use
the note element's attack and release attributes. The
tie element indicates that a tie begins or ends with
this note. The tie element indicates sound; the tied
element indicates notation.
-->
<!ELEMENT duration (#PCDATA)>
<!ELEMENT tie EMPTY>
<!ATTLIST tie
type %start-stop; #REQUIRED
>
<!--
If multiple score-instruments are specified on a
score-part, there should be an instrument element for
each note in the part. The id attribute is an IDREF back
to the score-instrument ID.
-->
<!ELEMENT instrument EMPTY>
<!ATTLIST instrument
id IDREF #REQUIRED
>
<!--
Type indicates the graphic note type, Valid values (from
shortest to longest) are 256th, 128th, 64th, 32nd, 16th,
eighth, quarter, half, whole, breve, and long. The size
attribute indicates full-size or cue-size, with full the
default for regular notes and cue the default for cue
and grace notes.
-->
<!ELEMENT type (#PCDATA)>
<!ATTLIST type
size %symbol-size; #IMPLIED
>
<!--
One dot element is used for each dot of prolongation.
-->
<!ELEMENT dot EMPTY>
<!ATTLIST dot
%print-style;
>
<!--
Actual notated accidentals. Valid values include: sharp,
natural, flat, double-sharp, sharp-sharp, flat-flat,
natural-sharp, natural-flat, quarter-flat, quarter-sharp,
three-quarters-flat, and three-quarters-sharp. Editorial
and cautionary indications are indicated by attributes.
Values for these attributes are "no" if not present.
Specific graphic display such as parentheses, brackets,
and size are controlled by the level-display entity
defined in the common.dtd file.
-->
<!ELEMENT accidental (#PCDATA)>
<!ATTLIST accidental
cautionary %yes-no; #IMPLIED
editorial %yes-no; #IMPLIED
%level-display;
%print-style;
>
<!--
Time modification indicates tuplets and other
durational changes. The actual-notes element describes
how many notes are played in the time usually occupied
by the number of normal-notes. If the normal-notes type
is different than the current note type (e.g., a
quarter note within an eighth note triplet), then the
normal-notes type (e.g. eighth) is specified in the
normal-type and normal-dot elements.
-->
<!ELEMENT time-modification
(actual-notes, normal-notes,
(normal-type, normal-dot*)?)>
<!ELEMENT actual-notes (#PCDATA)>
<!ELEMENT normal-notes (#PCDATA)>
<!ELEMENT normal-type (#PCDATA)>
<!ELEMENT normal-dot EMPTY>
<!--
Stems can be down, up, none, or double. For down and up
stems, the position attributes can be used to specify
stem length. The relative values specify the end of the
stem relative to the program default. Default values
specify an absolute end stem position. Negative values of
relative-y that would flip a stem instead of shortening
it are ignored.
-->
<!ELEMENT stem (#PCDATA)>
<!ATTLIST stem
%position;
%color;
>
<!--
The notehead element indicates shapes other than the open
and closed ovals associated with note durations. The element
value can be slash, triangle, diamond, square, cross, x,
circle-x, inverted triangle, arrow down, arrow up, slashed,
back slashed, normal, or none. For shape note music, the
element values do, re, mi, fa, so, la, and ti are used,
corresponding to Aikin's 7-shape system.
The arrow shapes differ from triangle and inverted triangle
by being centered on the stem. Slashed and back slashed
notes include both the normal notehead and a slash. The
triangle shape has the tip of the triangle pointing up;
the inverted triangle shape has the tip of the triangle
pointing down.
For the enclosed shapes, the default is to be hollow for
half notes and longer, and filled otherwise. The filled
attribute can be set to change this if needed.
If the parentheses attribute is set to yes, the notehead
is parenthesized. It is no by default.
-->
<!ELEMENT notehead (#PCDATA)>
<!ATTLIST notehead
filled %yes-no; #IMPLIED
parentheses %yes-no; #IMPLIED
%font;
%color;
>
<!--
Beam types include begin, continue, end, forward hook,
and backward hook. In MuseData, up to six concurrent
beams are available to cover up to 256th notes. This
seems sufficient so we use an enumerated type defined
in common.dtd. The repeater attribute, used for tremolos,
needs to be specified with a "yes" value for each beam
using it. Beams that have a begin value can also have
a fan attribute to indicate accelerandos and ritardandos
using fanned beams. The fan attribute may also be used
with a continue value if the fanning direction changes
on that note. The value is "none" if not specified.
Note that the beam number does not distinguish sets
of beams that overlap, as it does for slur and other
elements. Beaming groups are distinguished by
being in different voices and/or the presence or
absence of grace and cue elements.
-->
<!ELEMENT beam (#PCDATA)>
<!ATTLIST beam
number %beam-level; "1"
repeater %yes-no; #IMPLIED
fan (accel | rit | none) #IMPLIED
%color;
>
<!--
Notations are musical notations, not XML notations.
Multiple notations are allowed in order to represent
multiple editorial levels. The set of notations will be
refined and expanded over time, especially to handle
more instrument-specific technical notations.
-->
<!ELEMENT notations
(%editorial;,
(tied | slur | tuplet | glissando | slide |
ornaments | technical | articulations | dynamics |
fermata | arpeggiate | non-arpeggiate |
accidental-mark | other-notation)*)>
<!ELEMENT tied EMPTY>
<!ATTLIST tied
type %start-stop; #REQUIRED
number %number-level; #IMPLIED
%line-type;
%position;
%placement;
%orientation;
%bezier;
%color;
>
<!--
Slur elements are empty. Most slurs are represented
with two elements: one with a start type, and one
with a stop type. Very complex slurs can add more
elements using a continue type.
-->
<!ELEMENT slur EMPTY>
<!ATTLIST slur
type %start-stop-continue; #REQUIRED
number %number-level; "1"
%line-type;
%position;
%placement;
%orientation;
%bezier;
%color;
>
<!--
A tuplet element is present when a tuplet is to be
displayed graphically, in addition to the sound data
provided by the time-modification elements. The number
attribute is used to distinguish nested tuplets. The
bracket attribute is used to indicate the presence of a
bracket. If unspecified, the results are implementation-
dependent. The line-shape attribute is used to specify
whether the bracket is straight or in the older curved
or slurred style. It is straight by default.
Whereas a time-modification element shows how the
cumulative, sounding effect of tuplets compare to
the written note type, the tuplet element describes
how this is displayed. The tuplet-actual and
tuplet-normal elements provide optional full control
over tuplet specifications. Each allows the number
and note type (including dots) describing a single
tuplet. If any of these elements are absent, their
values are based on the time-modification element.
The show-number attribute is used to display either
the number of actual notes, the number of both actual
and normal notes, or neither. It is actual by default.
The show-type attribute is used to display either the
actual type, both the actual and normal types, or
neither. It is none by default.
-->
<!ELEMENT tuplet (tuplet-actual?, tuplet-normal?)>
<!ATTLIST tuplet
type %start-stop; #REQUIRED
number %number-level; #IMPLIED
bracket %yes-no; #IMPLIED
show-number (actual | both | none) #IMPLIED
show-type (actual | both | none) #IMPLIED
%line-shape;
%position;
%placement;
>
<!ELEMENT tuplet-actual (tuplet-number?,
tuplet-type?, tuplet-dot*)>
<!ELEMENT tuplet-normal (tuplet-number?,
tuplet-type?, tuplet-dot*)>
<!ELEMENT tuplet-number (#PCDATA)>
<!ATTLIST tuplet-number
%font;
%color;
>
<!ELEMENT tuplet-type (#PCDATA)>
<!ATTLIST tuplet-type
%font;
%color;
>
<!ELEMENT tuplet-dot EMPTY>
<!ATTLIST tuplet-dot
%font;
%color;
>
<!--
Glissando and slide elements both indicate rapidly
moving from one pitch to the other so that individual
notes are not discerned. The distinction is similar
to that between NIFF's glissando and portamento
elements. A glissando sounds the half notes in
between the slide and defaults to a wavy line. A
slide is continuous between two notes and defaults
to a solid line. The optional text for a glissando
or slide is printed alongside the line.
-->
<!ELEMENT glissando (#PCDATA)>
<!ATTLIST glissando
type %start-stop; #REQUIRED
number %number-level; "1"
%line-type;
%print-style;
>
<!ELEMENT slide (#PCDATA)>
<!ATTLIST slide
type %start-stop; #REQUIRED
number %number-level; "1"
%line-type;
%print-style;
%bend-sound;
>
<!--
The other-notation element is used to define
any notations not yet in MusicXML. This allows
extended representation, though without application
interoperability. It handles notations where more
specific extension elements such as other-dynamics
and other-technical are not appropriate.
-->
<!ELEMENT other-notation (#PCDATA)>
<!ATTLIST other-notation
type %start-stop; #REQUIRED
number %number-level; "1"
%print-style;
%placement;
>
<!--
Ornaments can be any of several types, followed
optionally by accidentals. The accidental-mark
element's content is represented the same as an
accidental element, but with a different name to
reflect the different musical meaning.
-->
<!ELEMENT ornaments
(((trill-mark | turn | delayed-turn | shake |
wavy-line | mordent | inverted-mordent |
schleifer | tremolo | other-ornament),
accidental-mark*)*)>
<!ELEMENT trill-mark EMPTY>
<!ATTLIST trill-mark
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT turn EMPTY>
<!ATTLIST turn
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT delayed-turn EMPTY>
<!ATTLIST delayed-turn
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT shake EMPTY>
<!ATTLIST shake
%print-style;
%placement;
%trill-sound;
>
<!--
The long attribute for the mordent and inverted-mordent
elements is "no" by default. The mordent element
represents the sign with the vertical line; the
inverted-mordent represent the sign without the
vertical line.
-->
<!ELEMENT mordent EMPTY>
<!ATTLIST mordent
long %yes-no; #IMPLIED
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT inverted-mordent EMPTY>
<!ATTLIST inverted-mordent
long %yes-no; #IMPLIED
%print-style;
%placement;
%trill-sound;
>
<!--
The name for this ornament is based on the
German, to avoid confusion with the more common
slide element defined earlier.
-->
<!ELEMENT schleifer EMPTY>
<!ATTLIST schleifer
%print-style;
%placement;
>
<!--
While using repeater beams is the preferred
method for indicating tremolos, often playback
and display are not well-enough integrated in
an application to make that feasible, especially
for single-note tremolos. The tremolo ornament
can be used to indicate tremolo marks on a single
note. The text of the element indicates the
number of marks, usually 1, 2, or 3.
-->
<!ELEMENT tremolo (#PCDATA)>
<!ATTLIST tremolo
%print-style;
%placement;
>
<!--
The other-ornament element is used to define
any ornaments not yet in MusicXML. This allows
extended representation, though without application
interoperability.
-->
<!ELEMENT other-ornament (#PCDATA)>
<!ATTLIST other-ornament
%print-style;
%placement;
>
<!--
An accidental-mark can be used as a separate
notation or as part of an ornament. When used in
an ornament, position and placement are relative
to the ornament, not relative to the note.
-->
<!ELEMENT accidental-mark (#PCDATA)>
<!ATTLIST accidental-mark
%print-style;
%placement;
>
<!--
Technical indications give performance information for
individual instruments. The current elements are
weighted towards keyboard and string instruments.
Woodwind, brass, and percussion will be treated
more thoroughly in later revisions.
-->
<!ELEMENT technical
((up-bow | down-bow | harmonic | open-string |
thumb-position | fingering | pluck | double-tongue |
triple-tongue | stopped | snap-pizzicato | fret |
string | hammer-on | pull-off | bend | tap | heel |
toe | fingernails | other-technical)*)>
<!--
The up-bow and down-bow elements represent the symbol
that is used both for bowing indications on bowed
instruments, and up-stroke / down-stoke indications
on plucked instruments.
-->
<!ELEMENT up-bow EMPTY>
<!ATTLIST up-bow
%print-style;
%placement;
>
<!ELEMENT down-bow EMPTY>
<!ATTLIST down-bow
%print-style;
%placement;
>
<!--
The harmonic element indicates natural and artificial
harmonics. Natural harmonics usually notate the
base pitch rather than the sounding pitch. Allowing
the type of pitch to be specified, combined with
MusicXML's controls for appearance/playback
differences, allows both the notation and the sound
to be represented. Artificial harmonics can add a
notated touching-pitch; the pitch or fret at which
the string is touched lightly to produce the harmonic.
Artificial pinch harmonics will usually not notate
a touching pitch.
-->
<!ELEMENT harmonic
((natural | artificial)?,
(base-pitch | touching-pitch | sounding-pitch)?)>
<!ATTLIST harmonic
%print-style;
%placement;
>
<!ELEMENT natural EMPTY>
<!ELEMENT artificial EMPTY>
<!ELEMENT base-pitch EMPTY>
<!ELEMENT touching-pitch EMPTY>
<!ELEMENT sounding-pitch EMPTY>
<!ELEMENT open-string EMPTY>
<!ATTLIST open-string
%print-style;
%placement;
>
<!ELEMENT thumb-position EMPTY>
<!ATTLIST thumb-position
%print-style;
%placement;
>
<!--
Pluck is used to specify the plucking fingering
on a fretted instrument, where the fingering
element refers to the fretting fingering.
Typical values are p, i, m, a for pulgar/thumb,
indicio/index, medio/middle, and anular/ring
fingers.
-->
<!ELEMENT pluck EMPTY>
<!ATTLIST pluck
%print-style;
%placement;
>
<!ELEMENT double-tongue EMPTY>
<!ATTLIST double-tongue
%print-style;
%placement;
>
<!ELEMENT triple-tongue EMPTY>
<!ATTLIST triple-tongue
%print-style;
%placement;
>
<!ELEMENT stopped EMPTY>
<!ATTLIST stopped
%print-style;
%placement;
>
<!ELEMENT snap-pizzicato EMPTY>
<!ATTLIST snap-pizzicato
%print-style;
%placement;
>
<!--
The hammer-on and pull-off elements are used in
guitar and fretted instrument notation. Since
a single slur can be marked over many notes,
the hammer-on and pull-off elements are
separate so the individual pair of notes
can be specified. The element content can be
used to specify how the hammer-on or pull-off
should be notated. An empty element leaves
this choice to the program defaults.
-->
<!ELEMENT hammer-on (#PCDATA)>
<!ATTLIST hammer-on
type %start-stop; #REQUIRED
number %number-level; "1"
%print-style;
%placement;
>
<!ELEMENT pull-off (#PCDATA)>
<!ATTLIST pull-off
type %start-stop; #REQUIRED
number %number-level; "1"
%print-style;
%placement;
>
<!--
The bend element is used in guitar and tablature.
The bend-alter element indicates the number of
steps in the bend, similar to the alter element.
As with the alter element, numbers like 0.5 can
be used to indicate microtones. Negative numbers
indicate pre-bends or releases; the pre-bend and
release elements are used to distinguish what
is intended. A with-bar element indicates that
the bend is to be done at the bridge with a
whammy or vibrato bar. The content of the
element indicates how this should be notated.
-->
<!ELEMENT bend
(bend-alter, (pre-bend | release)?, with-bar?)>
<!ATTLIST bend
%print-style;
%bend-sound;
>
<!ELEMENT bend-alter (#PCDATA)>
<!ELEMENT pre-bend EMPTY>
<!ELEMENT release EMPTY>
<!ELEMENT with-bar (#PCDATA)>
<!ATTLIST with-bar
%print-style;
%placement;
>
<!--
The tap element indicates a tap on the fretboard.
The element content allows specification of the
notation; + and T are common choices. If empty,
the program default is used.
-->
<!ELEMENT tap (#PCDATA)>
<!ATTLIST tap
%print-style;
%placement;
>
<!--
Heel and toe are used with organ pedals. The
substitution value is "no" if the attribute is not
present.
-->
<!ELEMENT heel EMPTY>
<!ATTLIST heel
substitution %yes-no; #IMPLIED
%print-style;
%placement;
>
<!ELEMENT toe EMPTY>
<!ATTLIST toe
substitution %yes-no; #IMPLIED
%print-style;
%placement;
>
<!-- Fingernails is used in harp notation. -->
<!ELEMENT fingernails EMPTY>
<!ATTLIST fingernails
%print-style;
%placement;
>
<!--
The other-technical element is used to define
any technical indications not yet in MusicXML.
This allows extended representation, though
without application interoperability.
-->
<!ELEMENT other-technical (#PCDATA)>
<!ATTLIST other-technical
%print-style;
%placement;
>
<!--
Articulations and accents are grouped together here.
-->
<!ELEMENT articulations
((accent | strong-accent | staccato | tenuto |
detached-legato | staccatissimo | spiccato |
scoop | plop | doit | falloff | breath-mark |
caesura | other-articulation)*)>
<!ELEMENT accent EMPTY>
<!ATTLIST accent
%print-style;
%placement;
>
<!ELEMENT strong-accent EMPTY>
<!ATTLIST strong-accent
%print-style;
%placement;
type %up-down; "up"
>
<!ELEMENT staccato EMPTY>
<!ATTLIST staccato
%print-style;
%placement;
>
<!ELEMENT tenuto EMPTY>
<!ATTLIST tenuto
%print-style;
%placement;
>
<!ELEMENT detached-legato EMPTY>
<!ATTLIST detached-legato
%print-style;
%placement;
>
<!ELEMENT staccatissimo EMPTY>
<!ATTLIST staccatissimo
%print-style;
%placement;
>
<!ELEMENT spiccato EMPTY>
<!ATTLIST spiccato
%print-style;
%placement;
>
<!--
The scoop, plop, doit, and falloff elements are
indeterminate slides attached to a single note.
Scoops and plops come before the main note, coming
from below and above the pitch, respectively. Doits
and falloffs come after the main note, going above
and below the pitch, respectively.
-->
<!ELEMENT scoop EMPTY>
<!ATTLIST scoop
%line-shape;
%line-type;
%print-style;
%placement;
>
<!ELEMENT plop EMPTY>
<!ATTLIST plop
%line-shape;
%line-type;
%print-style;
%placement;
>
<!ELEMENT doit EMPTY>
<!ATTLIST doit
%line-shape;
%line-type;
%print-style;
%placement;
>
<!ELEMENT falloff EMPTY>
<!ATTLIST falloff
%line-shape;
%line-type;
%print-style;
%placement;
>
<!ELEMENT breath-mark EMPTY>
<!ATTLIST breath-mark
%print-style;
%placement;
>
<!ELEMENT caesura EMPTY>
<!ATTLIST caesura
%print-style;
%placement;
>
<!--
The other-articulation element is used to define
any articulations not yet in MusicXML. This
allows extended representation, though without
application interoperability.
-->
<!ELEMENT other-articulation (#PCDATA)>
<!ATTLIST other-articulation
%print-style;
%placement;
>
<!--
Dynamics and fermata elements are found in common.dtd
as they apply to more than just note elements.
-->
<!--
Indicates that this note is part of an arpeggiated chord.
The number attribute can be used to distinguish between
two simultaneous chords arpeggiated separately (different
numbers) or together (same number). The up-down attribute
is used if there is an arrow on the arpeggio sign. By
default, arpeggios go from the lowest to highest note.
-->
<!ELEMENT arpeggiate EMPTY>
<!ATTLIST arpeggiate
number %number-level; #IMPLIED
direction %up-down; #IMPLIED
%position;
%placement;
%color;
>
<!--
Indicates that this note is at the top or bottom of
a bracket indicating to not arpeggiate these notes.
Since this does not involve playback, it is only
used on the top or bottom notes, not on each note
as for the arpeggiate element.
-->
<!ELEMENT non-arpeggiate EMPTY>
<!ATTLIST non-arpeggiate
type %top-bottom; #REQUIRED
number %number-level; #IMPLIED
%position;
%placement;
%color;
>
<!--
Text underlays for lyrics, based on Humdrum with support
for other formats. The lyric number indicates multiple
lines, though a name can be used as well (as in Finale's
verse/chorus/section specification). Word extensions are
represented using the extend element. Hyphenation is
indicated by the syllabic element, which can be single,
begin, end, or middle. These represent single-syllable
words, word-beginning syllables, word-ending syllables,
and mid-word syllables. Multiple syllables on a single
note are separated by elision elements. A hyphen in the
text element should only be used for an actual hyphenated
word. Humming and laughing representations are taken from
Humdrum. The end-line and end-paragraph elements come
from RP-017 for Standard MIDI File Lyric meta-events;
they help facilitate lyric display for Karaoke and
similar applications. Language names for text elements
come from ISO 639, with optional country subcodes from
ISO 3166. Justification is center by default; placement is
below by default.
-->
<!ELEMENT lyric
((((syllabic?, text),
(elision, syllabic?, text)*, extend?) |
extend | laughing | humming),
end-line?, end-paragraph?, %editorial;)>
<!ATTLIST lyric
number NMTOKEN #IMPLIED
name CDATA #IMPLIED
%justify;
%position;
%placement;
%color;
>
<!ELEMENT text (#PCDATA)>
<!ATTLIST text
%font;
%color;
xml:lang NMTOKEN #IMPLIED
>
<!ELEMENT syllabic (#PCDATA)>
<!ELEMENT elision EMPTY>
<!ATTLIST elision
%font;
%color;
>
<!ELEMENT extend EMPTY>
<!ATTLIST extend
%font;
%color;
>
<!ELEMENT laughing EMPTY>
<!ELEMENT humming EMPTY>
<!ELEMENT end-line EMPTY>
<!ELEMENT end-paragraph EMPTY>
<!--
Figured bass elements take their position from the first
regular note that follows. Figures are ordered from top to
bottom. A figure-number is a number. Values for prefix and
suffix include the accidental values sharp, flat, natural,
double-sharp, flat-flat, and sharp-sharp. Suffixes include
both symbols that come after the figure number and those
that overstrike the figure number. The suffix value slash
is used for slashed numbers indicating chromatic alteration.
The orientation and display of the slash usually depends on
the figure number. The prefix and suffix elements may
contain additional values for symbols specific to particular
figured bass styles. The value of parentheses is "no" if not
present.
-->
<!ELEMENT figured-bass (figure+, duration?, %editorial;)>
<!ATTLIST figured-bass
%print-style;
%printout;
parentheses %yes-no; #IMPLIED
>
<!ELEMENT figure (prefix?, figure-number?, suffix?, extend?)>
<!ELEMENT prefix (#PCDATA)>
<!ATTLIST prefix
%print-style;
>
<!ELEMENT figure-number (#PCDATA)>
<!ATTLIST figure-number
%print-style;
>
<!ELEMENT suffix (#PCDATA)>
<!ATTLIST suffix
%print-style;
>
<!--
Backup and forward are required to coordinate multiple
voices in one part, including music on multiple staves.
Forward is generally used within voices and staves,
while backup to move between voices and staves. Thus
the backup element does not include voice or staff
elements. Duration values should always be positive,
and should not cross measure boundaries.
-->
<!ELEMENT backup (duration, %editorial;)>
<!ELEMENT forward
(duration, %editorial-voice;, staff?)>