mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 03:04:00 +00:00
Added MusicXML DTD for verification
This commit is contained in:
parent
ec63fe8a7d
commit
dfdc1ec17c
111
musicxml11/ISOlat1.pen
Executable file
111
musicxml11/ISOlat1.pen
Executable file
|
@ -0,0 +1,111 @@
|
|||
<!-- (C) International Organization for Standardization 1986
|
||||
Permission to copy in any form is granted for use with
|
||||
conforming SGML systems and applications as defined in
|
||||
ISO 8879, provided this notice is included in all copies.
|
||||
|
||||
-->
|
||||
<!-- Character entity set. Typical invocation:
|
||||
<!ENTITY % ISOlat1 PUBLIC
|
||||
"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
|
||||
"ISOlat1.pen" >
|
||||
%ISOlat1;
|
||||
or
|
||||
<!ENTITY % HTMLlat1 PUBLIC
|
||||
"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
|
||||
"ISOlat1.pen" >
|
||||
%HTMLlat1;
|
||||
-->
|
||||
<!--
|
||||
CATALOG ENTRIES
|
||||
|
||||
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
|
||||
"ISOlat1.pen"
|
||||
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//XML"
|
||||
"ISOlat1.pen"
|
||||
PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN"
|
||||
"ISOlat1.pen"
|
||||
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN"
|
||||
"ISOlat1.pen"
|
||||
|
||||
Note that the last two catalog entries are not correct for
|
||||
SGML systems which need to ship the entities as SDATA.
|
||||
-->
|
||||
|
||||
<!-- This version of the entity set can be used with any SGML document
|
||||
which uses ISO 8859-1 or ISO 10646 as its document character
|
||||
set. This includes XML documents and ISO HTML documents.
|
||||
|
||||
Prepared: Rick Jelliffe, Allette Systems, (using HTMLlat1)
|
||||
|
||||
Version: 1998-11-05
|
||||
|
||||
|
||||
Thanks to Debbie Lapeyre and Evan Owens for pointing out the
|
||||
error in the invocation example in the 1997-07-07 version.
|
||||
|
||||
-->
|
||||
|
||||
<!ENTITY Agrave "À" ><!-- capital A, grave accent -->
|
||||
<!ENTITY Aacute "Á" ><!-- capital A, acute accent -->
|
||||
<!ENTITY Acirc "Â" ><!-- capital A, circumflex accent -->
|
||||
<!ENTITY Atilde "Ã" ><!-- capital A, tilde -->
|
||||
<!ENTITY Auml "Ä" ><!-- capital A, dieresis or umlaut mark -->
|
||||
<!ENTITY Aring "Å" ><!-- capital A, ring -->
|
||||
<!ENTITY AElig "Æ" ><!-- capital AE diphthong (ligature) -->
|
||||
<!ENTITY Ccedil "Ç" ><!-- capital C, cedilla -->
|
||||
<!ENTITY Egrave "È" ><!-- capital E, grave accent -->
|
||||
<!ENTITY Eacute "É" ><!-- capital E, acute accent -->
|
||||
<!ENTITY Ecirc "Ê" ><!-- capital E, circumflex accent -->
|
||||
<!ENTITY Euml "Ë" ><!-- capital E, dieresis or umlaut mark -->
|
||||
<!ENTITY Igrave "Ì" ><!-- capital I, grave accent -->
|
||||
<!ENTITY Iacute "Í" ><!-- capital I, acute accent -->
|
||||
<!ENTITY Icirc "Î" ><!-- capital I, circumflex accent -->
|
||||
<!ENTITY Iuml "Ï" ><!-- capital I, dieresis or umlaut mark -->
|
||||
<!ENTITY ETH "Ð" ><!-- capital Eth, Icelandic -->
|
||||
<!ENTITY Ntilde "Ñ" ><!-- capital N, tilde -->
|
||||
<!ENTITY Ograve "Ò" ><!-- capital O, grave accent -->
|
||||
<!ENTITY Oacute "Ó" ><!-- capital O, acute accent -->
|
||||
<!ENTITY Ocirc "Ô" ><!-- capital O, circumflex accent -->
|
||||
<!ENTITY Otilde "Õ" ><!-- capital O, tilde -->
|
||||
<!ENTITY Ouml "Ö" ><!-- capital O, dieresis or umlaut mark -->
|
||||
<!ENTITY Oslash "Ø" ><!-- capital O, slash -->
|
||||
<!ENTITY Ugrave "Ù" ><!-- capital U, grave accent -->
|
||||
<!ENTITY Uacute "Ú" ><!-- capital U, acute accent -->
|
||||
<!ENTITY Ucirc "Û" ><!-- capital U, circumflex accent -->
|
||||
<!ENTITY Uuml "Ü" ><!-- capital U, dieresis or umlaut mark -->
|
||||
<!ENTITY Yacute "Ý" ><!-- capital Y, acute accent -->
|
||||
<!ENTITY THORN "Þ" ><!-- capital THORN, Icelandic -->
|
||||
<!ENTITY szlig "ß" ><!-- small sharp s, German (sz ligature) -->
|
||||
<!ENTITY agrave "à" ><!-- small a, grave accent -->
|
||||
<!ENTITY aacute "á" ><!-- small a, acute accent -->
|
||||
<!ENTITY acirc "â" ><!-- small a, circumflex accent -->
|
||||
<!ENTITY atilde "ã" ><!-- small a, tilde -->
|
||||
<!ENTITY auml "ä" ><!-- small a, dieresis or umlaut mark -->
|
||||
<!ENTITY aring "å" ><!-- small a, ring -->
|
||||
<!ENTITY aelig "æ" ><!-- small ae diphthong (ligature) -->
|
||||
<!ENTITY ccedil "ç" ><!-- small c, cedilla -->
|
||||
<!ENTITY egrave "è" ><!-- small e, grave accent -->
|
||||
<!ENTITY eacute "é" ><!-- small e, acute accent -->
|
||||
<!ENTITY ecirc "ê" ><!-- small e, circumflex accent -->
|
||||
<!ENTITY euml "ë" ><!-- small e, dieresis or umlaut mark -->
|
||||
<!ENTITY igrave "ì" ><!-- small i, grave accent -->
|
||||
<!ENTITY iacute "í" ><!-- small i, acute accent -->
|
||||
<!ENTITY icirc "î" ><!-- small i, circumflex accent -->
|
||||
<!ENTITY iuml "ï" ><!-- small i, dieresis or umlaut mark -->
|
||||
<!ENTITY eth "ð" ><!-- small eth, Icelandic -->
|
||||
<!ENTITY ntilde "ñ" ><!-- small n, tilde -->
|
||||
<!ENTITY ograve "ò" ><!-- small o, grave accent -->
|
||||
<!ENTITY oacute "ó" ><!-- small o, acute accent -->
|
||||
<!ENTITY ocirc "ô" ><!-- small o, circumflex accent -->
|
||||
<!ENTITY otilde "õ" ><!-- small o, tilde -->
|
||||
<!ENTITY ouml "ö" ><!-- small o, dieresis or umlaut mark -->
|
||||
|
||||
<!ENTITY oslash "ø" ><!-- small o, slash -->
|
||||
<!ENTITY ugrave "ù" ><!-- small u, grave accent -->
|
||||
<!ENTITY uacute "ú" ><!-- small u, acute accent -->
|
||||
<!ENTITY ucirc "û" ><!-- small u, circumflex accent -->
|
||||
<!ENTITY uuml "ü" ><!-- small u, dieresis or umlaut mark -->
|
||||
<!ENTITY yacute "ý" ><!-- small y, acute accent -->
|
||||
<!ENTITY thorn "þ" ><!-- small thorn, Icelandic -->
|
||||
<!ENTITY yuml "ÿ" ><!-- small y, dieresis or umlaut mark -->
|
||||
|
145
musicxml11/ISOlat2.pen
Executable file
145
musicxml11/ISOlat2.pen
Executable file
|
@ -0,0 +1,145 @@
|
|||
<!-- (C) International Organization for Standardization 1986
|
||||
Permission to copy in any form is granted for use with
|
||||
conforming SGML systems and applications as defined in
|
||||
ISO 8879, provided this notice is included in all copies.
|
||||
-->
|
||||
<!-- Character entity set. Typical invocation:
|
||||
<!ENTITY % ISOlat2 PUBLIC
|
||||
"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
|
||||
"ISOlat2.pen">
|
||||
%ISOlat2;
|
||||
-->
|
||||
<!-- This version of the entity set can be used with any SGML document
|
||||
which uses ISO 10646 as its document character set.
|
||||
This includes XML documents and ISO HTML documents.
|
||||
This entity set uses hexadecimal numeric character references.
|
||||
|
||||
Prepared: Rick Jelliffe, ricko@allette.com.au
|
||||
|
||||
Version: 1998-02-06
|
||||
|
||||
Thanks to Wilfried Wiehler for finding 3 errors with Sacute,
|
||||
Zcaron, and zcaron in the 1997-07-07 version.
|
||||
-->
|
||||
<!ENTITY abreve "ă" ><!--=small a, breve-->
|
||||
<!ENTITY Abreve "Ă" ><!--=capital A, breve-->
|
||||
<!ENTITY amacr "ā" ><!--=small a, macron-->
|
||||
<!ENTITY Amacr "Ā" ><!--=capital A, macron-->
|
||||
<!ENTITY aogon "ą" ><!--=small a, ogonek-->
|
||||
<!ENTITY Aogon "Ą" ><!--=capital A, ogonek-->
|
||||
<!ENTITY cacute "ć" ><!--=small c, acute accent-->
|
||||
<!ENTITY Cacute "Ć" ><!--=capital C, acute accent-->
|
||||
<!ENTITY ccaron "č" ><!--=small c, caron-->
|
||||
<!ENTITY Ccaron "Č" ><!--=capital C, caron-->
|
||||
<!ENTITY ccirc "ĉ" ><!--=small c, circumflex accent-->
|
||||
<!ENTITY Ccirc "Ĉ" ><!--=capital C, circumflex accent-->
|
||||
<!ENTITY cdot "ċ" ><!--=small c, dot above-->
|
||||
<!ENTITY Cdot "Ċ" ><!--=capital C, dot above-->
|
||||
<!ENTITY dcaron "ď" ><!--=small d, caron-->
|
||||
<!ENTITY Dcaron "Ď" ><!--=capital D, caron-->
|
||||
<!ENTITY dstrok "đ" ><!--=small d, stroke-->
|
||||
<!ENTITY Dstrok "Đ" ><!--=capital D, stroke-->
|
||||
<!ENTITY ecaron "ě" ><!--=small e, caron-->
|
||||
<!ENTITY Ecaron "Ě" ><!--=capital E, caron-->
|
||||
<!ENTITY edot "ė" ><!--=small e, dot above-->
|
||||
<!ENTITY Edot "Ė" ><!--=capital E, dot above-->
|
||||
<!ENTITY emacr "ē" ><!--=small e, macron-->
|
||||
<!ENTITY Emacr "Ē" ><!--=capital E, macron-->
|
||||
<!ENTITY eogon "ę" ><!--=small e, ogonek-->
|
||||
<!ENTITY Eogon "Ę" ><!--=capital E, ogonek-->
|
||||
<!ENTITY gacute "ǵ" ><!--=small g, acute accent-->
|
||||
<!ENTITY gbreve "ğ" ><!--=small g, breve-->
|
||||
<!ENTITY Gbreve "Ğ" ><!--=capital G, breve-->
|
||||
<!ENTITY Gcedil "Ģ" ><!--=capital G, cedilla-->
|
||||
<!ENTITY gcirc "ĝ" ><!--=small g, circumflex accent-->
|
||||
<!ENTITY Gcirc "Ĝ" ><!--=capital G, circumflex accent-->
|
||||
<!ENTITY gdot "ġ" ><!--=small g, dot above-->
|
||||
<!ENTITY Gdot "Ġ" ><!--=capital G, dot above-->
|
||||
<!ENTITY hcirc "ĥ" ><!--=small h, circumflex accent-->
|
||||
<!ENTITY Hcirc "Ĥ" ><!--=capital H, circumflex accent-->
|
||||
<!ENTITY hstrok "ħ" ><!--=small h, stroke-->
|
||||
<!ENTITY Hstrok "Ħ" ><!--=capital H, stroke-->
|
||||
<!ENTITY Idot "İ" ><!--=capital I, dot above-->
|
||||
<!ENTITY Imacr "Ī" ><!--=capital I, macron-->
|
||||
<!ENTITY imacr "ī" ><!--=small i, macron-->
|
||||
<!ENTITY ijlig "ij" ><!--=small ij ligature-->
|
||||
<!ENTITY IJlig "IJ" ><!--=capital IJ ligature-->
|
||||
<!ENTITY inodot "ı" ><!--=small i without dot-->
|
||||
<!ENTITY iogon "į" ><!--=small i, ogonek-->
|
||||
<!ENTITY Iogon "Į" ><!--=capital I, ogonek-->
|
||||
<!ENTITY itilde "ĩ" ><!--=small i, tilde-->
|
||||
<!ENTITY Itilde "Ĩ" ><!--=capital I, tilde-->
|
||||
<!ENTITY jcirc "ĵ" ><!--=small j, circumflex accent-->
|
||||
<!ENTITY Jcirc "Ĵ" ><!--=capital J, circumflex accent-->
|
||||
<!ENTITY kcedil "ķ" ><!--=small k, cedilla-->
|
||||
<!ENTITY Kcedil "Ķ" ><!--=capital K, cedilla-->
|
||||
<!ENTITY kgreen "ĸ" ><!--=small k, Greenlandic-->
|
||||
<!ENTITY lacute "ĺ" ><!--=small l, acute accent-->
|
||||
<!ENTITY Lacute "Ĺ" ><!--=capital L, acute accent-->
|
||||
<!ENTITY lcaron "ľ" ><!--=small l, caron-->
|
||||
<!ENTITY Lcaron "Ľ" ><!--=capital L, caron-->
|
||||
<!ENTITY lcedil "ļ" ><!--=small l, cedilla-->
|
||||
<!ENTITY Lcedil "Ļ" ><!--=capital L, cedilla-->
|
||||
<!ENTITY lmidot "ŀ" ><!--=small l, middle dot-->
|
||||
<!ENTITY Lmidot "Ĺ" ><!--=capital L, middle dot-->
|
||||
<!ENTITY lstrok "ł" ><!--=small l, stroke-->
|
||||
<!ENTITY Lstrok "Ł" ><!--=capital L, stroke-->
|
||||
<!ENTITY nacute "ń" ><!--=small n, acute accent-->
|
||||
<!ENTITY Nacute "Ń" ><!--=capital N, acute accent-->
|
||||
<!ENTITY eng "ŋ" ><!--=small eng, Lapp-->
|
||||
<!ENTITY ENG "Ŋ" ><!--=capital ENG, Lapp-->
|
||||
<!ENTITY napos "ʼn" ><!--=small n, apostrophe-->
|
||||
<!ENTITY ncaron "ň" ><!--=small n, caron-->
|
||||
<!ENTITY Ncaron "Ň" ><!--=capital N, caron-->
|
||||
<!ENTITY ncedil "ņ" ><!--=small n, cedilla-->
|
||||
<!ENTITY Ncedil "Ņ" ><!--=capital N, cedilla-->
|
||||
<!ENTITY odblac "ő" ><!--=small o, double acute accent-->
|
||||
<!ENTITY Odblac "Ő" ><!--=capital O, double acute accent-->
|
||||
<!ENTITY Omacr "Ō" ><!--=capital O, macron-->
|
||||
<!ENTITY omacr "ō" ><!--=small o, macron-->
|
||||
<!ENTITY oelig "œ" ><!--=small oe ligature-->
|
||||
<!ENTITY OElig "Œ" ><!--=capital OE ligature-->
|
||||
<!ENTITY racute "ŕ" ><!--=small r, acute accent-->
|
||||
<!ENTITY Racute "Ŕ" ><!--=capital R, acute accent-->
|
||||
<!ENTITY rcaron "ř" ><!--=small r, caron-->
|
||||
<!ENTITY Rcaron "Ř" ><!--=capital R, caron-->
|
||||
<!ENTITY rcedil "ŗ" ><!--=small r, cedilla-->
|
||||
<!ENTITY Rcedil "Ŗ" ><!--=capital R, cedilla-->
|
||||
<!ENTITY sacute "ś" ><!--=small s, acute accent-->
|
||||
<!ENTITY Sacute "Ś" ><!--=capital S, acute accent-->
|
||||
<!ENTITY scaron "š" ><!--=small s, caron-->
|
||||
<!ENTITY Scaron "Š" ><!--=capital S, caron-->
|
||||
<!ENTITY scedil "ş" ><!--=small s, cedilla-->
|
||||
<!ENTITY Scedil "Ş" ><!--=capital S, cedilla-->
|
||||
<!ENTITY scirc "Ŝ" ><!--=small s, circumflex accent-->
|
||||
<!ENTITY Scirc "ŝ" ><!--=capital S, circumflex accent-->
|
||||
<!ENTITY tcaron "ť" ><!--=small t, caron-->
|
||||
<!ENTITY Tcaron "Ť" ><!--=capital T, caron-->
|
||||
<!ENTITY tcedil "Ţ" ><!--=small t, cedilla-->
|
||||
<!ENTITY Tcedil "ţ" ><!--=capital T, cedilla-->
|
||||
<!ENTITY tstrok "ŧ" ><!--=small t, stroke-->
|
||||
<!ENTITY Tstrok "Ŧ" ><!--=capital T, stroke-->
|
||||
<!ENTITY ubreve "ŭ" ><!--=small u, breve-->
|
||||
<!ENTITY Ubreve "Ŭ" ><!--=capital U, breve-->
|
||||
<!ENTITY udblac "ű" ><!--=small u, double acute accent-->
|
||||
<!ENTITY Udblac "Ű" ><!--=capital U, double acute accent-->
|
||||
<!ENTITY umacr "ū" ><!--=small u, macron-->
|
||||
<!ENTITY Umacr "Ū" ><!--=capital U, macron-->
|
||||
<!ENTITY uogon "ų" ><!--=small u, ogonek-->
|
||||
<!ENTITY Uogon "Ų" ><!--=capital U, ogonek-->
|
||||
<!ENTITY uring "ů" ><!--=small u, ring-->
|
||||
<!ENTITY Uring "Ů" ><!--=capital U, ring-->
|
||||
<!ENTITY utilde "ũ" ><!--=small u, tilde-->
|
||||
<!ENTITY Utilde "Ũ" ><!--=capital U, tilde-->
|
||||
<!ENTITY wcirc "ŵ" ><!--=small w, circumflex accent-->
|
||||
<!ENTITY Wcirc "Ŵ" ><!--=capital W, circumflex accent-->
|
||||
<!ENTITY ycirc "ŷ" ><!--=small y, circumflex accent-->
|
||||
<!ENTITY Ycirc "Ŷ" ><!--=capital Y, circumflex accent-->
|
||||
<!ENTITY Yuml "Ÿ" ><!--=capital Y, dieresis or umlaut mark-->
|
||||
<!ENTITY zacute "ź" ><!--=small z, acute accent-->
|
||||
<!ENTITY Zacute "Ź" ><!--=capital Z, acute accent-->
|
||||
<!ENTITY zcaron "ž" ><!--=small z, caron-->
|
||||
<!ENTITY Zcaron "Ž" ><!--=capital Z, caron-->
|
||||
<!ENTITY zdot "ż" ><!--=small z, dot above-->
|
||||
<!ENTITY Zdot "Ż" ><!--=capital Z, dot above-->
|
||||
|
195
musicxml11/MIDIEvents10.dtd
Executable file
195
musicxml11/MIDIEvents10.dtd
Executable file
|
@ -0,0 +1,195 @@
|
|||
<!--
|
||||
XML DTD for MIDI messages
|
||||
|
||||
Version 1.0, 19 January 2003
|
||||
|
||||
Formal Public Identifier:
|
||||
"-//MIDI Manufacturers Association//DTD MIDIEvents 1.0//EN"
|
||||
|
||||
URI:
|
||||
"http://www.midi.org/dtds/MIDIEvents10.dtd"
|
||||
|
||||
Parameter entities which must be defined before use:
|
||||
%ChannelRequired; #IMPLIED
|
||||
for use in contexts, where the event is always
|
||||
rechannelized
|
||||
#REQUIRED
|
||||
when channel messages require Channel attribute
|
||||
|
||||
e.g.
|
||||
<!ENTITY % MIDIDTD PUBLIC "-//MIDI Manufacturers Association//DTD MIDIEvents 1.0//EN"
|
||||
"http://www.midi.org/dtds/MIDIEvents10.dtd" >
|
||||
%MIDIDTD;
|
||||
-->
|
||||
|
||||
<!--
|
||||
CHANNEL MESSAGES
|
||||
|
||||
Attribute values:
|
||||
Note, Velocity, Pressure, Control, Value, Number are all 0..127
|
||||
except: PitchBend's Value is 0..16383
|
||||
-->
|
||||
|
||||
<!ELEMENT NoteOn EMPTY>
|
||||
<!ATTLIST NoteOn
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Note NMTOKEN #REQUIRED
|
||||
Velocity NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT NoteOff EMPTY>
|
||||
<!ATTLIST NoteOff
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Note NMTOKEN #REQUIRED
|
||||
Velocity NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT PolyKeyPressure EMPTY>
|
||||
<!ATTLIST PolyKeyPressure
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Note NMTOKEN #REQUIRED
|
||||
Pressure NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT ControlChange EMPTY>
|
||||
<!ATTLIST ControlChange
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Control NMTOKEN #REQUIRED
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT ProgramChange EMPTY>
|
||||
<!ATTLIST ProgramChange
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Number NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT ChannelKeyPressure EMPTY>
|
||||
<!ATTLIST ChannelKeyPressure
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Pressure NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT PitchBendChange EMPTY>
|
||||
<!ATTLIST PitchBendChange
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!--
|
||||
Channel mode messages
|
||||
-->
|
||||
<!ELEMENT AllSoundOff EMPTY>
|
||||
<!ATTLIST AllSoundOff
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;>
|
||||
|
||||
<!ELEMENT ResetAllControllers EMPTY>
|
||||
<!ATTLIST ResetAllControllers
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;>
|
||||
|
||||
<!ELEMENT LocalControl EMPTY>
|
||||
<!ATTLIST LocalControl
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Value (off|on) #REQUIRED>
|
||||
|
||||
<!ELEMENT AllNotesOff EMPTY>
|
||||
<!ATTLIST AllNotesOff
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;>
|
||||
|
||||
<!ELEMENT OmniOff EMPTY>
|
||||
<!ATTLIST OmniOff
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;>
|
||||
|
||||
<!ELEMENT OmniOn EMPTY>
|
||||
<!ATTLIST OmniOn
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;>
|
||||
|
||||
<!ELEMENT MonoMode EMPTY>
|
||||
<!ATTLIST MonoMode
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT PolyMode EMPTY>
|
||||
<!ATTLIST PolyMode
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;>
|
||||
|
||||
<!--
|
||||
14-bit control changes:
|
||||
Value is 0..16383
|
||||
|
||||
ControlChange14's Control is MSB 0..31
|
||||
RPNN and NRPN are 0..16383
|
||||
-->
|
||||
|
||||
<!ELEMENT ControlChange14 EMPTY>
|
||||
<!ATTLIST ControlChange14
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
Control NMTOKEN #REQUIRED
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT RPNChange EMPTY>
|
||||
<!ATTLIST RPNChange
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
RPN NMTOKEN #REQUIRED
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT NRPNChange EMPTY>
|
||||
<!ATTLIST NRPNChange
|
||||
Channel (1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16) %ChannelRequired;
|
||||
NRPN NMTOKEN #REQUIRED
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
|
||||
<!--
|
||||
SYSTEM MESSAGES
|
||||
-->
|
||||
|
||||
<!ELEMENT SysEx (#PCDATA | SysExDeviceID | SysExChannel)*>
|
||||
<!-- contains string of hex bytes without radix information, e.g.:
|
||||
<SysEx>F0 01 02 <SysExDeviceID/> 03 04 05 <SysExChannel Multiplier="1" Offset="32"/> F7</SysEx>
|
||||
-->
|
||||
|
||||
<!ELEMENT SysExDeviceID EMPTY> <!-- Byte as a function of user-visible Device ID
|
||||
e.g. 17 as the default on many Roland devices.
|
||||
Most sysex messages will use this element. -->
|
||||
<!ATTLIST SysExDeviceID
|
||||
Multiplier NMTOKEN "1"
|
||||
Offset NMTOKEN "0"> <!-- multiplier and offset are decimal -->
|
||||
|
||||
<!ELEMENT SysExChannel EMPTY> <!-- Byte as a function of MIDI Channel 1-16, for
|
||||
specialized situations where a sys-ex message
|
||||
is being directed to a specific MIDI channel.
|
||||
Generally only older devices require use of this. -->
|
||||
<!ATTLIST SysExChannel
|
||||
Multiplier NMTOKEN "1"
|
||||
Offset NMTOKEN "0"> <!-- multiplier and offset are decimal -->
|
||||
|
||||
<!ELEMENT MTCQuarterFrame EMPTY>
|
||||
<!ATTLIST MTCQuarterFrame
|
||||
MessageType (FrameLSNibble | FrameMSNibble |
|
||||
SecsLSNibble | SecsMSNibble |
|
||||
MinsLSNibble | MinsMSNibble |
|
||||
HrsLSNibble | HrsMSNibbleSMPTEType) #REQUIRED
|
||||
DataNibble NMTOKEN #REQUIRED>
|
||||
|
||||
<!ELEMENT SongPositionPointer EMPTY>
|
||||
<!ATTLIST SongPositionPointer
|
||||
Position NMTOKEN #REQUIRED> <!-- 0-16383 -->
|
||||
|
||||
<!ELEMENT SongSelect EMPTY>
|
||||
<!ATTLIST SongSelect
|
||||
Number NMTOKEN #REQUIRED> <!-- 0-127 -->
|
||||
|
||||
<!ELEMENT TuneRequest EMPTY>
|
||||
<!ELEMENT TimingClock EMPTY>
|
||||
<!ELEMENT Start EMPTY>
|
||||
<!ELEMENT Continue EMPTY>
|
||||
<!ELEMENT Stop EMPTY>
|
||||
<!ELEMENT ActiveSensing EMPTY>
|
||||
<!ELEMENT SystemReset EMPTY>
|
||||
|
||||
<!--
|
||||
ENTITIES
|
||||
-->
|
||||
|
||||
<!ENTITY % MIDIChannelVoiceMessage "(NoteOn | NoteOff | PolyKeyPressure | ControlChange | ProgramChange
|
||||
| ChannelKeyPressure | PitchBendChange)">
|
||||
<!ENTITY % MIDIChannelModeMessage "(AllSoundOff | ResetAllControllers | LocalControl | AllNotesOff
|
||||
| OmniOff | OmniOn | MonoMode | PolyMode)">
|
||||
<!ENTITY % MIDIChannelMessage "(%MIDIChannelVoiceMessage; | %MIDIChannelModeMessage;)">
|
||||
<!ENTITY % MIDISystemMessage "(SysEx | MTCQuarterFrame | SongPositionPointer | SongSelect
|
||||
| TuneRequest | TimingClock | Start | Continue | Stop | ActiveSensing | SystemReset)">
|
||||
<!ENTITY % MIDIMessage "(%MIDIChannelMessage; | %MIDISystemMessage; )">
|
361
musicxml11/attributes.dtd
Executable file
361
musicxml11/attributes.dtd
Executable file
|
@ -0,0 +1,361 @@
|
|||
<!--
|
||||
MusicXML attributes.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 attributes component DTD contains the attributes
|
||||
element and its children, such as key and time
|
||||
signatures.
|
||||
-->
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!--
|
||||
The attributes element contains musical information
|
||||
that typically changes on measure boundaries. This
|
||||
includes key and time signatures, clefs, transpositions,
|
||||
and staving.
|
||||
-->
|
||||
<!ELEMENT attributes (%editorial;, divisions?, key?, time?,
|
||||
staves?, instruments?, clef*, staff-details*, transpose?,
|
||||
directive*, measure-style*)>
|
||||
|
||||
<!--
|
||||
Traditional key signatures are represented by the number
|
||||
of flats and sharps, plus an optional mode for major/
|
||||
minor/mode distinctions. Negative numbers are used for
|
||||
flats and positive numbers for sharps, reflecting the
|
||||
key's placement within the circle of fifths (hence the
|
||||
element name). A cancel element indicates that the old
|
||||
key signature should be cancelled before the new one
|
||||
appears. This will always happen when changing to C major
|
||||
or A minor and need not be specified then. The cancel
|
||||
value matches the fifths value of the cancelled key
|
||||
signature (e.g., a cancel of -2 will provide an explicit
|
||||
cancellation for changing from B flat major to F major).
|
||||
|
||||
Non-traditional key signatures can be represented using
|
||||
the Humdrum/Scot concept of a list of altered tones.
|
||||
The key-step and key-alter elements are represented the
|
||||
same way as the step and alter elements are in the pitch
|
||||
element in note.dtd. The different element names indicate
|
||||
the different meaning of altering notes in a scale versus
|
||||
altering a sounding pitch.
|
||||
|
||||
Valid mode values include major, minor, dorian, phrygian,
|
||||
lydian, mixolydian, aeolian, ionian, and locrian.
|
||||
|
||||
The optional number attribute refers to staff numbers,
|
||||
from top to bottom on the system. If absent, the key
|
||||
signature applies to all staves in the part.
|
||||
-->
|
||||
<!ELEMENT key ((cancel?, fifths, mode?) |
|
||||
((key-step, key-alter)*))>
|
||||
<!ATTLIST key
|
||||
number CDATA #IMPLIED
|
||||
%color;
|
||||
>
|
||||
<!ELEMENT cancel (#PCDATA)>
|
||||
<!ELEMENT fifths (#PCDATA)>
|
||||
<!ELEMENT mode (#PCDATA)>
|
||||
<!ELEMENT key-step (#PCDATA)>
|
||||
<!ELEMENT key-alter (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Musical notation duration is commonly represented as
|
||||
fractions. The divisions element indicates how many
|
||||
divisions per quarter note are used to indicate a note's
|
||||
duration. For example, if duration = 1 and divisions = 2,
|
||||
this is an eighth note duration. Duration and divisions
|
||||
are used directly for generating sound output, so they
|
||||
must be chosen to take tuplets into account. Using a
|
||||
divisions element lets us use just one number to
|
||||
represent a duration for each note in the score, while
|
||||
retaining the full power of a fractional representation.
|
||||
For maximum compatibility with Standard MIDI Files, the
|
||||
divisions value should not exceed 16383.
|
||||
-->
|
||||
<!ELEMENT divisions (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Time signatures are represented by two elements. The
|
||||
beats element indicates the number of beats, as found in
|
||||
the numerator of a time signature. The beat-type element
|
||||
indicates the beat unit, as found in the denominator of
|
||||
a time signature. The symbol attribute is used to
|
||||
indicate another notation beyond a fraction: the common
|
||||
and cut time symbols, as well as a single number with an
|
||||
implied denominator. Normal (a fraction) is the implied
|
||||
symbol type if none is specified. Multiple pairs of
|
||||
beat and beat-type elements are used for composite
|
||||
time signatures with multiple denominators, such as
|
||||
2/4 + 3/8. A composite such as 3+2/8 requires only one
|
||||
beat/beat-type pair. A senza-misura element explicitly
|
||||
indicates that no time signature is present.
|
||||
|
||||
The print-object attribute allows a time signature to be
|
||||
specified but not printed, as is the case for excerpts
|
||||
from the middle of a score. The value is "yes" if
|
||||
not present. The optional number attribute refers to staff
|
||||
numbers, from top to bottom on the system. If absent, the
|
||||
time signature applies to all staves in the part.
|
||||
-->
|
||||
<!ELEMENT time ((beats, beat-type)+ | senza-misura)>
|
||||
<!ATTLIST time
|
||||
number CDATA #IMPLIED
|
||||
symbol (common | cut | single-number | normal) #IMPLIED
|
||||
%print-object;
|
||||
%color;
|
||||
>
|
||||
<!ELEMENT beats (#PCDATA)>
|
||||
<!ELEMENT beat-type (#PCDATA)>
|
||||
<!ELEMENT senza-misura EMPTY>
|
||||
|
||||
<!--
|
||||
Staves are used if there is more than one staff
|
||||
represented in the given part (e.g., 2 staves for
|
||||
typical piano parts). If absent, a value of 1 is assumed.
|
||||
Staves are ordered from top to bottom in a part in
|
||||
numerical order, with staff 1 above staff 2.
|
||||
-->
|
||||
<!ELEMENT staves (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Instruments are only used if more than one instrument is
|
||||
represented in the part (e.g., oboe I and II where they
|
||||
play together most of the time). If absent, a value of 1
|
||||
is assumed.
|
||||
-->
|
||||
<!ELEMENT instruments (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Clefs are represented by the sign, line, and
|
||||
clef-octave-change elements. Sign values include G, F, C,
|
||||
percussion, TAB, and none. Line numbers are counted from
|
||||
the bottom of the staff. Standard values are 2 for the
|
||||
G sign (treble clef), 4 for the F sign (bass clef), 3
|
||||
for the C sign (alto clef) and 5 for TAB (on a 6-line
|
||||
staff). The clef-octave-change element is used for
|
||||
transposing clefs (e.g., a treble clef for tenors would
|
||||
have a clef-octave-change value of -1). The optional
|
||||
number attribute refers to staff numbers, from top to
|
||||
bottom on the system. A value of 1 is assumed if not
|
||||
present.
|
||||
-->
|
||||
<!ELEMENT clef (sign, line?, clef-octave-change?)>
|
||||
<!ATTLIST clef
|
||||
number CDATA #IMPLIED
|
||||
%color;
|
||||
>
|
||||
<!ELEMENT sign (#PCDATA)>
|
||||
<!ELEMENT line (#PCDATA)>
|
||||
<!ELEMENT clef-octave-change (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The staff-details element is used to indicate different
|
||||
types of staves. The staff-type element can be ossia,
|
||||
cue, editorial, regular, or alternate. An alternate
|
||||
staff indicates one that shares the same musical data
|
||||
as the prior staff, but displayed differently (e.g.,
|
||||
treble and bass clef, standard notation and tab).
|
||||
The staff-lines element specifies the number of lines for
|
||||
non 5-line staffs. The staff-tuning and capo elements are
|
||||
used to specify tuning when using tablature notation.
|
||||
The optional number attribute specifies the staff number
|
||||
from top to bottom on the system, as with clef. The
|
||||
optional show-frets attribute indicates whether to show
|
||||
tablature frets as numbers (0, 1, 2) or letters (a, b, c).
|
||||
The default choice is numbers. The print-object attribute
|
||||
is used to indicate when a staff is not printed in a part,
|
||||
usually in large scores where empty parts are omitted.
|
||||
It is yes by default. If print-spacing is yes while
|
||||
print-object is no, the score is printed in cutaway
|
||||
format where vertical space is left for the empty part.
|
||||
-->
|
||||
<!ELEMENT staff-details (staff-type?, staff-lines?,
|
||||
staff-tuning*, capo?, staff-size?)>
|
||||
<!ATTLIST staff-details
|
||||
number CDATA #IMPLIED
|
||||
show-frets (numbers | letters) #IMPLIED
|
||||
%print-object;
|
||||
%print-spacing;
|
||||
>
|
||||
<!ELEMENT staff-type (#PCDATA)>
|
||||
<!ELEMENT staff-lines (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The tuning-step, tuning-alter, and tuning-octave
|
||||
elements are defined in the common.dtd file. Staff
|
||||
lines are numbered from bottom to top.
|
||||
-->
|
||||
<!ELEMENT staff-tuning
|
||||
(tuning-step, tuning-alter?, tuning-octave)>
|
||||
<!ATTLIST staff-tuning
|
||||
line CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!--
|
||||
The capo element indicates at which fret a capo should
|
||||
be placed on a fretted instrument. This changes the
|
||||
open tuning of the strings specified by staff-tuning
|
||||
by the specified number of half-steps.
|
||||
-->
|
||||
<!ELEMENT capo (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The staff-size element indicates how large a staff
|
||||
space is on this staff, expressed as a percentage of
|
||||
the work's default scaling. Values less than 100 make
|
||||
the staff space smaller while values over 100 make the
|
||||
staff space larger. A staff-type of cue, ossia, or
|
||||
editorial implies a staff-size of less than 100, but
|
||||
the exact value is implementation-dependent unless
|
||||
specified here. Staff size affects staff height only,
|
||||
not the relationship of the staff to the left and
|
||||
right margins.
|
||||
-->
|
||||
<!ELEMENT staff-size (#PCDATA)>
|
||||
|
||||
<!--
|
||||
If the part is being encoded for a transposing instrument
|
||||
in written vs. concert pitch, the transposition must be
|
||||
encoded in the transpose element. The transposition is
|
||||
represented by chromatic steps (required) and three
|
||||
optional elements: diatonic pitch steps, octave changes,
|
||||
and doubling an octave down. The chromatic and
|
||||
octave-change elements are numeric values added to the
|
||||
encoded pitch data to create the sounding pitch. The
|
||||
diatonic element is also numeric and allows for correct
|
||||
spelling of enharmonic transpositions.
|
||||
-->
|
||||
<!ELEMENT transpose (diatonic?, chromatic, octave-change?,
|
||||
double?)>
|
||||
<!ELEMENT diatonic (#PCDATA)>
|
||||
<!ELEMENT chromatic (#PCDATA)>
|
||||
<!ELEMENT octave-change (#PCDATA)>
|
||||
<!ELEMENT double EMPTY>
|
||||
|
||||
<!--
|
||||
Directives are like directions, but can be grouped
|
||||
together with attributes for convenience. This is
|
||||
typically used for tempo markings at the beginning
|
||||
of a piece of music. The language is Italian ("it")
|
||||
by default. Language names come from ISO 639, with
|
||||
optional country subcodes from ISO 3166.
|
||||
-->
|
||||
<!ELEMENT directive (#PCDATA)>
|
||||
<!ATTLIST directive
|
||||
%print-style;
|
||||
xml:lang NMTOKEN #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
A measure-style indicates a special way to print
|
||||
partial to multiple measures within a part. This
|
||||
includes multiple rests over several measures,
|
||||
repeats of betas, single, or multiple measures,
|
||||
and use of slash notation.
|
||||
|
||||
The multiple-rest and measure-repeat symbols
|
||||
indicate the number of measures covered in the
|
||||
element content. The beat-repeat and slash
|
||||
elements can cover partial measures. All but the
|
||||
multiple-rest element use a type attribute to
|
||||
indicate starting and stopping the use of the
|
||||
style. The optional number attribute specifies
|
||||
the staff number from top to bottom on the system,
|
||||
as with clef.
|
||||
-->
|
||||
<!ELEMENT measure-style (multiple-rest |
|
||||
measure-repeat | beat-repeat | slash)>
|
||||
<!ATTLIST measure-style
|
||||
number CDATA #IMPLIED
|
||||
%font;
|
||||
%color;
|
||||
>
|
||||
|
||||
<!--
|
||||
The text of the multiple-rest element indicates the
|
||||
number of measures in the multiple rest. Multiple
|
||||
rests may use the 1-bar / 2-bar / 4-bar rest
|
||||
symbols, or a single shape. The use-symbols
|
||||
attribute indicates which to use; it is no
|
||||
if not specified.
|
||||
-->
|
||||
<!ELEMENT multiple-rest (#PCDATA)>
|
||||
<!ATTLIST multiple-rest
|
||||
use-symbols %yes-no; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
The measure-repeat and beat-repeat element specify
|
||||
a notation style for repetitions. The actual music
|
||||
being repeated needs to be repeated within the
|
||||
MusicXML file. These elements indicate to use the
|
||||
appropriate notation to indicate the repeat.
|
||||
-->
|
||||
|
||||
<!--
|
||||
The measure-repeat element is used for both
|
||||
single and multiple measure repeats. The text
|
||||
of the element indicates the number of measures
|
||||
to be repeated in a single pattern. The slashes
|
||||
attribute specifies the number of slashes to
|
||||
use in the repeat sign. It is 1 if not specified.
|
||||
Both the start and the stop of the measure-repeat
|
||||
must be specified.
|
||||
-->
|
||||
<!ELEMENT measure-repeat (#PCDATA)>
|
||||
<!ATTLIST measure-repeat
|
||||
type %start-stop; #REQUIRED
|
||||
slashes NMTOKEN #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
The beat-repeat element is used to indicate
|
||||
that a single beat (but possibly many notes)
|
||||
is repeated. Both the start and stop of the
|
||||
beat being repeated should be specified. The
|
||||
slashes attribute specifies the number of
|
||||
slashes to use in the symbol. The use-dots
|
||||
attribute indicates whether or not to use
|
||||
dots as well (for instance, with mixed
|
||||
rhythm patterns). By default, the value for
|
||||
slashes is 1 and the value for use-dots
|
||||
is no.
|
||||
-->
|
||||
<!ELEMENT beat-repeat EMPTY>
|
||||
<!ATTLIST beat-repeat
|
||||
type %start-stop; #REQUIRED
|
||||
slashes NMTOKEN #IMPLIED
|
||||
use-dots %yes-no; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
The slash element is used to indicate that
|
||||
slash notation is to be used. If the slash is
|
||||
on every beat, use-stems is no (the default).
|
||||
To indicate rhythms but not pitches, use-stems
|
||||
is set to yes. The type attribute indicates
|
||||
whether this is the start or stop of a slash
|
||||
notation style. The use-dots attribute works
|
||||
as for the beat-repeat element, and only
|
||||
has effect if use-stems is no.
|
||||
-->
|
||||
<!ELEMENT slash EMPTY>
|
||||
<!ATTLIST slash
|
||||
type %start-stop; #REQUIRED
|
||||
use-dots %yes-no; #IMPLIED
|
||||
use-stems %yes-no; #IMPLIED
|
||||
>
|
98
musicxml11/barline.dtd
Executable file
98
musicxml11/barline.dtd
Executable file
|
@ -0,0 +1,98 @@
|
|||
<!--
|
||||
MusicXML barline.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
|
||||
-->
|
||||
|
||||
<!--
|
||||
If a barline is other than a normal single barline, it
|
||||
should be represented by a barline element that describes
|
||||
it. This includes information about repeats and multiple
|
||||
endings, as well as line style. Barline data is on the
|
||||
same level as the other musical data in a score - a child
|
||||
of a measure in a partwise score, or a part in a timewise
|
||||
score. This allows for barlines within measures, as in
|
||||
dotted barlines that subdivide measures in complex
|
||||
meters. The two fermata elements allow for fermatas
|
||||
on both sides of the barline (the lower one inverted).
|
||||
|
||||
Barlines have a location attribute to make it easier to
|
||||
process barlines independently of the other musical data
|
||||
in a score. It is often easier to set up measures
|
||||
separately from entering notes. The location attribute
|
||||
must match where the barline element occurs within the
|
||||
rest of the musical data in the score. If location is
|
||||
left, it should be the first element in the measure; if
|
||||
location is right, it should be the last element. If no
|
||||
location is specified, the right barline is the default.
|
||||
-->
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!ELEMENT barline (bar-style?, %editorial;, wavy-line?,
|
||||
segno?, coda?, (fermata, fermata?)?, ending?, repeat?)>
|
||||
<!ATTLIST barline
|
||||
location (right | left | middle) "right"
|
||||
>
|
||||
|
||||
<!--
|
||||
Bar-style contains style information. Choices are
|
||||
regular, dotted, dashed, heavy, light-light,
|
||||
light-heavy, heavy-light, heavy-heavy, and none.
|
||||
-->
|
||||
<!ELEMENT bar-style (#PCDATA)>
|
||||
<!ATTLIST bar-style
|
||||
%color;
|
||||
>
|
||||
|
||||
<!--
|
||||
The voice entity and the wavy-line, segno, and fermata
|
||||
elements are defined in the common.dtd file. They can
|
||||
apply to both notes and barlines.
|
||||
-->
|
||||
|
||||
<!--
|
||||
Endings refers to multiple (e.g. first and second)
|
||||
endings. Typically, the start type is associated with
|
||||
the left barline of the first measure in an ending. The
|
||||
stop and discontinue types are associated with the right
|
||||
barline of the last measure in an ending. Stop is used
|
||||
when the ending mark concludes with a downward jog, as
|
||||
is the case for first endings. Discontinue is used when
|
||||
there is no downward jog, as in the final ending. The
|
||||
length of the jog can be specified using the end-length
|
||||
attribute. The number attribute reflects what is under
|
||||
the ending line. Single endings such as "1" or multiple
|
||||
endings such as "1, 2" may be used. The ending element
|
||||
text is used when the text displayed in the ending is
|
||||
different than what appears in the number attribute.
|
||||
-->
|
||||
<!ELEMENT ending (#PCDATA)>
|
||||
<!ATTLIST ending
|
||||
number CDATA #REQUIRED
|
||||
type (start | stop | discontinue) #REQUIRED
|
||||
%print-style;
|
||||
end-length %tenths; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Repeat marks. The start of the repeat has a forward
|
||||
direction while the end of the repeat has a backward
|
||||
direction. Backward repeats that are not part of an
|
||||
ending can use the times attribute to indicate the
|
||||
number of times the repeated section is played.
|
||||
-->
|
||||
<!ELEMENT repeat EMPTY>
|
||||
<!ATTLIST repeat
|
||||
direction (backward | forward) #REQUIRED
|
||||
times CDATA #IMPLIED
|
||||
>
|
644
musicxml11/common.dtd
Executable file
644
musicxml11/common.dtd
Executable file
|
@ -0,0 +1,644 @@
|
|||
<!--
|
||||
MusicXML common.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 file contains entities and elements that are common
|
||||
across multiple component DTDs. In particular, several
|
||||
elements here are common across both notes and measures.
|
||||
-->
|
||||
|
||||
<!-- Entities -->
|
||||
|
||||
<!--
|
||||
If greater ASCII compatibility is desired, entity
|
||||
references may be used instead of the direct Unicode
|
||||
characters. Currently we include ISO Latin-1 for Western
|
||||
European characters and ISO Latin-2 for Central European
|
||||
characters.
|
||||
-->
|
||||
<!ENTITY % ISOlat1 PUBLIC
|
||||
"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
|
||||
"ISOlat1.pen">
|
||||
%ISOlat1;
|
||||
<!ENTITY % ISOlat2 PUBLIC
|
||||
"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
|
||||
"ISOlat2.pen">
|
||||
%ISOlat2;
|
||||
|
||||
<!--
|
||||
Data types. These nearly all resolve to strings but
|
||||
show intent for how data is formatted and used.
|
||||
-->
|
||||
|
||||
<!--
|
||||
Calendar dates are represented yyyy-mm-dd format,
|
||||
following ISO 8601.
|
||||
-->
|
||||
<!ENTITY % yyyy-mm-dd "(#PCDATA)">
|
||||
|
||||
<!--
|
||||
The tenths entity is a number representing tenths of
|
||||
interline space (positive or negative) for use in
|
||||
attributes. The layout-tenths entity is the same for
|
||||
use in elements. Both integer and decimal values are
|
||||
allowed, such as 5 for a half space and 2.5 for a
|
||||
quarter space.
|
||||
-->
|
||||
<!ENTITY % tenths "CDATA">
|
||||
<!ENTITY % layout-tenths "(#PCDATA)">
|
||||
|
||||
<!--
|
||||
Common structures between element and attribute definitions.
|
||||
-->
|
||||
|
||||
<!--
|
||||
Two entities for editorial information in notes. These
|
||||
entities, and their elements defined below, are used
|
||||
across all the different component DTDs.
|
||||
-->
|
||||
<!ENTITY % editorial "(footnote?, level?)">
|
||||
<!ENTITY % editorial-voice "(footnote?, level?, voice?)">
|
||||
|
||||
<!--
|
||||
The start-stop and start-stop-continue entities are used
|
||||
for musical elements that can either start or stop, such
|
||||
as slurs, tuplets, and wedges. The start-stop-continue
|
||||
entity is used when there is a need to refer to an
|
||||
intermediate point in the symbol, as for complex slurs.
|
||||
-->
|
||||
<!ENTITY % start-stop "(start | stop)">
|
||||
<!ENTITY % start-stop-continue "(start | stop | continue)">
|
||||
|
||||
<!--
|
||||
The yes-no entity is used for boolean-like attributes.
|
||||
-->
|
||||
<!ENTITY % yes-no "(yes | no)">
|
||||
|
||||
<!--
|
||||
The symbol-size entity is used to indicate full vs.
|
||||
cue-sized vs. oversized symbols. The large value
|
||||
for oversized symbols was added in version 1.1.
|
||||
-->
|
||||
<!ENTITY % symbol-size "(full | cue | large)">
|
||||
|
||||
<!--
|
||||
The up-down entity is used for arrow direction,
|
||||
indicating which way the tip is pointing.
|
||||
-->
|
||||
<!ENTITY % up-down "(up | down)">
|
||||
|
||||
<!--
|
||||
The top-bottom entity is used to indicate the top or
|
||||
bottom part of a vertical shape like non-arpeggiate.
|
||||
-->
|
||||
<!ENTITY % top-bottom "(top | bottom)">
|
||||
|
||||
|
||||
<!--
|
||||
The position attributes are based on MuseData print
|
||||
suggestions. For most elements, any program will compute
|
||||
a default x and y position. The position attributes let
|
||||
this be changed two ways.
|
||||
|
||||
The default-x and default-y attributes change the
|
||||
computation of the default position. For most elements,
|
||||
the origin is changed relative to the left-hand side of
|
||||
the note or the musical position within the bar (x) and
|
||||
the top line of the staff (y).
|
||||
|
||||
For the following elements, the default-x value changes
|
||||
the origin relative to the start of the current measure:
|
||||
|
||||
- note
|
||||
- figured-bass
|
||||
- harmony
|
||||
- link
|
||||
- directive
|
||||
- all descendants of the part-list element
|
||||
- all children of the direction-type element
|
||||
|
||||
For the note, figured-bass, and harmony elements, the
|
||||
default-x value is considered to have adjusted the
|
||||
musical position within the bar for its descendant
|
||||
elements.
|
||||
|
||||
Since the <credit-words> element is not related to a
|
||||
measure, in this case the default-x and default-y
|
||||
attributes adjust the origin relative to the bottom
|
||||
left-hand corner of the first page.
|
||||
|
||||
The relative-x and relative-y attributes change the
|
||||
position relative to the default position, either as
|
||||
computed by the individual program, or as overridden by
|
||||
the default-x and default-y attributes.
|
||||
|
||||
Positive x is right, negative x is left; positive y
|
||||
is up, negative y is down. All units are in tenths of
|
||||
interline space. For stems, positive relative-y
|
||||
lengthens a stem while negative relative-y shortens it.
|
||||
|
||||
As elsewhere in MusicXML, tenths are the global tenths
|
||||
defined by the <scaling> element, not the local tenths
|
||||
of a staff resized by the <staff-size> element.
|
||||
|
||||
-->
|
||||
<!ENTITY % position
|
||||
"default-x %tenths; #IMPLIED
|
||||
default-y %tenths; #IMPLIED
|
||||
relative-x %tenths; #IMPLIED
|
||||
relative-y %tenths; #IMPLIED">
|
||||
|
||||
<!--
|
||||
The placement attribute indicates whether something is
|
||||
above or below another element, such as a note or a
|
||||
notation.
|
||||
-->
|
||||
<!ENTITY % placement
|
||||
"placement (above | below) #IMPLIED">
|
||||
|
||||
<!--
|
||||
The orientation attribute indicates whether slurs and
|
||||
ties are overhand (tips down) or underhand (tips up).
|
||||
This is distinct from the placement entity used by any
|
||||
notation type.
|
||||
-->
|
||||
<!ENTITY % orientation
|
||||
"orientation (over | under) #IMPLIED">
|
||||
|
||||
<!--
|
||||
The bezier entity is used to indicate the curvature of
|
||||
slurs and ties, representing the control points for a
|
||||
cubic bezier curve. For ties, the bezier entity is
|
||||
used with the tied element.
|
||||
|
||||
Normal slurs, S-shaped slurs, and ties need only two
|
||||
bezier points: one associated with the start of the slur
|
||||
or tie, the other with the stop. Complex slurs and slurs
|
||||
divided over system breaks can specify additional
|
||||
bezier data at slur elements with a continue type.
|
||||
|
||||
The bezier-offset, bezier-x, and bezier-y attributes
|
||||
describe the outgoing bezier point for slurs and ties
|
||||
with a start type, and the incoming bezier point for
|
||||
slurs and ties with types of stop or continue. The
|
||||
attributes bezier-offset2, bezier-x2, and bezier-y2
|
||||
are only valid with slurs of type continue, and
|
||||
describe the outgoing bezier point.
|
||||
|
||||
The bezier-offset and bezier-offset2 attributes are
|
||||
measured in terms of musical divisions, like the offset
|
||||
element. These are the recommended attributes for
|
||||
specifying horizontal position. The other attributes
|
||||
are specified in tenths, relative to any position
|
||||
settings associated with the slur or tied element.
|
||||
-->
|
||||
<!ENTITY % bezier
|
||||
"bezier-offset CDATA #IMPLIED
|
||||
bezier-offset2 CDATA #IMPLIED
|
||||
bezier-x %tenths; #IMPLIED
|
||||
bezier-y %tenths; #IMPLIED
|
||||
bezier-x2 %tenths; #IMPLIED
|
||||
bezier-y2 %tenths; #IMPLIED">
|
||||
|
||||
<!--
|
||||
Slurs, tuplets, and many other features can be
|
||||
concurrent and overlapping within a single musical
|
||||
part. The number-level attribute distinguishes up to
|
||||
six concurrent objects of the same type. A reading
|
||||
program should be prepared to handle cases where
|
||||
the number-levels stop in an arbitrary order.
|
||||
Different numbers are needed when the features
|
||||
overlap in MusicXML file order.
|
||||
-->
|
||||
<!ENTITY % number-level "(1 | 2 | 3 | 4 | 5 | 6)">
|
||||
|
||||
<!--
|
||||
MusicXML supports six levels of beaming, up to 256th
|
||||
notes. Unlike the number-level attribute, the beam-level
|
||||
identifies concurrent beams in a beam group. It does not
|
||||
distinguish overlapping beams such as grace notes within
|
||||
regular notes, or beams used in different voices.
|
||||
-->
|
||||
<!ENTITY % beam-level "(1 | 2 | 3 | 4 | 5 | 6)">
|
||||
|
||||
<!--
|
||||
The font entity gathers together attributes for
|
||||
determining the font within a directive or direction.
|
||||
They are based on the text styles for Cascading
|
||||
Style Sheets. The font-family is a comma-separated list
|
||||
of font names. These can be specific font styles such
|
||||
as Maestro or Opus, or one of three generic font styles:
|
||||
music, serif, or sans-serif. The font-style can be
|
||||
normal or italic. The font-size can be one of the CSS
|
||||
sizes (xx-small, x-small, small, medium, large, x-large,
|
||||
xx-large) or a numeric point size. The font-weight can
|
||||
be normal or bold. The default is application-dependent,
|
||||
but is a text font vs. a music font.
|
||||
-->
|
||||
|
||||
<!ENTITY % font
|
||||
"font-family CDATA #IMPLIED
|
||||
font-style CDATA #IMPLIED
|
||||
font-size CDATA #IMPLIED
|
||||
font-weight CDATA #IMPLIED">
|
||||
|
||||
<!--
|
||||
The color entity indicates the color of an element.
|
||||
Color may be represented as hexadecimal RGB triples,
|
||||
as in HTML, or as hexadecimal ARGB tuples, with the
|
||||
A indicating alpha of transparency. An alpha value
|
||||
of 00 is totally transparent; FF is totally opaque.
|
||||
If RGB is used, the A value is assumed to be FF.
|
||||
|
||||
For instance, the RGB value "#800080" represents
|
||||
purple. An ARGB value of "#40800080" would be a
|
||||
transparent purple.
|
||||
|
||||
As in SVG 1.1, colors are defined in terms of the
|
||||
sRGB color space (IEC 61966).
|
||||
-->
|
||||
<!ENTITY % color
|
||||
"color CDATA #IMPLIED">
|
||||
|
||||
<!--
|
||||
The justify entity is used to indicate left, center,
|
||||
or right justification. The default value varies for
|
||||
different elements.
|
||||
-->
|
||||
<!ENTITY % justify
|
||||
"justify (left | center | right) #IMPLIED">
|
||||
|
||||
<!--
|
||||
In cases where text extends over more than one line,
|
||||
horizontal alignment and justify values can be
|
||||
different. The most typical case is for credits,
|
||||
such as:
|
||||
|
||||
Words and music by
|
||||
Pat Songwriter
|
||||
|
||||
Typically this type of credit is aligned to the right,
|
||||
so that the position information refers to the right-
|
||||
most part of the text. But in this example, the text
|
||||
is center-justified, not right-justified.
|
||||
|
||||
The halign attribute is used in these situations. If it
|
||||
is not present, its value is the same as for the justify
|
||||
attribute.
|
||||
-->
|
||||
<!ENTITY % halign
|
||||
"halign (left | center | right) #IMPLIED">
|
||||
|
||||
<!--
|
||||
The valign entity is used to indicate vertical
|
||||
alignment to the top, middle, bottom, or baseline
|
||||
of the text. Defaults are implementation-dependent.
|
||||
-->
|
||||
<!ENTITY % valign
|
||||
"valign (top | middle | bottom | baseline) #IMPLIED">
|
||||
|
||||
<!--
|
||||
The most popular combination of printing attributes
|
||||
is position, font, and color.
|
||||
-->
|
||||
<!ENTITY % print-style
|
||||
"%position;
|
||||
%font;
|
||||
%color;">
|
||||
|
||||
<!--
|
||||
The line-shape entity is used to distinguish between
|
||||
straight and curved lines. The line-type entity
|
||||
distinguishes between solid, dashed, dotted, and
|
||||
wavy lines.
|
||||
-->
|
||||
<!ENTITY % line-shape
|
||||
"line-shape (straight | curved) #IMPLIED">
|
||||
|
||||
<!ENTITY % line-type
|
||||
"line-type (solid | dashed | dotted | wavy) #IMPLIED">
|
||||
|
||||
<!--
|
||||
The printout entity is based on MuseData print
|
||||
suggestions. They allow a way to specify not to print
|
||||
print an object (e.g. note or rest), its augmentation
|
||||
dots, or its lyrics. This is especially useful for notes
|
||||
that overlap in different voices, or for chord sheets
|
||||
that contain lyrics and chords but no melody. For wholly
|
||||
invisible notes, such as those providing sound-only data,
|
||||
the attribute for print-spacing may be set to no so that
|
||||
no space is left for this note. The print-spacing value
|
||||
is only used if no note, dot, or lyric is being printed.
|
||||
|
||||
By default, all these attributes are set to yes. If
|
||||
print-object is set to no, print-dot and print-lyric are
|
||||
interpreted to also be set to no if they are not present.
|
||||
-->
|
||||
<!ENTITY % print-object
|
||||
"print-object %yes-no; #IMPLIED">
|
||||
|
||||
<!ENTITY % print-spacing
|
||||
"print-spacing %yes-no; #IMPLIED">
|
||||
|
||||
<!ENTITY % printout
|
||||
"%print-object;
|
||||
print-dot %yes-no; #IMPLIED
|
||||
%print-spacing;
|
||||
print-lyric %yes-no; #IMPLIED">
|
||||
|
||||
<!--
|
||||
The trill-sound entity includes attributes used to guide
|
||||
the sound of trills, mordents, turns, shakes, and wavy
|
||||
lines, based on MuseData sound suggestions. The default
|
||||
choices are:
|
||||
|
||||
start-note = "upper"
|
||||
trill-step = "whole"
|
||||
two-note-turn = "none"
|
||||
accelerate = "no"
|
||||
beats = "4" (minimum of "2").
|
||||
|
||||
Second-beat and last-beat are percentages for landing
|
||||
on the indicated beat, with defaults of 25 and 75
|
||||
respectively.
|
||||
|
||||
For mordent and inverted-mordent elements, the defaults
|
||||
are different:
|
||||
|
||||
The default start-note is "main", not "upper".
|
||||
The default for beats is "3", not "4".
|
||||
The default for second-beat is "12", not "25".
|
||||
The default for last-beat is "24", not "75".
|
||||
-->
|
||||
<!ENTITY % trill-sound
|
||||
"start-note (upper | main | below) #IMPLIED
|
||||
trill-step (whole | half | unison) #IMPLIED
|
||||
two-note-turn (whole | half | none) #IMPLIED
|
||||
accelerate %yes-no; #IMPLIED
|
||||
beats CDATA #IMPLIED
|
||||
second-beat CDATA #IMPLIED
|
||||
last-beat CDATA #IMPLIED">
|
||||
|
||||
<!--
|
||||
The bend-sound entity is used for bend and slide
|
||||
elements, and is similar to the trill-sound. Here the
|
||||
beats element refers to the number of discrete elements
|
||||
(like MIDI pitch bends) used to represent a continuous
|
||||
bend or slide. The first-beat indicates the percentage
|
||||
of the direction for starting a bend; the last-beat the
|
||||
percentage for ending it. The default choices are:
|
||||
|
||||
accelerate = "no"
|
||||
beats = "4" (minimum of "2")
|
||||
first-beat = "25"
|
||||
last-beat = "75"
|
||||
-->
|
||||
<!ENTITY % bend-sound
|
||||
"accelerate %yes-no; #IMPLIED
|
||||
beats CDATA #IMPLIED
|
||||
first-beat CDATA #IMPLIED
|
||||
last-beat CDATA #IMPLIED">
|
||||
|
||||
<!--
|
||||
The level-display entity allows specification of
|
||||
three common ways to indicate editorial indications:
|
||||
putting parentheses or square brackets around a
|
||||
symbol, or making the symbol a different size. If
|
||||
not specified, they are left to application defaults.
|
||||
It is used by the level and accidental elements.
|
||||
-->
|
||||
<!ENTITY % level-display
|
||||
"parentheses %yes-no; #IMPLIED
|
||||
bracket %yes-no; #IMPLIED
|
||||
size %symbol-size; #IMPLIED">
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!--
|
||||
Footnote and level are used to specify editorial
|
||||
information, while voice is used to distinguish
|
||||
between multiple voices (what MuseData calls tracks)
|
||||
in individual parts. These elements are used
|
||||
throughout the component MusicXML DTDs. If the
|
||||
reference attribute for the level element is yes,
|
||||
this indicates editorial information that is for
|
||||
display only and should not affect playback. For
|
||||
instance, a modern edition of older music may set
|
||||
reference="yes" on the attributes containing the
|
||||
music's original clef, key, and time signature.
|
||||
It is no by default.
|
||||
-->
|
||||
<!ELEMENT footnote (#PCDATA)>
|
||||
<!ATTLIST footnote
|
||||
%justify;
|
||||
%halign;
|
||||
%valign;
|
||||
%print-style;
|
||||
>
|
||||
<!ELEMENT level (#PCDATA)>
|
||||
<!ATTLIST level
|
||||
reference %yes-no; #IMPLIED
|
||||
%level-display;
|
||||
>
|
||||
<!ELEMENT voice (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Fermata and wavy-line elements can be applied both to
|
||||
notes and to measures, so they are defined here. Wavy
|
||||
lines are one way to indicate trills; when used with a
|
||||
measure element, they should always have type="continue"
|
||||
set. The fermata type is upright if not specified.
|
||||
-->
|
||||
<!ELEMENT fermata EMPTY>
|
||||
<!ATTLIST fermata
|
||||
type (upright | inverted) #IMPLIED
|
||||
%print-style;
|
||||
>
|
||||
<!ELEMENT wavy-line EMPTY>
|
||||
<!ATTLIST wavy-line
|
||||
type %start-stop-continue; #REQUIRED
|
||||
number %beam-level; #IMPLIED
|
||||
%position;
|
||||
%placement;
|
||||
%color;
|
||||
%trill-sound;
|
||||
>
|
||||
|
||||
<!--
|
||||
Staff assignment is only needed for music notated on
|
||||
multiple staves. Used by both notes and directions.
|
||||
Staff values are numbers, with 1 referring to the
|
||||
top-most staff in a part.
|
||||
-->
|
||||
<!ELEMENT staff (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Segno and coda signs can be associated with a measure
|
||||
or a general musical direction. These are visual
|
||||
indicators only; a sound element is needed to guide
|
||||
playback applications reliably.
|
||||
-->
|
||||
<!ELEMENT segno EMPTY>
|
||||
<!ATTLIST segno
|
||||
%print-style;
|
||||
>
|
||||
|
||||
<!ELEMENT coda EMPTY>
|
||||
<!ATTLIST coda
|
||||
%print-style;
|
||||
>
|
||||
|
||||
<!--
|
||||
Dynamics can be associated either with a note or a
|
||||
general musical direction. To avoid inconsistencies
|
||||
between and amongst the letter abbreviations for
|
||||
dynamics (what is sf vs. sfz, standing alone or with a
|
||||
trailing dynamic that is not always piano), we use the
|
||||
actual letters as the names of these dynamic elements.
|
||||
The element other-dynamics allows other dynamic marks
|
||||
that are not covered here, but many of those should
|
||||
perhaps be included in a more general musical
|
||||
direction element. Dynamics may also be combined as
|
||||
in <sf/><mp/>.
|
||||
|
||||
These letter dynamic symbols are separated from
|
||||
crescendo, decrescendo, and wedge indications. Dynamic
|
||||
representation is basically inconsistent in scores
|
||||
(lots of things are assumed by the composer and left out,
|
||||
such as returns to original dynamics), and is quite
|
||||
complex to do systematically. Humdrum for instance has
|
||||
at least 3 representation formats related to dynamics.
|
||||
MusicXML captures what is in the score, but does not try
|
||||
to be optimal for analysis or synthesis of dynamics.
|
||||
-->
|
||||
<!ELEMENT dynamics ((p | pp | ppp | pppp | ppppp | pppppp |
|
||||
f | ff | fff | ffff | fffff | ffffff | mp | mf | sf |
|
||||
sfp | sfpp | fp | rf | rfz | sfz | sffz | fz |
|
||||
other-dynamics)*)>
|
||||
<!ATTLIST dynamics
|
||||
%print-style;
|
||||
%placement;
|
||||
>
|
||||
<!ELEMENT p EMPTY>
|
||||
<!ELEMENT pp EMPTY>
|
||||
<!ELEMENT ppp EMPTY>
|
||||
<!ELEMENT pppp EMPTY>
|
||||
<!ELEMENT ppppp EMPTY>
|
||||
<!ELEMENT pppppp EMPTY>
|
||||
<!ELEMENT f EMPTY>
|
||||
<!ELEMENT ff EMPTY>
|
||||
<!ELEMENT fff EMPTY>
|
||||
<!ELEMENT ffff EMPTY>
|
||||
<!ELEMENT fffff EMPTY>
|
||||
<!ELEMENT ffffff EMPTY>
|
||||
<!ELEMENT mp EMPTY>
|
||||
<!ELEMENT mf EMPTY>
|
||||
<!ELEMENT sf EMPTY>
|
||||
<!ELEMENT sfp EMPTY>
|
||||
<!ELEMENT sfpp EMPTY>
|
||||
<!ELEMENT fp EMPTY>
|
||||
<!ELEMENT rf EMPTY>
|
||||
<!ELEMENT rfz EMPTY>
|
||||
<!ELEMENT sfz EMPTY>
|
||||
<!ELEMENT sffz EMPTY>
|
||||
<!ELEMENT fz EMPTY>
|
||||
<!ELEMENT other-dynamics (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The fret, string, and fingering elements can be
|
||||
used either in a technical element for a note
|
||||
or in a frame element as part of a chord symbol.
|
||||
-->
|
||||
|
||||
<!--
|
||||
Fingering is typically indicated 1,2,3,4,5. Multiple
|
||||
fingerings may be given, typically to substitute
|
||||
fingerings in the middle of a note. The substitution
|
||||
and alternate values are "no" if the attribute is
|
||||
not present. For guitar and other fretted instruments,
|
||||
the fingering element represents the fretting finger;
|
||||
the pluck element represents the plucking finger.
|
||||
-->
|
||||
<!ELEMENT fingering (#PCDATA)>
|
||||
<!ATTLIST fingering
|
||||
substitution %yes-no; #IMPLIED
|
||||
alternate %yes-no; #IMPLIED
|
||||
%print-style;
|
||||
%placement;
|
||||
>
|
||||
|
||||
<!--
|
||||
Fret and string are used with tablature notation
|
||||
and chord symbols. Fret numbers start with 0 for
|
||||
an open string and 1 for the first fret. String
|
||||
numbers start with 1 for the highest string.
|
||||
String can also be used in regular notation.
|
||||
-->
|
||||
<!ELEMENT fret (#PCDATA)>
|
||||
<!ATTLIST fret
|
||||
%font;
|
||||
%color;
|
||||
>
|
||||
<!ELEMENT string (#PCDATA)>
|
||||
<!ATTLIST string
|
||||
%print-style;
|
||||
%placement;
|
||||
>
|
||||
|
||||
<!--
|
||||
The tuning-step, tuning-alter, and tuning-octave
|
||||
elements are represented like the step, alter, and
|
||||
octave elements, with different names to reflect their
|
||||
different function. They are used in the staff-tuning
|
||||
and accord elements.
|
||||
-->
|
||||
<!ELEMENT tuning-step (#PCDATA)>
|
||||
<!ELEMENT tuning-alter (#PCDATA)>
|
||||
<!ELEMENT tuning-octave (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The midi-instrument element can be a part of either
|
||||
the score-instrument element at the start of a part,
|
||||
or the sound element within a part. The id attribute
|
||||
refers to the score-instrument affected by the change.
|
||||
-->
|
||||
<!ELEMENT midi-instrument
|
||||
(midi-channel?, midi-name?, midi-bank?, midi-program?,
|
||||
midi-unpitched?)>
|
||||
<!ATTLIST midi-instrument
|
||||
id IDREF #REQUIRED
|
||||
>
|
||||
|
||||
<!-- MIDI channel numbers range from 1 to 16. -->
|
||||
<!ELEMENT midi-channel (#PCDATA)>
|
||||
|
||||
<!--
|
||||
MIDI names correspond to ProgramName meta-events within
|
||||
a Standard MIDI File.
|
||||
-->
|
||||
<!ELEMENT midi-name (#PCDATA)>
|
||||
|
||||
<!-- MIDI bank numbers range from 1 to 16,384. -->
|
||||
<!ELEMENT midi-bank (#PCDATA)>
|
||||
|
||||
<!-- MIDI program numbers range from 1 to 128. -->
|
||||
<!ELEMENT midi-program (#PCDATA)>
|
||||
|
||||
<!--
|
||||
For unpitched instruments, specify a MIDI note number
|
||||
ranging from 1 to 128. Usually used with MIDI banks
|
||||
for percussion.
|
||||
-->
|
||||
<!ELEMENT midi-unpitched (#PCDATA)>
|
616
musicxml11/direction.dtd
Executable file
616
musicxml11/direction.dtd
Executable file
|
@ -0,0 +1,616 @@
|
|||
<!--
|
||||
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
|
||||
>
|
99
musicxml11/identity.dtd
Executable file
99
musicxml11/identity.dtd
Executable file
|
@ -0,0 +1,99 @@
|
|||
<!--
|
||||
MusicXML identity.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 identify component DTD contains the identification
|
||||
element and its children, containing metadata about a
|
||||
score.
|
||||
-->
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!--
|
||||
Identification contains basic metadata about the score.
|
||||
It includes the information in MuseData headers that
|
||||
may apply at a score-wide, movement-wide, or part-wide
|
||||
level. The creator and rights elements are based on
|
||||
Dublin Core.
|
||||
-->
|
||||
<!ELEMENT identification (creator*, rights*, encoding?,
|
||||
source?, miscellaneous?)>
|
||||
|
||||
<!--
|
||||
Creator is borrowed from Dublin Core. It is the composer
|
||||
of the score (the artist field in NIFF). The type
|
||||
attribute can be used to distinguish words and music so
|
||||
as to represent lyricists and librettists as well as
|
||||
composers. Thus, there can be multiple creators in an
|
||||
identification. We do not use the creator / contributor
|
||||
distinction from Dublin Core.
|
||||
-->
|
||||
<!ELEMENT creator (#PCDATA)>
|
||||
<!ATTLIST creator
|
||||
type CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Rights is borrowed from Dublin Core. It contains
|
||||
copyright and other intellectual property notices.
|
||||
Words, music, and derivatives can have different types,
|
||||
so multiple rights tags with different type attributes
|
||||
are supported.
|
||||
-->
|
||||
<!ELEMENT rights (#PCDATA)>
|
||||
<!ATTLIST rights
|
||||
type CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Encoding contains information about who did the digital
|
||||
encoding, when, with what software, and in what aspects.
|
||||
The supports element indicates if the encoding supports
|
||||
a particular MusicXML element. This is recommended for
|
||||
elements like beam, stem, and accidental, where the
|
||||
absence of an element is ambiguous if you do not know
|
||||
if the encoding supports that element.
|
||||
-->
|
||||
<!ELEMENT encoding ((encoding-date | encoder | software |
|
||||
encoding-description | supports)*)>
|
||||
<!ELEMENT encoding-date %yyyy-mm-dd;>
|
||||
<!ELEMENT encoder (#PCDATA)>
|
||||
<!ATTLIST encoder
|
||||
type CDATA #IMPLIED
|
||||
>
|
||||
<!ELEMENT software (#PCDATA)>
|
||||
<!ELEMENT encoding-description (#PCDATA)>
|
||||
<!ELEMENT supports EMPTY>
|
||||
<!ATTLIST supports
|
||||
type %yes-no; #REQUIRED
|
||||
element CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!--
|
||||
The source for the music that is encoded. This is not
|
||||
quite the same as the Dublin Core publisher (or source)
|
||||
element, so we keep the MuseData terminology.
|
||||
-->
|
||||
<!ELEMENT source (#PCDATA)>
|
||||
|
||||
<!--
|
||||
If a program has other metadata not yet supported
|
||||
in MusicXML, it can go in the miscellaneous area.
|
||||
-->
|
||||
<!ELEMENT miscellaneous (miscellaneous-field*)>
|
||||
<!ELEMENT miscellaneous-field (#PCDATA)>
|
||||
<!ATTLIST miscellaneous-field
|
||||
name CDATA #REQUIRED
|
||||
>
|
120
musicxml11/layout.dtd
Executable file
120
musicxml11/layout.dtd
Executable file
|
@ -0,0 +1,120 @@
|
|||
<!--
|
||||
MusicXML layout.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
|
||||
-->
|
||||
|
||||
<!--
|
||||
MusicXML 1.1 adds layout information for pages,
|
||||
systems, staffs, and measures. These layout elements
|
||||
join the print and sound elements in providing
|
||||
formatting data as elements rather than attributes.
|
||||
|
||||
Everything is measured in tenths of staff space.
|
||||
Tenths are then scaled to millimeters within the
|
||||
scaling element, used in the defaults element at
|
||||
the start of a score. Individual staves can apply
|
||||
a scaling factor to adjust staff size. When a
|
||||
MusicXML element or attribute refers to tenths,
|
||||
it means the global tenths defined by the scaling
|
||||
element, not the local tenths as adjusted by the
|
||||
staff-size element.
|
||||
-->
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!--
|
||||
Margins, page sizes, and distances are all measured in
|
||||
tenths to keep MusicXML data in a consistent coordinate
|
||||
system as much as possible. The translation to absolute
|
||||
units is done in the scaling element, which specifies
|
||||
how many millimeters are equal to how many tenths. For
|
||||
a staff height of 7 mm, millimeters would be set to 7
|
||||
while tenths is set to 40. The ability to set a formula
|
||||
rather than a single scaling factor helps avoid roundoff
|
||||
errors.
|
||||
-->
|
||||
<!ELEMENT scaling (millimeters, tenths)>
|
||||
<!ELEMENT millimeters (#PCDATA)>
|
||||
<!ELEMENT tenths %layout-tenths;>
|
||||
|
||||
<!--
|
||||
Margin elements are included within many of the
|
||||
larger layout elements.
|
||||
-->
|
||||
<!ELEMENT left-margin %layout-tenths;>
|
||||
<!ELEMENT right-margin %layout-tenths;>
|
||||
<!ELEMENT top-margin %layout-tenths;>
|
||||
<!ELEMENT bottom-margin %layout-tenths;>
|
||||
|
||||
<!--
|
||||
Page layout can be defined both in score-wide
|
||||
defaults and in the print element. Page margins
|
||||
are specified either for both even and odd pages,
|
||||
or via separate odd and even page number values.
|
||||
The type is not needed when used in as part of
|
||||
a print element. If omitted when used in the
|
||||
defaults element, "both" is the default.
|
||||
-->
|
||||
<!ELEMENT page-layout (page-height, page-width,
|
||||
page-margins?, page-margins?)>
|
||||
<!ELEMENT page-height %layout-tenths;>
|
||||
<!ELEMENT page-width %layout-tenths;>
|
||||
<!ELEMENT page-margins (left-margin, right-margin,
|
||||
top-margin, bottom-margin)>
|
||||
<!ATTLIST page-margins
|
||||
type (odd | even | both) #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
System layout includes left and right margins and the
|
||||
vertical distance from the previous system. Margins
|
||||
are relative to the page margins. Positive values
|
||||
indent and negative values reduce the margin size.
|
||||
The system distance is measured from the bottom line
|
||||
of the previous system to the top line of the current
|
||||
system. It is ignored for the first system on a page.
|
||||
The top system distance is measured from the page's
|
||||
top margin to the top line of the first system. It is
|
||||
ignored for all but the first system on a page.
|
||||
-->
|
||||
<!ELEMENT system-layout
|
||||
(system-margins?, system-distance?, top-system-distance?)>
|
||||
<!ELEMENT system-margins (left-margin, right-margin)>
|
||||
<!ELEMENT system-distance %layout-tenths;>
|
||||
<!ELEMENT top-system-distance %layout-tenths;>
|
||||
|
||||
<!--
|
||||
Staff layout includes the vertical distance from
|
||||
the bottom line of the previous staff in this system
|
||||
to the top line of the staff specified by the number
|
||||
attribute. The first staff of the part is used if
|
||||
the number attribute is missing. When used in the
|
||||
defaults element, the values apply to all parts.
|
||||
This value is ignored for the first staff in a system.
|
||||
-->
|
||||
<!ELEMENT staff-layout (staff-distance?)>
|
||||
<!ELEMENT staff-distance %layout-tenths;>
|
||||
<!ATTLIST staff-layout
|
||||
number CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Measure layout includes the horizontal distance
|
||||
from the previous measure. This value is only used
|
||||
for systems where there is horizontal whitespace
|
||||
in the middle of a system, as in systems with codas.
|
||||
To specify the measure width, use the width attribute
|
||||
of the measure element.
|
||||
-->
|
||||
<!ELEMENT measure-layout (measure-distance?)>
|
||||
<!ELEMENT measure-distance %layout-tenths;>
|
60
musicxml11/link.dtd
Executable file
60
musicxml11/link.dtd
Executable file
|
@ -0,0 +1,60 @@
|
|||
<!--
|
||||
MusicXML link.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 DTD describes the entity and elements used for
|
||||
simple XLink support. The link element serves as an
|
||||
outgoing XLink. The bookmark element serves as a well-
|
||||
defined target for an incoming XLink. The entity for
|
||||
link-attributes is also used to connect a MusicXML
|
||||
score with a MusicXML opus.
|
||||
-->
|
||||
|
||||
<!-- Entities -->
|
||||
|
||||
<!--
|
||||
Namespace entity for the XLink recommendation.
|
||||
-->
|
||||
<!ENTITY % xlink.ns "http://www.w3.org/1999/xlink">
|
||||
|
||||
<!--
|
||||
The link-attributes entity includes all the
|
||||
simple XLink attributes supported in MusicXML.
|
||||
-->
|
||||
<!ENTITY % link-attributes
|
||||
"xmlns:xlink CDATA #FIXED '%xlink.ns;'
|
||||
xlink:href CDATA #REQUIRED
|
||||
xlink:type (simple) #FIXED 'simple'
|
||||
xlink:role CDATA #IMPLIED
|
||||
xlink:title CDATA #IMPLIED
|
||||
xlink:show (new | replace | embed | other | none)
|
||||
'replace'
|
||||
xlink:actuate (onRequest | onLoad | other | none)
|
||||
'onRequest'">
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!ELEMENT link EMPTY>
|
||||
<!ATTLIST link
|
||||
%link-attributes;
|
||||
name CDATA #IMPLIED
|
||||
%position;
|
||||
>
|
||||
|
||||
<!ELEMENT bookmark EMPTY>
|
||||
<!ATTLIST bookmark
|
||||
id ID #REQUIRED
|
||||
name CDATA #IMPLIED
|
||||
>
|
221
musicxml11/midixml.dtd
Executable file
221
musicxml11/midixml.dtd
Executable file
|
@ -0,0 +1,221 @@
|
|||
<!--
|
||||
Standard MIDI File DTD: MIDI XML
|
||||
|
||||
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
|
||||
-->
|
||||
|
||||
<!--
|
||||
MIDI XML is an XML representation of standard MIDI files.
|
||||
Unlike standard MIDI files, it can have timestamps
|
||||
present as either absolute or delta values. This makes
|
||||
it convenient as an intermediate format to convert from
|
||||
MusicXML or other formats where note on and note off are
|
||||
not represented as discrete events. To convert to
|
||||
standard MIDI files, delta values must be used.
|
||||
|
||||
Suggested use:
|
||||
|
||||
<!DOCTYPE MIDIFile PUBLIC
|
||||
"-//Recordare//DTD MusicXML 1.1 MIDI//EN"
|
||||
"http://www.musicxml.org/dtds/midixml.dtd">
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
For Standard MIDI Files, channels are required; events
|
||||
are not rechannelized.
|
||||
-->
|
||||
<!ENTITY % ChannelRequired "#REQUIRED">
|
||||
|
||||
<!-- Component DTDs -->
|
||||
|
||||
<!--
|
||||
The MMA MIDI DTD contains the definitions of all
|
||||
MIDI events. Its regular address is:
|
||||
|
||||
http://www.midi.org/dtds/MIDIEvents10.dtd
|
||||
|
||||
For convenience, we include a local copy with our
|
||||
definition, and reference that here.
|
||||
-->
|
||||
<!ENTITY % midi PUBLIC
|
||||
"-//MIDI Manufacturers Association//DTD MIDIEvents 1.0//EN"
|
||||
"MIDIEvents10.dtd">
|
||||
%midi;
|
||||
|
||||
<!--
|
||||
Timestamps are either delta or absolute. They must all
|
||||
be one or the other throughout the MidiXML file.
|
||||
Timestamps are numeric values measured in MIDI ticks.
|
||||
-->
|
||||
<!ENTITY % Timestamp "(Delta | Absolute)">
|
||||
<!ELEMENT Delta (#PCDATA)>
|
||||
<!ELEMENT Absolute (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Standard MIDI File events include MIDI Channel messages,
|
||||
meta-events, and system exclusive events. Each track is
|
||||
a series of events. The MetaEvent and SysExEvent elements
|
||||
are defined below. The MIDIChannelMessage and MIDIMessage
|
||||
events are defined in the MMA's MIDI DTD (RP-038).
|
||||
-->
|
||||
<!ENTITY % MetaEvent
|
||||
"(SequenceNumber | TextEvent | CopyrightNotice |
|
||||
TrackName | InstrumentName | Lyric | Marker |
|
||||
CuePoint | ProgramName | DeviceName | Port |
|
||||
MIDIChannelPrefix | EndOfTrack | SetTempo |
|
||||
SMPTEOffset | TimeSignature | KeySignature |
|
||||
SequencerSpecific | OtherMetaEvent)">
|
||||
|
||||
<!ENTITY % SysExEvent
|
||||
"(SystemExclusive | EndOfExclusive)">
|
||||
|
||||
<!ENTITY % SmfEvent
|
||||
"(%MIDIChannelMessage; | %MetaEvent; | %SysExEvent;)">
|
||||
|
||||
<!ELEMENT Event (%Timestamp;, %SmfEvent;)>
|
||||
|
||||
<!--
|
||||
MIDI meta events. If empty, the value for the event
|
||||
is contained in an attribute, following the pattern
|
||||
of the MMA's MIDI DTD. Textual meta events have their
|
||||
values as text within the element.
|
||||
-->
|
||||
<!ELEMENT SequenceNumber EMPTY>
|
||||
<!ATTLIST SequenceNumber
|
||||
Value NMTOKEN #REQUIRED>
|
||||
<!ELEMENT TextEvent (#PCDATA)>
|
||||
<!ELEMENT CopyrightNotice (#PCDATA)>
|
||||
<!ELEMENT TrackName (#PCDATA)>
|
||||
<!ELEMENT InstrumentName (#PCDATA)>
|
||||
<!ELEMENT Lyric (#PCDATA)>
|
||||
<!ELEMENT Marker (#PCDATA)>
|
||||
<!ELEMENT CuePoint (#PCDATA)>
|
||||
<!ELEMENT MIDIChannelPrefix EMPTY>
|
||||
<!ATTLIST MIDIChannelPrefix
|
||||
Value NMTOKEN #REQUIRED>
|
||||
<!ELEMENT EndOfTrack EMPTY>
|
||||
<!ELEMENT SetTempo EMPTY>
|
||||
<!ATTLIST SetTempo
|
||||
Value NMTOKEN #REQUIRED>
|
||||
<!ELEMENT SMPTEOffset EMPTY>
|
||||
<!ATTLIST SMPTEOffset
|
||||
TimeCodeType NMTOKEN #REQUIRED
|
||||
Hour NMTOKEN #REQUIRED
|
||||
Minute NMTOKEN #REQUIRED
|
||||
Second NMTOKEN #REQUIRED
|
||||
Frame NMTOKEN #REQUIRED
|
||||
FractionalFrame NMTOKEN #REQUIRED>
|
||||
<!ELEMENT TimeSignature EMPTY>
|
||||
<!ATTLIST TimeSignature
|
||||
Numerator NMTOKEN #REQUIRED
|
||||
LogDenominator NMTOKEN #REQUIRED
|
||||
MIDIClocksPerMetronomeClick NMTOKEN #REQUIRED
|
||||
ThirtySecondsPer24Clocks NMTOKEN #REQUIRED>
|
||||
<!ELEMENT KeySignature EMPTY>
|
||||
<!ATTLIST KeySignature
|
||||
Fifths NMTOKEN #REQUIRED
|
||||
Mode NMTOKEN #REQUIRED>
|
||||
<!ELEMENT SequencerSpecific (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The ProgramName and DeviceName meta-events are described
|
||||
in RP-019 from the MMA. They allow a Standard MIDI file
|
||||
to address multiple devices, enabling more than 16
|
||||
channels of MIDI playback.
|
||||
-->
|
||||
<!ELEMENT ProgramName (#PCDATA)>
|
||||
<!ELEMENT DeviceName (#PCDATA)>
|
||||
|
||||
|
||||
<!--
|
||||
The XMFPatchTypePrefix meta-event is described in
|
||||
RP-032 from the MMA. It allows specification of using
|
||||
General MIDI 1, General MIDI 2, or DLS to interpret
|
||||
subsequent program change and bank select messages
|
||||
in the same track.
|
||||
-->
|
||||
<!ELEMENT XMFPatchTypePrefix EMPTY>
|
||||
<!ATTLIST XMFPatchTypePrefix
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!--
|
||||
The meta-event hex 21 has been used, at least
|
||||
unofficially, for a MIDI port or cable number.
|
||||
RP-019 deprecates this in favor of the DeviceName
|
||||
meta-event, but programs still use this.
|
||||
-->
|
||||
<!ELEMENT Port EMPTY>
|
||||
<!ATTLIST Port
|
||||
Value NMTOKEN #REQUIRED>
|
||||
|
||||
<!--
|
||||
An unrecognized meta-event has attributes for both its
|
||||
event number in hex and its length. The data for the
|
||||
invent is represented in hex within the element, as is
|
||||
done for system exclusives.
|
||||
-->
|
||||
<!ELEMENT OtherMetaEvent (#PCDATA)>
|
||||
<!ATTLIST OtherMetaEvent
|
||||
Number NMTOKEN #REQUIRED>
|
||||
|
||||
<!--
|
||||
MIDI system exclusive and end of exclusive events have
|
||||
their data represented as a series of 2-digit hex
|
||||
elements separated by spaces, as in the MMA MIDI DTD.
|
||||
-->
|
||||
<!ELEMENT SystemExclusive (#PCDATA)>
|
||||
<!ELEMENT EndOfExclusive (#PCDATA)>
|
||||
|
||||
<!-- MIDI is the root element -->
|
||||
<!ELEMENT MIDIFile (Format, TrackCount,
|
||||
(TicksPerBeat | (FrameRate, TicksPerFrame)),
|
||||
TimestampType, Track+)>
|
||||
|
||||
<!--
|
||||
Format indicates MIDI format 0, 1, or 2. So far only
|
||||
types 0 and 1 are explicitly supported by MidiXML.
|
||||
-->
|
||||
<!ELEMENT Format (#PCDATA)>
|
||||
|
||||
<!--
|
||||
TrackCount indicate the number of tracks in a file:
|
||||
1 for type 0, usually more for types 1 and 2.
|
||||
-->
|
||||
<!ELEMENT TrackCount (#PCDATA)>
|
||||
|
||||
<!--
|
||||
How many ticks in a beat (MIDI quarter note).
|
||||
-->
|
||||
<!ELEMENT TicksPerBeat (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Frame rate and ticks per frame are used with SMPTE
|
||||
time codes.
|
||||
-->
|
||||
<!ELEMENT FrameRate (#PCDATA)>
|
||||
<!ELEMENT TicksPerFrame (#PCDATA)>
|
||||
|
||||
<!--
|
||||
TimestampType should be Delta or Absolute. Indicates the
|
||||
element name to look for in the initial timestamp in
|
||||
each MIDI event.
|
||||
-->
|
||||
<!ELEMENT TimestampType (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Tracks contain the musical data and are made up of a
|
||||
series of events. The track number attribute is
|
||||
required.
|
||||
-->
|
||||
<!ELEMENT Track (Event*)>
|
||||
<!ATTLIST Track Number NMTOKEN #REQUIRED>
|
57
musicxml11/midixml.xsl
Executable file
57
musicxml11/midixml.xsl
Executable file
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
MIDI XML midixml.xsl for sorting MIDI files with
|
||||
absolute timestamps.
|
||||
|
||||
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
|
||||
-->
|
||||
|
||||
<!--
|
||||
XSL Stylesheet for sorting MIDI XML by absolute timestamp.
|
||||
-->
|
||||
|
||||
<xsl:stylesheet
|
||||
version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
|
||||
<!--
|
||||
The identity transformation. Used for everything aside
|
||||
from the track element.
|
||||
-->
|
||||
|
||||
<xsl:template match="text()">
|
||||
<xsl:value-of select="." />
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="*|@*|comment()|processing-instruction()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates
|
||||
select="*|@*|comment()|processing-instruction()|text()"/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
When we get to a Track, sort all events within the
|
||||
track by their Absolute timestamp.
|
||||
-->
|
||||
|
||||
<xsl:template match="Track">
|
||||
<xsl:element name="Track">
|
||||
<xsl:apply-templates>
|
||||
<xsl:sort data-type="number" select="Absolute" />
|
||||
</xsl:apply-templates>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
1026
musicxml11/note.dtd
Executable file
1026
musicxml11/note.dtd
Executable file
File diff suppressed because it is too large
Load Diff
66
musicxml11/opus.dtd
Executable file
66
musicxml11/opus.dtd
Executable file
|
@ -0,0 +1,66 @@
|
|||
<!--
|
||||
MusicXML Opus 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
|
||||
-->
|
||||
|
||||
<!--
|
||||
An opus collects MusicXML scores together into a larger
|
||||
entity. The individual scores could be movements in a
|
||||
symphony, scenes or acts in an opera, or songs in an
|
||||
album. The opus definition allows arbitrary nesting
|
||||
either via an opus (included in the document) or an
|
||||
opus-link (linked like scores). Future versions of
|
||||
MusicXML may expand this DTD to include reference
|
||||
data and other metadata related to musical scores.
|
||||
|
||||
Suggested use:
|
||||
|
||||
<!DOCTYPE opus PUBLIC
|
||||
"-//Recordare//DTD MusicXML 1.1 Opus//EN"
|
||||
"http://www.musicxml.org/dtds/opus.dtd">
|
||||
-->
|
||||
|
||||
<!-- Component DTDs -->
|
||||
|
||||
<!-- XLink attributes DTD. -->
|
||||
<!ENTITY % link PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Link//EN"
|
||||
"link.dtd">
|
||||
%link;
|
||||
|
||||
<!-- Elements -->
|
||||
|
||||
<!--
|
||||
Opus is the document element.
|
||||
-->
|
||||
<!ELEMENT opus (title?, (opus | opus-link | score)*)>
|
||||
|
||||
<!--
|
||||
Scores provide the links to the individual movements.
|
||||
-->
|
||||
<!ELEMENT score EMPTY>
|
||||
<!ATTLIST score %link-attributes;>
|
||||
|
||||
<!--
|
||||
An opus-link provides a link to another opus document,
|
||||
allowing for multiple levels of opus collections via
|
||||
linking as well as nesting.
|
||||
-->
|
||||
<!ELEMENT opus-link EMPTY>
|
||||
<!ATTLIST opus-link %link-attributes;>
|
||||
|
||||
<!--
|
||||
Future versions may include metadata elements. In
|
||||
this version, we just include the title of the opus.
|
||||
-->
|
||||
<!ELEMENT title (#PCDATA)>
|
173
musicxml11/parttime.xsl
Executable file
173
musicxml11/parttime.xsl
Executable file
|
@ -0,0 +1,173 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
MusicXML parttime.xsl
|
||||
|
||||
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
|
||||
-->
|
||||
|
||||
<!--
|
||||
Parttime.xsl is an XSLT stylesheet for transforming
|
||||
partwise MusicXML scores into timewise scores. Thus
|
||||
instead of having measures included within each part,
|
||||
the transformed score includes parts within each measure.
|
||||
This type of transformation allows the 2-dimensional
|
||||
nature of a musical score to be adequately represented
|
||||
within a hierarchical format like XML.
|
||||
-->
|
||||
|
||||
<xsl:stylesheet
|
||||
version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<!--
|
||||
XML output, with a DOCTYPE refering the timewise DTD.
|
||||
Here we use the full Internet URL.
|
||||
-->
|
||||
<xsl:output method="xml" indent="yes" encoding="UTF-8"
|
||||
omit-xml-declaration="no" standalone="no"
|
||||
doctype-system="http://www.musicxml.org/dtds/timewise.dtd"
|
||||
doctype-public="-//Recordare//DTD MusicXML 1.1 Timewise//EN" />
|
||||
|
||||
<!--
|
||||
For the root, only look for score-partwise and
|
||||
score-timewise. Anything else as a root element gets
|
||||
ignored.
|
||||
-->
|
||||
<xsl:template match="/">
|
||||
<xsl:apply-templates select="./score-partwise"/>
|
||||
<xsl:apply-templates select="./score-timewise"/>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
If we have a timewise score, we really shouldn't be
|
||||
applying this stylesheet. Copy everthing as-is without
|
||||
triggering templates.
|
||||
-->
|
||||
<xsl:template match="score-timewise">
|
||||
<xsl:copy-of select="." />
|
||||
</xsl:template>
|
||||
|
||||
<!-- The identity transformation. Used by default. -->
|
||||
<xsl:template match="text()">
|
||||
<xsl:value-of select="." />
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Whitespace within an xsl:copy could cause problems with
|
||||
empty elements.
|
||||
-->
|
||||
<xsl:template match="*|@*|comment()|processing-instruction()">
|
||||
<xsl:copy><xsl:apply-templates
|
||||
select="*|@*|comment()|processing-instruction()|text()"
|
||||
/></xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
We need to take control at the document element level
|
||||
explicitly to redo the tree. The header elements should
|
||||
all be copied. After that, we loop through the measures
|
||||
in part 1, and create the part elements (for part 1 and
|
||||
all others) from within that loop.
|
||||
-->
|
||||
<xsl:template match="score-partwise">
|
||||
|
||||
<!-- Create the score-timewise element. -->
|
||||
<xsl:element name="score-timewise">
|
||||
|
||||
<!--
|
||||
Copy the seven score header elements and their
|
||||
children. The DTD specifies that these occur, if
|
||||
present, in a fixed order.
|
||||
-->
|
||||
<xsl:apply-templates select="@version[.!='1.0']"/>
|
||||
<xsl:apply-templates select="work"/>
|
||||
<xsl:apply-templates select="movement-number"/>
|
||||
<xsl:apply-templates select="movement-title"/>
|
||||
<xsl:apply-templates select="identification"/>
|
||||
<xsl:apply-templates select="defaults"/>
|
||||
<xsl:apply-templates select="credit"/>
|
||||
<xsl:apply-templates select="part-list"/>
|
||||
|
||||
<!--
|
||||
Now loop through all measures in the first part.
|
||||
-->
|
||||
<xsl:for-each select="part[1]/measure">
|
||||
|
||||
<!--
|
||||
Bind measure number to a variable for use
|
||||
throughout the loop, including inner loop
|
||||
where we will lose the immediate context.
|
||||
-->
|
||||
<xsl:variable name="measure-number">
|
||||
<xsl:value-of select="@number"/>
|
||||
</xsl:variable>
|
||||
|
||||
<!-- Create the measure element. -->
|
||||
<xsl:element name="measure">
|
||||
|
||||
<!--
|
||||
Now we need to copy the measure attributes.
|
||||
-->
|
||||
<xsl:attribute name="number">
|
||||
<xsl:value-of select="$measure-number"/>
|
||||
</xsl:attribute>
|
||||
<xsl:if test="@implict[yes]">
|
||||
<xsl:attribute name="implicit">
|
||||
<xsl:value-of select="@implicit"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@non-controlling[yes]">
|
||||
<xsl:attribute name="non-controlling">
|
||||
<xsl:value-of select="@non-controlling"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="@width">
|
||||
<xsl:attribute name="width">
|
||||
<xsl:value-of select="@width"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
|
||||
<!--
|
||||
Now for the inner loop. We go back to the root
|
||||
ancestor, and loop through each part and
|
||||
measure, looking for the ones that match the
|
||||
measure number, and add it here.
|
||||
|
||||
This is inefficient. but it provides a working
|
||||
starting point.
|
||||
-->
|
||||
<xsl:for-each select="../../part/measure">
|
||||
<xsl:if test="@number=$measure-number">
|
||||
|
||||
<!-- Create the part element. -->
|
||||
<xsl:element name="part">
|
||||
|
||||
<!-- Copy the ID from the parent part element. -->
|
||||
<xsl:attribute name="id">
|
||||
<xsl:value-of select="parent::part/@id"/>
|
||||
</xsl:attribute>
|
||||
|
||||
<!--
|
||||
Now copy all the descendants using
|
||||
identity transforms.
|
||||
-->
|
||||
<xsl:apply-templates />
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:element>
|
||||
</xsl:for-each>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
149
musicxml11/partwise.dtd
Executable file
149
musicxml11/partwise.dtd
Executable file
|
@ -0,0 +1,149 @@
|
|||
<!--
|
||||
MusicXML Partwise 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
|
||||
-->
|
||||
|
||||
<!--
|
||||
MusicXML is designed to represent musical scores,
|
||||
specifically common western musical notation from the
|
||||
17th century onwards. It is designed as an interchange
|
||||
format for notation, analysis, retrieval, and performance
|
||||
applications. Therefore it is intended to be sufficient,
|
||||
not optimal, for these applications.
|
||||
|
||||
MusicXML is based on the MuseData and Humdrum formats.
|
||||
Humdrum explicitly represents the two-dimensional nature
|
||||
of musical scores by a 2-D layout notation. Since XML
|
||||
is a hierarchical format, we cannot do this explicitly.
|
||||
Instead, there are two top-level formats:
|
||||
|
||||
partwise.dtd Represents scores by part/instrument
|
||||
timewise.dtd Represents scores by time/measure
|
||||
|
||||
Thus partwise.dtd contains measures within each part,
|
||||
while timewise.dtd contains parts within each measure.
|
||||
XSLT stylesheets are provided to convert between the
|
||||
two formats.
|
||||
|
||||
The partwise and timewise score DTDs represent a single
|
||||
movement of music. Multiple movements or other musical
|
||||
collections are presented using opus.dtd. An opus
|
||||
document contains XLinks to individual scores.
|
||||
|
||||
Suggested use:
|
||||
|
||||
<!DOCTYPE score-partwise PUBLIC
|
||||
"-//Recordare//DTD MusicXML 1.1 Partwise//EN"
|
||||
"http://www.musicxml.org/dtds/partwise.dtd">
|
||||
|
||||
This DTD is made up of a series of component DTDs, all
|
||||
of which are included here.
|
||||
-->
|
||||
|
||||
<!-- Entities -->
|
||||
|
||||
<!--
|
||||
The partwise and timewise entities are used with
|
||||
conditional sections to control the differences between
|
||||
the partwise and timewise DTDs. The values for these
|
||||
entities are what distinguish the partwise and timewise
|
||||
DTD files.
|
||||
-->
|
||||
<!ENTITY % partwise "INCLUDE">
|
||||
<!ENTITY % timewise "IGNORE">
|
||||
|
||||
<!-- Component DTDs -->
|
||||
|
||||
<!--
|
||||
The common DTD contains the entities and elements that
|
||||
are shared among multiple component DTDs.
|
||||
-->
|
||||
<!ENTITY % common PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Common//EN"
|
||||
"common.dtd">
|
||||
%common;
|
||||
|
||||
<!--
|
||||
The layout DTD contains formatting information for
|
||||
pages, systems, staves, and measures.
|
||||
-->
|
||||
<!ENTITY % layout PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Layout//EN"
|
||||
"layout.dtd">
|
||||
%layout;
|
||||
|
||||
<!--
|
||||
The identity DTD contains identification and metadata
|
||||
elements.
|
||||
-->
|
||||
<!ENTITY % identity PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Identity//EN"
|
||||
"identity.dtd">
|
||||
%identity;
|
||||
|
||||
<!--
|
||||
The attributes DTD includes elements that usually
|
||||
change at the start of a measure, such as key
|
||||
signatures, time signatures, and clefs.
|
||||
-->
|
||||
<!ENTITY % attributes PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Attributes//EN"
|
||||
"attributes.dtd">
|
||||
%attributes;
|
||||
|
||||
<!--
|
||||
The link DTD contains XLink attributes.
|
||||
-->
|
||||
<!ENTITY % link PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Link//EN"
|
||||
"link.dtd">
|
||||
%link;
|
||||
|
||||
<!--
|
||||
The note DTD contains the bulk of the elements and
|
||||
attributes for a musical scores relating to individual
|
||||
notes and rests.
|
||||
-->
|
||||
<!ENTITY % note PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Note//EN"
|
||||
"note.dtd">
|
||||
%note;
|
||||
|
||||
<!--
|
||||
The barline DTD contains elements regarding
|
||||
barline style, repeats, and multiple endings.
|
||||
-->
|
||||
<!ENTITY % barline PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Barline//EN"
|
||||
"barline.dtd">
|
||||
%barline;
|
||||
|
||||
<!--
|
||||
The direction DTD contains elements for musical
|
||||
directions not tied to individual notes. This
|
||||
includes harmony and chord symbol elements.
|
||||
-->
|
||||
<!ENTITY % direction PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Direction//EN"
|
||||
"direction.dtd">
|
||||
%direction;
|
||||
|
||||
<!--
|
||||
The score DTD contains the top-level elements
|
||||
for musical scores, including the root document
|
||||
elements.
|
||||
-->
|
||||
<!ENTITY % score PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Score//EN"
|
||||
"score.dtd">
|
||||
%score;
|
309
musicxml11/score.dtd
Executable file
309
musicxml11/score.dtd
Executable file
|
@ -0,0 +1,309 @@
|
|||
<!--
|
||||
MusicXML score.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
|
||||
-->
|
||||
|
||||
<!--
|
||||
Works and movements are optionally identified by number
|
||||
and title. The work element also may indicate a link
|
||||
to the opus document that composes multiple movements
|
||||
into a collection.
|
||||
-->
|
||||
<!ELEMENT work (work-number?, work-title?, opus?)>
|
||||
<!ELEMENT work-number (#PCDATA)>
|
||||
<!ELEMENT work-title (#PCDATA)>
|
||||
|
||||
<!ELEMENT opus EMPTY>
|
||||
<!ATTLIST opus
|
||||
%link-attributes;
|
||||
>
|
||||
|
||||
<!ELEMENT movement-number (#PCDATA)>
|
||||
<!ELEMENT movement-title (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Collect score-wide defaults. This includes scaling
|
||||
and layout, defined in layout.dtd, and default values
|
||||
for the music font, word font, lyric font, and
|
||||
lyric language. The number and name attributes in
|
||||
lyric-font and lyric-language elements are typically
|
||||
used when lyrics are provided in multiple languages.
|
||||
If the number and name attributes are omitted, the
|
||||
lyric-font and lyric-language values apply to all
|
||||
numbers and names.
|
||||
-->
|
||||
<!ELEMENT defaults (scaling?, page-layout?,
|
||||
system-layout?, staff-layout*, music-font?,
|
||||
word-font?, lyric-font*, lyric-language*)>
|
||||
|
||||
<!ELEMENT music-font EMPTY>
|
||||
<!ATTLIST music-font
|
||||
%font;
|
||||
>
|
||||
<!ELEMENT word-font EMPTY>
|
||||
<!ATTLIST word-font
|
||||
%font;
|
||||
>
|
||||
<!ELEMENT lyric-font EMPTY>
|
||||
<!ATTLIST lyric-font
|
||||
number NMTOKEN #IMPLIED
|
||||
name CDATA #IMPLIED
|
||||
%font;
|
||||
>
|
||||
<!ELEMENT lyric-language EMPTY>
|
||||
<!ATTLIST lyric-language
|
||||
number NMTOKEN #IMPLIED
|
||||
name CDATA #IMPLIED
|
||||
xml:lang NMTOKEN #REQUIRED
|
||||
>
|
||||
|
||||
<!--
|
||||
Credit elements refer to the title, composer, arranger,
|
||||
lyricist, copyright, dedication, and other text that
|
||||
appears on the first page of a score. The credit-words
|
||||
element is similar to the words element for directions.
|
||||
However, since the credit is not part of a measure,
|
||||
the default-x and default-y attributes adjust the
|
||||
origin relative to the bottom left-hand corner of
|
||||
the first page. The enclosure is none by default.
|
||||
-->
|
||||
<!ELEMENT credit (credit-words+)>
|
||||
<!ELEMENT credit-words (#PCDATA)>
|
||||
<!ATTLIST credit-words
|
||||
%justify;
|
||||
%halign;
|
||||
%valign;
|
||||
%print-style;
|
||||
xml:lang NMTOKEN #IMPLIED
|
||||
enclosure (rectangle | oval | none) #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
The part-list identifies the different musical parts in
|
||||
this movement. Each part has an ID that is used later
|
||||
within the musical data. Since parts may be encoded
|
||||
separately and combined later, identification elements
|
||||
are present at both the score and score-part levels.
|
||||
There must be at least one score-part, combined as
|
||||
desired with part-group elements that indicate braces
|
||||
and brackets. Parts are ordered from top to bottom in
|
||||
a score based on the order in which they appear in the
|
||||
part-list.
|
||||
|
||||
Each MusicXML part corresponds to a track in a Standard
|
||||
MIDI Format 1 file. The score-instrument elements are
|
||||
used when there are multiple instruments per track.
|
||||
The midi-device element is used to make a MIDI device
|
||||
or port assignment for the given track. Initial
|
||||
midi-instrument assignments may be made here as well.
|
||||
-->
|
||||
<!ELEMENT part-list (part-group*, score-part,
|
||||
(part-group | score-part)*)>
|
||||
<!ELEMENT score-part (identification?, part-name,
|
||||
part-abbreviation?, group*, score-instrument*,
|
||||
midi-device?, midi-instrument*)>
|
||||
<!ATTLIST score-part
|
||||
id ID #REQUIRED
|
||||
>
|
||||
|
||||
<!--
|
||||
The part-name indicates the full name of the musical
|
||||
part. The part-abbreviation indicates the abbreviated
|
||||
version of the name of the musical part. The part-name
|
||||
will often precede the first system, while the
|
||||
part-abbreviation will precede the other systems.
|
||||
-->
|
||||
<!ELEMENT part-name (#PCDATA)>
|
||||
<!ATTLIST part-name
|
||||
%print-style;
|
||||
%print-object;
|
||||
%justify;
|
||||
>
|
||||
<!ELEMENT part-abbreviation (#PCDATA)>
|
||||
<!ATTLIST part-abbreviation
|
||||
%print-style;
|
||||
%print-object;
|
||||
%justify;
|
||||
>
|
||||
|
||||
<!--
|
||||
The part-group element indicates groupings of parts in
|
||||
the score, usually indicated by braces and brackets.
|
||||
The number attribute is used to distinguish overlapping
|
||||
and nested part-groups, not the sequence of groups. As
|
||||
with parts, groups can have a name and abbreviation.
|
||||
The group-symbol element indicates how the group is
|
||||
indicated on the score. Values include none (default),
|
||||
brace, line, and bracket. Values for the child elements
|
||||
are ignored at the stop of a group. The group-barline
|
||||
element indicates if the group should have common
|
||||
barlines. Values can be yes, no, or Mensurstrich.
|
||||
-->
|
||||
<!ELEMENT part-group (group-name?, group-abbreviation?,
|
||||
group-symbol?, group-barline?, %editorial;)>
|
||||
<!ATTLIST part-group
|
||||
type %start-stop; #REQUIRED
|
||||
number CDATA "1"
|
||||
>
|
||||
<!ELEMENT group-name (#PCDATA)>
|
||||
<!ATTLIST group-name
|
||||
%print-style;
|
||||
%justify;
|
||||
>
|
||||
<!ELEMENT group-abbreviation (#PCDATA)>
|
||||
<!ATTLIST group-abbreviation
|
||||
%print-style;
|
||||
%justify;
|
||||
>
|
||||
<!ELEMENT group-symbol (#PCDATA)>
|
||||
<!ATTLIST group-symbol
|
||||
%position;
|
||||
%color;
|
||||
>
|
||||
<!ELEMENT group-barline (#PCDATA)>
|
||||
<!ATTLIST group-barline
|
||||
%color;
|
||||
>
|
||||
|
||||
<!--
|
||||
The score-instrument element allows for multiple
|
||||
instruments per score-part. As with the score-part
|
||||
element, each score-instrument has a required ID
|
||||
attribute, a name, and an optional abbreviation.
|
||||
A score-instrument element is also required if the
|
||||
score specifies MIDI channels, banks, or programs.
|
||||
An initial midi-instrument assignment can also
|
||||
be made here. MusicXML software should be able to
|
||||
automatically assign reasonable channels and
|
||||
instruments without these elements in simple cases,
|
||||
such as where part names match General MIDI
|
||||
instrument names.
|
||||
|
||||
The midi-instrument element is defined in common.dtd,
|
||||
as it can be used within both the score-part and
|
||||
sound elements.
|
||||
-->
|
||||
<!ELEMENT score-instrument
|
||||
(instrument-name, instrument-abbreviation?)>
|
||||
<!ATTLIST score-instrument
|
||||
id ID #REQUIRED
|
||||
>
|
||||
<!ELEMENT instrument-name (#PCDATA)>
|
||||
<!ELEMENT instrument-abbreviation (#PCDATA)>
|
||||
|
||||
<!--
|
||||
The midi-device content corresponds to the DeviceName
|
||||
meta event in Standard MIDI Files. The optional port
|
||||
attribute is a number from 1 to 16 that can be used
|
||||
with the unofficial MIDI port (or cable) meta event.
|
||||
-->
|
||||
<!ELEMENT midi-device (#PCDATA)>
|
||||
<!ATTLIST midi-device
|
||||
port CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
The group element allows the use of different versions
|
||||
of the part for different purposes. Typical values
|
||||
include score, parts, sound, and data. Ordering
|
||||
information that is directly encoded in MuseData can
|
||||
be derived from the ordering within a score or opus
|
||||
in MusicXML.
|
||||
-->
|
||||
<!ELEMENT group (#PCDATA)>
|
||||
|
||||
<!--
|
||||
Here is the basic musical data that is either associated
|
||||
with a part or a measure, depending on whether partwise
|
||||
or timewise hierarchy is used.
|
||||
-->
|
||||
<!ENTITY % music-data
|
||||
"(note | backup | forward | direction | attributes |
|
||||
harmony | figured-bass | print | sound | barline |
|
||||
grouping | link | bookmark)*">
|
||||
|
||||
<!--
|
||||
The score-header entity contains basic score metadata
|
||||
about the work and movement, score-wide defaults for
|
||||
layout and fonts, credits that appear on the first page,
|
||||
and the part list.
|
||||
-->
|
||||
<!ENTITY % score-header
|
||||
"(work?, movement-number?, movement-title?,
|
||||
identification?, defaults?, credit*, part-list)">
|
||||
|
||||
<!--
|
||||
The score is the root element for the DTD. It includes
|
||||
the score-header entity, followed either by a series of
|
||||
parts with measures inside (score-partwise) or a series
|
||||
of measures with parts inside (score-timewise). Having
|
||||
distinct top-level elements for partwise and timewise
|
||||
scores makes it easy to ensure that an XSLT stylesheet
|
||||
does not try to transform a document already in the
|
||||
desired format.
|
||||
|
||||
The version attribute is new to MusicXML 1.1. It provides
|
||||
an easier way to get version information than through the
|
||||
MusicXML public ID. The default value is 1.0 to make it
|
||||
possible for programs that handle version 1.1 to
|
||||
distinguish version 1.0 files reliably. Programs that
|
||||
write MusicXML 1.1 files should set this attribute.
|
||||
-->
|
||||
<![ %partwise; [
|
||||
<!ELEMENT score-partwise (%score-header;, part+)>
|
||||
<!ATTLIST score-partwise
|
||||
version CDATA "1.0"
|
||||
>
|
||||
<!ELEMENT part (measure+)>
|
||||
<!ELEMENT measure (%music-data;)>
|
||||
]]>
|
||||
<![ %timewise; [
|
||||
<!ELEMENT score-timewise (%score-header;, measure+)>
|
||||
<!ATTLIST score-timewise
|
||||
version CDATA "1.0"
|
||||
>
|
||||
<!ELEMENT measure (part+)>
|
||||
<!ELEMENT part (%music-data;)>
|
||||
]]>
|
||||
<!--
|
||||
In either format, the part element has an id attribute
|
||||
that is an IDREF back to a score-part in the part-list.
|
||||
Measures have a required number attribute (going from
|
||||
partwise to timewise, measures are grouped via the
|
||||
number).
|
||||
-->
|
||||
<!ATTLIST part
|
||||
id IDREF #REQUIRED
|
||||
>
|
||||
<!--
|
||||
The implicit attribute is set to "yes" for measures where
|
||||
the measure number should never appear, such as pickup
|
||||
measures and the last half of mid-measure repeats. The
|
||||
value is "no" if not specified.
|
||||
|
||||
The non-controlling attribute indicates that this measure
|
||||
in this part does not necessarily synchronize with other
|
||||
measures in other parts. This is intended for use in
|
||||
multimetric music like the Don Giovanni minuet. The
|
||||
value is "no" if not specified.
|
||||
|
||||
Measure width is specified in tenths. These are the
|
||||
global tenths specified in the scaling element, not
|
||||
local tenths as modified by the staff-size element.
|
||||
-->
|
||||
<!ATTLIST measure
|
||||
number CDATA #REQUIRED
|
||||
implicit %yes-no; #IMPLIED
|
||||
non-controlling %yes-no; #IMPLIED
|
||||
width %tenths; #IMPLIED
|
||||
>
|
176
musicxml11/timepart.xsl
Executable file
176
musicxml11/timepart.xsl
Executable file
|
@ -0,0 +1,176 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
MusicXML timepart.xsl
|
||||
|
||||
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
|
||||
-->
|
||||
|
||||
<!--
|
||||
Timepart.xsl is an XSLT stylesheet for transforming
|
||||
timewise MusicXML scores into partwise scores. Thus
|
||||
instead of having parts included within each measure,
|
||||
the transformed score includes measures within each part.
|
||||
This type of transformation allows the 2-dimensional
|
||||
nature of a musical score to be adequately represented
|
||||
within a hierarchical format like XML.
|
||||
-->
|
||||
|
||||
<xsl:stylesheet
|
||||
version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<!--
|
||||
XML output, with a DOCTYPE refering the partwise DTD.
|
||||
Here we use the full Internet URL.
|
||||
-->
|
||||
<xsl:output method="xml" indent="yes" encoding="UTF-8"
|
||||
omit-xml-declaration="no" standalone="no"
|
||||
doctype-system="http://www.musicxml.org/dtds/partwise.dtd"
|
||||
doctype-public="-//Recordare//DTD MusicXML 1.1 Partwise//EN" />
|
||||
|
||||
<!--
|
||||
For the root, only look for score-partwise and
|
||||
score-timewise. Anything else as a root element gets
|
||||
ignored.
|
||||
-->
|
||||
<xsl:template match="/">
|
||||
<xsl:apply-templates select="./score-partwise"/>
|
||||
<xsl:apply-templates select="./score-timewise"/>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
If we have a partwise score, we really shouldn't be
|
||||
applying this stylesheet. Copy everthing as-is without
|
||||
triggering templates.
|
||||
-->
|
||||
<xsl:template match="score-partwise">
|
||||
<xsl:copy-of select="." />
|
||||
</xsl:template>
|
||||
|
||||
<!-- The identity transformation. Used by default. -->
|
||||
<xsl:template match="text()">
|
||||
<xsl:value-of select="." />
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Whitespace within an xsl:copy could cause problems with
|
||||
empty elements.
|
||||
-->
|
||||
<xsl:template match="*|@*|comment()|processing-instruction()">
|
||||
<xsl:copy><xsl:apply-templates
|
||||
select="*|@*|comment()|processing-instruction()|text()"
|
||||
/></xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
We need to take control at the document element level
|
||||
explicitly to redo the tree. The header elements should
|
||||
all be copied. After that, we loop through the parts in
|
||||
measure 1, and create the part elements (for measure 1
|
||||
and all others) from within that loop.
|
||||
-->
|
||||
<xsl:template match="score-timewise">
|
||||
|
||||
<!-- Create the score-partwise element. -->
|
||||
<xsl:element name="score-partwise">
|
||||
|
||||
<!--
|
||||
Copy the seven score header elements and their
|
||||
children. The DTD specifies that these occur, if
|
||||
present, in a fixed order.
|
||||
-->
|
||||
<xsl:apply-templates select="@version[.!='1.0']"/>
|
||||
<xsl:apply-templates select="work"/>
|
||||
<xsl:apply-templates select="movement-number"/>
|
||||
<xsl:apply-templates select="movement-title"/>
|
||||
<xsl:apply-templates select="identification"/>
|
||||
<xsl:apply-templates select="defaults"/>
|
||||
<xsl:apply-templates select="credit"/>
|
||||
<xsl:apply-templates select="part-list"/>
|
||||
|
||||
<!--
|
||||
Now loop through all parts in the first measure.
|
||||
-->
|
||||
<xsl:for-each select="measure[1]/part">
|
||||
|
||||
<!--
|
||||
Bind part ID to a variable for use throughout the
|
||||
loop, including inner loop where we will lose the
|
||||
immediate context.
|
||||
-->
|
||||
<xsl:variable name="part-id">
|
||||
<xsl:value-of select="@id"/>
|
||||
</xsl:variable>
|
||||
|
||||
<!-- Create the part element. -->
|
||||
<xsl:element name="part">
|
||||
|
||||
<!--
|
||||
Now we need to copy the part id attribute.
|
||||
-->
|
||||
<xsl:copy-of select="@id" />
|
||||
|
||||
<!--
|
||||
Now for the inner loop. We go back to the root
|
||||
ancestor, and loop through each measure and
|
||||
part, looking for the ones that match the part
|
||||
ID, and add it here.
|
||||
|
||||
This is inefficient. but it provides a working
|
||||
starting point.
|
||||
-->
|
||||
<xsl:for-each select="../../measure/part">
|
||||
<xsl:if test="@id=$part-id">
|
||||
|
||||
<!-- Create the measure element. -->
|
||||
<xsl:element name="measure">
|
||||
|
||||
<!--
|
||||
Copy the attributes from the parent
|
||||
measure element.
|
||||
-->
|
||||
<xsl:attribute name="number">
|
||||
<xsl:value-of select="parent::measure/@number"/>
|
||||
</xsl:attribute>
|
||||
<xsl:if test="parent::measure/@implict[yes]">
|
||||
<xsl:attribute name="implicit">
|
||||
<xsl:value-of select="parent::measure/@implicit"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="parent::measure/@non-controlling[yes]">
|
||||
<xsl:attribute name="non-controlling">
|
||||
<xsl:value-of
|
||||
select="parent::measure/@non-controlling"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
<xsl:if test="parent::measure/@width">
|
||||
<xsl:attribute name="width">
|
||||
<xsl:value-of
|
||||
select="parent::measure/@width"/>
|
||||
</xsl:attribute>
|
||||
</xsl:if>
|
||||
|
||||
<!--
|
||||
Now copy all the descendants using
|
||||
identity transforms.
|
||||
-->
|
||||
<xsl:apply-templates />
|
||||
</xsl:element>
|
||||
</xsl:if>
|
||||
</xsl:for-each>
|
||||
|
||||
</xsl:element>
|
||||
</xsl:for-each>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
149
musicxml11/timewise.dtd
Executable file
149
musicxml11/timewise.dtd
Executable file
|
@ -0,0 +1,149 @@
|
|||
<!--
|
||||
MusicXML Timewise 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
|
||||
-->
|
||||
|
||||
<!--
|
||||
MusicXML is designed to represent musical scores,
|
||||
specifically common western musical notation from the
|
||||
17th century onwards. It is designed as an interchange
|
||||
format for notation, analysis, retrieval, and performance
|
||||
applications. Therefore it is intended to be sufficient,
|
||||
not optimal, for these applications.
|
||||
|
||||
MusicXML is based on the MuseData and Humdrum formats.
|
||||
Humdrum explicitly represents the two-dimensional nature
|
||||
of musical scores by a 2-D layout notation. Since XML
|
||||
is a hierarchical format, we cannot do this explicitly.
|
||||
Instead, there are two top-level formats:
|
||||
|
||||
partwise.dtd Represents scores by part/instrument
|
||||
timewise.dtd Represents scores by time/measure
|
||||
|
||||
Thus partwise.dtd contains measures within each part,
|
||||
while timewise.dtd contains parts within each measure.
|
||||
XSLT stylesheets are provided to convert between the
|
||||
two formats.
|
||||
|
||||
The partwise and timewise score DTDs represent a single
|
||||
movement of music. Multiple movements or other musical
|
||||
collections are presented using opus.dtd. An opus
|
||||
document contains XLinks to individual scores.
|
||||
|
||||
Suggested use:
|
||||
|
||||
<!DOCTYPE score-timewise PUBLIC
|
||||
"-//Recordare//DTD MusicXML 1.1 Timewise//EN"
|
||||
"http://www.musicxml.org/dtds/timewise.dtd">
|
||||
|
||||
This DTD is made up of a series of component DTDs, all
|
||||
of which are included here.
|
||||
-->
|
||||
|
||||
<!-- Entities -->
|
||||
|
||||
<!--
|
||||
The partwise and timewise entities are used with
|
||||
conditional sections to control the differences between
|
||||
the partwise and timewise DTDs. The values for these
|
||||
entities are what distinguish the partwise and timewise
|
||||
DTD files.
|
||||
-->
|
||||
<!ENTITY % partwise "IGNORE">
|
||||
<!ENTITY % timewise "INCLUDE">
|
||||
|
||||
<!-- Component DTDs -->
|
||||
|
||||
<!--
|
||||
The common DTD contains the entities and elements that
|
||||
are shared among multiple component DTDs.
|
||||
-->
|
||||
<!ENTITY % common PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Common//EN"
|
||||
"common.dtd">
|
||||
%common;
|
||||
|
||||
<!--
|
||||
The layout DTD contains formatting information for
|
||||
pages, systems, staves, and measures.
|
||||
-->
|
||||
<!ENTITY % layout PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Layout//EN"
|
||||
"layout.dtd">
|
||||
%layout;
|
||||
|
||||
<!--
|
||||
The identity DTD contains identification and metadata
|
||||
elements.
|
||||
-->
|
||||
<!ENTITY % identity PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Identity//EN"
|
||||
"identity.dtd">
|
||||
%identity;
|
||||
|
||||
<!--
|
||||
The attributes DTD includes elements that usually
|
||||
change at the start of a measure, such as key
|
||||
signatures, time signatures, and clefs.
|
||||
-->
|
||||
<!ENTITY % attributes PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Attributes//EN"
|
||||
"attributes.dtd">
|
||||
%attributes;
|
||||
|
||||
<!--
|
||||
The link DTD contains XLink attributes.
|
||||
-->
|
||||
<!ENTITY % link PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Link//EN"
|
||||
"link.dtd">
|
||||
%link;
|
||||
|
||||
<!--
|
||||
The note DTD contains the bulk of the elements and
|
||||
attributes for a musical scores relating to individual
|
||||
notes and rests.
|
||||
-->
|
||||
<!ENTITY % note PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Note//EN"
|
||||
"note.dtd">
|
||||
%note;
|
||||
|
||||
<!--
|
||||
The barline DTD contains elements regarding
|
||||
barline style, repeats, and multiple endings.
|
||||
-->
|
||||
<!ENTITY % barline PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Barline//EN"
|
||||
"barline.dtd">
|
||||
%barline;
|
||||
|
||||
<!--
|
||||
The direction DTD contains elements for musical
|
||||
directions not tied to individual notes. This
|
||||
includes harmony and chord symbol elements.
|
||||
-->
|
||||
<!ENTITY % direction PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Direction//EN"
|
||||
"direction.dtd">
|
||||
%direction;
|
||||
|
||||
<!--
|
||||
The score DTD contains the top-level elements
|
||||
for musical scores, including the root document
|
||||
elements.
|
||||
-->
|
||||
<!ENTITY % score PUBLIC
|
||||
"-//Recordare//ELEMENTS MusicXML 1.1 Score//EN"
|
||||
"score.dtd">
|
||||
%score;
|
177
musicxml11/to10.xsl
Executable file
177
musicxml11/to10.xsl
Executable file
|
@ -0,0 +1,177 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
MusicXML to10.xsl
|
||||
|
||||
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
|
||||
-->
|
||||
|
||||
<!--
|
||||
To10.xsl converts from MusicXML 1.1 to 1.0 for
|
||||
compatibility with older products.
|
||||
-->
|
||||
|
||||
<xsl:stylesheet
|
||||
version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<!--
|
||||
XML output, with a DOCTYPE refering the partwise DTD.
|
||||
Here we use the full Internet URL.
|
||||
-->
|
||||
|
||||
<xsl:output method="xml" indent="yes" encoding="UTF-8"
|
||||
omit-xml-declaration="no" standalone="no"
|
||||
doctype-system="http://www.musicxml.org/dtds/partwise.dtd"
|
||||
doctype-public="-//Recordare//DTD MusicXML 1.0 Partwise//EN" />
|
||||
|
||||
<!--
|
||||
For the root, only look for score-partwise. Anything else
|
||||
as a root element gets ignored.
|
||||
-->
|
||||
<xsl:template match="/">
|
||||
<xsl:apply-templates select="./score-partwise"/>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Transformations that remove post-1.0 elements and attributes.
|
||||
-->
|
||||
|
||||
<!-- Additions in note.dtd -->
|
||||
<xsl:template
|
||||
match="tuplet-number/@* | tuplet-type/@* | tuplet-dot/@* |
|
||||
tuplet/@line-shape | pluck | tremolo |
|
||||
tied/@bezier-offset | tied/@bezier-offset2 |
|
||||
tied/@bezier-x | tied/@bezier-x2 |
|
||||
tied/@bezier-y | tied/@bezier-y2 |
|
||||
heel/@substitution | toe/@substitution |
|
||||
lyric/@justify | lyric/@placement |
|
||||
lyric/@default-x | lyric/@default-y |
|
||||
lyric/@relative-x | lyric/@relative-y |
|
||||
figured-bass/@parentheses | elision/@* | extend/@* |
|
||||
prefix/@* | figure-number/@* / suffix/@* | figure/extend"/>
|
||||
|
||||
<!--
|
||||
Convert parentheses or bracket attributes on accidental
|
||||
elements into the editorial attribute from MusicXML 1.0.
|
||||
-->
|
||||
<xsl:template match="accidental/@parentheses | accidental/@bracket">
|
||||
<xsl:attribute name="editorial">
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:attribute>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Additions in attributes.dtd -->
|
||||
<xsl:template
|
||||
match="staff-size | key/@number | time/@number |
|
||||
staff-details/@print-object | staff-details/@print-spacing |
|
||||
directive/@relative-x | directive/@relative-y |
|
||||
directive/@default-x | directive/@default-y |
|
||||
time/@print-object"/>
|
||||
|
||||
<!-- Additions in barline.dtd -->
|
||||
<xsl:template
|
||||
match="ending/@relative-x | ending/@relative-y |
|
||||
ending/@default-x | ending/@default-y |
|
||||
ending/@end-length | ending/text()"/>
|
||||
|
||||
<!-- Additions in common.dtd -->
|
||||
<xsl:template
|
||||
match="@color | @print-lyric | level/@reference |
|
||||
fret/@* | string/@* | footnote/@*"/>
|
||||
<xsl:template match="@size[.='large']"/>
|
||||
|
||||
<!--
|
||||
MusicXML 1.1 makes much greater use of font attributes.
|
||||
The more general rule strips the font attributes from
|
||||
most elements. The more specific rule, which takes
|
||||
priority, keeps them for the elements where they were
|
||||
used in MusicXML 1.0.
|
||||
-->
|
||||
<xsl:template
|
||||
match="@font-family | @font-style | @font-size | @font-weight"/>
|
||||
|
||||
<xsl:template
|
||||
match="words/@font-family | words/@font-style |
|
||||
words/@font-size | words/@font-weight |
|
||||
rehearsal/@font-family | rehearsal/@font-style |
|
||||
rehearsal/@font-size | rehearsal/@font-weight |
|
||||
directive/@font-family | directive/@font-style |
|
||||
directive/@font-size | directive/@font-weight |
|
||||
text/@font-family | text/@font-style |
|
||||
text/@font-size | text/@font-weight |
|
||||
hammer-on/@font-family | hammer-on/@font-style |
|
||||
hammer-on/@font-size | hammer-on/@font-weight |
|
||||
pull-off/@font-family | pull-off/@font-style |
|
||||
pull-off/@font-size | pull-off/@font-weight |
|
||||
tap/@font-family | tap/@font-style |
|
||||
tap/@font-size | tap/@font-weight">
|
||||
<xsl:copy><xsl:apply-templates select="*|@*"/></xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Additions in layout.dtd -->
|
||||
<xsl:template
|
||||
match="scaling | page-layout | system-layout |
|
||||
staff-layout | measure-layout"/>
|
||||
|
||||
<!-- Additions in direction.dtd -->
|
||||
<xsl:template
|
||||
match="barre | pedal[@type='change'] | kind/@* |
|
||||
frame/@* | harp-pedals | scordatura |
|
||||
harmony/offset | harmony/staff |
|
||||
words/@halign | words/@valign | words/@enclosure |
|
||||
rehearsal/@xml:lang | rehearsal/@enclosure |
|
||||
print/@page-number"/>
|
||||
<xsl:template match="pedal/@type[.='change']"/>
|
||||
|
||||
<!-- Additions in link.dtd -->
|
||||
<xsl:template
|
||||
match="link/@relative-x | link/@relative-y |
|
||||
link/@default-x | link/@default-y"/>
|
||||
|
||||
<!-- Additions in score.dtd -->
|
||||
<xsl:template
|
||||
match="defaults | credit | measure/@width |
|
||||
part-name/@* | part-abbreviation/@* |
|
||||
group-name/@* | group-abbreviation/@* |
|
||||
group-symbol/@* | group-barline/@* |
|
||||
score-partwise/@* | score-timewise/@*"/>
|
||||
|
||||
<!--
|
||||
Do not copy text for glissando or slide elements.
|
||||
-->
|
||||
<xsl:template match="glissando | slide">
|
||||
<xsl:copy><xsl:apply-templates
|
||||
select="*|@*|comment()|processing-instruction()"
|
||||
/></xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
The identity transformation. Used for everything that
|
||||
stays the same in 1.0.
|
||||
-->
|
||||
|
||||
<xsl:template match="text()">
|
||||
<xsl:value-of select="." />
|
||||
</xsl:template>
|
||||
|
||||
<!--
|
||||
Whitespace within an xsl:copy could cause problems with
|
||||
empty elements.
|
||||
-->
|
||||
<xsl:template match="*|@*|comment()|processing-instruction()">
|
||||
<xsl:copy><xsl:apply-templates
|
||||
select="*|@*|comment()|processing-instruction()|text()"
|
||||
/></xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
Loading…
Reference in New Issue
Block a user