/
note.mod
executable file
·1441 lines (1332 loc) · 44.4 KB
/
note.mod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!--
MusicXML note.mod module
Version 3.1 Draft
Copyright © 2004-2017 the Contributors to the MusicXML
Specification, published by the W3C Music Notation Community
Group under the W3C Community Contributor License Agreement
(CLA):
https://www.w3.org/community/about/agreements/cla/
A human-readable summary is available:
https://www.w3.org/community/about/agreements/cla-deed/
-->
<!--
The note DTD module contains the note representations for
the MusicXML format. It 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. The
MusicXML format keeps the MuseData distinction between
elements used for sound information and elements 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;))) |
(cue, %full-note;, duration) |
(%full-note;, duration, (tie, tie?)?)),
instrument?, %editorial-voice;, type?, dot*,
accidental?, time-modification?, stem?, notehead?,
notehead-text?, staff?, beam*, notations*, lyric*, play?)>
<!--
The position and printout entities for printing suggestions
are defined in the common.mod file.
The dynamics and end-dynamics attributes correspond to
MIDI 1.0's Note On and Note Off velocities, respectively.
They are expressed in terms of percentages of the default
forte value (90 for MIDI 1.0).
The attack and release attributes are used to alter the
starting 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. A note that
starts a tie should not have a release attribute, and a note
that stops a tie should not have an attack attribute. The
attack and release attributes are independent of each other.
The attack attribute only changes the starting time of a
note, and the release attribute only changes the stopping
time of a note.
If a note is played only particular times through a repeat,
the time-only entity shows which times to play the note.
The pizzicato attribute is used when just this note is
sounded pizzicato, vs. the pizzicato element which changes
overall playback between pizzicato and arco.
-->
<!ATTLIST note
%print-style;
%printout;
dynamics CDATA #IMPLIED
end-dynamics CDATA #IMPLIED
attack CDATA #IMPLIED
release CDATA #IMPLIED
%time-only;
pizzicato %yes-no; #IMPLIED
%optional-unique-id;
>
<!--
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) are
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. The steal-time-previous
attribute indicates the percentage of time to steal from the
previous note for the grace note. The steal-time-following
attribute indicates the percentage of time to steal from the
following note for the grace note, as for appoggiaturas. The
make-time attribute 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 previous
note, but the MusicXML format requires a duration for chord
notes 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 elements 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 a one-line staff.
-->
<!ELEMENT unpitched ((display-step, display-octave)?)>
<!ELEMENT display-step (#PCDATA)>
<!ELEMENT display-octave (#PCDATA)>
<!--
The rest element indicates notated rests or silences. Rest
elements are usually empty, but placement on the staff can
be specified using display-step and display-octave
elements. If the measure attribute is set to yes, it
indicates this is a complete measure rest.
-->
<!ELEMENT rest ((display-step, display-octave)?)>
<!ATTLIST rest
measure %yes-no; #IMPLIED
>
<!--
Duration is a positive number 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. If the tie element applies only particular times
through a repeat, the time-only attribute indicates which
times to apply it. The tie element indicates sound; the tied
element indicates notation.
-->
<!ELEMENT duration (#PCDATA)>
<!ELEMENT tie EMPTY>
<!ATTLIST tie
type %start-stop; #REQUIRED
%time-only;
>
<!--
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 1024th, 512th, 256th, 128th,
64th, 32nd, 16th, eighth, quarter, half, whole, breve,
long, and maxima. The size attribute indicates full, cue,
grace-cue, or large size. The default is full for regular
notes, grace-cue for notes that contain both grace and cue
elements, and cue for notes that contain either a cue or a
grace element, but not both.
-->
<!ELEMENT type (#PCDATA)>
<!ATTLIST type
size %symbol-size; #IMPLIED
>
<!--
One dot element is used for each dot of prolongation.
The placement element is used to specify whether the
dot should appear above or below the staff line. It is
ignored for notes that appear on a staff space.
-->
<!ELEMENT dot EMPTY>
<!ATTLIST dot
%print-style;
%placement;
>
<!--
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, three-quarters-sharp, sharp-down,
sharp-up, natural-down, natural-up, flat-down, flat-up,
double-sharp-down, double-sharp-up, flat-flat-down,
flat-flat-up, arrow-down, arrow-up, triple-sharp,
triple-flat, slash-quarter-sharp, slash-sharp, slash-flat,
double-slash-flat, sharp-1, sharp-2, sharp-3, sharp-5,
flat-1, flat-2, flat-3, flat-4, sori, koron, and other.
The quarter- and three-quarters- accidentals are
Tartini-style quarter-tone accidentals. The -down and -up
accidentals are quarter-tone accidentals that include
arrows pointing down or up. The slash- accidentals
are used in Turkish classical music. The numbered
sharp and flat accidentals are superscripted versions
of the accidental signs, used in Turkish folk music.
The sori and koron accidentals are microtonal sharp and
flat accidentals used in Iranian and Persian music. The
other accidental covers accidentals other than those listed
here. It is usually used in combination with the smufl
attribute to specify a particular SMuFL accidental. The
smufl attribute may be used with any accidental value to
help specify the appearance of symbols that share the same
MusicXML semantics.
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.mod file.
-->
<!ELEMENT accidental (#PCDATA)>
<!ATTLIST accidental
cautionary %yes-no; #IMPLIED
editorial %yes-no; #IMPLIED
%level-display;
%print-style;
%smufl;
>
<!--
Time modification indicates tuplets, double-note tremolos,
and other durational changes. A time-modification element
shows how the cumulative, sounding effect of tuplets and
double-note tremolos compare to the written note type
represented by the type and dot elements. The child elements
are defined in the common.mod file. Nested tuplets and other
notations that use more detailed information need both the
time-modification and tuplet elements to be represented
accurately.
-->
<!ELEMENT time-modification
(actual-notes, normal-notes, (normal-type, normal-dot*)?)>
<!--
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. A stem element associated with a rest
refers to a stemlet.
-->
<!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, circled,
slashed, back slashed, normal, cluster, circle dot,
left triangle, rectangle, other, or none.
For shape note music, the element values do, re, mi, fa,
fa up, so, la, and ti are also used, corresponding to Aikin's
7-shape system. The fa up shape is typically used with upstems;
the fa shape is typically used with downstems or no stems.
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. The left triangle shape is a right triangle
with the hypotenuse facing up and to the left.
The other notehead covers noteheads other than those listed
here. It is usually used in combination with the smufl
attribute to specify a particular SMuFL notehead. The
smufl attribute may be used with any notehead value to
help specify the appearance of symbols that share the same
MusicXML semantics. Noteheads in the SMuFL "Note name
noteheads" range (U+E150–U+E1AF) should not use the smufl
attribute or the "other" value, but instead use the
notehead-text element.
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.
The notehead-text element indicates text that is displayed
inside a notehead, as is done in some educational music.
It is not needed for the numbers used in tablature or jianpu
notation. The presence of a TAB or jianpu clefs is sufficient
to indicate that numbers are used. The display-text and
accidental-text elements allow display of fully formatted
text and accidentals.
-->
<!ELEMENT notehead (#PCDATA)>
<!ATTLIST notehead
filled %yes-no; #IMPLIED
parentheses %yes-no; #IMPLIED
%font;
%color;
%smufl;
>
<!ELEMENT notehead-text
((display-text | accidental-text)+)>
<!--
Beam types include begin, continue, end, forward hook, and
backward hook. Up to eight concurrent beams are available to
cover up to 1024th notes, using an enumerated type defined
in the common.mod file. Each beam in a note is represented
with a separate beam element, starting with the eighth note
beam using a number attribute of 1.
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.
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.
The repeater attribute has been deprecated in MusicXML 3.0.
Formerly used for tremolos, it needs to be specified with a
"yes" value for each beam using it.
-->
<!ELEMENT beam (#PCDATA)>
<!ATTLIST beam
number %beam-level; "1"
repeater %yes-no; #IMPLIED
fan (accel | rit | none) #IMPLIED
%color;
%optional-unique-id;
>
<!--
Notations are musical notations, not XML notations. Multiple
notations are allowed in order to represent multiple editorial
levels. The print-object attribute, added in Version 3.0,
allows notations to represent details of performance technique,
such as fingerings, without having them appear in the score.
-->
<!ELEMENT notations
(%editorial;,
(tied | slur | tuplet | glissando | slide |
ornaments | technical | articulations | dynamics |
fermata | arpeggiate | non-arpeggiate |
accidental-mark | other-notation)*)>
<!ATTLIST notations
%print-object;
%optional-unique-id;
>
<!--
The tied element represents the notated tie. The tie element
represents the tie sound.
The number attribute is rarely needed to disambiguate ties,
since note pitches will usually suffice. The attribute is
implied rather than defaulting to 1 as with most elements.
It is available for use in more complex tied notation
situations.
-->
<!ELEMENT tied EMPTY>
<!ATTLIST tied
type %start-stop-continue; #REQUIRED
number %number-level; #IMPLIED
%line-type;
%dashed-formatting;
%position;
%placement;
%orientation;
%bezier;
%color;
%optional-unique-id;
>
<!--
Slur elements are empty. Most slurs are represented with
two elements: one with a start type, and one with a stop
type. Slurs can add more elements using a continue type.
This is typically used to specify the formatting of cross-
system slurs, or to specify the shape of very complex slurs.
-->
<!ELEMENT slur EMPTY>
<!ATTLIST slur
type %start-stop-continue; #REQUIRED
number %number-level; "1"
%line-type;
%dashed-formatting;
%position;
%placement;
%orientation;
%bezier;
%color;
%optional-unique-id;
>
<!--
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 and double-note tremolos compare to
the written note type, the tuplet element describes how this
is displayed. The tuplet element also provides more detailed
representation information than the time-modification element,
and is needed to represent nested tuplets and other complex
tuplets accurately. 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;
%optional-unique-id;
>
<!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;
%dashed-formatting;
%print-style;
%optional-unique-id;
>
<!ELEMENT slide (#PCDATA)>
<!ATTLIST slide
type %start-stop; #REQUIRED
number %number-level; "1"
%line-type;
%dashed-formatting;
%print-style;
%bend-sound;
%optional-unique-id;
>
<!--
The other-notation element is used to define any notations not
yet in the MusicXML format. It handles notations where more
specific extension elements such as other-dynamics and
other-technical are not appropriate. The smufl attribute can
be used to specify a particular notation, allowing application
interoperability without requiring every SMuFL glyph to have a
MusicXML element equivalent. Using the other-notation element
without the smufl attribute allows for extended representation,
though without application interoperability.
-->
<!ELEMENT other-notation (#PCDATA)>
<!ATTLIST other-notation
type %start-stop-single; #REQUIRED
number %number-level; "1"
%print-object;
%print-style;
%placement;
%smufl;
%optional-unique-id;
>
<!--
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 | inverted-turn |
delayed-inverted-turn | vertical-turn |
inverted-vertical-turn | shake | wavy-line |
mordent | inverted-mordent | schleifer | tremolo |
haydn | other-ornament), accidental-mark*)*)>
<!ATTLIST ornaments
%optional-unique-id;
>
<!ELEMENT trill-mark EMPTY>
<!ATTLIST trill-mark
%print-style;
%placement;
%trill-sound;
>
<!--
The turn and delayed-turn elements are the normal turn
shape which goes up then down. The inverted-turn and
delayed-inverted-turn elements have the shape which goes
down and then up. The delayed-turn and delayed-inverted-turn
elements indicate turns that are delayed until the end of the
current note. The vertical-turn element has the shape
arranged vertically going from upper left to lower right.
If the slash attribute is yes, then a vertical line is used
to slash the turn; it is no by default.
-->
<!ELEMENT turn EMPTY>
<!ATTLIST turn
%print-style;
%placement;
%trill-sound;
slash %yes-no; #IMPLIED
>
<!ELEMENT delayed-turn EMPTY>
<!ATTLIST delayed-turn
%print-style;
%placement;
%trill-sound;
slash %yes-no; #IMPLIED
>
<!ELEMENT inverted-turn EMPTY>
<!ATTLIST inverted-turn
%print-style;
%placement;
%trill-sound;
slash %yes-no; #IMPLIED
>
<!ELEMENT delayed-inverted-turn EMPTY>
<!ATTLIST delayed-inverted-turn
%print-style;
%placement;
%trill-sound;
slash %yes-no; #IMPLIED
>
<!ELEMENT vertical-turn EMPTY>
<!ATTLIST vertical-turn
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT inverted-vertical-turn EMPTY>
<!ATTLIST inverted-vertical-turn
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT shake EMPTY>
<!ATTLIST shake
%print-style;
%placement;
%trill-sound;
>
<!--
The wavy-line element is defined in the common.mod file,
as it applies to more than just note elements.
-->
<!--
The long attribute for the mordent and inverted-mordent
elements is "no" by default. The mordent element represents
the mordent sign with the vertical line; the inverted-mordent
element represents the mordent sign without the vertical line.
The choice of which mordent is inverted differs between
MusicXML and SMuFL. The approach and departure attributes are
used for compound ornaments, indicating how the beginning and
ending of the ornament look relative to the main part of the
mordent.
-->
<!ELEMENT mordent EMPTY>
<!ATTLIST mordent
long %yes-no; #IMPLIED
approach %above-below; #IMPLIED
departure %above-below; #IMPLIED
%print-style;
%placement;
%trill-sound;
>
<!ELEMENT inverted-mordent EMPTY>
<!ATTLIST inverted-mordent
long %yes-no; #IMPLIED
approach %above-below; #IMPLIED
departure %above-below; #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;
>
<!--
The tremolo ornament can be used to indicate either
single-note or double-note tremolos. Single-note tremolos
use the single type, while double-note tremolos use the
start and stop types. The default is "single" for
compatibility with Version 1.1. The text of the element
indicates the number of tremolo marks and is an integer
from 0 to 8. Note that the number of attached beams is
not included in this value, but is represented separately
using the beam element.
When using double-note tremolos, the duration of each note
in the tremolo should correspond to half of the notated type
value. A time-modification element should also be added with
an actual-notes value of 2 and a normal-notes value of 1. If
used within a tuplet, this 2/1 ratio should be multiplied by
the existing tuplet ratio.
Using repeater beams for indicating tremolos is deprecated as
of MusicXML 3.0.
-->
<!ELEMENT tremolo (#PCDATA)>
<!ATTLIST tremolo
type %start-stop-single; "single"
%print-style;
%placement;
>
<!--
The haydn element represents the Haydn ornament. This is
defined in SMuFL as ornamentHaydn.
-->
<!ELEMENT haydn EMPTY>
<!ATTLIST haydn
%print-style;
%placement;
%trill-sound;
>
<!--
The other-ornament element is used to define any ornaments
not yet in the MusicXML format. The smufl attribute can be
used to specify a particular ornament, allowing application
interoperability without requiring every SMuFL ornament to have
a MusicXML element equivalent. Using the other-ornament element
without the smufl attribute allows for extended representation,
though without application interoperability.
-->
<!ELEMENT other-ornament (#PCDATA)>
<!ATTLIST other-ornament
%print-style;
%placement;
%smufl;
>
<!--
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;
%smufl;
%optional-unique-id;
>
<!--
Technical indications give performance information for
individual instruments.
-->
<!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 | hole | arrow | handbell |
other-technical)*)>
<!ATTLIST technical
%optional-unique-id;
>
<!--
The up-bow element represents the symbol that is used both
for up-bowing on bowed instruments, and up-stroke on plucked
instruments.
-->
<!ELEMENT up-bow EMPTY>
<!ATTLIST up-bow
%print-style;
%placement;
>
<!--
The down-bow element represents the symbol that is used both
for down-bowing on bowed instruments, and down-stroke on
plucked instruments.
-->
<!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 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. The attributes for the harmonic element
refer to the use of the circular harmonic symbol, typically
but not always used with natural harmonics.
-->
<!ELEMENT harmonic
((natural | artificial)?,
(base-pitch | touching-pitch | sounding-pitch)?)>
<!ATTLIST harmonic
%print-object;
%print-style;
%placement;
>
<!ELEMENT natural EMPTY>
<!ELEMENT artificial EMPTY>
<!ELEMENT base-pitch EMPTY>
<!ELEMENT touching-pitch EMPTY>
<!ELEMENT sounding-pitch EMPTY>
<!--
The open-string element represents the zero-shaped
open string symbol.
-->
<!ELEMENT open-string EMPTY>
<!ATTLIST open-string
%print-style;
%placement;
>
<!--
The thumb-position element represents the thumb position
symbol. This is a circle with a line, where the line does
not come within the circle. It is distinct from the snap
pizzicato symbol, where the line comes inside the circle.
-->
<!ELEMENT thumb-position EMPTY>
<!ATTLIST thumb-position
%print-style;
%placement;
>
<!--
The pluck element 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 (#PCDATA)>
<!ATTLIST pluck
%print-style;
%placement;
>
<!--
The double-tongue element represents the double tongue symbol
(two dots arranged horizontally).
-->
<!ELEMENT double-tongue EMPTY>
<!ATTLIST double-tongue
%print-style;
%placement;
>
<!--
The triple-tongue element represents the triple tongue symbol
(three dots arranged horizontally).
-->
<!ELEMENT triple-tongue EMPTY>
<!ATTLIST triple-tongue
%print-style;
%placement;
>
<!--
The stopped element represents the stopped symbol, which looks
like a plus sign.
-->
<!ELEMENT stopped EMPTY>
<!ATTLIST stopped
%print-style;
%placement;
>
<!--
The snap-pizzicato element represents the snap pizzicato
symbol. This is a circle with a line, where the line comes
inside the circle. It is distinct from the thumb-position
symbol, where the line does not come inside the circle.
-->
<!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 up to the application.
-->
<!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 display is
application-specific.
-->
<!ELEMENT tap (#PCDATA)>
<!ATTLIST tap
%print-style;
%placement;
>
<!--
The heel and toe element 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;
>
<!--
The fingernails element is used in notation for harp and
other plucked string instruments.
-->
<!ELEMENT fingernails EMPTY>
<!ATTLIST fingernails
%print-style;