<?xml version="1.0" encoding="UTF-8"?> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --> <?xml-model href="../source/validation/mei_odds.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <?xml-model href="../source/validation/mei_odds.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="../source/validation/mei-source.sch" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron?> <!--canonicalized: 2023-09-05T20:03:32.414441906+02:00--> <TEI xmlns="http://www.tei-c.org/ns/1.0" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" rend="book" xml:lang="en"> <teiHeader> <fileDesc> <titleStmt> <title>The Music Encoding Initiative Guidelines</title> <respStmt> <resp>Edited by </resp> <name ref="http://viaf.org/viaf/217561752" role="pbd" xml:id="JK">Johannes Kepper</name> <name ref="http://viaf.org/viaf/313473016" role="pbd" xml:id="PR">Perry D. Roland</name> </respStmt> <respStmt> <resp>With contributions by </resp> <name ref="https://orcid.org/0000-0001-7217-9167" xml:id="BB">Benjamin W. Bohl</name> <name ref="http://viaf.org/viaf/313473028" xml:id="AH">Andrew Hankinson</name> <name ref="http://viaf.org/viaf/254615230" xml:id="MH">Maja Hartwig</name> <name xml:id="ZK">Zoltán Kőmíves</name> <name ref="http://viaf.org/viaf/313473048" xml:id="LP">Laurent Pugin</name> <name ref="http://viaf.org/viaf/255324861" xml:id="KR">Kristina Richts</name> <name ref="http://viaf.org/viaf/86212637" xml:id="AG">Axel Teich Geertinger</name> <name ref="https://orcid.org/0000-0003-3094-139X" xml:id="RV">Raffaele Viglianti</name> <name ref="https://api.github.com/users/th-we" xml:id="TW">Thomas Weber</name> <name ref="http://viaf.org/viaf/160759717" xml:id="RE">Klaus Rettinghaus</name> <name ref="https://orcid.org/0000-0001-8747-3422" xml:id="SD">Sophia Dörner</name> <!--The following users are automatically extracted from GitHub--> <name ref="https://api.github.com/users/bwbohl">Benjamin W. Bohl</name> <name ref="https://api.github.com/users/BruxDDay">BruxDDay</name> <name ref="https://api.github.com/users/dinamix">dinamix</name> <name ref="https://api.github.com/users/ndubo">Norbert Dubowy</name> <name ref="https://api.github.com/users/fujinaga">Ichiro Fujinaga</name> <name ref="https://api.github.com/users/axgeertinger">Axel Geertinger</name> <name ref="https://api.github.com/users/ahankinson">Andrew Hankinson</name> <name ref="https://api.github.com/users/irmlindcapelle">irmlindcapelle</name> <name ref="https://api.github.com/users/frakel">franz kelnreiter</name> <name ref="https://api.github.com/users/kepper">kepper</name> <name ref="https://api.github.com/users/zolaemil">Zoltan Komives</name> <name ref="https://api.github.com/users/DDMAL-LabManager">DDMAL LabManager</name> <name ref="https://api.github.com/users/uliska">Urs Liska</name> <name ref="https://api.github.com/users/elsinhadl">Elsa De Luca</name> <name ref="https://api.github.com/users/napulen">Néstor Nápoles López</name> <name ref="https://api.github.com/users/MajaHartwig">MajaHartwig</name> <name ref="https://api.github.com/users/musicEnfanthen">Stefan Münnich</name> <name ref="https://api.github.com/users/pe-ro">pe-ro</name> <name ref="https://api.github.com/users/lpugin">Laurent Pugin</name> <name ref="https://api.github.com/users/JRegimbal">Juliette Regimbal</name> <name ref="https://api.github.com/users/rettinghaus">Klaus Rettinghaus</name> <name ref="https://api.github.com/users/aseipelt">Agnes Seipelt</name> <name ref="https://api.github.com/users/martha-thomae">Martha E. Thomae</name> <name ref="https://api.github.com/users/raffazizzi">Raffaele Viglianti</name> <name ref="https://api.github.com/users/vigliensoni">Gabriel Vigliensoni</name> <name ref="https://api.github.com/users/th-we">Thomas Weber</name> <name ref="https://api.github.com/users/musicog">David M. Weigl</name> </respStmt> </titleStmt> <editionStmt> <edition>Version 5.0</edition> </editionStmt> <publicationStmt> <distributor>Music Encoding Initiative (MEI) Council</distributor> <availability> <p> <hi>Music Encoding Initiative (MEI)</hi> </p> <p>NOTICE: Copyright (c) 2017–2023 by the Music Encoding Initiative (MEI) Council.</p> <p>Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at <ref target="http://opensource.org/licenses/ECL-2.0">http://opensource.org/licenses/ECL-2.0</ref>.</p> <p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p> <p>This is a derivative work based on earlier versions of the schema copyright (c) 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0.</p> <p>CONTACT: contact@music-encoding.org </p> </availability> </publicationStmt> <sourceDesc> <p/> </sourceDesc> </fileDesc> <!--&revisionDesc; --> </teiHeader> <text> <body> <div xml:id="introduction" type="div1"> <head>Introduction to MEI</head> <p>Welcome to the MEI Guidelines. They provide documentation for the Music Encoding Initiative’s framework for describing music notation documents. This includes both a technical specification of the XML-based implementation of MEI and an explanatory description of its concepts.</p> <div xml:id="about" type="div2"> <head>About these Guidelines</head> <p>The MEI Guidelines are intended to serve as a reference tool for music encoders. Through the use of natural-language definitions and examples, this documentation assists users of MEI in achieving effective and consistent markup. Despite translating XML and RNG terminology and concepts into more accessible language, it is still a technical one that presupposes a minimal understanding of XML and music notation. Novice encoders may want to start their MEI experience by doing an <ref target="https://music-encoding.org/resources/tutorials.html">introductory tutorial</ref> first. These Guidelines will provide recommendations and arguments for encoding different types of music notation for a variety of purposes. While the specification of the framework is complete, the description is not necessarily complete. MEI is used in various contexts, and not every use-case may be fully reflected in these Guidelines. However, MEI is a community effort, so feedback and suggestions for improvement are highly welcome. Several starting points to get in touch with the MEI community can be found on the <ref target="https://music-encoding.org/community/community-contacts.html">MEI website</ref>.</p> <p>These Guidelines make use of real-world examples to illustrate appropriate encoding concepts. We consider the use of such images as fair use. Contributors to these Guidelines are requested to given proper reference to the libraries holding the material used here. They're also asked to be aware of potential copyright infringements and avoid respective material, or replace it with hand-drawn, made-up examples. If you find material that possibly offends copyright, please <ref target="mailto:info@music-encoding.org">get in touch</ref> with us, and we will take it down.</p> <div xml:id="acknowledgments" type="div3"> <head>Acknowledgments</head> <p>Many institutions and individuals assisted in the preparation of these Guidelines and in the overall development of the Music Encoding Initiative framework and community.</p> <p>Grateful acknowledgment is given to the following institutions for their generous contributions: the Akademie der Wissenschaften und der Literatur (AdW) in Mainz for serving as hosting institution for the MEI Community, and the National Endowment for the Humanities (NEH) and the Deutsche Forschungsgemeinschaft (DFG) for their joint financial support of the MEI project in its early stages. We thank several institutions that hosted Music Encoding Conferences or other MEI-related meetings in the past: The AdW Mainz, the University of Virginia Library, the Biblioteca Umanistica of the Università degli Studi Firenze, McGill University Montréal, the Centre d’études supérieures de la Renaissance Tours, the Maryland Institute for Technology in the Humanities (MITH) in College Park, the Oxford e-Research Centre, the Universität Paderborn and the Österreichische Akademie der Wissenschaften Wien in conjunction with the Universität Wien and the Mozarteum Salzburg. We also thank all other institutions that allow their researchers to invest time into both the community and the encoding framework. It is their interest that makes MEI an incredible platform for interchange and scholarly progress.</p> <p>The Text Encoding Initiative is also owed a special debt of gratitude. In addition to providing much of the inspiration for MEI, the TEI organization supplied funding for the MEI Technical Group in its efforts to adopt ODD. The editors of these Guidelines are grateful for those of the TEI, which provided a stellar exemplar and from which we have borrowed shamelessly.</p> <p>MEI has been a community-driven effort for more than a decade, and many individuals have provided significant and much-appreciated commitments of time and energy to the development of MEI: Nikolaos Beer; Vincent Besson; Benjamin W. Bohl; Margrethe Bue; Donald Byrd; Irmlind Capelle; Tim Crawford; David A. Day; Giuliano Di Bacco; Norbert Dubowy; Richard Freedman; Ichiro Fujinaga; Andrew Hankinson; Maja Hartwig; Kristin Herold; Franz Kelnreiter; Johannes Kepper; Robert Klugseder; Zoltán Kőmíves; David Lewis; Urs Liska; Elsa De Luca; Erin Mayhood; Stefan Morent; Stefan Münnich; Markus Neuwirth; Kevin Page; Daniel Pitti; Laurent Pugin; Klaus Rettinghaus; Kristina Richts; Daniel Röwenstrunk; Perry Roland; Craig Sapp; Agnes Seipelt; Eleanor Selfridge-Field; Christine Siegert; Peter Stadler; Axel Teich Geertinger; Martha Thomae; Joachim Veit; Raffaele Viglianti; Thomas Weber; and Sonia Wronkowska.</p> <p>Thanks to Bernhard R. Appel; Richard Chesser; Morgan Cundiff; J. Stephen Downie; Oliver Huck; Fotis Jannidis; John Rink; Federica Riva; Frans Wiering and Barbara Wiermann for providing expertise on a wide range of topics related to music notation modelling.</p> <p>Also thanks to Syd Bauman, Terry Catapano, and Sebastian Rahtz for their invaluable problem-solving assistance during the development of the 2010 RNG schema. Thanks to Sebastian Rahtz and James Cummings of the Text Encoding Initiative (TEI) for their help with making ODD work with MEI, their assistance in more closely aligning MEI and TEI, and their quick responses to questions and Roma bug reports.</p> <p>Finally, the members of the Music Encoding Initiative would like to thank Perry Roland for his foresight, engagement and dedication in laying the foundations of this initiative.</p> </div> <div xml:id="aboutVersion" type="div3"> <head>About version 5.0</head> <p>Release 5.0 of MEI focuses primarily on the guidelines, development infrastructure, and consistency, with only limited changes to the specifications. Perhaps the most important additions are the introduction of the MEI Basic customization, and the availability of an auto-generated PDF version of the Guidelines (see below for more details on both). The Release Managers for MEI 5.0 were the Technical Co-Chairs, Benjamin W. Bohl and Stefan Münnich. </p> <div xml:id="meiBasic" type="div4"> <head>MEI Basic</head> <p>As a framework to encode music, MEI offers extensive flexibility to encode music documents of various kinds, and for a wide variety of uses. For scholarly research, this flexibility is necessary and is one of the greatest strengths of MEI. At the same time, we recognize that this flexibility presents challenges for broad adoption of MEI as a notation interchange format. For developers, providing "full" MEI support is a difficult and time-consuming chore, writing and supporting code for features which most of their users will not use. Accordingly, MEI has not seen a great deal of adoption by current score-writing applications.</p> <p>This is addressed this with the release of MEI 5. We are now offering a new customization of MEI, <hi rend="italic">MEI Basic</hi>, that provides a simplified subset of the MEI framework that reflects the capabilities of most popular "Common Western Music Notation" score-writing applications currently in use.</p> <p>In the full MEI schema there are often multiple ways to encode something. MEI Basic simplifies this by providing only one approach for each music feature, making it significantly easier to provide full feature support in software. As noted, MEI Basic only supports Common Western Music Notation. Many of the more complex encoding mechanisms for editorial and analytical workflows are also removed in MEI Basic. MEI Basic has a relatively small footprint of supported features, which may be expanded over time as more software applications adopt MEI and more use cases are identified. All MEI Basic files are valid MEI "full" files, meaning MEI Basic files may be expanded and upgraded to MEI "full", adding more complex features and encoding mechanisms as required.</p> <p>We hope that this customization facilitates more application adoption, data sharing between MEI projects, and conversion between MEI and other data formats.</p> </div> <div xml:id="pdfGuidelines" type="div4"> <head>Guidelines</head> <p>With MEI 5, we re-introduce a PDF version of the MEI Guidelines. With a total of more than 5,700 pages, this PDF clearly is not intended to be printed, but may serve as a single-file reference to the current release of MEI. The PDF is interactive, so may be offline with working links between sections. While the largest part of the PDF is taken up by the formal specification of the format, there are also more than 370 pages of prose documentation and examples of how to use the MEI framework for various purposes. The PDF therefore gives a good impression of the huge effort that went into the development of MEI.</p> <p>The Guidelines have also had several notable contributions, led in large part by our Interest Groups. These contributions have sought to make some chapters more clear and consistent, to help newcomers to MEI understand how MEI encoding may be applied.</p> <p>In total, we have over 40 contributors actively involved in the preparation of this release of MEI. Many of them are early-career researchers, investing significant time and effort into the MEI Framework. Due to the open nature of this community work, happening alongside conferences, workshops, and other meetings, others may not be listed properly because of rather informal, but no less important, contributions. Without the joint effort of all those involved, an undertaking like MEI would not be possible.</p> </div> <div xml:id="modelChanges" type="div4"> <head>Model changes in MEI</head> <p>MEI 5 introduces five new elements: <gi scheme="MEI">plica</gi> and <gi scheme="MEI">stem</gi>, for the encoding of documents written in Mensural notation, and <gi scheme="MEI">divLine</gi> for Neumes documents. The new CMN element <gi scheme="MEI">repeatMark</gi> can be used to express repetition marks as a combination of text and symbols, and the added shared element <gi scheme="MEI">extData</gi> provides a container for non-MEI data formats. The release technically removes the <fingerprint> element, which has been deprecated for ten years. It also removes the elements <pgHead2> and <pgFoot2>, which are now superseded by the <att>func</att> attribute on <gi scheme="MEI">pgHead</gi> and <gi scheme="MEI">pgFoot</gi> respectively.</p> <p>Most other changes affect more specific aspects in the model of MEI, usually expressed in attributes. These include the refinement of the encoding of key signatures, with <att>key.sig</att> moved to <att>keysig</att>, <att>keysig.show</att> moved to <att>keysig.visible</att>, and <att>keysig.showchange</att> and <att>sig.showchange</att> moved to <att>keysig.cancelaccid</att> and <att>cancelaccid</att> respectively. The <att>instr</att> attribute is removed from quiet events like <gi scheme="MEI">rest</gi>, <gi scheme="MEI">mRest</gi>, <gi scheme="MEI">mSpace</gi> and <gi scheme="MEI">multiRest</gi>, and the <att>visible</att> attribute is also removed from <gi scheme="MEI">mRest</gi>. Moreover, attributes <att>line.form</att> and <att>line.width</att> on the <gi scheme="MEI">arpeg</gi> element are aligned with other line-like elements as <att>lform</att> and <att>lwidth</att>. <att>text.dist</att> on <gi scheme="MEI">scoreDef</gi> and <gi scheme="MEI">staffDef</gi> is removed in favor of the newly added attributes <att>dir.dist</att>, <att>reh.dist</att> or <att>tempo.dist</att>. <att>meter.form</att>="invis" is updated to <att>meter.visible</att>="false", and the same change applies to <att>form</att>="invis" on meterSig, now replaced with <att>visible</att>="false". The text-rendition values of <val>letter-spacing</val> and <val>line-height</val> on <att>rend</att> are moved to separate attributes, that is, <att>rend</att>="letter-spacing(0.25) line-height(120%)" will be now <att>letterspacing</att>="0.25" <att>lineheight</att>="120%". Additionally, corrections are applied to specific attribute values, such as changing <val>Bagpipe</val> on <att>midi.instrname</att> to <val>Bag_pipe</val> and replacing <val>dblwhole</val> on <att>head.mod</att> with <val>fences</val>. All changes can be traced in the detailed Release Notes auto-generated from the Pull Requests on GitHub. A larger group of changes affects the internal class structure of MEI only, where significant effort went into improved consistency in naming things. While this set of changes does not affect end users of MEI during validation of files, they may have consequences for local customizations which reference classes not available anymore. If you have advanced local customizations based on MEI v4 or older releases, please check that the rules provided still work as expected under v5. A very helpful addition for this task may be the validation for MEI customizations, which is now available and used for all customizations officially provided by MEI.</p> </div> <div xml:id="infrastructuralChanges" type="div4"> <head>Infrastructural changes</head> <p>A lot of effort went into updating the infrastructure for generating releases. These changes are designed to help improve the development workflow of MEI, improving consistency and oversight of changes as they are contributed to MEI. Our new setup is explained in great detail in <ref target="https://github.com/music-encoding/music-encoding/blob/v5.0/README.md">the project README file</ref>. We have also expanded our <ref target="https://github.com/music-encoding/music-encoding/blob/v5.0/CONTRIBUTING.md">Contribution Guidelines</ref> and other documentation files in the <ref target="https://github.com/music-encoding/music-encoding">music-encoding GitHub repository</ref>.</p> <p>The MEI documentation and guidelines are now expressed in TEI ODD again, moving away from the MarkDown-based approach used in the preparation of MEI v4 documentation. This re-introduces greater compatibility with the TEI toolset. The source code for both the Guidelines and the Specification is now jointly contained in the <ref target="https://github.com/music-encoding/music-encoding">music-encoding GitHub repository</ref>, which simplifies validation across both parts of MEI. All assets – web documentation, PDF Guidelines, and schemata – are automatically generated from there. A multi-platform Docker image for running these processes locally is also provided to help new developers with getting started in contributing to MEI. Setting up these technical workflows has taken considerable effort, but should now simplify future development and releases considerably.</p> <p>In addition to the main Music Encoding schema and Guidelines, we have also updated our Sample Encodings and Encoding Tools repositories. Sample Encodings have been updated to MEI 5.0, and several problems with encodings from older releases have been fixed. In the Encoding Tools, several bugs were fixed with older upgrade XSLT scripts, and a new XSLT for upgrading MEI 4 to MEI 5 was added.</p> <p>To see all of the changes made for this revision, please visit our Git repositories: <list rend="simple"> <item><ref target="https://github.com/music-encoding/music-encoding">https://github.com/music-encoding/music-encoding</ref></item> <item><ref target="https://github.com/music-encoding/sample-encodings">https://github.com/music-encoding/sample-encodings</ref></item> <item><ref target="https://github.com/music-encoding/encoding-tools">https://github.com/music-encoding/encoding-tools</ref></item> </list> </p> <p>The editors wish to thank everyone who participated in this process. Of course, errors and omissions are the sole responsibility of the editors.</p> </div> </div> </div> <div xml:id="designPrinciples" type="div2"> <head>MEI Design Principles</head> <p>This section of the Guidelines defines principles and criteria for designing, developing, and maintaining an XML-based encoding scheme for music notation documents.</p> <div xml:id="definitionsAndParameters" type="div3"> <head>Definitions and Parameters</head> <p>A music notation document is one that contains music notation; that is, any one of a number of "visual analogues of musical sound, either as a record of sound heard or imagined, or as a set of visual instructions for performers." (Ian D. Bent, et al. "Notation." Grove Music Online. Oxford Music Online. 25 May 2010. <ref target="http://www.oxfordmusiconline.com/subscriber/article/grove/music/20114">http://www.oxfordmusiconline.com/subscriber/article/grove/music/20114</ref>.) However, MEI’s understanding is more inclusive than this restrictive definition, <abbr>i.e.</abbr>, Braille certainly qualifies as music notation documents.</p> <p>The encoding scheme permits both the creation of new music notation documents and the conversion of existing ones from print and other electronic formats. However, conversion of existing documents may require revisions in content or rearrangement of information.</p> </div> <div xml:id="generalPrinciples" type="div3"> <head>General Principles</head> <p>MEI may be used to encode both primary sources of music notation, such as an autograph or published score, and secondary sources, such as a scholarly edition based on one or more primary sources. The format encompasses both use cases, and the encoder must choose the elements and attributes most appropriate in each case. These Guidelines aim to provide guidance on that task.</p> <p>As an encoded representation of one or more music notation documents, an MEI file may be employed as a surrogate for the original materials.</p> <p>Although the encoding scheme does not define or prescribe intellectual content for music notation documents, it does define content designation and is intended to be used with available data content standards. MEI identifies the essential data elements within music notation documents and establishes codes and conventions necessary for capturing and distinguishing information within those elements for future action or manipulation. While there are a few elements that ought to appear in any MEI document, various intellectual, technical, and economic factors influence the level of detail of analysis and encoding actually undertaken. Taking this into consideration, the encoding scheme is designed with a minimum of required elements and allows for progressively more detailed levels of description as desired.</p> <p>The encoding scheme preserves and enhances the current functionality of existing music notation documents. It permits identification of document structures and content that support description, navigation, analysis, and online and print presentation.</p> <p>The encoding scheme is intended to facilitate interchange between notational tools. It aims to assist in the creation of more effective and consistent encoding, encourage the creation of cooperatively-created and widely available databases of music notation documents, and permit the reuse of encoded data for multiple output purposes. It will also ensure that machine-readable music notation documents will outlive changing hardware and software environments because they are based on a platform-independent standard.</p> </div> <div xml:id="structuralFeatures" type="div3"> <head>Structural Features</head> <p>The encoding scheme is based on eXtensible Markup Language (XML), a text-based format for representing structured information. It is expressed as a One Document Does-it-all (ODD) document. For more information on ODD, please refer to <ptr target="#meiCustomization"/>.</p> <p>Related or complementary standards, such as the <ref target="http://www.tei-c.org/Guidelines/P5/">Text Encoding Initiative (TEI) Guidelines for Electronic Text Encoding and Interchange</ref>, <ref target="http://www.loc.gov/ead/">the Encoded Archival Description (EAD)</ref>, <ref target="http://www.loc.gov/marc/bibliographic/ecbdhome.html">MARC 21 Format for Bibliographic Data</ref>, existing notation encoding schemes, etc. have been consulted and employed as appropriate. For example, the data model includes a header that is comparable to the TEI header, and TEI and EAD naming conventions and tag structures have been used whenever feasible. However, while some feature names are similar, or even the same, it is important to recognize that MEI and TEI have different semantic scope. Obviously, a note element in MEI does not carry the same meaning as the element of the same name in TEI. Perhaps less obviously, a phrase in music notation is unrelated to a textual phrase.</p> <p>With respect to metadata, MEI recognizes the close relationship between the metadata content found in the MEI header and that of catalog records, authority records, and finding aids. Therefore MEI provides ways of indicating in the encoding the corresponding fields of other metadata standards.</p> <p>To ensure broad international and multi-repertoire application of MEI, existing musical terminology was used in building the data model where practical. When appropriate, a more neutral terminology was used to facilitate sharing of concepts and thus stressing the commonalities between different repertoires. Finally, extensive use of attributes and clearly-defined classification mechanisms in the schema permits the refinement of element meanings within specific musical, geographic, or temporal contexts.</p> </div> <div xml:id="controlAndMaintenance" type="div3"> <head>Control and Maintenance</head> <p>The Music Encoding Initiative Community has given itself <ref target="https://music-encoding.org/community/mei-by-laws.html">By-laws</ref>, which regulate all essential properties and procedures. The community elects a <ref target="https://music-encoding.org/community/mei-board.html">Board</ref>, which in turn governs and represents the community. The Board consists of nine elected members, with three seats standing for election for three year terms each year. Everyone registered to the <ref target="https://music-encoding.org/community/community-contacts.html">MEI-L</ref> mailing list is eligible to vote for the Board.</p> <p>In addition to the Board, there is a <ref target="https://music-encoding.org/community/technical-team.html">Technical Team</ref>, which is open for anyone interested to work on the maintenance and improvement of MEI itself. The Technical team will assist Interest Groups and other interested community members in an advisory capacity on how to further develop MEI for both existing and new fields of application.</p> </div> </div> <div xml:id="basicConcepts" type="div2"> <head>Basic Concepts of MEI</head> <p>This chapter is intended to explain basic concepts of MEI, like events vs. controlevents.</p> <div xml:id="musicalDomains" type="div3"> <head>Musical Domains</head> <p>The term "music" has many different notions, ranging from audible sounds over written performance instructions or transcriptions of such events to conceptual rulesets that establish different theories of what music is, and what is allowed in music. In 1965, Milton Babbitt distinguished between <hi rend="italic">graphemic</hi>, <hi rend="italic">acoustic</hi> and <hi rend="italic">auditory</hi> aspects of music (Babbitt, Milton: <hi rend="italic">The Use of Computers in Musicological Research</hi>, in: <hi rend="italic">Perspectives of New Music</hi> 3/2 (1965), p. 76).</p> <p>Various music encoding formats took up this distinction, most notably SMDL, the <hi rend="italic">Standard Music Description Language</hi> (ISO/IEC DIS 10743). While the format itself was hardly ever used for its impractical implementation details, parts of its design certainly influenced the development of other formats, including MEI. In a documentation draft (<ref target="http://xml.coverpages.org/smdl10743-pdf.gz">http://xml.coverpages.org/smdl10743-pdf.gz, p.5</ref>), SMDL identifies four different <hi rend="italic">musical domains</hi>:</p> <list type="gloss"> <label>logical domain</label> <item>The logical domain is the basic musical content – the essence from which all performances and editions of the work are derived, including virtual time values, nominal pitches, etc. The logical domain is describable as “the composer’s intentions with respect to pitches, rhythms, harmonies, dynamics, tempi, articulations, accents, etc.,” and it is the primary focus of SMDL. It can also be described as “the abstract information common to both the gestural and visual domains.” […]</item> <label>gestural domain</label> <item>The gestural domain is comprised of any number of performances, each of which may specify how and when components of the logical domain is rendered in a specific performance, including all the means whereby the performer actually “expresses” (acoustically instantiates) the music (intonation, agogic and dynamic stress, etc.). The gestural domain is perhaps most succinctly described as “the information added by performers,” or “how the music actually sounds during particular performances.” […]</item> <label>visual domain</label> <item>The visual domain is comprised of any number of scores, each of which somehow specifies exactly how components of the logical domain is rendered visually in some particular printable (and/or displayable) edition, including such graphical details as symbology, symbol sets, fonts, page layout, beaming conventions and exceptions, etc. The visual domain is perhaps most succinctly described as “the information added by human editors, engravers, and typesetters,” or “how the music actually looks in some particular edition.” […]</item> <label>analytical domain</label> <item>The analytical domain is comprised of any number of theoretical analyses and/or commentaries, each of which somehow specifies opinions, exegeses, etc. about any or all of the information in the other three domains. […]</item> </list> <p>On a generic level, MEI follows the same definition, and it definitely shares the same terminology. However, not all four domains are available throughout the MEI schema, and quite frequently, two domains fall together in MEI. Very often, <hi rend="italic">MEI prioritizes the visual domain over the gestural domain</hi> by (partly) <hi rend="italic">conflating the logical and the visual domains</hi>. For example, MEI utilizes the <att>pname</att> (pitch name) attribute on notes to capture the <hi rend="italic">written</hi> pitch of a note, whereas the sounding pitch may be described with the <att>pname.ges</att> attribute. Here, the logical and visual domains go without a special indication, whereas the gestural domain is identified by a special suffix. However, in case of transposing instruments, additional markup (namely the attributes <att>trans.diat</att> and <att>trans.semi</att> from MEI’s attribute class <ident type="class">att.staffDef.log</ident>) will create a distinction between the logical and visual domain (see chapter <ptr target="#cmnDefs"/>). In that case, <att>pname</att> will be restricted to the visual domain, while the logical aforementioned attributes provide additional information for the logical domain.</p> <p>Even though the technical implementation of MEI prioritizes the visual domain to some degree, this does not mean that any given encoding has to provide visual information. MEI takes no assumption on what data is required: While an OMR project (<hi rend="italic">optical music recognition</hi>) may generate strictly visually oriented data only, another project focussed on audio transcriptions may generate gestural data only. A third project could integrate both approaches.</p> <p>In order to avoid ambiguous encodings, MEI is very strict and specific on the scope of its individual markup elements. For an encoder, the suffixes mentioned above provide clear hints on which domain is addressed by specific markup: Many attributes carry a suffixed <hi rend="italic">.log</hi> (logical), <hi rend="italic">.ges</hi> (gestural), <hi rend="italic">.vis</hi> (visual), or <hi rend="italic">.anl</hi> (analytical) in their name. In addition, the internal structure of MEI heavily relies on those different domains. When customizing MEI (see chapter <ptr target="#meiCustomization"/>), it is possible to turn off either visual or gestural domain encoding completely. That way, MEI allows to address the four most eminent musical domains specifically and independent of each other.</p> </div> <div xml:id="eventsControlevents" type="div3"> <head>Events and Controlevents</head> <p>MEI differentiates between two essential aspects of music notation: <hi rend="italic">Events</hi> and <hi rend="italic">ControlEvents</hi>. There are other examples for such a separation of concerns with regard to music. In Greg’s Copy-Text Theory (W.W. Greg: <hi rend="italic">The Rationale of Copy-Text</hi>, 1950), a distinction between primary and secondary text is made; similar attempts have been made for music specifically.</p> <p>In MEI, elements describing the basic musical text are referred to as <hi rend="italic">Events</hi>. They are the building blocks for the stream of music – mostly those are <gi scheme="MEI">note</gi>s, <gi scheme="MEI">rest</gi>s, and <gi scheme="MEI">chord</gi>s. In contrast, <hi rend="italic">ControlEvents</hi> make no independent contribution to that flow of music. Instead, they provide additional information about the encoded <hi rend="italic">Events</hi>, they <hi rend="italic">control</hi> their performance. Examples for such <hi rend="italic">ControlEvents</hi> are <gi scheme="MEI">dynam</gi>ic markings, <gi scheme="MEI">tempo</gi>s indications, or performance <gi scheme="MEI">dir</gi>ectives. Depending on the encoding strategy used, <gi scheme="MEI">slur</gi>s and <gi scheme="MEI">tie</gi>s often also fall into this category (they may be encoded as attributes instead, in which case they become a property of the basic events). Simply put, <hi rend="italic">Events</hi> describe <hi rend="bold italic">what</hi> needs to be performed, and <hi rend="italic">ControlEvents</hi> indicate <hi rend="bold italic">how</hi> it needs to be performed. In (<ptr target="#cmn"/>-based) MEI, <hi rend="italic">Events</hi> are nested inside a <gi scheme="MEI">layer</gi> element, while <hi rend="italic">ControlEvents</hi> are direct children of the first <gi scheme="MEI">measure</gi> they apply to, following all <gi scheme="MEI">staff</gi> elements there. These structural differences result in different markup concepts. As <hi rend="italic">Events</hi> are encoded inside <gi scheme="MEI">layer</gi>s, their <hi rend="italic">semantic position</hi> inside the encoded work can be derived from their <hi rend="italic">structural position</hi> – the measure, staff and layer they're nested in, and within that layer by their position inside the sequence of all layer children. As mentioned above, it is highly <hi rend="italic">recommended</hi> to encode <hi rend="italic">ControlEvents</hi> inside the first measure they apply to, but they still require references to the actual events they apply to. There are two common concepts to provide such a connection, both of which offering specific benefits and drawbacks. A technically very stable connection between <hi rend="italic">ControlEvents</hi> and <hi rend="italic">Events</hi> can be established by using <hi rend="italic">pointers</hi>. In this case, all events that need to be referenced need an <att>xml:id</att> attribute, which holds a globally unique identifier for this very element. The referencing controlevent then uses a <att>startid</att> and, if necessary, <att>endid</att> attribute to create a link to where in the stream of music it is supposed to start or end.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="10"> <staff n="1"> <layer> <note pname="f" oct="4" dur="4"/> <note pname="g" oct="4" dur="4" xml:id="c4ded06ff"/> <note pname="a" oct="4" dur="4"/> <note pname="c" oct="5" dur="4"/> </layer> </staff> <dynam startid="#c4ded06ff">f</dynam> </measure> </egXML> </figure> </p> <p>In the example above, the <gi scheme="MEI">dynam</gi> element references the second quarter in the given measure. Additional attributes like <att>place</att> may be used to describe the position of the <hi rend="italic">forte</hi> indication within the score. A <gi scheme="MEI">hairpin</gi> element may use the <att>endid</att> attribute to indicate the duration of the hairpin using the same mechanism as above.</p> <p> <specList> <specDesc key="att.startId" atts="startid"/> <specDesc key="att.startEndId" atts="endid"/> </specList> </p> <p>A <hi rend="italic">ControlEvent</hi> encoded like above will be strictly tied to the referenced <hi rend="italic">Events</hi> – if their position inside the XML document changes for whatever reason, they will keep that connection. This means that the <hi rend="italic">semantic position</hi> to which they are bound may change without affecting the binding. An example could be an inserted additional note in front – the dynamic marking would not start on the second quarter, but perhaps on the third instead.</p> <p>As this behavior may not be desired in all cases, an alternative binding between <hi rend="italic">ControlEvents</hi> and <hi rend="italic">Events</hi> is possible, relying on <hi rend="italic">timestamps</hi> instead. This mechanism is illustrated in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="10"> <staff n="1"> <layer n="1"> <note pname="f" oct="4" dur="4"/> <note pname="g" oct="4" dur="4"/> <note pname="a" oct="4" dur="4"/> <note pname="c" oct="5" dur="4"/> </layer> </staff> <dynam staff="1" layer="1" tstamp="2">f</dynam> </measure> </egXML> </figure> </p> <p>Here, no <att>xml:id</att> is required on notes. Instead, the <gi scheme="MEI">dynam</gi> element uses the <att>staff</att> and <att>layer</att> attributes to indicate to which set of events the following <att>tstamp</att> attribute refers to.</p> <p> <specList> <specDesc key="att.timestamp.log" atts="tstamp"/> </specList> </p> <p>This mechanism actually depends on what has been only recommended above: placing the controlevent inside the measure where it starts. The <att>startid</att> reference mechanism would work equally well if all controlevents where positioned in the very first or last measure, or actually even inside a separate file. The <att>tstamp</att> references however would not, they depend on correct placement of the controlevents inside the XML tree. For consistency, it is therefore <hi rend="italic">recommended</hi> to always use this placement.</p> <p>The benefit of this concept is that controlevents are tied to a <hi rend="italic">semantic position</hi>, but not necessarily to a given XML element. The <hi rend="italic">forte</hi> may still be placed on the second quarter, even though the composer may have replaced that quarter G4 with a different pitch and / or duration. Actually, it is not required that an <hi rend="italic">Event</hi> can be found at the position indicated by a timestamp. This may be useful to encode a slur ending at an arbitrary position between two events, or dynam markings spread across otherwise empty measures.</p> <p>If the ending of a <hi rend="italic">ControlEvent</hi> shall be given by timestamp, the <att>tstamp2</att> attribute is used.</p> <p> <specList> <specDesc key="att.timestamp2.log" atts="tstamp2"/> </specList> </p> <p>Because of potential inconsistencies, an encoding should not offer both <att>startid</att> and <att>tstamp</att> or <att>endid</att> and <att>tstamp2</att>. Though not being recommendable, it is possible to mix <att>startid</att> with <att>tstamp2</att> and <att>tstamp</att> with <att>endid</att>. In general, it is easier for software to process <att>startid</att> and <att>endid</att>. When no other arguments apply, using <att>xml:id</att>-based pointers is therefore the most common way to connect <hi rend="italic">ControlEvents</hi> with <hi rend="italic">Events</hi>.</p> <p>The details on how timestamps are calculated and used in MEI are given in <ptr target="#timestamps"/>.</p> </div> <div xml:id="timestamps" type="div3"> <head>Timestamps in MEI</head> <p>In MEI, timestamps are treated in a slightly simplified way: they have no notion of <hi rend="italic">beat</hi>. Instead, timestamps rely solely on the numbers given in the meter signature. In a measure of 4/4, timestamps will range from 1 to 4. The second eighth note will be 1.5 in this case. If the same measure would be given in 2/2, it would be 1.25 instead.</p> <p> <specList> <specDesc key="att.timestamp.log" atts="tstamp"/> </specList> </p> <p>At this point, MEI uses real numbers only to express timestamps. In case of (nested or complex) tuplets, this solution is inferior to fractions because of rounding errors. It is envisioned to introduce a fraction-based value for timestamps in a future revision of MEI. For now, it is recommended to round the fractional part of the number to no more than five digits to avoid such problems.</p> <p>Durations may also be expressed based on timestamps. In this case, the values are a combination of the <hi rend="italic">count of measures</hi> that need to be moved forward to reach the measure in which an encoded feature ends, and the <hi rend="italic">timestamp</hi> within that measure.</p> <p> <specList> <specDesc key="att.timestamp2.log" atts="tstamp2"/> </specList> </p> <p>The following example contains a number of <gi scheme="MEI">slur</gi> examples illustrating durations expressed by timestamps.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- slur starting on timestamp 1, ending on timestamp 4 of the same measure --> <slur tstamp="1" tstamp2="0m+4"/> <!-- slur ending on timestamp 1 of the following measure --> <slur tstamp="1" tstamp2="1m+1"/> <!-- slur ending on timestamp 2.5 in the second next measure --> <slur tstamp="1" tstamp2="2m+2.5"/> </egXML> </figure> </p> <p>Sometimes, timestamps are used to indicate positions where no music <hi rend="italic">Events</hi> are located (see <ptr target="#eventsControlevents"/>). Therefore, the allowed range of timestamps stretches from 0 to the current meter count + 1. By definition, a timestamp of 1 indicates the position of the left bar line, while a timestamp of 5 (in case of a 4/4 meter) indicates the right bar line. This makes it possible to encode open-ended slurs in a graphical way. However, it should be kept in mind that such timestamps may not be converted to <att>startid</att> and <att>endid</att>, and not every application may be able to render them correctly, even though they are perfectly valid MEI, and sometimes are necessary to faithfully transcribe a source.</p> </div> <div xml:id="meiProfiles" type="div3"> <head>MEI Profiles</head> <p>MEI is an encoding framework, not a data format. This means that MEI provides recommendations for encoding music documents, but it depends on the encoder's needs and requirements to which features and solutions are appropriate to the task and should be used. MEI offers specific models for different notation types and music repertoires, but it is rarely advisable to use them all side by side in one encoding.</p> <p>In order to use MEI, it is advised to use a restricted version of the schema, which will make it easier both for an encoder and a reader of the encoded files. MEI provides a number of pre-defined <hi rend="italic">profiles</hi>, which focus on specific uses of MEI while still maintaining a great level of flexibility. For projects that need even better control over their data, it is highly recommended to create a more specific customized version of MEI (see chapter <ptr target="#meiCustomization"/>). The following customizations are provided with every release of MEI:</p> <list type="gloss"> <label>mei-CMN</label> <item>For most users, this will be the best starting point into music encoding with MEI. The <hi rend="italic">mei-CMN</hi> customization targets at documents that use <hi rend="italic">Common Western Music Notation</hi>. The specific rules for that notation are specified in chapter <ptr target="#cmn"/>, even though other chapters of these Guidelines apply as well.</item> <label>mei-Mensural</label> <item>For documents written in <hi rend="italic">Mensural Notation</hi> (both black and white), MEI offers the <hi rend="italic">mei-Mensural</hi> customization. The specific rules for that notation are specified in chapter <ptr target="#mensural"/>, even though other chapters of these Guidelines apply as well.</item> <label>mei-Neumes</label> <item>This profile allows to encode medieval <hi rend="italic">Neume Notation</hi> with MEI. The specific rules for that notation are specified in chapter <ptr target="#neumes"/>, even though other chapters of these Guidelines apply as well. Please note that the <hi rend="italic">mei-Neumes</hi> profile has undergone significant changes from MEI version 3 to version 4.</item> <label>mei-Basic</label> <item>As an encoding framework, MEI offers multiple approaches to encode certain features at various levels of detail. While this flexibility is at the core of MEI and often required for research projects, it is an obstacle when developing software and converters for MEI. The <hi rend="italic">mei-Basic</hi> profile is a subset of MEI which restricts it to one way of encoding for every feature of music notation. It covers <hi rend="italic">Common Western Music Notation</hi> only, and excludes all editorial markup. In essence, it has the same functionality as most other music encoding formats like MusicXML or MNX. The purpose of <hi rend="italic">mei-Basic</hi> is to serve as common ground for data interchange, both between projects using different profiles of MEI, and other encoding schemes.</item> <label>mei-all</label> <item>This is the full definition of MEI. It includes all different repertoires, which has certain side effects and enables encoding options that are neither intended nor advocable. For example, in mensural notation music is organized by staves. In contrast, Common Music Notation utilizes measures, which in turn contain staves. These staves have a different meaning here, and are modeled differently in MEI. <hi rend="italic">mei-all</hi> mixes those models and thus invites encoding errors. In general, you should almost never use <hi rend="italic">mei-all</hi> except for testing purposes.</item> <label>mei-all_anyStart </label> <item>This profile includes all of <hi rend="italic">mei-all</hi>, but extends it even further so that it allows any MEI element as root of conforming MEI instances. In regular MEI, the only allowed starting elements are <gi scheme="MEI">mei</gi>, <gi scheme="MEI">meiHead</gi>, <gi scheme="MEI">music</gi> and <gi scheme="MEI">meiCorpus</gi>. The sole purpose of this customization is to simplify validation at tutorial sessions and other educational purposes. It should not be used in production.</item> </list> <p>The first three profiles provide good starting points to encode music from the respective repertoires. They may also serve as template for further, project-specific customizations. The latter two profiles target very specific use cases and should not be used by default.</p> </div> <div xml:id="meiCustomization" type="div3"> <head>Customizing MEI</head> <p>In production, it is best to use a customized version of MEI, restricted to the very needs of a project. Such a custom schema will guide the encoders and will help to ensure consistency and data quality throughout a project’s files. A customization typically provides a subset of MEI’s encoding models (typically starting from one of the official <hi rend="italic">profiles</hi> mentioned in chapter <ptr target="#meiProfiles"/>), with only one solution for any given situation being allowed. The customization will help to reflect the scope of a project into its data: Only those aspects of music notation a project is interested in will be allowed, so that the absence of a specific information can not be misunderstood as an oversight of the encoders. Larger editorial projects like <hi rend="italic">Complete Works</hi> editions typically use <hi rend="italic">Editorial Guidelines</hi> (german: <hi rend="italic">Editionsrichtlinien</hi>) for the same purposes: (internal) quality control and (external) documentation. In that sense, MEI customizations may serve as Editorial Guidelines in digital form.</p> <p>MEI is implemented in ODD. ODD, or <hi rend="italic">One Document Does-it-all</hi>, is another XML-based markup language developed and maintained by the TEI. TEI's documentation for ODD can be found in the TEI Guidelines chapter 22: <ref target="http://www.tei-c.org/release/doc/tei-p5-doc/en/html/TD.html">Documentation Elements</ref>, chapter 23: <ref target="http://www.tei-c.org/release/doc/tei-p5-doc/en/html/USE.html">Using the TEI</ref>, and the "<ref target="https://tei-c.org/guidelines/customization/getting-started-with-p5-odds/">Getting Started with P5 ODDs</ref>" document.</p> <p>At this point, there is no specific documentation on how to customize MEI with ODD beyond the generic TEI documentation. However, the provided <ptr target="#meiProfiles"/> are based on ODD customizations, and may serve as starting point for further project-specific restrictions. They can be found at <ref target="https://github.com/music-encoding/music-encoding/tree/v5.0/customizations">https://github.com/music-encoding/music-encoding/tree/v5.0/customizations</ref>. In addition, several projects have shared their customizations on GitHub, such as <ref target="https://github.com/Freischuetz-Digital/data-music/tree/master/schemata/odd">Freischütz Digital</ref> or <ref target="https://github.com/BeethovensWerkstatt/module2/tree/dev/data/odd">Beethovens Werkstatt</ref>.</p> <p>MEI provides a web service at <ref target="http://custom.music-encoding.org/">http://custom.music-encoding.org</ref> which allows to compile such customizations against the MEI sources in order to generate RelaxNG schemata, which can be used for validation. More documentation on customizing MEI will be provided as time permits; until then, it is recommended to <ref target="https://music-encoding.org/community/community-contacts.html">reach out to the MEI Community</ref> for additional assistance.</p> </div> </div> <div xml:id="samplesTools" type="div2"> <head>Sample Encodings and Tools for MEI</head> <p>The Music Encoding Initiative provides a collection of sample encodings, which demonstrate a wide-range of uses of MEI in real-world contexts. They are available from <ref target="https://github.com/music-encoding/sample-encodings">https://github.com/music-encoding/sample-encodings</ref>.</p> <p>For MEI, there is also a number of tools, which facilitate encoding of and working with MEI instances in various contexts. These tools are available from the <ref target="https://music-encoding.org/resources/tools.html">https://music-encoding.org/resources/tools.html</ref> website.</p> </div> </div> <div xml:id="shared" type="div1"> <head>Shared Concepts in MEI</head> <p>This chapter describes basic principles and shared concepts of MEI. Besides giving a general understanding of the basic structures of an MEI file it tries to introduce elements, models, and attributes that are part of the MEI.shared module, describe their use or at least point to chapters of these guidelines or tutorials that describe their use and application.</p> <div xml:id="sharedStructuralElements" type="div2"> <head>Structural Elements</head> <p>Besides elements used by multiple other modules the MEI.shared module defines the main structural elements of an MEI file. Please be aware that there is also a <ref target="https://music-encoding.org/tutorials/100-structure.html">A short tutorial about the basics of XML & MEI</ref> that helps understanding and learning the contents of this chapter.</p> <div xml:id="sharedDocumentElements" type="div3"> <head>Document Root Elements</head> <p>MEI defines four elements qualifying as root elements (<abbr>i.e.</abbr>, the element containing everything else) of an MEI document; the most common of these are defined in the MEI.shared module:</p> <p> <specList> <specDesc key="mei"/> </specList> </p> <p>The most straightforward – and probably the most common choice fitting most of the use cases when encoding music – is the <gi scheme="MEI">mei</gi> element. It contains an <gi scheme="MEI">meiHead</gi> element for capturing metadata and a <gi scheme="MEI">music</gi> element for describing the musical text. A more detailed description of the application of <gi scheme="MEI">music</gi> can be found in the course of this section (see <ptr target="#sharedMusicElement"/>). If you want to learn more about the use of the <gi scheme="MEI">meiHead</gi> element – formally declared in the MEI.header module – please visit the chapter <ptr target="#headerstructure"/> in the <ptr target="#metadata"/> section.</p> <p>The below example shows the basic structure of an MEI file with <gi scheme="MEI">mei</gi> as root element. Please be aware that this example still does not represent a valid MEI file:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <!-- metadata goes here --> </meiHead> <music> <!-- description of musical text goes here --> </music> </mei> </egXML> </figure> </p> <p>The other potential root elements serve different use cases or purposes.</p> <p> <specList> <specDesc key="music"/> </specList> </p> <p>A document with <gi scheme="MEI">music</gi> as root element provides music notation markup without metadata, and could serve embedding MEI within other kinds of markup, <abbr>e.g.</abbr>, TEI (see <ptr target="#tei"/>).</p> <p>The below example shows the basic structure of an MEI file with <gi scheme="MEI">music</gi> as root element. Basically this already represents a valid MEI file, although without any contents:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><music xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <!-- description of musical text goes here --> </music> </egXML> </figure> </p> <p> <specList> <specDesc key="meiCorpus"/> </specList> </p> <p> <gi scheme="MEI">meiCorpus</gi> contains an <gi scheme="MEI">meiHead</gi> element describing a collection of related MEI-encoded texts – known as a corpus – and an <gi scheme="MEI">mei</gi> element for each text. Further information regarding the organization and encoding of music corpora is given in chapter <ptr target="#corpus"/>.</p> <p>The below example shows the basic structure of an MEI file with <gi scheme="MEI">meiCorpus</gi> as root element. Please be aware that this example still does not represent a valid MEI file:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><meiCorpus xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <!-- metadata on the corpus goes here --> </meiHead> <mei> <meiHead> <!-- metadata on first text goes here --> </meiHead> <music> <!-- description of first musical text goes here --> </music> </mei> <mei> <meiHead> <!-- metadata on second text goes here --> </meiHead> <music> <!-- description of second musical text goes here --> </music> </mei> <mei> <meiHead> <!-- metadata on … text goes here --> </meiHead> <music> <!-- description of … musical text goes here --> </music> </mei> </meiCorpus> </egXML> </figure> </p> <p> <specList> <specDesc key="meiHead"/> </specList> </p> <p>The <gi scheme="MEI">meiHead</gi> element, formally declared in the MEI.header module, is described in chapter <ptr target="#headerstructure"/>. A document with <gi scheme="MEI">meiHead</gi> as root element only contains metadata and is also known as an independent or stand-alone header. Stand-alone headers are more fully described in chapter <ptr target="#headerIndependentHeader"/>.</p> <p>The below example shows the basic structure of an MEI file with <gi scheme="MEI">meiHead</gi> as root element. Please be aware that this example still does not represent a valid MEI file:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><meiHead xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <!-- metadata goes here --> </meiHead> </egXML> </figure> </p> <p>The above examples all carry two attributes on their root elements. While the <att>xmlns</att> is a general feature of XML and not defined in MEI it is crucial for stating the fact that it is an MEI file you are dealing with. The second attribute is <ident type="class">att.meiVersion</ident>.</p> <p> <specList> <specDesc key="att.meiVersion" atts="meiversion"/> </specList> </p> <p>Although not required the <ident type="class">att.meiVersion</ident> attribute is important for defining a stable reference to a specific MEI-version used in the enclosed encoding, and thus is highly recommended on your root element.</p> </div> <div xml:id="sharedMusicElement" type="div3"> <head>General Music Structure Elements</head> <p> <specList> <specDesc key="music"/> </specList> </p> <p>As indicated above, the general place for encoding the musical text is the <gi scheme="MEI">music</gi> element. MEI.shared offers two possible child elements:</p> <p> <specList> <specDesc key="body"/> <specDesc key="group"/> </specList> </p> <p>While <gi scheme="MEI">body</gi> holds the contents of a single musical text, <gi scheme="MEI">group</gi> allows the textual body to consists of a series of (subordinate) musical texts or other <abbr>e.g.</abbr>, to represent a collection of independent musical texts which is to be regarded as a single unit for processing or other purposes. It is provided to simplify the encoding of collections, anthologies, and cyclic works. It can also be used to record the potentially complex internal structure of corpora, covered more fully in chapter <ptr target="#corpus"/>. Whether the musical text being encoded should be structured one way or the other is not to be decided here. For example, a collection of songs might be regarded as a single item in some circumstances, or as a number of distinct items in others. In such borderline cases, the encoder must choose whether to treat the text as unitary or composite; each option may have advantages and disadvantages.</p> <p>There are several more possible child elements of the <gi scheme="MEI">music</gi> element defined in other modules of MEI, such as <gi scheme="MEI">front</gi> and <gi scheme="MEI">back</gi> elements (defined in MEI.text module, cf. <ptr target="#text"/>), <gi scheme="MEI">performance</gi> (defined in MEI.performance module, cf. <ptr target="#performances"/>), <gi scheme="MEI">genDesc</gi> (defined in MEI.genetic module, cf. <ptr target="#genetic"/>), <gi scheme="MEI">facsimile</gi> (defined in MEI.facsimile module, cf. <ptr target="#facsimiles"/>).</p> <p>Please be aware that the following examples still do not reflect valid MEI files as they are missing some required elements not defined in the MEI.shared module.</p> <p>The basic structure of a unitary musical text:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><mei> <meiHead> <!-- metadata goes here --> </meiHead> <music> <front> <!-- front matter of text, if any, goes here --> </front> <body> <!-- body of text goes here --> </body> <back> <!-- back matter of text, if any, goes here --> </back> </music> </mei> </egXML> </figure> </p> <p>Examples of composite texts which may be represented using the <gi scheme="MEI">group</gi> element include anthologies and other collections. The presence of common front matter referring to the whole collection, possibly in addition to front matter relating to each individual musical text, is a good indication that a given musical text might usefully be encoded in this way.</p> <p>For example, the overall structure of a collection of songs might be encoded as follows:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><music> <group> <music> <!-- song 1 --> </music> <music> <!-- song 2 --> </music> <!-- additional songs here --> </group> </music> </egXML> </figure> </p> <p>A group of musical texts may contain other unitary and grouped texts:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><music> <group> <music> <!-- song 1 --> </music> <group> <!-- songs sharing one or more characteristics, treated as a group --> <music> <!-- song 2 --> </music> <music> <!-- song 3 --> </music> </group> </group> </music> </egXML> </figure> </p> <p>The <gi scheme="MEI">group</gi> element may be used to encode any kind of collection in which the constituents are regarded by the encoder as works in their own right, such as <hi rend="italic">ad hoc</hi> single- or multiple-composer collections or anthologies of works not originally conceived of as a single composition.</p> <div xml:id="sharedDivisionsBody" type="div4"> <head>Divisions of the Body</head> <p>This section describes sub-division of the <gi scheme="MEI">body</gi> of a musical text. Front and back matter are described in chapter <ptr target="#text"/>.</p> <p> <specList> <specDesc key="mdiv"/> <specDesc key="att.typed" atts="type"/> <specDesc key="att.classed" atts="class"/> </specList> </p> <p>The body of a unitary musical text may contain one or more discrete, linear segments. The names commonly used for these structural subdivisions vary with the genre, style, and time period of the music, or even at the whim of the author, editor, or publisher. For example, a major subdivision of a symphony is generally referred to as a ‘movement’. An opera, on the other hand, is usually organized into ‘acts’ and then further by ‘scenes’. All such divisions are treated as occurrences of the same neutrally-named <gi scheme="MEI">mdiv</gi> element. The attributes <att>type</att> or <att>class</att> may be used to categorize them independently of their hierarchic level.</p> <p>To accommodate "divisions within divisions", an <gi scheme="MEI">mdiv</gi> element may contain additional <gi scheme="MEI">mdiv</gi> sub-elements nested to any level required. For example, the encoding of a multi-movement work, such as a symphony, might have the following structure:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><body> <mdiv type="symphony"> <mdiv n="1" type="movement"> <!-- contents of mvt 1 --> </mdiv> <mdiv n="2" type="movement"> <!-- contents of mvt 2 --> </mdiv> <mdiv n="3" type="movement"> <!-- contents of mvt 3 --> </mdiv> <mdiv n="4" type="movement"> <!-- contents of mvt 4 --> </mdiv> </mdiv> </body> </egXML> </figure> </p> <p>While dramatic works, such as Verdi's opera, <hi rend="italic">Il Trovatore</hi>, often exhibit a more deeply-nested structure:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><body> <mdiv type="opera"> <mdiv n="I" type="act"> <mdiv n="1" type="scene"> <!-- contents of act I, sc. 1 --> </mdiv> <mdiv n="2" type="scene"> <!-- contents of act I, sc. 2--> </mdiv> <mdiv n="3" type="scene"> <!-- contents of act I, sc. 3 --> </mdiv> </mdiv> <mdiv n="II" type="act"> <mdiv n="1" type="scene"> <!-- contents of act II, sc. 1 --> </mdiv> <mdiv n="2" type="scene"> <!-- contents of act II, sc. 2 --> </mdiv> <mdiv n="3" type="scene"> <!-- contents of act II, sc. 3 --> </mdiv> <mdiv n="4" type="scene"> <!-- contents of act II, sc. 4 --> </mdiv> <mdiv n="5" type="scene"> <!-- contents of act II, sc. 5 --> </mdiv> </mdiv> <mdiv n="III" type="act"> <mdiv n="1" type="scene"> <!-- contents of act III, sc. 1 --> </mdiv> <mdiv n="2" type="scene"> <!-- contents of act III, sc. 2 --> </mdiv> <mdiv n="3" type="scene"> <!-- contents of act III, sc. 3 --> </mdiv> </mdiv> <mdiv n="IV" type="act"> <mdiv n="1" type="scene"> <!-- contents of act IV, sc. 1 --> </mdiv> <mdiv n="2" type="scene"> <!-- contents of act IV, sc. 2 --> </mdiv> <mdiv n="3" type="scene"> <!-- contents of act IV, sc. 3 --> </mdiv> </mdiv> </mdiv> </body> </egXML> </figure> </p> <p>Conventionally, in performance the musical structures represented by <gi scheme="MEI">mdiv</gi> elements are separated by pauses; however, <hi rend="italic">attacca</hi>, <hi rend="italic">attacca subito</hi>, <hi rend="italic">seque</hi>, or similar terms are sometimes used at the end of an <gi scheme="MEI">mdiv</gi> to indicate that the next <gi scheme="MEI">mdiv</gi> should begin immediately after the conclusion of the current one. These terms have no effect, however, on the logical segmentation of musical content using <gi scheme="MEI">mdiv</gi> elements.</p> </div> <div xml:id="sharedMdivContent" type="div4"> <head>Content of Musical Divisions</head> <p>The contents of <gi scheme="MEI">mdiv</gi> can be organized according to the two encoding paradigms provided by the <gi scheme="MEI">score</gi> and <gi scheme="MEI">parts</gi> elements.</p> <p> <specList> <specDesc key="score"/> <specDesc key="parts"/> </specList> </p> <p>The <gi scheme="MEI">score</gi> element represents notation in which all the parts of an ensemble are arranged on vertically aligned staves, while the <gi scheme="MEI">parts</gi> element collects the individually notated parts for each performer or group of performers. The explicit encoding of these two ‘views’ is necessary because it is not always possible or desirable to automatically derive one view from the other. In addition, separating scores and parts can eliminate a great deal of markup complexity.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><body> <mdiv n="1" type="movement"> <score> <!-- markup of score goes here --> </score> <parts> <!-- markup of performers’ parts goes here --> </parts> </mdiv> <!-- additional movements go here --> </body> </egXML> </figure> </p> <p>The <gi scheme="MEI">score</gi> and <gi scheme="MEI">parts</gi> elements may also be employed to accommodate different methods of organizing the markup – with no particular presentation implied. In this case, software may render a collection of parts as a score or a score as a collection of parts.</p> <p>Within the collective <gi scheme="MEI">parts</gi> element, notation for a single performer is represented by the <gi scheme="MEI">part</gi> element:</p> <p> <specList> <specDesc key="part"/> </specList> </p> <p>A <gi scheme="MEI">part</gi> is effectively a small-scale score, allowing all the encoding features of a full score, such as multiple staves, performance directives, and so on. A group of <gi scheme="MEI">part</gi> elements is useful for encoding performing parts when there is no score, such as in early music part books; when the parts have non-aligning bar lines; when different layout features, such as page turns, are needed for the score and parts; or for accommodating software that requires part-by-part encoding.</p> <p>Please note that <gi scheme="MEI">part</gi> elements in MEI are not an indication of voice leading or staff grouping. Voice leading can be encoded using the <att>next</att> attribute, available on all the members of the <ident type="class">model.eventLike</ident> class. The <gi scheme="MEI">staffGrp</gi> element handles grouping of staves in the score context. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><parts> <part label="Violin 1"> <!-- first performer’s part --> </part> <part label="Violin 2"> <!-- second performer’s part --> </part> <!-- additional performers’ parts --> </parts> </egXML> </figure> </p> <p>In both score and part views, the <gi scheme="MEI">scoreDef</gi> element is used to describe logical characteristics of the encoded music, such as key signature, the sounding key (as opposed to the notated key signature), meter, etc., and visual features, such as page size, staff groupings and display labels, etc. The <gi scheme="MEI">staffGrp</gi> elements within <gi scheme="MEI">scoreDef</gi> and the order of <gi scheme="MEI">staffDef</gi> elements inside <gi scheme="MEI">staffGrp</gi> should follow the score order of the source for the encoding.</p> <p>A <gi scheme="MEI">part</gi> or <gi scheme="MEI">score</gi> may be further divided into linear segments called "sections".</p> <p> <specList> <specDesc key="section"/> </specList> </p> <p> <gi scheme="MEI">section</gi> elements are often used as a scoping mechanism for clef signs, key and meter signatures, as well as metronome, tempo, and expression markings. Using <gi scheme="MEI">section</gi> elements can help to minimize the need for backward scanning to establish context when the starting point for access is not at the beginning of the score. <gi scheme="MEI">section</gi> elements may also be used for other user-defined, <abbr>i.e.</abbr>, analytical or editorial, purposes and may therefore be arbitrarily nested to any desired level.</p> <p>The <gi scheme="MEI">ending</gi> element shares the same model as the <gi scheme="MEI">section</gi> element. Unlike <gi scheme="MEI">section</gi>, however, it may not be recursively nested.</p> <p> <specList> <specDesc key="ending"/> </specList> </p> <p>The most common (non-analytical, non-editorial) use of <gi scheme="MEI">section</gi> and <gi scheme="MEI">ending</gi> elements is illustrated below:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><music> <body> <mdiv> <score> <section> <!-- section one to be repeated --> </section> <ending n="1"> <!-- 1st ending --> </ending> <ending n="2"> <!-- 2nd ending --> </ending> <section> <!-- next section --> </section> </score> </mdiv> </body> </music> </egXML> </figure> </p> <p>Within <gi scheme="MEI">section</gi> elements, several methods of organization are possible, depending upon the notational style of the source material and the encoder's needs. For example, when the MEI.cmn module is used, the default organization is measure-by-measure, with <gi scheme="MEI">staff</gi> and <gi scheme="MEI">layer</gi> sub-elements within each <gi scheme="MEI">measure</gi>. Further discussion of CMN notation is continued in chapter <ptr target="#cmn"/>.</p> <p>However, staff-by-staff organization is more appropriate for music without measures and is provided when either the MEI.mensural or MEI.neumes module is employed. Coverage of mensural notation is provided in chapter <ptr target="#mensural"/>, while <ptr target="#neumes"/> describes neumatic notation.</p> <p>It must be noted that, when both the MEI.cmn and MEI.mensural modules are available, it is possible to encode CMN notation without using <gi scheme="MEI">measure</gi> elements; that is, staff-by-staff organization may be used and the ends of measures marked using <gi scheme="MEI">barLine</gi> elements.</p> <p>In certain circumstances, this approach may be preferable for reproduction of the visual layout of the music. However, the simultaneous use of the <gi scheme="MEI">measure</gi> and <gi scheme="MEI">barLine</gi> elements may lead to confusion and should be avoided.</p> <p>Typically, MEI follows the order of sections as they appear in the document being encoded. When performance requires a different order, for instance in the case of D.C. and D.S. directives, the following element may be used to define the performance order.</p> <p> <specList> <specDesc key="expansion"/> </specList> </p> <p>In the following example, <gi scheme="MEI">expansion</gi> is used to indicate how the notated sections should be ordered in a "through-composed" rendition, for example for machine performance or analysis. The <att>plist</att> attribute contains an ordered list of identifiers of descendant <gi scheme="MEI">section</gi>, <gi scheme="MEI">ending</gi>, <gi scheme="MEI">lem</gi>, or <gi scheme="MEI">rdg</gi> elements. The sequence of values in the <att>plist</att> attribute indicates that the section labelled 'A' comes first, then the section labelled 'B', followed by the 'A' section again. This mechanism must be specified independently of any textual directives, such as "Da capo" or "D.S. al Fine", that may be present in the document.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><music> <body> <mdiv> <score> <section> <expansion plist="#shared.A #shared.B #shared.A"/> <section xml:id="shared.A"> <!-- "A" section --> </section> <section xml:id="shared.B"> <!-- "B" section --> </section> </section> </score> </mdiv> </body> </music> </egXML> </figure> </p> </div> </div> <div xml:id="sharedDocumentStructure" type="div3"> <head>Document Layout Elements</head> <p>This section introduces the elements that can be used to represent document layout features in MEI, be it for the sake of capturing an original source's layout when transcribing or setting up layout features in so called ‘born digital’ documents.</p> <p> <specList> <specDesc key="pb"/> <specDesc key="att.nNumberLike" atts="n"/> </specList> </p> <p>The <gi scheme="MEI">pb</gi> element can be used to mark page beginnings. When transcribing an existing document the <att>n</att> attribute should be used to record the page number displayed in the source. It need not be an integer, <abbr>e.g.</abbr>, 'iv', or 'p17-3'. The logical page number can be calculated by counting previous <gi scheme="MEI">pb</gi> ancestor elements. When used in a score context, a page beginning implies an accompanying system beginning. This element is modelled on an element in the Text Encoding Initiative (TEI) standard.</p> <p> <specList> <specDesc key="pgDesc"/> </specList> </p> <p>Additional information can be provided on page beginnings. Ranging from a prose description of the page layout in <gi scheme="MEI">pgDesc</gi> to defined headers and footers.</p> <p> <specList> <specDesc key="pgHead"/> <specDesc key="pgFoot"/> <specDesc key="att.formework" atts="func"/> </specList> </p> <p>"Forme work" is the name for running elements (page headers and footers). Both <gi scheme="MEI">pgHead</gi> and <gi scheme="MEI">pgFoot</gi> have a <att>func</att> attribute that allows encoders to specify to which page(s) the forme work element applies. This includes alternating patterns.</p> <p>Columned layout can be captured with the following elements:</p> <p> <specList> <specDesc key="cb"/> <specDesc key="cb" atts="n"/> <specDesc key="colLayout"/> </specList> </p> <p>In order to force a system break in the musical text <gi scheme="MEI">sb</gi> can be used.</p> <p> <specList> <specDesc key="sb"/> </specList> </p> <p>Critical editions and collections of works often contain extensive text, such as a title page, table of contents, an introductory essay, commentary, biographical sketch, index, etc. These textual items may appear in either the <gi scheme="MEI">front</gi> or <gi scheme="MEI">back</gi> elements. The front and back elements, available only when the MEI.text module is activated, are described more fully in chapter <ptr target="#text"/>.</p> <p> <specList> <specDesc key="front"/> <specDesc key="back"/> </specList> </p> </div> <div xml:id="sharedTextStructure" type="div3"> <head>General Text Structure Elements</head> <p>The MEI.shared module provides basic text structure elements.</p> <p> <specList> <specDesc key="div"/> <specDesc key="head"/> <specDesc key="lg"/> <specDesc key="lb"/> <specDesc key="p"/> </specList> </p> <p>A detailed description of their use and of other elements from the MEI.text module can be found in the corresponding chapter <ptr target="#text"/>.</p> </div> </div> <div xml:id="sharedMusicalElements" type="div2"> <head>General Music Elements</head> <p>This section lists the elements defined in the shared module that are available within the music element.</p> <div xml:id="sharedScoreAndParts" type="div3"> <head>Score and Parts</head> <p>The following elements are provided for the capture of scores and parts:</p> <p> <specList> <specDesc key="score"/> <specDesc key="parts"/> <specDesc key="part"/> <specDesc key="scoreDef"/> <specDesc key="staffDef"/> <specDesc key="layerDef"/> <specDesc key="staffGrp"/> <specDesc key="grpSym"/> <specDesc key="label"/> <specDesc key="clef"/> <specDesc key="clefGrp"/> <specDesc key="keySig"/> <specDesc key="keyAccid"/> </specList> </p> <p>The character of elements specifying one or more score or staff parameters, such as meter and key signature, clefs, etc., is that of a milestone; that is, they affect all subsequent material until a following redefinition. A <gi scheme="MEI">scoreDef</gi> element, which may affect more than just one staff, is allowed only within <gi scheme="MEI">score</gi>, <gi scheme="MEI">part</gi> and <gi scheme="MEI">section</gi> elements, whereas <gi scheme="MEI">staffDef</gi> is allowed only within <gi scheme="MEI">staffGrp</gi>, <gi scheme="MEI">staff</gi> and <gi scheme="MEI">layer</gi>. A <gi scheme="MEI">staffDef</gi> nested inside a <gi scheme="MEI">staff</gi> must bear the same value for its <att>n</att> attribute as its parent staff and may thus not affect other staves.</p> <p>The actual use of these elements depends on the repertoire and historical context of the source material. For details on their use in Common Western Notation, please refer to chapter <ptr target="#cmnDefs"/>.</p> </div> <div xml:id="sharedStavesAndLayers" type="div3"> <head>Staves and Layers</head> <p>The elements below are used to capture the logical organization of musical notation:</p> <p> <specList> <specDesc key="staff"/> <specDesc key="layer"/> </specList> </p> <p>The actual use of the <gi scheme="MEI">staff</gi> and <gi scheme="MEI">layer</gi> elements depends on the repertoire and historical context of the source material. For details on their use in Common Western Notation, please refer to chapter <ptr target="#cmn"/>. For mensural notation, see chapter <ptr target="#mensural"/>, and for neumatic notation, chapter <ptr target="#neumes"/>.</p> </div> <div xml:id="sharedBasicEvents" type="div3"> <head>Basic Music Events</head> <p>The basic features of music notation are represented by the following elements:</p> <p> <specList> <specDesc key="note"/> <specDesc key="chord"/> <specDesc key="rest"/> </specList> </p> <p>The characteristics of stems on notes and chords are indicated by means of attributes found in the <ident type="class">att.stems</ident> class.</p> <p> <specList> <specDesc key="att.stems" atts="stem.dir stem.len stem.mod stem.pos stem.x stem.y"/> </specList> </p> </div> <div xml:id="sharedOtherEvents" type="div3"> <head>Other events</head> <p>Because they can occur in the context of a stream of events on the staff, some elements which are used in other contexts are also treated as events. For example, in addition to being used to define the initial clef of a staff, the <gi scheme="MEI">clef</gi> element can also be used to indicate a clef change.</p> <div xml:id="sharedKeySignaturesAndClefs" type="div4"> <head>Key Signatures and Clefs</head> <p>Key signatures and clefs as well as intra-staff changes to these musical parameters are treated as events.</p> <p> <specList> <specDesc key="keySig"/> <specDesc key="keyAccid"/> <specDesc key="clef"/> <specDesc key="clefGrp"/> </specList> </p> </div> <div xml:id="sharedBarlines" type="div4"> <head>Bar Lines and Custos Signs</head> <p>Measure separators, <abbr>i.e.</abbr>, bar lines, and custos signs are also considered to be events.</p> <p> <specList> <specDesc key="barLine"/> <specDesc key="custos"/> </specList> </p> </div> <div xml:id="sharedAccidentalsArticulations" type="div4"> <head>Accidentals, Articulation Symbols, Augmentation Dots, and Custos Signs</head> <p>The following elements are regarded as events primarily because they sometimes occur independently of any associated notes, rests, or chords, especially in mensural and neume repertoires.</p> <p> <specList> <specDesc key="accid"/> <specDesc key="artic"/> <specDesc key="dot"/> </specList> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Alignment of editorial accidentals</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>Editorial accidentals are aligned on the centre of the notehead.</annot> </notesStmt> </fileDesc> <encodingDesc /> </meiHead> <music> <body> <mdiv> <score> <scoreDef n="1"> <staffGrp> <staffDef n="1" lines="5" clef.shape="G" clef.line="2" /> </staffGrp> </scoreDef> <section> <measure right="end" n="1"> <staff n="1"> <?edit-start?> <layer n="1"> <note dur="1" oct="5" pname="f"> <accid accid="s" func="edit" /> </note> <note dur="1" oct="5" pname="f"> <accid accid="f" func="edit" /> </note> <note dur="1" oct="5" pname="f"> <accid accid="n" func="edit" /> </note> <note dur="1" oct="5" pname="f"> <accid accid="x" func="edit" /> </note> <note dur="1" oct="5" pname="f"> <accid accid="ff" func="edit" /> </note> </layer> <?edit-end?> </staff> </measure> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> </div> <div xml:id="sharedLyricSyllables" type="div4"> <head>Lyric Syllables</head> <p>The <gi scheme="MEI">syl</gi> element is used to mark a word or portion of a word that is to be vocally performed. A fuller description of its use is provided in chapter <ptr target="#lyricsSyl"/>.</p> <p> <specList> <specDesc key="syl"/> </specList> </p> </div> <div xml:id="sharedNoteSpacing" type="div4"> <head>Event Spacing</head> <p>The following elements provide control over the horizontal spacing of notational events, such as notes, chords, rests, etc.:</p> <p> <specList> <specDesc key="space"/> </specList> </p> <p>In this context, the term ‘space’ is used to mean whitespace that is required to meaningfully align multiple voices in a multi-voice texture. In <abbr>DARMS</abbr> these were referred to as ‘push codes’. The <gi scheme="MEI">space</gi> element is most often used when a new voice appears on a staff mid-measure.</p> <p>The <gi scheme="MEI">space</gi> element may also be used to align material that crosses staves.</p> <p>‘Space’ can be thought of as another kind of event. In fact, some refer to this concept as an ‘invisible rest’.</p> <p>While ‘space’ is meaningful, ‘padding’ is non-essential whitespace that is used to shift the position of the events which follow.</p> <p> <specList> <specDesc key="pad"/> </specList> </p> <p>The <gi scheme="MEI">pad</gi> element is provided in order to capture software-dependent placement information when it is desirable to do so. Unless the MEI file will be used as an intermediate file format, this is usually not necessary.</p> </div> </div> <div xml:id="sharedExpressionMarks" type="div3"> <head>Expression Marks</head> <p>Expression marks are instructions in the form of words, abbreviations, or symbols that convey aspects of performance that cannot be expressed purely through the musical notation.</p> <div xml:id="sharedTextDirectives" type="div4"> <head>Text Directives</head> <p>All of the following elements can be considered text directives; however, MEI uses the <gi scheme="MEI">dir</gi> element specifically for words, abbreviations, numbers, or symbols specifying or suggesting the manner of performance that are not encoded elsewhere using the more specific elements of <gi scheme="MEI">tempo</gi> and <gi scheme="MEI">dynam</gi>.</p> <p> <specList> <specDesc key="dir"/> </specList> </p> <p>Examples of directives include text strings such as 'affettuoso', fingering numbers, or music symbols such as segno and coda symbols or fermatas over a bar line. Directives can be control elements. That is, they can linked via their attributes to other events. The starting point of the directive may be indicated by either a tstamp, tstamp.ges, tstamp.real or startid attribute, while the ending point may be recorded by either a tstamp2, dur, dur.ges or endid attribute. It is a semantic error not to specify a starting point attribute.</p> </div> <div xml:id="sharedTempoMarks" type="div4"> <head>Tempo</head> <p>Tempo marks are indications through words, abbreviations, or specific metronome settings of the speed at which a piece of music is to be performed. Both instantaneous and continuous tempo markings may be encoded using this element.</p> <p> <specList> <specDesc key="tempo"/> </specList> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Tempo example</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>Verovio supports "tempo" elements. Horizontal positioning can be specified. By default, tempi indications are placed above the staff. The "rend" element can be used within the text, for example for specifying metronome values.</annot> </notesStmt> </fileDesc> <encodingDesc> <appInfo> <application version="0.9.13"> <name>Verovio</name> </application> </appInfo> </encodingDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef meter.sym="cut"> <staffGrp> <staffDef label="Violino" n="1" lines="5" clef.shape="G" clef.line="2" /> </staffGrp> </scoreDef> <section> <?edit-start?> <measure n="0" type="upbeat"> <staff n="1"> <layer n="1"> <beam> <note xml:id="m0_s2_e1" dur="8" oct="5" pname="e" /> <note xml:id="m0_s2_e2" dur="8" oct="5" pname="f" /> </beam> </layer> </staff> <tempo staff="1" tstamp="1.000000">Andante con moto <rend fontfam="smufl">&#xE1D3;</rend> = 70</tempo> <slur startid="#m0_s2_e1" endid="#m0_s2_e2" /> </measure> <?edit-start?> <measure n="1"> <staff n="1"> <layer n="1"> <note dots="1" dur="4" oct="5" pname="g" /> <note dur="8" oct="5" pname="g" /> <note dur="4" oct="5" pname="g" /> <beam> <note xml:id="m1_s2_e4" dur="8" oct="5" pname="g" /> <note xml:id="m1_s2_e5" dur="8" oct="6" pname="c" /> </beam> </layer> </staff> <slur startid="#m1_s2_e4" endid="#m1_s2_e5" /> </measure> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> </div> <div xml:id="sharedDynamics" type="div4"> <head>Dynamics</head> <p>Dynamics, or dynamic marks, are terms, abbreviations, and symbols that indicate the specific degrees of volume of a note, phrase, or section of music, <abbr>e.g.</abbr>, "piano", "forte". Transitions from one volume level to another, <abbr>e.g.</abbr>, "crescendo", "diminuendo", are also specified through dynamic marks.</p> <p> <specList> <specDesc key="dynam"/> </specList> </p> </div> <div xml:id="sharedPhraseMarks" type="div4"> <head>Phrase Marks</head> <p>Phrase marks are curved lines placed over or under notes to delineate short sections of a work that represent a unified melodic idea, analogous to a phrase in literature.</p> <p> <specList> <specDesc key="phrase"/> <specDesc key="slur"/> </specList> </p> <p>MEI maintains a distinction between phrase marks and slurs, the latter being curved lines over or under a sequence of notes indicating they are to be performed using a particular playing/singing technique, notes that should be taken in a single breath by wind instruments or played by string instruments using a single stroke of the bow. Often, a slur also indicates that the affected notes should be played in a <hi rend="italic">legato</hi> manner.</p> <p>Even so, it is common for both of these concepts to be referred to generically as "slurs". Therefore, unless one is encoding music from a repertoire in which this distinction is important, the <gi scheme="MEI">slur</gi> element should be preferred over <gi scheme="MEI">phrase</gi>.</p> </div> <div xml:id="sharedOrnaments" type="div4"> <head>Ornaments</head> <p>Ornaments are formulae of embellishment that can be realized by adding supplementary notes to one or more notes of the melody.</p> <p> <specList> <specDesc key="ornam"/> </specList> </p> <p>MEI provides a generic element for encoding an ornament symbol that is not a mordent, turn, or trill. For those common CMN ornaments, please refer to <ptr target="#cmnOrnaments"/>.</p> <p>Ornaments can be represented as textual strings (<abbr>e.g.</abbr>, with a Unicode symbol) or with a user defined symbol (for the latter also see <ptr target="#userSymbols"/>).</p> <p>Ornaments may also be encoded as so called control events (see also: <ptr target="#eventsControlevents"/>). That is, they be can linked via their attributes to other events. It is a semantic error not to specify a starting point attribute with either <att>tstamp</att> or <att>startid</att>.</p> </div> </div> </div> <div xml:id="sharedCommonAttributes" type="div2"> <head>Common Attributes</head> <p>The following attributes, all of which are defined in separate attribute classes but are also provided through the <ident type="class">att.common</ident> attribute class, are available on nearly all elements in an MEI encoding. They provide <abbr>e.g.</abbr>, the means to identify, label, or reference elements in MEI-encoded files.</p> <div xml:id="sharedXmlAttributes" type="div3"> <head>Attributes from the XML-namespace</head> <p>The most general attributes that are very frequently encountered in MEI files are not even native MEI attributes but are coming from the basic definition of XML in the XML-namespace <ref target="http://www.w3.org/XML/1998/namespace">http://www.w3.org/XML/1998/namespace</ref>. MEI redefines some of them in the <ident type="class">att.basic</ident> class.</p> <p> <specList> <specDesc key="att.id" atts="xml:id"/> </specList> </p> <p>The value of the <att>xml:id</att> attribute serves as an identifier for an element and its content. Its value must be unique in the context of the current document and must conform to the definition of an XML Name provided by the W3C Recommendation at <ref target="http://www.w3.org/TR/xml/#NT-Name">http://www.w3.org/TR/xml/#NT-Name</ref>. Suggestions for constructing an <att>xml:id</att> value can be found at <ref target="http://www.w3.org/TR/xml/#sec-suggested-names">http://www.w3.org/TR/xml/#sec-suggested-names</ref>.</p> <p>The <att>xml:id</att> attribute may take values similar to the following:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- The following are all valid IDs. --> <note xml:id="n1"/> <note xml:id="_n1"/> <note xml:id="thisIsMyFavoriteNote"/> <note xml:id="shared.thisIsMyFavoriteNote"/></egXML> </figure> </p> <p>This is an example of an incorrectly-formulated <att>xml:id</att> value:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="false"><!-- xml:id not valid as IDs are not allowed to start with a number. --><note xml:id="1"/> </egXML> </figure> </p> <p> <specList> <specDesc key="att.basic" atts="xml:base"/> </specList> </p> <p>At many locations in an MEI file one can reference internal or external references. E.g. the following example defines a graphic and references an external image (entity) by means of the <att>target</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><graphic target="myImage.jpg"/> </egXML> </figure> </p> <p>When a reference to an external entity is not a complete URI it is resolved against the current base URI; if not defined by other means this would be the location of the current document. The above example consequently would mean, that the file `myImage.jpg` referenced from <gi scheme="MEI">graphic</gi> resides at the same location (in the same folder) as the MEI-file.</p> <p>The <att>xml:base</att> attribute may be used “to specify a base URI other than the base URI of the document or external entity.” (Marsch, Jonathan; Tobin, Richard: XML Base (Second Edition). W3C Recommendation 28 January 2009. online at: <ref target="http://www.w3.org/TR/2009/REC-xmlbase-20090128/">http://www.w3.org/TR/2009/REC-xmlbase-20090128/</ref>).</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><graphic target="myImage.jpg" xml:base="http://www.mySite.org/images/"/> </egXML> </figure> </p> <p>The value of <att>xml:base</att> can be inherited from an ancestor. This is relevant for resolving relative links or URIs within the document. A comprehensible use case can be illustrated by the following example: the values of the graphic elements' <att>target</att> attribute can be completed by the <att>xml:base</att> value specified for the ancestor <gi scheme="MEI">facsimile</gi> element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><facsimile xml:base="http://www.mySite.org/images/"> <surface> <graphic target="myImage.jpg"/> <graphic target="myImage.tif"/> </surface> </facsimile> </egXML> </figure> </p> <p>In order to determine an absolute URI, the base URIs of the element and all its ancestors (including the document node) have to be taken into account. In the above case the relative URIs of <hi rend="italic">graphic/@target</hi> would consequently resolve to:</p> <p>``` http://www.mySite.org/images/myImage.jpg http://www.mySite.org/images/myImage.tif ```</p> <p>For more information on <att>xml:base</att> see: <ref target="https://www.w3.org/TR/xmlbase/">https://www.w3.org/TR/xmlbase/</ref> </p> <p>The <att>xml:id</att> and <att>xml:base</att> attributes are especially important when it comes to linking document fragments to each other or to external entities. Many of the linking attributes are globally available in MEI through the <ident type="class">att.common</ident> attribute class.</p> <p>Yet there are other attributes from the XML-Namespace encountered in MEI files.</p> <p> <specList> <specDesc key="att.lang" atts="xml:lang"/> <specDesc key="att.whitespace" atts="xml:space"/> </specList> </p> <p>While <att>xml:lang</att> attribute may be used to encode the language of an element's contents, the <att>xml:space</att> attribute lets you define the handling of whitespace, <abbr>i.e.</abbr>, whitespace being important content (<val>preserve</val>) or negligible (<val>default</val>). With the latter also being the default value if no <att>xml:space</att> attribute is present.</p> </div> <div xml:id="sharedLabellingAttributes" type="div3"> <head>Label Attributes</head> <p> <specList> <specDesc key="att.labelled" atts="label"/> <specDesc key="att.nNumberLike" atts="n"/> <specDesc key="att.nInteger" atts="n"/> </specList> </p> <p>The <att>label</att> and <att>n</att> attributes both serve a labeling function; however, they differ in the values they allow. The <att>n</att> attribute must be a single token, while <att>label</att> may contain a string value that includes spaces. This makes <att>label</att> useful for the capture of free-text labels, but a name or number specified with <att>n</att> may be easier to process.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Example of a @label containing whitespace: --> <mdiv label="Allegro moderato"> <!-- … --> </mdiv> <!-- Example of a processable @n attribute: --> <measure n="42"> <!-- … --> </measure></egXML> </figure> </p> </div> <div xml:id="sharedClassificationAttributes" type="div3"> <head>Classification Attributes</head> <p> <specList> <specDesc key="att.classed" atts="class"/> <specDesc key="att.typed" atts="type"/> </specList> </p> </div> <div xml:id="sharedResponsibilityAttributes" type="div3"> <head>Responsibility Attributes</head> <p> <specList> <specDesc key="att.responsibility" atts="resp"/> </specList> </p> </div> <div xml:id="sharedLinkingAttributes" type="div3"> <head>Linking Attributes</head> <p> <specList> <specDesc key="att.linking" atts="copyof corresp follows next precedes prev sameas synch"/> </specList> </p> <p>For a detailed description of linking mechanisms used in MEI also see the section on <ptr target="#linkingdata"/>.</p> </div> </div> <div xml:id="userSymbols" type="div2"> <head>User-defined Symbols</head> <p>This chapter describes the elements, model classes, and attribute classes that are part of the MEI.usersymbols module.</p> <div xml:id="usersymbolsOverview" type="div3"> <head>Overview of the Usersymbols Module</head> <p>The module described in this chapter makes available the following components:</p> <div xml:id="usersymbolsElements" type="div4"> <head>Elements</head> <p> <specList> <specDesc key="anchoredText"/> <specDesc key="curve"/> <specDesc key="line"/> <specDesc key="symbol"/> <specDesc key="symbolDef"/> <specDesc key="symbolTable"/> </specList> </p> </div> <div xml:id="usersymbolsAttributeClasses" type="div4"> <head>Attribute Classes</head> <p>No attribute classes are defined in this module.</p> </div> <div xml:id="usersymbolsModelClasses" type="div4"> <head>Model Classes</head> <p>The usersymbols module defines the following model classes:</p> <p> <ident type="class">model.graphicPrimitiveLike</ident> <ident type="class">model.symbolTableLike</ident> </p> </div> </div> <div xml:id="usersymbolsModuleUses" type="div3"> <head>Uses of the Usersymbols Module</head> <p>The elements provided by the usersymbols module may be used in two ways:</p> <list rend="numbered"> <item>For defining lines, curves and text elements that cannot be represented by a more specific element.</item> <item>For defining reusable symbols and special graphical renditions.</item> </list> <p>For this purpose, it provides three elements as graphic primitives, <gi scheme="MEI">line</gi>, <gi scheme="MEI">curve</gi> and <gi scheme="MEI">anchoredText</gi>. Anywhere these elements are allowed, the <gi scheme="MEI">symbol</gi> element can be used as well. The <gi scheme="MEI">symbol</gi> element facilitates the re-use of symbols that were defined by <gi scheme="MEI">symbolDef</gi> elements.</p> <div xml:id="usersymbolsReusableSymbols" type="div4"> <head>Defining Reusable Symbols</head> <p>The <gi scheme="MEI">symbolDef</gi> element uses SVG markup or the aforementioned graphic primitives to describe a symbol. A symbol definition may also use symbols defined by other <gi scheme="MEI">symbolDef</gi> elements by employing the <gi scheme="MEI">symbol</gi> element.</p> <p>The following code snippet shows a definition of a triangle percussion symbol using graphic primitives: <figure> <head>Definition of a triangle percussion symbol using graphic primitives</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><symbolDef xml:id="userSymbols.triangleSymbol3"> <line x="0" x2="2.55" y="0" y2="4.25"/> <line x="2.55" x2="5.1" y="4.25" y2="0"/> <line x="5.1" x2="0.85" y="0" y2="0"/> </symbolDef> </egXML> </figure> <figure> <head>Rendition of the triangle defined above</head> <graphic url="../images/modules/usersymbols/triangle.png"/> </figure> </p> <p>The following snippet encodes a symbol composed of the symbol defined above and additional graphics primitives: <figure> <head>Symbol composed of the symbol defined above and additional graphics primitives</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><symbolDef xml:id="userSymbols.triangleSymbolWithStick"> <symbol ref="#userSymbols.triangleSymbol3"/> <line x="2.55" x2="5.95" y="1.25" y2="3.4"/> </symbolDef> </egXML> </figure> <figure> <head>Rendition of the composite triangle symbol</head> <graphic url="../images/modules/usersymbols/triangleWithStick.png"/> </figure> </p> </div> <div xml:id="usersymbolsSemanticImplications" type="div4"> <head>Elements Without Semantic Implications</head> <p>The graphics primitives and symbols can be used directly in the music to describe text and lines on a purely graphical level, without implying a specific logical meaning. If possible, however, more meaningful elements should be used. This means for example, "a tempo" or "da capo" should in general not be put inside <gi scheme="MEI">anchoredText</gi>. Instead, <gi scheme="MEI">tempo</gi> and <gi scheme="MEI">dir</gi> should be used. Likewise, slurs and ties should be encoded using their respective elements, not using <gi scheme="MEI">curve</gi>, and for glissandi, <gi scheme="MEI">gliss</gi> should be used instead of <gi scheme="MEI">line</gi>.</p> <p>An example usage for <gi scheme="MEI">line</gi> is the visualization of voice leading, which is not covered by a specific MEI element.</p> <p> <figure> <head>Voice leading visualization as found in an Edition Peters print of Album für die Jugend by Schumann, No. 35 (Mignon), measure 6. (Unknown date, plate number is 10478.)</head> <graphic url="../images/modules/usersymbols/mignon.png"/> </figure> </p> <p>The following code snippet shows the encoding of the above example: <figure> <head>Encoding of the Schumann example</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><measure n="6"> <staff n="1"> <layer n="1"> <rest dur="4" xml:id="userSymbols.r1"/> <beam> <note dur="8" oct="4" pname="c" xml:id="userSymbols.n1"/> <note dur="8" oct="4" pname="e" xml:id="userSymbols.n2"/> </beam> <beam> <note dur="8" oct="4" pname="g" xml:id="userSymbols.n3"/> <note dur="8" oct="4" pname="e" xml:id="userSymbols.n4"/> <note dur="8" oct="4" pname="b" xml:id="userSymbols.n5"/> <note dur="8" oct="4" pname="g" xml:id="userSymbols.n6"/> </beam> <slur curvedir="above" endid="#userSymbols.n6" startid="#userSymbols.n1"/> </layer> <layer n="2"> <rest dur="4"/> <note dur="2" next="#userSymbols.n9" oct="4" pname="c" stem.dir="down" xml:id="userSymbols.n7"/> </layer> </staff> <staff n="2"> <layer n="1"> <note dots="1" dur="2" oct="2" pname="g" xml:id="userSymbols.n8"/> <note dur="4" oct="3" pname="b" prev="#userSymbols.n7 #userSymbols.n8" xml:id="userSymbols.n9"/> <slur curvedir="above" endid="#userSymbols.n9" startid="#userSymbols.n8"/> </layer> </staff> <line endid="#userSymbols.n9" rend="dotted" startid="#userSymbols.n7"/> </measure> </egXML> </figure> </p> </div> <div xml:id="usersymbolsGraphicalRendition" type="div4"> <head>Defining a Specific Graphical Rendition for a Semantic Element</head> <p>Usersymbols can define the rendition of different elements in two ways. Some elements, for example <gi scheme="MEI">dir</gi> and <gi scheme="MEI">tempo</gi>, can have user symbol elements as content. In the following example, the content of <gi scheme="MEI">dir</gi> is used to provide pictograms of percussion instruments.</p> <p> <figure> <head>Indicating percussion instruments using pictograms</head> <graphic url="../images/modules/usersymbols/percussion.png"/> </figure> </p> <p>The corresponding encoding would be as follows: <figure> <head>Encoding of above example</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><section> <scoreDef meter.count="4" meter.unit="4"> <symbolTable> <symbolDef xml:id="userSymbols.triangleSymbol1"> <line x="0" x2="2.55" y="0" y2="4.25"/> <line x="2.55" x2="5.1" y="4.25" y2="0"/> <line x="5.1" x2="0.85" y="0" y2="0"/> <line x="2.55" x2="5.95" y="1.25" y2="3.4"/> </symbolDef> <symbolDef xml:id="userSymbols.cowbellSymbol"> <line x="1" x2="1.8" y="0" y2="4"/> <line x="1.8" x2="4.2" y="4" y2="4"/> <line x="4.2" x2="5" y="4" y2="0"/> <line x="5" x2="1" y="0" y2="0"/> <curve bezier="0 1.5 0 1.5" endho="3" endvo="4" startho="1" startvo="4"/> </symbolDef> </symbolTable> <staffGrp> <staffDef clef.line="2" clef.shape="G" n="1"/> </staffGrp> </scoreDef> <measure n="1"> <staffDef n="1"> <instrDef midi.instrname="Open_Triangle"/> </staffDef> <staff n="1"> <layer> <dir tstamp="1"> <symbol ref="#userSymbols.triangleSymbol2"/> </dir> <note dur="1"/> </layer> </staff> </measure> <measure n="2"> <staffDef n="1"> <instrDef midi.instrname="Cowbell"/> </staffDef> <staff n="1"> <layer> <dir tstamp="1"> <symbol ref="#userSymbols.cowbellSymbol"/> </dir> <note dur="4"/> <note dur="4"/> <note dur="4"/> <note dur="4"/> </layer> </staff> </measure> </section> </egXML> </figure> </p> <p>A number of elements can point to an internally-defined symbol for rendering using the <att>altsym</att> attribute.</p> <p> <figure> <head>Different treble clef renditions as written by Charpentier (source: Journal of Seventeenth-Century Music, Volume 12, No. 1 (2006), figure 3) http://www.sscm-jscm.org/v12/no1/gosine.html</head> <graphic url="../images/modules/usersymbols/charpentier.png"/> </figure> </p> <p> <figure> <head>Defining two staffs, each using its own treble clef shape</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><scoreDef> <symbolTable> <symbolDef xml:id="userSymbols.clefA"> <curve bezier="-1.2 0.1 -0.9 -0.8" endho="1.1" endvo="6.6" startho="1.2" startvo="4"/> <curve bezier="1 0.9 0.1 1.6" endho="3" endvo="5.3" startho="1.1" startvo="6.6"/> <curve bezier="-0.1 -2.6 0 2.3" endho="0.6" endvo="-0.1" startho="3" startvo=" 5.3"/> <curve bezier="0.07 -1.3 -0.2 -1.63" endho="2.4" endvo="0.23" startho="0.6" startvo="-0.1"/> <curve bezier="0.2 1.3 0.5 0.62" endho="0.8" endvo="0.81" startho="2.4" startvo="0.23"/> </symbolDef> <symbolDef xml:id="userSymbols.clefB"> <curve bezier="-0.7 0.1 0.3 0.92" endho="0.7" endvo="-0.2" startho="2.5" startvo=" 1.3 "/> <curve bezier="-0.27 -0.76 -1.25 -1.26" endho="2" endvo="-0.74" startho="0.7" startvo="-0.2"/> <curve bezier="1.4 1.8 0.4 -1" endho="1.6" endvo="4.36" startho="2" startvo="-0.74"/> <curve bezier="-0.89 2.2 -1.1 1.6" endho="3.5" endvo="6.06" startho="1.6" startvo="4.36"/> <curve bezier="0.8 -1.2 0 0" endho="3.7" endvo="2.66" startho="3.5" startvo="6.06"/> </symbolDef> </symbolTable> <staffGrp> <staffDef n="1"> <clef altsym="#userSymbols.clefA" line="2" shape="G"/> </staffDef> <staffDef n="2"> <clef altsym="#userSymbols.clefB" line="2" shape="G"/> </staffDef> </staffGrp> </scoreDef> </egXML> </figure> </p> <p>Externally-defined symbols may be referenced using a <att>glyph.name</att> or <att>glyph.num</att> attribute from the <ident type="class">att.extSym</ident> attribute class. Both attributes refer to Standard Music Font Layout (SMuFL) characters, if not specified differently by the <att>glyph.auth</att> and <att>glyph.uri</att> attributes.</p> <p> <figure> <head>Use of glyph.auth and glyph.name and glyph.num attributes to refer to a SMuFL symbol</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><ornam tstamp="1"> <symbol glyph.auth="smufl" glyph.num="#xE5C0" glyph.name="ornamentPrecompDoubleCadenceLowerPrefix"/> </ornam> </egXML> </figure> </p> <p> <figure> <head>Use of glyph.name and glyph.num attributes</head> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><meterSig count="2" form="norm" glyph.name="timeSigCutCommon" glyph.num="U+E08B" sym="cut" unit="4"/> </egXML> </figure> </p> </div> </div> <div xml:id="usersymbolsPositioningCoordinates" type="div3"> <head>Positioning and Coordinates</head> <div xml:id="usersymbolsCoordinateSystem" type="div4"> <head>Axis Orientation</head> <p>MEI uses the classic axis directions where the x-axis points from left to right and the y-axis points from bottom up. (This is compatible with PostScript's axis orientation, while SVG's y-axis points in the opposite direction.)</p> </div> <div xml:id="usersymbolsUnits" type="div4"> <head>Units</head> <p>There are two types of units used by MEI: Staff units and units of the output coordinate system. Units of the output coordinate system can be translated to physical real world distances by means of the <att>vu.height</att> and <att>page.scale</att> of a <gi scheme="MEI">scoreDef</gi> element. Real world units are multiplied by the value of <att>page.scale</att> to get the corresponding value in output coordinate units.</p> <p>If an element is scaled using the <att>scale</att> attribute, the actual size of the units changes accordingly.</p> </div> <div xml:id="usersymbolsPositioning" type="div4"> <head>Positioning</head> <p>An element may be positioned using either absolute or relative coordinates. If absolute start point coordinates are specified using <att>x</att>/<att>y</att> coordinates (or their relatives <att>x2</att>/<att>y2</att> for endpoints) they take precedence over relative positions specified by <att>ho</att>/<att>vo</att>/<att>to</att> (or <att>startho</att>/<att>startvo</att>/<att>startto</att>). Analogously, <att>x2</att>/<att>y2</att> override <att>endho</att>/<att>endvo</att>/<att>endto</att>.</p> <p>If <att>to</att>/<att>startto</att>/<att>endto</att> attributes are used, the start or end point is x-aligned with the indicated timestamp.</p> <p>If relative start coordinates (<att>ho</att>/<att>vo</att> or <att>startho</att>/<att>startvo</att>) are used, the origin of the coordinate system to be used for the start point is the first one found by the following search schema:</p> <list rend="numbered"> <item>If <att>startid</att> is present, the origin of the referenced element;</item> <item>If the element is inside running text (<abbr>e.g.</abbr>, inside <gi scheme="MEI">tempo</gi>), the end of the preceding text or element;</item> <item>Otherwise, the origin of the containing element.</item> </list> <p>The start point is offset from this origin by the value of the start coordinates (<att>ho</att>/<att>vo</att> or <att>startho</att>/<att>startvo</att>), using staff units.</p> <p>Analogously, the endpoint is determined using end coordinates (<att>endho</att>/<att>endvo</att>). If <att>endid</att> is specified, it takes precedence over <att>startid</att>.</p> <p>Examples of origins are:</p> <list rend="bulleted"> <item> <gi scheme="MEI">staff</gi> and <gi scheme="MEI">layer</gi>: The horizontal origin is the starting point of the measure, the vertical one is the bottom staff line;</item> <item> <gi scheme="MEI">note</gi>: The horizontal origin is the left end of the notehead, the vertical one is the center of the notehead;</item> <item> <gi scheme="MEI">clef</gi>: The horizontal origin is the left end of the clef, the vertical one the line specified by <gi scheme="MEI">clef</gi>/<att>line</att> (or <att>clef.line</att>);</item> <item>For elements containing text: The left end of the baseline;</item> <item> <gi scheme="MEI">symbolDef</gi>: As symbol definitions aren't rendered directly, their coordinate system and origin are considered virtual.</item> </list> <p>When they are referenced by <gi scheme="MEI">symbol</gi> or <att>altsym</att>, the origin of the context, <abbr>i.e.</abbr>, the referencing symbol, is used. If neither absolute nor relative coordinates are specified, determining visually suitable start and end points for <att>line</att> and <att>curve</att> attributes is left to the rendering application. A value of 0 is not always assumed for absent relative coordinates. A typical example where a rendering application may not choose the origins of absent relative start and end coordinates to be the start point as well is the line connecting two notes in the above Schumann example.</p> </div> <div xml:id="usersymbolsCurveShape" type="div4"> <head>Curve Shape</head> <p>If neither a <att>bezier</att> nor <att>bulge</att> attribute is present, the renderer determines a suitable shape. However, if <att>curvedir</att> is present, the curve must respect the curvature direction specified there.</p> <p>The attributes <att>bezier</att> and <att>bulge</att> define the shape of a curve in two different ways. If both are present, a rendering application may choose either one. They override <att>curvedir</att>.</p> <p> <att>bezier</att> defines the inner control points of a cubic Bézier curve, <abbr>i.e.</abbr>, a Bézier curve with two inner control points. The coordinates are given by a space separated list, first x and y offsets for the first control point, then x and y offsets for the second one. The x and y offsets are given in staff units (or inside the context of <gi scheme="MEI">symbolDef</gi> in abstract units). The offsets for the first inner control point are relative to the start point, the ones for the second inner control point are relative to the end point.</p> <p>The <att>bulge</att> attribute allows specification of the curve shape by a number of interpolation points. The interpolation points are given by their distance from the line connecting the start and end point. The distance values are stored as a space separated list.</p> <p>The interpolation points are calculated as follows: If <att>bulge</att> provides <hi rend="italic">n</hi> distance values, the connection line is divided into <hi rend="italic">n+1</hi> subsegments of equal length. The interpolation points are found by drawing a perpendicular line of the respective length at each subsegment joint. Positive distance values are drawn to the left of the connection line (left when traveling from start to end), negative ones to the right.</p> <p> <figure> <head>Rendering a bulge attribute with value "-2 1"</head> <graphic url="../images/modules/usersymbols/bulge.png"/> </figure> </p> <p>The interpolation algorithm used by the rendering application is implementation dependent.</p> </div> </div> <div xml:id="usersymbolsLineRendition" type="div3"> <head>Line Rendition</head> <p>The <att>form</att> attribute of the <gi scheme="MEI">line</gi> element may take the following values:</p> <list rend="bulleted"> <item>dashed</item> <item>dotted</item> <item>solid</item> <item>wavy</item> </list> <p>These attribute values are only qualitative. Actual dash length and dot and dash spacing are implementation dependent.</p> <p>The <att>width</att> attribute may take the following values:</p> <list rend="bulleted"> <item>narrow</item> <item>medium</item> <item>wide</item> </list> <p>These values are also qualitative, however, they are also relative. That is, 'narrow' is the default value, 'medium' is twice as wide as 'narrow', and 'wide' is twice as wide as 'medium'.</p> <p>In addition to textual values, the <att>width</att> attribute may contain a numeric value and an optional unit, <abbr>e.g.</abbr>, <val>2mm</val>. If the unit value is not provided, MEI virtual units are presumed.</p> <p>The same applies for <gi scheme="MEI">curve</gi> elements with the <att>lform</att> and <att>lwidth</att> attributes from the <ident type="class">att.lineRend.base</ident> class.</p> <p>The <att>startsym</att> and <att>endsym</att> attributes name the symbol that may start and/or end a <gi scheme="MEI">line</gi>, while <att>startsymsize</att> and <att>endsymsize</att> indicate the relative size of the symbol using a numeric value in the range from 1 to 9.</p> </div> <div xml:id="usersymbolsLimitations" type="div3"> <head>Limitations</head> <p>The usersymbols module does not currently support continuous composite lines or filled areas. As mentioned above, the rendition of lines is highly implementation dependent. Coordinate system transforms are restricted to scaling using <att>scale</att>.</p> </div> </div> </div> <div xml:id="metadata" type="div1"> <head>Metadata in MEI</head> <div xml:id="headerintro" type="div2"> <head>Introduction</head> <p>Metadata means "data about data", <abbr>i.e.</abbr>, information about various aspects of an encoding at hand. There are many different types of metadata, which MEI tries to order according to their respective scope or perspective, as described in <ptr target="#headerstructure"/>. MEI’s approach to metadata is heavily influenced by other existing standards and models, such as TEI, MARC, and FRBR. It attempts to reflect both current library practice and common scholarly methods, for example in the field of source descriptions (see chapter <ptr target="#msdesc"/>).</p> <p>This chapter thus addresses the description of an encoded item so that the musical text, as well as its sources, encoding, and revisions are all thoroughly documented. Such documentation is necessary for scholars using the texts, for software processing them, and for catalogers in libraries and archives. Together these descriptions and declarations provide an electronic analog to the title page attached to a printed work. They also constitute an equivalent for the content of the code books or introductory manuals customarily accompanying electronic data sets.</p> </div> <div xml:id="headerstructure" type="div2"> <head>Structure of the MEI Header</head> <p>Every MEI-conformant text not embedded in another XML carrier that provides for capturing metadata, such as TEI or METS, must carry a set of descriptions, prefixed to it and encoded as described in this chapter. This set is known as the MEI header, tagged <gi scheme="MEI">meiHead</gi>.</p> <p>The metadata encoded inside <gi scheme="MEI">meiHead</gi> covers a number of different use cases. Some child elements like <gi scheme="MEI">titleStmt</gi> may appear in various places (see <ptr target="#headerTitleStatement"/>), so it is important to understand the roles of the different areas of the MEI header. These areas are described following their order of appearance within the <gi scheme="MEI">meiHead</gi> element:</p> <list rend="numbered"> <item>Zero or more <hi rend="italic">alternative identifiers</hi>, tagged with <gi scheme="MEI">altId</gi>, each of which provides an identifying name or number associated with the file. This is just a simple element that helps to preserve other external identifiers for a file, such as database keys.</item> <item>A <hi rend="italic">file description</hi>, tagged <gi scheme="MEI">fileDesc</gi>, containing a full bibliographic description of the computer file itself. From the information contained here, a user of the encoding should be able to derive a proper bibliographic citation, and a librarian or archivist could use it for creating a catalog entry recording its presence within a library or archive. A <gi scheme="MEI">titleStmt</gi> within <gi scheme="MEI">fileDesc</gi> captures the <hi rend="italic">title of the file</hi>, which may be different than the <gi scheme="MEI">title</gi> of the encoded <hi rend="italic">work</hi>, or the title given on any of the <hi rend="italic">sources</hi> used to generate the file. The term <hi rend="italic">computer file</hi> here is to be understood as referring to the whole intellectual entity or document described by the header, even when this is stored in multiple physical operating system files. The file description also includes information about the <gi scheme="MEI">source</gi> or sources from which the electronic document was derived (not to be confused with sources that represent or witness the encoded work in a more general sense; these may be described within the <gi scheme="MEI">manifestationList</gi> element).</item> <item>The MEI elements used to encode the file description are described in section <ptr target="#meifile"/>.</item> <item>An optional <hi rend="italic">encoding description</hi>, tagged <gi scheme="MEI">encodingDesc</gi>, which describes the relationship between an electronic text and its source or sources. It allows for detailed description of whether (or how) the text was normalized during transcription, how the encoder resolved ambiguities in the source, what levels of encoding or analysis were applied, and similar matters.</item> <item>The MEI elements used to encode the encoding description are described in section <ptr target="#headerEncodingDescription"/>.</item> <item>An optional <hi rend="italic">work description</hi> or list of the works encoded or described in the file, tagged <gi scheme="MEI">workList</gi>, containing classification and contextual information about the work(s), such as its subject matter, the situation in which it was produced, the individuals described by or participating in producing it, and so forth. Such a work profile is of particular use in highly structured composite texts such as corpora or language collections, where it is often highly desirable to enforce a controlled descriptive vocabulary or to perform retrievals from a body of text in terms of text type or origin. The work description may however be of use in any form of automatic text processing.</item> <item>The MEI elements used to encode the work description are described in section <ptr target="#headerWorkDescription"/>.</item> <item>An optional list of manifestations of the work, tagged <gi scheme="MEI">manifestationList</gi>, containing descriptions of <hi rend="italic">sources</hi> ("manifestations" in <ptr target="#FRBR"/> terms) that represent or witness the encoded work in some way, regardless of whether the encoding is based on these sources or not; for instance, it is useful for listing all known sources to a particular work in a cataloging project or a critical edition.</item> <item>The MEI elements used to encode the source description are described in section <ptr target="#msdesc"/>.</item> <item>Zero or more elements tagged <gi scheme="MEI">extMeta</gi>, containing <hi rend="italic">non-MEI metadata</hi>.</item> <item>This concept is covered in section <ptr target="#headerusecases"/>.</item> <item>A <hi rend="italic">revision history</hi>, tagged <gi scheme="MEI">revisionDesc</gi>, which allows the encoder to provide a history of changes made during the development of the electronic text. The revision history is important for version control and for resolving questions about the history of a file. The MEI elements used to encode the revision description are described in section <ptr target="#headerRevisionDescription"/>.</item> </list> </div> <div xml:id="commonconcepts" type="div2"> <head>Common Metadata Concepts</head> <p>This chapter introduces data models and markup available in various locations of the MEI header.</p> <div xml:id="headerTitleStatement" type="div3"> <head>Title Statement</head> <p>The <gi scheme="MEI">titleStmt</gi> element is to capture the title of an MEI file (within a <gi scheme="MEI">fileDesc</gi> element) and the title of any of the relevant <gi scheme="MEI">manifestation</gi>s (sources) of the encoded work.</p> <p> <specList> <specDesc key="titleStmt"/> </specList> </p> <p>The title statement contains the title given to the electronic work, together with one or more optional statements of responsibility which identify the encoder, editor, author, compiler, or other parties responsible for it:</p> <p> <specList> <specDesc key="title"/> <specDesc key="arranger"/> <specDesc key="author"/> <specDesc key="composer"/> <specDesc key="contributor"/> <specDesc key="editor"/> <specDesc key="funder"/> <specDesc key="librettist"/> <specDesc key="lyricist"/> <specDesc key="sponsor"/> <specDesc key="respStmt"/> </specList> </p> <p>The <gi scheme="MEI">title</gi> element contains the chief name of the electronic work. Its content takes the form considered appropriate by its creator. The element may be repeated, if the work has more than one title (perhaps in different languages). Where the electronic work is derived from an existing source text, it is strongly recommended that the title for the former should be derived from the latter, but clearly distinguishable from it, for example by the addition of a phrase such as ‘: an electronic transcription’ or ‘a digital edition’. This will distinguish the electronic work from the source text in citations and in catalogs, which contain descriptions of both types of material.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <title>Lieder-Album für die Jugend</title> <title type="subtitle">für Singstimme(n) und Klavier, <identifier>op. 79</identifier> </title> <title type="subtitle">an electronic transcription</title> </titleStmt> </egXML> </figure> </p> <p>Other alternative titles or subtitles may be encoded in additional title elements with values in the <att>type</att> attribute that distinguish them from the chief title. Sample values for the <att>type</att> attribute include: main (main title), subordinate (subtitle, title of part), abbreviated (abbreviated form of title), alternative (alternate title by which the work is also known), translated (translated form of title), uniform (collective title).</p> <p>The <att>type</att> attribute is provided for convenience in analyzing titles and processing them according to their type; where such specialized processing is not necessary, there is no need for such analysis, and the entire title, including subtitles and any parallel titles, may be enclosed within a single <gi scheme="MEI">title</gi> element, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><title>Symphony No. 5 in C Minor : an electronic transcription</title> </egXML> </figure> </p> <p>The electronic work will also have an external name (its ‘filename’ or ‘data set name’) or reference number on the computer system where it resides at any time. This name is likely to change frequently, as new copies of the file are made on the computer system. Its form is entirely dependent on the particular computer system in use and thus cannot always easily be transferred from one system to another. Moreover, a given work may be composed of many files. For these reasons, these Guidelines strongly recommend that such names should not be used as the title for any electronic work.</p> <p>Helpful guidance on the formulation of useful descriptive titles in difficult cases may be found in the Anglo-American Cataloguing Rules (Gorman and Winkler, 1978, chapter 25) or in equivalent national-level bibliographical documentation.</p> <p>It is important to keep in mind that the <gi scheme="MEI">titleStmt</gi> element provides <hi rend="italic">structured</hi> metadata. Preserving the exact rendition of a title page is possible using the <gi scheme="MEI">titlePage</gi> element (see <ptr target="#textTitlePages"/>).</p> <p>The title of a <gi scheme="MEI">work</gi> is given by using the <gi scheme="MEI">title</gi> element directly, as many other child elements of <gi scheme="MEI">titleStmt</gi> are available on work directly.</p> </div> <div xml:id="headerrespstatement" type="div3"> <head>Responsibility Attribution</head> <p>In scholarly work, attribution of responsibility is crucial. For this purpose, MEI offers the <gi scheme="MEI">respStmt</gi> element, which is available in the following contexts:</p> <p> <specList> <specDesc key="analytic"/> <specDesc key="bibl"/> <specDesc key="change"/> <specDesc key="edition"/> <specDesc key="editionStmt"/> <specDesc key="genState"/> <specDesc key="imprint"/> <specDesc key="monogr"/> <specDesc key="pubStmt"/> <specDesc key="series"/> <specDesc key="seriesStmt"/> <specDesc key="titleStmt"/> </specList> </p> <p>At a minimum, the creator of the musical text and the creator of the file should be identified. If the bibliographic description is for a corpus, identify the creator of the corpus. Optionally also include the names of others involved in the transcription or elaboration of the text, sponsors, and funding agencies. The name of the person responsible for physical data input need not normally be recorded, unless that person is also intellectually responsible for some aspect of the creation of the file.</p> <p>In traditional bibliographic practice, those with primary creative responsibility are given special prominence. MEI accommodates this approach by providing responsibility-role elements. For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt> <title>Auf dem Hügel sitz ich spähend : an electronic transcription</title> <composer>Ludwig van Beethoven</composer> <lyricist>Aloys Jeitteles</lyricist> </titleStmt> </egXML> </figure> </p> <p>Secondary intellectual responsibility in this case is encoded using <gi scheme="MEI">respStmt</gi>. The <gi scheme="MEI">respStmt</gi> element has two subcomponents: a <gi scheme="MEI">name</gi> element identifying a responsible individual or organization, and a <gi scheme="MEI">resp</gi> element indicating the nature of the responsibility. All names should be stated in the form in which the persons or bodies wish to be publicly cited. This will usually be the fullest form of the name, including first names. No specific recommendations are made at this time as to appropriate content for <gi scheme="MEI">resp</gi>. However, it should make clear the nature of the responsibility.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt> <title>Auf dem Hügel sitz ich spähend : an electronic transcription</title> <composer>Ludwig van Beethoven</composer> <lyricist>Aloys Jeitteles</lyricist> <respStmt> <resp>Encoded by</resp> <name>Maja Hartwig</name> <name>Kristina Richts</name> </respStmt> </titleStmt> </egXML> </figure> </p> <p>This method of encoding facilitates exchange of bibliographic data with library catalogs and bibliographic databases as well as applications whose handling of bibliographic data is restricted to traditional responsibility roles. Additional information regarding these responsibility-role elements can be found in chapter <ptr target="#sharedBibliographicCitations"/>.</p> <p>When the MEI.namesdates module is enabled, two additional elements are also permitted within <gi scheme="MEI">respStmt</gi>:</p> <p> <specList> <specDesc key="corpName"/> <specDesc key="persName"/> </specList> </p> <p>These elements allow for more precise identification of the entity associated with the name than is permitted by the simpler <gi scheme="MEI">name</gi> element. The following example shows how a precise date range can be associated with a personal or corporate name.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><respStmt> <resp>Machine-readable transcription by:</resp> <persName enddate="1940-11-06" startdate="1860-01-01">John Doe</persName> </respStmt> </egXML> </figure> </p> <p>For additional information about corporate and personal names, see chapter <ptr target="#sharedNames"/>.</p> <p>In addition to, or instead of the <gi scheme="MEI">resp</gi> element, the <att>role</att> attribute on <gi scheme="MEI">name</gi>, <gi scheme="MEI">persName</gi>, and <gi scheme="MEI">corpName</gi> may be used to capture the nature of responsibility. While <gi scheme="MEI">resp</gi> accommodates capturing the wide variety of text that may occur in responsibility statements, use of the <att>role</att> attribute provides the possibility of recording a controlled value independently of the textual content of <gi scheme="MEI">resp</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><respStmt> <resp>Encoded by</resp> <corpName role="encoder">Members of the Local Symphony Orchestra</corpName> </respStmt> </egXML> </figure> </p> <p>Values from the MARC relator code list (<ref target="http://www.loc.gov/marc/relators/relacode.html">http://www.loc.gov/marc/relators/relacode.html</ref>) or term list (<ref target="http://www.loc.gov/marc/relators/relaterm.html">http://www.loc.gov/marc/relators/relaterm.html</ref>) are recommended for <att>role</att>, where applicable.</p> <p>Where it is necessary to group responsibilities and names, multiple responsibility statements may be used. For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt> <title>Symphony No. 5 in C Minor : an electronic transcription</title> <respStmt> <resp>Encoded by</resp> <persName role="encoder">Joe Encoder</persName> <persName role="encoder">Jane Decoder</persName> </respStmt> <respStmt> <resp>Images scanned by</resp> <persName>Ludwig van Ludwig</persName> </respStmt> </titleStmt> </egXML> </figure> </p> <p>It is often desirable to mix primary and secondary intellectual responsibility information. Treating all intellectual roles the same way can allow literal transcription of existing responsibility statements and simplify programmatic processing. The following example demonstrates how a responsibility statement may be transcribed using interleaved <gi scheme="MEI">resp</gi> and <gi scheme="MEI">persName</gi> elements:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt> <title>Symphony No. 5 in C Minor : an electronic transcription</title> <respStmt> <resp>Composed by:</resp> <persName role="composer">Ludwig van Beethoven</persName> <persName role="encoder">Johannes Jones:</persName> <resp>Machine-readable transcription</resp> </respStmt> </titleStmt> </egXML> </figure> </p> <p>However, eliminating explanatory text and relying on standardized values for <att>role</att>, as in the following example, allows data creation and processing tools of the greatest simplicity.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt> <title>Symphony No. 5 in C Minor : an electronic transcription</title> <respStmt> <persName role="composer">Ludwig van Beethoven</persName> <persName role="editor">Johannes Jones</persName> </respStmt> </titleStmt> </egXML> </figure> </p> </div> </div> <div xml:id="meifile" type="div2"> <head>Information about an MEI file</head> <div xml:id="headerFileDescription" type="div3"> <head>File Description</head> <p>The structure of the bibliographic description of a machine-readable or digital musical text resembles that of a book, an article, or other kinds of textual objects. The file description element of the MEI header has therefore been closely modelled on existing standards in library cataloging; it should thus provide enough information to allow users to give standard bibliographic references to the electronic text, and to allow catalogers to catalog it. Bibliographic citations occurring elsewhere in the header, and in the text itself, are derived from the same model.</p> <p>The bibliographic description of an electronic musical text should be supplied by the mandatory <gi scheme="MEI">fileDesc</gi> element:</p> <p> <specList> <specDesc key="fileDesc"/> </specList> </p> <p>The <gi scheme="MEI">fileDesc</gi> element contains two mandatory and six optional elements, each of which is described in more detail below. These elements are listed below in the order in which they must occur within the <gi scheme="MEI">fileDesc</gi> element.</p> <p> <specList> <specDesc key="titleStmt"/> <specDesc key="editionStmt"/> <specDesc key="extent"/> <specDesc key="pubStmt"/> <specDesc key="seriesStmt"/> <specDesc key="notesStmt"/> <specDesc key="sourceDesc"/> </specList> </p> <p>A complete file description will resemble the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><fileDesc> <titleStmt> <!-- title of the resource --> </titleStmt> <editionStmt> <!-- information about the edition of the resource --> </editionStmt> <extent> <!-- description of the size of the resource --> </extent> <pubStmt> <!-- information about the publication and distribution of the resource --> </pubStmt> <seriesStmt> <!-- information about any series to which the resource belongs --> </seriesStmt> <notesStmt> <!-- notes on other aspects of the resource --> </notesStmt> <sourceDesc> <!-- information about the source(s) from which the resource was derived --> </sourceDesc> </fileDesc> </egXML> </figure> </p> <div xml:id="headerEditionstmt" type="div4"> <head>Edition Statement</head> <p>The <gi scheme="MEI">editionStmt</gi> element is the second component of the <gi scheme="MEI">fileDesc</gi> element, following the mandatory <gi scheme="MEI">titleStmt</gi>. It is optional but recommended when applicable.</p> <p> <specList> <specDesc key="editionStmt"/> </specList> </p> <p>It contains elements for identifying the edition and those responsible for it:</p> <p> <specList> <specDesc key="edition"/> <specDesc key="respStmt"/> </specList> </p> <p>For printed texts, the term ‘edition’ applies to the set of all the identical copies of an item produced from one master copy and issued by a particular publishing agency or a group of such agencies. A change in the identity of the distributing body or bodies does not normally constitute a change of edition, while a change in the master copy does.</p> <p>For electronic texts, the notion of a master copy is not entirely appropriate, since they are far more easily copied and modified than printed ones; nonetheless, the term edition may be used for a particular state of a machine-readable text at which substantive changes are made and fixed. Synonymous terms used in these Guidelines are version, level, and release. The words revision and update, by contrast, are used for minor changes to a file which do not amount to a new edition.</p> <p>No simple rule can specify how substantive changes have to be before they are regarded as producing a new edition, rather than a simple update. The general principle proposed here is that the production of a new edition entails a significant change in the intellectual content of the file, rather than its encoding or appearance. The addition of analytic coding to a text would thus constitute a new edition, while automatic conversion from one coded representation to another would not. Changes relating to the character code or physical storage details, corrections of misspellings, simple changes in the arrangement of the contents and changes in the output format do not normally constitute a new edition, whereas the addition of new information (<abbr>e.g.</abbr>, annotations, sound or images, links to external data) almost always does.</p> <p>Clearly, there will always be borderline cases and the matter is somewhat arbitrary. The simplest rule is: if you think that your file is a new edition, then call it such. An edition statement is optional for the first release of a computer file; it is mandatory for each later release, though this requirement cannot be enforced.</p> <p>Note that all changes in a file, whether or not they are regarded as constituting a new edition or simply a revision, should be independently noted in the revision description section of the file header (see section <ptr target="#headerRevisionDescription"/>).</p> <p>The edition element should contain phrases describing the edition or version, including the word 'edition', 'version', or an equivalent term, together with a number or date, or terms indicating difference from other editions such as 'new edition', 'revised edition', etc. Any dates that occur within the edition statement should be marked with the <gi scheme="MEI">date</gi> element. The <att>n</att> attribute of the edition element may be used as elsewhere to supply any formal identification (such as a version number) for the edition.</p> <p>One or more <gi scheme="MEI">respStmt</gi> elements may also be used to supply statements of responsibility for the edition in question. These may refer to individuals or corporate bodies and can indicate functions such as that of a reviser, or can name the person or body responsible for the provision of supplementary matter, of appendices, etc., in a new edition.</p> <p>Some examples follow:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><editionStmt> <edition n="Draft2">Second draft, substantially extended, revised, and corrected.</edition> </editionStmt> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><editionStmt> <edition>Student's edition, <date>June 1987</date> </edition> <respStmt> <resp>New annotations by</resp> <name>George Brown</name> </respStmt> </editionStmt> </egXML> </figure> </p> </div> <div xml:id="headerFileExtent" type="div4"> <head>Extent of the File</head> <p>The third component of the fileDesc is a description of the physical qualities of the file. The <gi scheme="MEI">extent</gi> element is provided for this purpose.</p> <p> <specList> <specDesc key="extent"/> </specList> </p> <p>The <gi scheme="MEI">extent</gi> element describes the approximate size of a text as stored on some carrier medium, whether digital or non-digital, specified in any convenient units.</p> <p>For printed books, information about the carrier, such as the kind of medium used and its size, are of great importance in cataloging procedures. The print-oriented rules for bibliographic description of an item’s medium and extent need some re-interpretation when applied to electronic media. An electronic file exists as a distinct entity quite independently of its carrier and remains the same intellectual object whether it is stored as file on a hard disc drive, a CD-ROM, a set of USB devices, or in the internet. Since, moreover, these Guidelines are specifically aimed at facilitating transparent document storage and interchange, any purely machine-dependent information should be irrelevant as far as the file header is concerned.</p> <p>This is particularly true of information about file-type although library-oriented rules for cataloging often distinguish two types of computer file: ‘data’ and ‘programs’. This distinction is quite difficult to draw in some cases, for example, hypermedia or texts with built-in search and retrieval software.</p> <p>Although it is equally system-dependent, some measure of the size of the computer file may be of use for cataloging and other practical purposes. Because the measurement and expression of file size is fraught with difficulties, only very general recommendations are possible; the element <gi scheme="MEI">extent</gi> should contain a phrase indicating the size or approximate size of the computer file in one of the following ways:</p> <list rend="bulleted"> <item>in bytes of a specified length (<abbr>e.g.</abbr>, ‘4000 bytes’)</item> <item>as falling within a range of values, for example:</item> <item>less than 1 Mb</item> <item>between 1 Mb and 5 Mb</item> <item>between 6 Mb and 10 Mb</item> <item>over 10 Mb</item> <item>in terms of any convenient logical units (for example, words or sentences, citations, paragraphs)</item> <item>in terms of any convenient physical units (for example, compact discs, removable hard drives, DVDs)</item> </list> <p>The use of standard abbreviations for units of quantity is recommended where applicable, here as elsewhere (see <ref target="http://physics.nist.gov/cuu/Units/binary.html">http://physics.nist.gov/cuu/Units/binary.html</ref>).</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><extent>between 1 MB and 2 MB</extent> <!-- or --> <extent>4.2 MiB</extent> <!-- or --> <extent>4532 Mbytes</extent> <!-- or --> <extent>3200 sentences</extent> <!-- or --> <extent>5 90-mm high density diskettes</extent></egXML> </figure> </p> <p>For ease of processability, the use of the <att>unit</att> attribute is recommended whenever possible, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><extent unit="byte">65535</extent> </egXML> </figure> </p> <p>The <att>unit</att> attribute is restricted to certain values: <val>byte</val> (Byte), <val>char</val> (Character), <val>cm</val> (Centimeter), <val>deg</val> (Degree), <val>in</val> (Inch), <val>issue</val> (Serial issue), <val>ft</val> (Foot), <val>m</val> (Meter), <val>mm</val> (Millimeter), <val>page</val> (Page), <val>pc</val> (Pica), <val>pt</val> (Point), <val>px</val> (Pixel), <val>rad</val> (Radian), <val>record</val> (Record), <val>vol</val> (Serial volume), and <val>vu</val> (MEI virtual unit).</p> <p>A virtual unit (vu) in MEI is a measure of distance. It is determined by half the distance between adjacent staff lines where the interline space is measured from the middle of a staff line. Unless otherwise specified, the MEI virtual unit is set as the default unit.</p> </div> <div xml:id="headerPublicationDistribution" type="div4"> <head>Publication, Distribution, etc.</head> <p>The <gi scheme="MEI">pubStmt</gi> element is the fourth component of the <gi scheme="MEI">fileDesc</gi> element and is mandatory.</p> <p> <specList> <specDesc key="pubStmt"/> </specList> </p> <p>It may contain either a single <gi scheme="MEI">unpub</gi> element, indicating that the file has yet to be published, or in the case of published material, one or more elements from the <ident type="class">model.pubStmtPart</ident> class. The following elements may be used to provide details regarding the file’s publication and distribution:</p> <p> <specList> <specDesc key="address"/> <specDesc key="availability"/> <specDesc key="date"/> <specDesc key="distributor"/> <specDesc key="identifier"/> <specDesc key="publisher"/> <specDesc key="pubPlace"/> <specDesc key="respStmt"/> </specList> </p> <p>The publisher is the person or institution by whose authority a given edition of the file is made public. The distributor is the person or institution from whom copies of the text may be obtained. Use <gi scheme="MEI">respStmt</gi> to identify other responsible persons or corporate bodies.</p> <p>The sub-elements of <gi scheme="MEI">availability</gi> should be used to provide detailed information regarding access to the MEI file.</p> <p> <specList> <specDesc key="accessRestrict"/> <specDesc key="distributor"/> <specDesc key="price"/> <specDesc key="sysReq"/> <specDesc key="useRestrict"/> </specList> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><pubStmt xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <publisher> <corpName>Musikwissenschaftliches Seminar &lt;Detmold&gt;</corpName> </publisher> <address> <addrLine>Gartenstrasse 20</addrLine> <addrLine>32756 <geogName>Detmold</geogName> </addrLine> <addrLine> <geogName>Germany</geogName> </addrLine> </address> <date>2011</date> <availability> <useRestrict>© 2004, MEI Consortium</useRestrict> </availability> </pubStmt> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><pubStmt xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <publisher> <corpName>Segno Press Inc.</corpName> </publisher> <distributor> <corpName>University of Virginia</corpName> <address> <addrLine>221 B LowWater Street,</addrLine> <addrLine>Charlottesville, Virginia</addrLine> <addrLine>22901</addrLine> </address> </distributor> <date>2010</date> <identifier>1234</identifier> <availability> <useRestrict>Available for purposes of academic research and teaching only.</useRestrict> </availability> </pubStmt> </egXML> </figure> </p> <p>Give any other useful information (<abbr>e.g.</abbr>, dates of collection of data) in an annotation within the notes statement, which is described below.</p> <p>Here, as in the description of intellectual responsibility described above, the <gi scheme="MEI">respStmt</gi> element may be used to contain all statements of responsibility regarding publication and distribution when uniformity is desired regardless of the role of participants in the publication process:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><respStmt xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <corpName role="publisher">MEI Project</corpName> <corpName auth.uri="http://d-nb.info/gnd" auth="GND" codedval="2007744-0" role="funder">German Research Foundation</corpName> <corpName auth.uri="http://d-nb.info/gnd/18183-3" auth="Deutsche Nationalbibliothek" codedval="18183-3" role="funder">National Endowment for the Humanities</corpName> </respStmt> </egXML> </figure> </p> </div> <div xml:id="headerSeriesStatement" type="div4"> <head>Series Statement</head> <p>The <gi scheme="MEI">seriesStmt</gi> element is the fifth component of the <gi scheme="MEI">fileDesc</gi> element and is optional.</p> <p> <specList> <specDesc key="seriesStmt"/> </specList> </p> <p>A series may be defined in one of the following ways:</p> <list rend="bulleted"> <item>A group of separate items related to one another by the fact that each item bears, in addition to its own title proper, a collective title applying to the group as a whole. The individual items may or may not be numbered.</item> <item>Each of two or more volumes of essays, lectures, articles, or other items, similar in character and issued in sequence.</item> <item>A separately numbered sequence of volumes within a series or serial.</item> </list> <p>The <gi scheme="MEI">seriesStmt</gi> element may contain one or more of the following more specific elements:</p> <p> <specList> <specDesc key="contents"/> <specDesc key="editor"/> <specDesc key="identifier"/> <specDesc key="respStmt"/> <specDesc key="seriesStmt"/> <specDesc key="title"/> </specList> </p> <p>The <gi scheme="MEI">title</gi>, <gi scheme="MEI">editor</gi> and <gi scheme="MEI">identifier</gi> elements have the same function described above: identification of the item, in this case the series, and the individuals or groups responsible for its creation. The <gi scheme="MEI">title</gi> element is required within <gi scheme="MEI">seriesStmt</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><seriesStmt> <title>MEI Sample Collection</title> </seriesStmt> </egXML> </figure> </p> <p>The <gi scheme="MEI">identifier</gi> element may be used to supply any identifying number associated with the series, including both standard numbers such as an ISSN and particular issue numbers. Its <att>type</att> attribute is used to categorize the number further, taking the value 'ISSN' for an ISSN, for example.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><seriesStmt> <title level="s">Studies in Ornamentation</title> <editor>Jacques Composeur</editor> <identifier type="ISSN">0-345-6789</identifier> </seriesStmt> </egXML> </figure> </p> <p>The contents of the series may be enumerated using the <gi scheme="MEI">contents</gi> element. Use of this element should be determined by the complexity of the resource and whether or not the information is readily available. The <gi scheme="MEI">contents</gi> element may consist of a single paragraph when unstructured information is sufficient.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents> <p>On Wenlock Edge -- From Far, From Eve and Morning -- Is My Team Ploughing? -- Oh, When I Was In Love With You -- Bredon Hill -- Clun </p> </contents> </egXML> </figure> </p> <p>Alternatively, <gi scheme="MEI">contentItem</gi> elements may be used to provide structure for the content description.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents> <head>Contents</head> <contentItem>On Wenlock Edge</contentItem> <contentItem>From Far, From Eve and Morning</contentItem> <contentItem>Is My Team Ploughing?</contentItem> <contentItem>Oh, When I Was In Love With You</contentItem> <contentItem>Bredon Hill</contentItem> <contentItem>Clun</contentItem> </contents> </egXML> </figure> </p> <p>Finally, using the <att>target</att> attribute, a link to an external table of contents may be supplied in lieu of or in addition to the child elements of <gi scheme="MEI">contents</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents target="http://www.series.content/12345"/> </egXML> </figure> </p> <p>The <gi scheme="MEI">seriesStmt</gi> element is allowed to nest within itself in order to accommodate a series within a series.</p> </div> <div xml:id="headerNotesStatement" type="div4"> <head>Notes Statement</head> <p>The <gi scheme="MEI">notesStmt</gi> element is the sixth component of the <gi scheme="MEI">fileDesc</gi> element and is optional. If used, it contains one or more <gi scheme="MEI">annot</gi> elements, each containing a single piece of descriptive information of the kind treated as ‘general notes’ in traditional bibliographic descriptions.</p> <p> <specList> <specDesc key="notesStmt"/> </specList> </p> <p>Some information found in the notes area in conventional bibliography has been assigned specific elements in these Guidelines; in particular the following items should be tagged as indicated, rather than as general notes:</p> <list rend="bulleted"> <item>the nature, scope, artistic form, or purpose of the work; also the genre or other intellectual category to which it may belong. These should be formally described within the <gi scheme="MEI">workList</gi> element (section <ptr target="#headerWorkDescription"/>).</item> <item>bibliographic details relating to the source or sources of an electronic text: <abbr>e.g.</abbr>, ‘Transcribed from a facsimile of the 1743 publication’. These should be formally described in the <gi scheme="MEI">sourceDesc</gi> element (section <ptr target="#headerSourceDescription"/>).</item> <item>further information relating to publication, distribution, or release of the text, including sources from which the text may be obtained, any restrictions on its use or formal terms on its availability. These should be placed in the appropriate division of the <gi scheme="MEI">pubStmt</gi> element (section <ptr target="#headerPublicationDistribution"/>).</item> <item>publicly documented numbers associated <hi rend="italic">with the file</hi> should be placed in an <gi scheme="MEI">altId</gi> element within the <gi scheme="MEI">meiHead</gi> element. International Standard Serial Numbers (ISSN), International Standard Book Numbers (ISBN), and other internationally agreed upon standard numbers that uniquely identify an item, should be treated in the same way, rather than as specialized bibliographic notes. As described elsewhere, identifiers <hi rend="italic">for sources of the file</hi> should be recorded within the <gi scheme="MEI">sourceDesc</gi>.</item> </list> <p>Nevertheless, the <gi scheme="MEI">notesStmt</gi> element may be used to record potentially significant details about the file and its features, for example:</p> <list rend="bulleted"> <item>dates, when they are relevant to the content or condition of the computer file: <abbr>e.g.</abbr>, ‘manual dated 2010’, ‘file validated Apr 2011’</item> <item>names of persons or bodies connected with the technical production, administration, or consulting functions of the effort which produced the file, if these are not named in statements of responsibility in the title or edition statements of the file description: <abbr>e.g.</abbr>, ‘Historical commentary provided by members of the Big Symphony Orchestra’</item> <item>availability of the file in an additional medium or information not already recorded about the availability of documentation: <abbr>e.g.</abbr>, ‘User manual is loose-leaf in eleven paginated sections’</item> <item>language of work and abstract, if not encoded in the <gi scheme="MEI">langUsage</gi> element, <abbr>e.g.</abbr>, ‘Text in English with stage directions in French and German’</item> </list> <p>Each such item of information may be tagged using the general-purpose <gi scheme="MEI">annot</gi> element. Groups of annotations are contained within the <gi scheme="MEI">notesStmt</gi> element, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><notesStmt> <annot>Historical commentary provided by John Smith.</annot> <annot>OCR scanning performed at University of Virginia.</annot> </notesStmt> </egXML> </figure> </p> <p>There are advantages, however, to encoding such information with more precise elements elsewhere in the MEI header, when such elements are available. For example, the notes above might be encoded as follows:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titleStmt> <title>…</title> <respStmt> <persName>John Smith</persName> <resp>historical commentary</resp> </respStmt> <respStmt> <corpName>University of Virginia</corpName> <resp>OCR scanning</resp> </respStmt> </titleStmt> </egXML> </figure> </p> </div> <div xml:id="headerSourceDescription" type="div4"> <head>Source Description</head> <p>The <gi scheme="MEI">sourceDesc</gi> element is the seventh and final component of the <gi scheme="MEI">fileDesc</gi> element. In MEI, <gi scheme="MEI">sourceDesc</gi> is a grouping element containing one or more <gi scheme="MEI">source</gi> elements, each of which records details of a source from which the computer file is derived. This might be a printed text or manuscript, another computer file, an audio or video recording, or a combination of these. An electronic file may also have no source, if what is being cataloged is an original text created in electronic form.</p> <p> <specList> <specDesc key="sourceDesc"/> <specDesc key="source"/> </specList> </p> <p>The <gi scheme="MEI">source</gi> element may contain</p> <p> <specList> <specDesc key="head"/> <specDesc key="locusGrp"/> <specDesc key="locus"/> <specDesc key="bibl"/> <specDesc key="biblStruct"/> </specList> </p> <div xml:id="headerAssociatingMetadataAndData" type="div5"> <head>Associating Metadata and Data</head> <p>In the MEI header, the <att>data</att> attribute may be used to associate metadata with related notational elements.</p> <p>Similarly, in the body of the MEI document, the <att>decls</att> attribute may be used to associate parts of the encoded text with related metadata.</p> <p>The most useful associations of this type are between the bibliographic description of a source and the material taken from it.</p> </div> </div> </div> <div xml:id="headerEncodingDescription" type="div3"> <head>Encoding Description</head> <p>The <gi scheme="MEI">encodingDesc</gi> element is the second major subdivision of the MEI header. It specifies the methods and editorial principles which governed the transcription or encoding of the source material. Though not formally required, its use is highly recommended.</p> <p> <specList> <specDesc key="encodingDesc"/> </specList> </p> <p>The encoding description may contain elements taken from the model.encodingPart class. By default, this class makes available the following elements:</p> <p> <specList> <specDesc key="appInfo"/> <specDesc key="editorialDecl"/> <specDesc key="projectDesc"/> <specDesc key="samplingDecl"/> <specDesc key="domainsDecl"/> <specDesc key="tagsDecl"/> <specDesc key="classDecls"/> </specList> </p> <p>Each of these elements is further described in the appropriate section below.</p> <div xml:id="headerApplicationInformation" type="div4"> <head>Application Information</head> <p>It is sometimes convenient to store information relating to the processing of an encoded resource within its header. Typical uses for such information might be:</p> <list rend="bulleted"> <item>to allow an application to discover that it has previously opened or edited a file, and what version of itself was used to do that;</item> <item>to show (through a date) which application last edited the file to allow for diagnosis of any problems that might have been caused by that application;</item> <item>to allow users to discover information about an application used to edit the file</item> <item>to allow the application to declare an interest in elements of the file which it has edited, so that other applications or human editors may be more wary of making changes to those sections of the file.</item> </list> <p> <specList> <specDesc key="application"/> <specDesc key="application" atts="version"/> </specList> </p> <p>Each <gi scheme="MEI">application</gi> element identifies the current state of one software application with regard to the current file. This element is a member of the att.datable class, which provides a variety of attributes for associating this state with a date and time, or a temporal range. The <att>xml:id</att> and <att>version</att> attributes should be used to uniquely identify the application and its major version number (for example, 'Music Markup Tool 1.5'). It is not intended that a software application should add a new <gi scheme="MEI">application</gi> element each time it touches the file.</p> <p>The following example shows how these elements might be used to record the fact that version 1.5 of an application called ‘Music Markup Tool’ has an interest in two parts of a document. The parts concerned are accessible at the URLs given as targets of the two <gi scheme="MEI">ptr</gi> elements. When used on <gi scheme="MEI">application</gi>, the <att>date</att> attribute specifies when the application was employed, in this case June 6, 2011. Version information for the application should be placed in <att>version</att>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><appInfo> <application isodate="2011-06-06" version="1.5" xml:id="header.MusicMarkupTool"> <name>Music Markup Tool</name> <ptr target="#header.P1"/> <ptr target="#header.P2"/> </application> </appInfo> </egXML> </figure> </p> </div> <div xml:id="headerEditorialPrinciples" type="div4"> <head>Declaration of Editorial Principles</head> <p>The <gi scheme="MEI">editorialDecl</gi> element is used to provide details of the editorial practices applied during the encoding of a musical text.</p> <p>It may contain a prose description only, or one or more of a set of specialized elements; that is, members of the MEI model.editorialDeclPart class.</p> <p>Some of these policy elements carry attributes to support automated processing of certain well-defined editorial decisions; all of them contain a prose description of the editorial principles adopted with respect to the particular feature concerned. Examples of the kinds of questions which these descriptions are intended to answer are given in the list below.</p> <list type="gloss"> <label>correction</label> <item>States how and under what circumstances corrections have been made in the text. <att>corrlevel</att> indicates the degree of correction applied to the text. <att>method</att> indicates the method employed to mark corrections and normalizations. Was the text corrected during or after data capture? If so, were corrections made silently or are they marked using the tags described in chapter <ptr target="#editTrans"/>? What principles have been adopted with respect to omissions, truncations, dubious corrections, alternate readings, false starts, repetitions, etc.?</item> <label>interpretation</label> <item>Describes the scope of any analytic or interpretive information added to the transcription of the music. Has any analytic or ‘interpretive’ information been provided — that is, information which is felt to be non-obvious, or potentially contentious? If so, how was it generated? How was it encoded?</item> <label>normalization</label> <item>Indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form. <att>method</att> indicates the method employed to mark corrections and normalizations. Was the text normalized, for example by regularizing any non-standard enharmonic spellings, etc.? If so, were normalizations performed silently or are they marked using the tags described in chapter <ptr target="#editTrans"/>? What authority was used for the regularization? Also, what principles were used when normalizing numbers to provide the standard values for the value attribute described in sections <ptr target="#sharedNames"/>–<ptr target="sharedAddresses"/> and what format is used for them?</item> <label>segmentation</label> <item>Describes the principles according to which the musical text has been segmented, for example into movements, sections, etc. How is the musical text segmented? If mdiv and/or section elements have been used to partition the music for analysis, how are they marked and how was the segmentation arrived at?</item> <label>stdVals (standard values)</label> <item>Specifies the format used when standardized date or number values are supplied. In most cases, attributes bearing standardized values should conform to a defined datatype. In cases where this is not appropriate, this element may be used to describe the standardization methods underlying the values supplied.</item> </list> <p>Experience shows that a full record should be kept of decisions relating to editorial principles and encoding practice, both for future users of the text and for the project which produced the text in the first instance. Any information about the editorial principles applied not falling under one of the above headings may be recorded as additional prose following the special-use elements.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><editorialDecl> <segmentation> <p>Separate mdiv elements have been created for each movement of the work.</p> </segmentation> <interpretation> <p>The harmonic analysis applied throughout movement 1 was added by hand and has not been checked. </p> </interpretation> <correction> <p>Errors in transcription controlled by using the Finale editor.</p> </correction> <normalization> <p>All sung text converted to Modern American spelling following Webster’s 9th Collegiate dictionary. </p> </normalization> <p> <!-- Other editorial practices described here. --> </p> </editorialDecl> </egXML> </figure> </p> <p>An editorial practices declaration which applies to more than one text or division of a text need not be repeated in the header of each text or division. Instead, the <att>decls</att> attribute of each text (or subdivision of the text) to which it applies may be used to supply a cross-reference to a single declaration encoded in the header.</p> </div> <div xml:id="headerProjectDescription" type="div4"> <head>Project Description</head> <p> <specList> <specDesc key="projectDesc"/> </specList> </p> <p>The <gi scheme="MEI">projectDesc</gi> element may be used to describe, in prose, the purpose for which a digital resource was created, together with any other relevant information concerning the process by which it was assembled or collected. This is of particular importance for corpora or miscellaneous collections, but may be of use for any text, for example to explain why one kind of encoding practice has been followed rather than another.</p> <p>For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><encodingDesc> <projectDesc> <p>Texts collected for use in the MEI Summer Workshop, Aug. 2012.</p> </projectDesc> </encodingDesc> </egXML> </figure> </p> </div> <div xml:id="headerSamplingDeclaration" type="div4"> <head>Sampling Declaration</head> <p>The samplingDecl element holds a prose description of the rationale and methods used in selecting texts, or parts of text, for inclusion in the resource.</p> <p> <specList> <specDesc key="samplingDecl"/> </specList> </p> <p>The <gi scheme="MEI">samplingDecl</gi> element should include information about such matters as:</p> <list rend="bulleted"> <item>the size of individual samples</item> <item>the method or methods by which they were selected</item> <item>the underlying population being sampled</item> <item>the object of the sampling procedure used but is not restricted to these.</item> </list> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><samplingDecl> <p>Encoding contains 40 randomly-selected measures.</p> </samplingDecl> </egXML> </figure> </p> <p>It may also include a simple description of any parts of the source text included or excluded:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><samplingDecl> <p>Only the songs have been transcribed. Advertisements have been silently omitted. All mathematical expressions have been omitted, and their place marked with a <gi scheme="MEI">gap</gi>element. </p> </samplingDecl> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><samplingDecl> <p>Only the first 6 measures of movement 1 are encoded.</p> </samplingDecl> </egXML> </figure> </p> <p>A sampling declaration which applies to more than one text or division of a text need not be repeated in the header of each such text. Instead, the <att>decls</att> attribute of each text (or subdivision of the text) to which the sampling declaration applies may be used to supply a cross-reference to it, as further described in section <ptr target="#headerAssociatingMetadataAndData"/>.</p> </div> <div xml:id="headerClassDeclarations" type="div4"> <head>Class Declarations</head> <p>The <gi scheme="MEI">classDecls</gi> element allows the declaration of generic taxonomies for the classification of entities according to one or both of the following two methods:</p> <list rend="bulleted"> <item>by reference to a recognized international classification scheme such as the Dewey Decimal Classification, the Universal Decimal Classification, the Colon Classification, the Library of Congress Classification, or any other system widely used in library and documentation work</item> <item>by providing a set of keywords, as provided, for example, by British Library or Library of Congress Cataloguing in Publication data, or as defined by the encoder.</item> </list> <p> <specList> <specDesc key="classDecls"/> </specList> </p> <p>Each taxonomy may have a heading and may declare any number of categories using the <gi scheme="MEI">category</gi> element. Categories may be declared by reference to existing vocabularies or simply explained by a descriptive text.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><classDecls> <taxonomy> <head>Subject categories</head> <category xml:id="header.LoC_lcco"> <desc>Library of Congress subject headings. Prepared by the Cataloging Policy and Support Office, Collections Services. Washington, D.C.: Library of Congress, Cataloging Distribution Service, 1993- . </desc> </category> </taxonomy> </classDecls> </egXML> </figure> </p> <p>The <gi scheme="MEI">category</gi> element may or may not include a bibliographic citation and/or a URI at which the classification scheme or information about it may be found.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><taxonomy> <category auth.uri="http://www.loc.gov" auth="Library of Congress" xml:id="header.LCSH"/> <category auth.uri="http://www.loc.gov/aba/cataloging/classification/lcco/lcco_m.pdf" xml:id="header.LoC_lcco"> <desc>Library of Congress subject headings. Prepared by the Cataloging Policy and Support Office, Collections Services. Washington, D.C.: Library of Congress, Cataloging Distribution Service, 1993- .</desc> </category> </taxonomy> </egXML> </figure> </p> <p>The categories declared in the taxonomies may then be referenced to within <gi scheme="MEI">classification</gi> by means of the <att>class</att> attribute as described in the <ptr target="#headerWorkClass"/> section.</p> </div> </div> <div xml:id="headerRevisionDescription" type="div3"> <head>Revision Description</head> <p>The final sub-element of the MEI header, the <gi scheme="MEI">revisionDesc</gi> element, provides a detailed change log in which each change made to a text may be recorded. Its use is optional but highly recommended. It provides essential information for the administration of large numbers of files which are being updated, corrected, or otherwise modified as well as extremely useful documentation for files being passed from researcher to researcher or system to system. Without change logs, it is easy to confuse different versions of a file, or to remain unaware of small but important changes made in the file by some earlier link in the chain of distribution. No change should be made in any MEI-conformant file without corresponding entries being made in the change log.</p> <p> <specList> <specDesc key="revisionDesc"/> <specDesc key="change"/> </specList> </p> <p>The main purpose of the revision description is to record changes in the text to which a header is prefixed. However, it is recommended practice to include entries also for significant changes in the header itself (other than the revision description itself, of course). At the very least, an entry should be supplied indicating the date of creation of the header.</p> <p>The log consists of a list of <gi scheme="MEI">change</gi> elements, each of which contains a detailed description of the changes made. If a number is to be associated with one or more changes (for example, a revision number), the <att>n</att> attribute may be used to indicate it. The person responsible for the change and the date of the change may be indicated by the <gi scheme="MEI">respStmt</gi> and <gi scheme="MEI">date</gi> elements. The description of the change itself is contained within the <gi scheme="MEI">changeDesc</gi> element, which can hold one or more paragraphs.</p> <p>It is recommended to give changes in reverse chronological order, most recent first.</p> <p>For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><revisionDesc> <change n="4"> <respStmt> <persName>KR</persName> </respStmt> <changeDesc> <p>Cleaned up MEI file automatically using Header.xsl.</p> </changeDesc> <date isodate="2011-12-01"/> </change> <change n="3"> <respStmt> <persName>KR</persName> </respStmt> <changeDesc> <p>Cleaned up MEI file automatically using ppq.xsl.</p> </changeDesc> <date isodate="2011-10-21"/> </change> </revisionDesc> </egXML> </figure> </p> <p>A slightly shorter form for recording changes is also available when a the date of the change can be described by a single date in a standard ISO form and when the name of the agent(s) responsible for the change, encoded elsewhere in the header, can be referred to by one or more URIs given in the <att>resp</att> attribute. For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><change isodate="2011-10-21" n="3" resp="#KR #MH"> <changeDesc> <p>Cleaned up MEI file automatically using ppq.xsl.</p> </changeDesc> </change> </egXML> </figure> </p> </div> </div> <div xml:id="FRBR" type="div2"> <head>Functional Requirements for Bibliographic Records (FRBR)</head> <p>MEI header information may refer to different levels of description of the encoded work: Some information may apply the work in all its various forms and realizations, <abbr>e.g.</abbr>, the name of its composer. Other information may describe a certain version of the work, or a source such as the printed first edition, or only a single copy of that source. Core MEI limits the header information to two such levels of description: work and source, respectively.</p> <p>However, when the FRBR module is available more detailed descriptions are possible. With certain limitations, mainly due to the musical nature of the works encoded in MEI, the FRBR module adapts the <ref target="https://repository.ifla.org/handle/123456789/811">Functional Requirements for Bibliographic Records (FRBR)</ref> as recommended by the International Federation of Library Associations and Institutions (IFLA).</p> <p>The IFLA’s FRBR model distinguishes four levels of abstraction, or entities:</p> <list type="gloss"> <label>Work</label> <item>FRBR defines a work as a "distinct intellectual or artistic creation", an abstract entity because there is no single material object one can point to as the work.</item> <label>Expression</label> <item>An expression is defined as "the intellectual or artistic realization of a work in the form of [...] notation, sound, image, object, movement, etc., or any combination of such forms". Expressions are also abstract entities.</item> <label>Manifestation</label> <item>A manifestation is defined as "the physical embodiment of an expression of a work", including, for instance, manuscripts, books, sound recordings, films, video recordings, CD-ROMs, multimedia kits, etc. The manifestation represents all the physical objects that bear the same characteristics, with respect to both intellectual content and physical form.</item> <label>Item</label> <item>A single exemplar of a manifestation is called an item, <abbr>e.g.</abbr>, a specific copy of a printed score. With manuscripts, item and manifestation levels are nearly identical. A manuscript may be regarded as a manifestation having only one item.</item> </list> <div xml:id="FRBRentities" type="div3"> <head>FRBR Entities in MEI</head> <p>With the FRBR module, MEI offers four elements corresponding to the FRBR "Group 1" entities:</p> <p> <specList> <specDesc key="work"/> <specDesc key="expression"/> <specDesc key="manifestation"/> <specDesc key="item"/> </specList> </p> <p>The names of the MEI entities follow those of FRBR: the <gi scheme="MEI">work</gi> element is a container for description at the FRBR "work" level, <gi scheme="MEI">expression</gi> is for description at the FRBR "expression" level, <gi scheme="MEI">manifestation</gi> contains "manifestation" level description, and <gi scheme="MEI">item</gi> holds FRBR "item" level description. Please note: Until MEI 3.0.0, the <gi scheme="MEI">source</gi> element in <gi scheme="MEI">sourceDesc</gi> was used for manifestation-level descriptions.</p> <p>The <gi scheme="MEI">work</gi> element has an optional child element to hold the expression elements:</p> <p> <specList> <specDesc key="expressionList"/> </specList> </p> <p>As <gi scheme="MEI">expressionList</gi> is a container element for descriptions of different expressions of the same work, it may contain only</p> <p> <gi scheme="MEI">expression</gi> elements.</p> <p>The content model of <gi scheme="MEI">expression</gi> is similar to that of <gi scheme="MEI">work</gi>. It does not, however, permit <gi scheme="MEI">expressionList</gi> and <gi scheme="MEI">audience</gi> elements. But it adds elements that aid identification and description of specific versions of a work:</p> <p> <specList> <specDesc key="extent"/> <specDesc key="scoreFormat"/> </specList> </p> <p>Since expressions, like works, are abstractions, their titles are often nebulous. Usually, however, the title of an expression is the same as the work it represents. When the relationship between a work and an expression is encoded hierarchically, the expression’s title element may be omitted with the assumption that it will be inherited from the work. If no title is provided for an expression, distinguishing characteristics must be provided in other elements, such as <gi scheme="MEI">perfMedium</gi>, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><work xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <title>Pavane pour une infante défunte</title> <expressionList> <expression> <title/> <perfMedium> <perfResList> <perfRes>piano</perfRes> </perfResList> </perfMedium> </expression> <expression> <title/> <perfMedium> <perfResList> <perfRes>orchestra</perfRes> </perfResList> </perfMedium> </expression> </expressionList> </work> </egXML> </figure> </p> <p>Programmatic concatenation of the work title and one or more characteristics of the expression can be used to provide identification for the expression. For example, the expressions above may be identified by "Pavane pour une infante défunte (piano)" and "Pavane pour une infante défunte (orchestra)". In some cases, it may be helpful to assign a descriptive title to the expression, as illustrated below. The carrier of the manifestation is often a good source of this kind of descriptive text.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><work xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <title>Pavane pour une infante défunte</title> <expressionList> <expression> <title>Version for piano</title> <perfMedium> <perfResList> <perfRes>piano</perfRes> </perfResList> </perfMedium> </expression> <expression> <title>Version for orchestra</title> <perfMedium> <perfResList> <perfRes>orchestra</perfRes> </perfResList> </perfMedium> </expression> </expressionList> </work> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><work xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <title>Sonata No. 2</title> <expressionList> <expression> <title>Live recording at Carnegie Hall</title> </expression> <expression> <title>Studio recording</title> </expression> </expressionList> </work> </egXML> </figure> </p> <p>The <gi scheme="MEI">manifestationList</gi> and <gi scheme="MEI">manifestation</gi> elements are discussed in section <ptr target="#msdesc"/>.</p> <p>The <gi scheme="MEI">itemList</gi> element provides functionality similar to that of <gi scheme="MEI">expressionList</gi>; that is, it can be used to group descriptions of individual items (exemplars) of the parent source. Just like <gi scheme="MEI">expressionList</gi>, which can only hold <gi scheme="MEI">expression</gi> sub-components, <gi scheme="MEI">itemList</gi> may only contain <gi scheme="MEI">item</gi> elements.</p> <p> <specList> <specDesc key="itemList"/> </specList> <specList> <specDesc key="item"/> </specList> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><manifestation xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <titleStmt> <title>Trois trios pour le piano-forte violon, et violoncelle</title> </titleStmt> <itemList> <item label="Copy at Stanford"> <physLoc> <repository> <corpName>Stanford University Library</corpName> </repository> </physLoc> </item> <item label="Copy at Dresden"> <physLoc> <repository> <corpName>Dresden, Sächsische Landesbibliothek - Staats- und Universitätsbibliothek</corpName> </repository> </physLoc> </item> </itemList> </manifestation> </egXML> </figure> </p> </div> <div xml:id="FRBRcomponents" type="div3"> <head>Component Parts in FRBR</head> <p>Each of the four MEI elements corresponding to FRBR entities may contain a list of constituent parts. All four entities utilize the same element:</p> <p> <specList> <specDesc key="componentList"/> </specList> </p> <p>However, the child elements of a component group must be the same type as the group’s parent. This allows for a more detailed description than is possible using the core MEI <gi scheme="MEI">contents</gi> element. For example, a work element’s <gi scheme="MEI">componentList</gi> element can only contain <gi scheme="MEI">work</gi> elements, etc. In this way, the <gi scheme="MEI">componentList</gi> element may be employed to describe composite works, as in the example below:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><work xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <title>Der Ring des Nibelungen</title> <componentList> <work> <title>Das Rheingold</title> </work> <work> <title>Die Walküre</title> </work> <work> <title>Siegfried</title> </work> <work> <title>Götterdämmerung</title> </work> </componentList> </work> </egXML> </figure> </p> <p>This technique can also be applied when a single intellectual source is comprised of multiple physical parts. In the following example, the choral parts were published in four physically separate "signatures":</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><manifestation xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xml:id="source.printed_choral_parts"> <titleStmt> <title>Printed choral parts</title> </titleStmt> <pubStmt> <publisher>Horneman &amp; Erslev</publisher> <pubPlace>Copenhagen</pubPlace> <date isodate="1871">1871</date> </pubStmt> <componentList> <manifestation> <titleStmt> <title>Soprani</title> </titleStmt> <physDesc> <extent unit="pages">4</extent> </physDesc> </manifestation> <manifestation> <titleStmt> <title>Alti</title> </titleStmt> <physDesc> <extent unit="pages">4</extent> </physDesc> </manifestation> <manifestation> <titleStmt> <title>Tenori</title> </titleStmt> <physDesc> <extent unit="pages">6</extent> </physDesc> </manifestation> <manifestation> <titleStmt> <title>Bassi</title> </titleStmt> <physDesc> <extent unit="pages">6</extent> </physDesc> </manifestation> </componentList> </manifestation> </egXML> </figure> </p> </div> <div xml:id="FRBRrelations" type="div3"> <head>FRBR Relationships</head> <p>FRBR defines a number of terms that describe how the basic entities relate to each other. MEI provides the following elements for this purpose.</p> <p> <specList> <specDesc key="relationList"/> <specDesc key="relation"/> <specDesc key="relation" atts="rel"/> </specList> </p> <p>Each of the four FRBR entity equivalents – the work, expression, source, and item elements – allows a list of such relationship descriptions as its last child element. <gi scheme="MEI">relationList</gi> provides a container for individual <gi scheme="MEI">relation</gi> elements. The nature of the relationship must be specified by the <att>rel</att> attribute and the target of the relationship must be identified by the <att>target</att> attribute. The values allowed by <att>rel</att> follow those defined for FRBR at <ref target="http://www.ifla.org/files/assets/cataloguing/frbr/frbr_2008.pdf">http://www.ifla.org/files/assets/cataloguing/frbr/frbr_2008.pdf</ref>.</p> <p>Since relations are bidirectional, they may be defined on both entities involved, using pairs of oppositely-directed relation descriptors. The following FRBR relations are allowed in MEI as values of the relation element’s <att>rel</att> attribute (shown in pairs for clarity):</p> <list rend="bulleted"> <item>hasAbridgement / isAbridgementOf</item> <item>hasAdaptation / isAdaptationOf</item> <item>hasAlternate / isAlternateOf</item> <item>hasArrangement / isArrangementOf</item> <item>hasComplement / isComplementOf</item> <item>hasEmbodiment / isEmbodimentOf</item> <item>hasExemplar / isExemplarOf</item> <item>hasImitation / isImitationOf</item> <item>hasPart / isPartOf</item> <item>hasRealization / isRealizationOf</item> <item>hasReconfiguration / isReconfigurationOf</item> <item>hasReproduction / isReproductionOf</item> <item>hasRevision / isRevisionOf</item> <item>hasSuccessor / isSuccessorOf</item> <item>hasSummarization / isSummarizationOf</item> <item>hasSupplement / isSupplementOf</item> <item>hasTransformation / isTransformationOf</item> <item>hasTranslation / isTranslationOf</item> </list> <p>Some of these relationships are already implicitly expressed by the MEI structural model: FRBR defines an expression entity as a realization of a work, but as this relation is implied by the expressionList element’s child relationship to its parent work element, the hasRealization/isRealizationOf relation does not need to be explicitly declared. Likewise, it is not necessary to specify by means of relation elements that an item is an exemplar of the source described by its parent source element. This resembles the FRBR model, which allows 1:n relationships both between works and expressions, and between manifestations and items.</p> <p>However, as FRBR allows n:n relations between expressions and manifestations (in MEI: sources), a hierarchical model based on the structure of XML is clearly insufficient to express all possible expression / manifestation combinations. It is therefore required to declare these relations explicitly. In FRBR terms, a manifestation / source is an embodiment of an expression.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><manifestation xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <titleStmt> <title>Score, first edition</title> </titleStmt> <relationList> <relation rel="isEmbodimentOf" target="#version_for_orchestra"/> </relationList> </manifestation> </egXML> </figure> </p> <p>Within the <gi scheme="MEI">componentList</gi> element, the order of child elements implicitly describes a hasSuccessor/isSuccessorOf relationship between components, <abbr>i.e.</abbr>, it defines a certain sequence such as the movements of a work. In other cases, <gi scheme="MEI">relation</gi> elements may be needed to explicitly encode relationships not otherwise defined by encoding order or hierarchy. For instance, the hasReproduction/isReproductionOf relationship may be used to indicate that one source is a reprint of another.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><manifestation xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <pubStmt> <publisher>Horneman &amp; Erslev</publisher> <pubPlace>Copenhagen</pubPlace> <date isodate="1874">1874</date> </pubStmt> <relationList> <relation rel="isReproductionOf" target="#source.printed_choral_parts"/> </relationList> </manifestation> </egXML> </figure> </p> <p>Moreover, the use of <gi scheme="MEI">componentList</gi> implicitly defines a hasPart/isPartOf relationship between the componentList element’s parent and its child elements. Using the <gi scheme="MEI">relationList</gi> and relation elements to define their relationship, the four component works in the "Der Ring des Nibelungen" example above could alternatively be encoded as sibling work elements to the "Ring" work element.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><workList xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <work xml:id="theRing"> <title>Der Ring des Nibelungen</title> <relationList> <relation rel="hasPart" target="#rheingold"/> <relation rel="hasPart" target="#walkuere"/> <relation rel="hasPart" target="#siegfried"/> <relation rel="hasPart" target="#goetterdaemmerung"/> </relationList> </work> <work xml:id="rheingold"> <title>Das Rheingold</title> <relationList> <relation rel="isPartOf" target="#theRing"/> </relationList> </work> <work xml:id="walkuere"> <title>Die Walküre</title> <relationList> <relation rel="isPartOf" target="#theRing"/> </relationList> </work> <work xml:id="siegfried"> <title>Siegfried</title> <relationList> <relation rel="isPartOf" target="#theRing"/> </relationList> </work> <work xml:id="goetterdaemmerung"> <title>Götterdämmerung</title> <relationList> <relation rel="isPartOf" target="#theRing"/> </relationList> </work> </workList> </egXML> </figure> </p> <p>Relations may also be used to point to external resources. For instance, each of the individual component works of the "Ring" could be encoded in separate files, with relations pointing to them.</p> <p>In the file "ring.xml":</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><workList xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <work> <title>Der Ring des Nibelungen</title> <relationList> <relation rel="hasPart" target="rheingold.xml"/> <relation rel="hasPart" target="walkuere.xml"/> <relation rel="hasPart" target="siegfried.xml"/> <relation rel="hasPart" target="goetterdaemmerung.xml"/> </relationList> </work> </workList> </egXML> </figure> </p> <p>In the file "rheingold.xml":</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><workList xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <work> <title>Das Rheingold</title> <relationList> <relation rel="isPartOf" target="ring.xml"/> </relationList> </work> </workList> </egXML> </figure> </p> </div> <div xml:id="headerRelatedItemVsFRBR" type="div3"> <head>RelatedItem vs. FRBR</head> <p>MEI offers two related concepts for capturing relations between bibliographic items. The model of <gi scheme="MEI">relatedItem</gi>, as described in chapter <ptr target="#sharedRelatedItemDesc"/> of these Guidelines, is derived from MODS v3.4 (see documentation <ref target="http://www.loc.gov/standards/mods/v3/mods-userguide-elements.html#relateditem">here</ref>). Its purpose in MEI is to encode bibliographic references between mostly "secondary" material, like reviews, articles, and so on. It may be used to provide cross-references between information encoded in different places of the header.</p> <p>However, <gi scheme="MEI">relatedItem</gi> is less ideal for describing the relations between works, differing versions of these works, the sources in which those versions are transmitted, and where applicable the individual copies of a print. For these situations, it is strongly recommended to use the <ptr target="#FRBR"/> instead. This module is based on the Functional Requirements for Bibliographic Records, as <ref target="http://www.ifla.org/publications/functional-requirements-for-bibliographic-records">specified</ref> by the <ref target="http://www.ifla.org">IFLA</ref>. It allows a much finer description of relationships between such "primary" entities. For compatibility reasons, both models should not be confused or mixed under any circumstances.</p> </div> </div> <div xml:id="headerWorkDescription" type="div2"> <head>Work Description</head> <p>The <gi scheme="MEI">workList</gi> element is the third major subdivision of the MEI Header. It is an optional element, the purpose of which is to enable the recording of information characterizing various descriptive aspects of the abstract work.</p> <p> <specList> <specDesc key="workList"/> </specList> </p> <p>Within <gi scheme="MEI">workList</gi>, the <gi scheme="MEI">work</gi> element is used to hold information for each resource being described.</p> <p> <specList> <specDesc key="work"/> </specList> </p> <p>All the components of <gi scheme="MEI">work</gi> are optional, but they must occur in the following order:</p> <list rend="numbered"> <item> <gi scheme="MEI">identifier</gi> </item> <item> <gi scheme="MEI">title</gi> </item> <item>Responsibility-like elements including <gi scheme="MEI">composer</gi>, <gi scheme="MEI">lyricist</gi>, <gi scheme="MEI">contributor</gi> and others</item> <item> <gi scheme="MEI">incip</gi> </item> <item> <gi scheme="MEI">key</gi> </item> <item> <gi scheme="MEI">mensuration</gi> </item> <item> <gi scheme="MEI">meter</gi> </item> <item> <gi scheme="MEI">tempo</gi> </item> <item> <gi scheme="MEI">otherChar</gi> </item> <item> <gi scheme="MEI">history</gi> </item> <item> <gi scheme="MEI">langUsage</gi> </item> <item> <gi scheme="MEI">perfMedium</gi> </item> <item> <gi scheme="MEI">audience</gi> </item> <item> <gi scheme="MEI">contents</gi> </item> <item> <gi scheme="MEI">context</gi> </item> <item> <gi scheme="MEI">biblList</gi> </item> <item> <gi scheme="MEI">notesStmt</gi> </item> <item> <gi scheme="MEI">classification</gi> </item> </list> <div xml:id="headerWorkIdentification" type="div3"> <head>Work Identification</head> <p>The following elements provide minimal identifying information for the intellectual work:</p> <p> <specList> <specDesc key="identifier"/> <specDesc key="title"/> <specDesc key="arranger"/> <specDesc key="author"/> <specDesc key="composer"/> <specDesc key="contributor"/> <specDesc key="editor"/> <specDesc key="funder"/> <specDesc key="librettist"/> <specDesc key="lyricist"/> <specDesc key="sponsor"/> </specList> </p> <p>The identifier and title values recorded here may or may not be the same as those assigned to published versions of the work. Fuller details are available in section <ptr target="#headerTitleStatement"/>.</p> </div> <div xml:id="headerWorkIncipit" type="div3"> <head>Incipits</head> <p> <specList> <specDesc key="incip"/> </specList> </p> <p>The first few notes and/or words of a piece of music are often used for identification purposes, especially when the piece has only a generic title, such as "Sonata no. 3". They appear in catalogs of music and in tables of contents of printed music that include multiple works.</p> <p>The following elements are provided for the inclusion of incipits:</p> <p> <specList> <specDesc key="incip"/> <specDesc key="incipCode"/> <specDesc key="incipText"/> </specList> </p> <p>The elements <gi scheme="MEI">incipCode</gi> and <gi scheme="MEI">incipText</gi> are available for the inclusion of coded incipits of music notation and textual incipits, respectively. The <gi scheme="MEI">incipText</gi> element should contain only the initial performed text of the work, while <gi scheme="MEI">incipCode</gi> may contain both words and music, depending on the capabilities of the scheme used to encode it. When both music and text are provided in <gi scheme="MEI">incipCode</gi>, it may be helpful to repeat the text in <gi scheme="MEI">incipText</gi> in order to provide easier access to only the text, for example, for indexing of the text without having to extract it from the coded incipit.</p> <p>Both <gi scheme="MEI">incipCode</gi> and <gi scheme="MEI">incipText</gi> allow reference to an external file location via the <att>target</att> attribute and specification of the internet media type of the external file via the <att>mimetype</att> attribute.</p> <p>An MEI-encoded incipit may be captured in a <gi scheme="MEI">score</gi> sub-element.</p> <p>In addition, <gi scheme="MEI">graphic</gi> may be used as a sub-element of <gi scheme="MEI">incip</gi> to include an image of an incipit.</p> <p>To facilitate the capture of metadata associated with an incipit, MEI allows the following sub-elements within <gi scheme="MEI">incip</gi>. The order of their presentation below follows the order in which they must appear in this context.</p> <p> <specList> <specDesc key="tempo"/> <specDesc key="role"/> <specDesc key="clef"/> <specDesc key="clefGrp"/> <specDesc key="perfRes"/> <specDesc key="perfResList"/> <specDesc key="key"/> <specDesc key="meter"/> <specDesc key="mensuration"/> <specDesc key="annot"/> </specList> </p> <p>Usually, the metadata captured in this manner is rendered alongside or in lieu of a coded or graphical incipit. It may or may not serve in a work identification capacity, depending on whether the incipit is intended to represent the entire work or a segment of the work. For example, if an incipit is provided for each aria in an opera, then the metadata pertains only to the aria, not the entire work.</p> </div> <div xml:id="headerWorkKeyTempoMeter" type="div3"> <head>Key, Tempo, and Meter</head> <p>The attributes key, tempo, and meter are often helpful for identifying a musical work when it does not have a distinctive title.</p> <p> <specList> <specDesc key="key"/> <specDesc key="mensuration"/> <specDesc key="meter"/> <specDesc key="tempo"/> </specList> </p> <p>The <gi scheme="MEI">key</gi> element is used exclusively within bibliographic descriptions. Do not confuse this element with <gi scheme="MEI">keySig</gi>, which is used within the body of an MEI file to record this data for musical notation. Likewise, <gi scheme="MEI">meter</gi> should not be confused with the attributes used by staffDef and scoreDef to record meter-related data for notated music. The <gi scheme="MEI">tempo</gi> element can be used here as well as in the body of an MEI document; however, its attributes other than <att>xml:id</att>, <att>label</att>, <att>n</att>, <att>base</att>, and <att>lang</att> are meaningless in the MEI header context, and therefore should be avoided within a work description. The <gi scheme="MEI">mensuration</gi> element is available for the description of works in the mensural repertoire. When a work uses meter and mensural signs, both <gi scheme="MEI">mensuration</gi> and <gi scheme="MEI">meter</gi> elements may be used.</p> </div> <div xml:id="headerWorkOtherChar" type="div3"> <head>Other Identifying Characteristics</head> <p>Additional information that aids the identification of the work may be encoded using <gi scheme="MEI">otherChar</gi>.</p> <p> <specList> <specDesc key="otherChar"/> </specList> </p> <p>The following components provide detailed information about the work’s context, including the circumstances of its creation, the languages used within it, high-level musical attributes, performing forces, etc.</p> </div> <div xml:id="headerWorkHistory" type="div3"> <head>Work History</head> <p>The following elements are provided to capture the history of a musical work:</p> <p> <specList> <specDesc key="creation"/> <specDesc key="event"/> <specDesc key="eventList"/> <specDesc key="history"/> </specList> </p> <p>The <gi scheme="MEI">creation</gi> element is intended to contain a brief, machine-processable statement of the circumstances of the work’s creation. Its content is limited to text and the <gi scheme="MEI">date</gi> and <gi scheme="MEI">geogName</gi> elements.</p> <p>The <gi scheme="MEI">history</gi> element is a container for additional non-bibliographic details relating to a work. It may use the <gi scheme="MEI">eventList</gi> element to provide a list of key events in the creation and performance history of the work. The <gi scheme="MEI">eventList</gi> element is comprised of <gi scheme="MEI">event</gi> elements containing a brief description of the associated event, including dates and locations where the event took place. An event list may use the <att>type</att> attribute to distinguish between multiple event lists with different functions, such as a list of events in the compositional process and a list of performance dates.</p> <p>Event lists and other text components, such as paragraphs, tables, lists, and text divisions (<gi scheme="MEI">div</gi>) may be interleaved when an 'essay-like' work history is desired.</p> <p>The <gi scheme="MEI">event</gi> element permits either a text-centric or a data-centric model. The text-centric model is provided for prose descriptions, while the data-centric model accommodates event descriptions that consist of a collection of descriptive phrases. In the text-centric model, paragraphs, tables, and lists may be used. In the data-centric model, however, only certain phrase-level elements, may appear.</p> </div> <div xml:id="headerWorkLanguage" type="div3"> <head>Language Usage</head> <p>The <gi scheme="MEI">langUsage</gi> element is used within the <gi scheme="MEI">workList</gi> element to describe the languages, sublanguages, dialects, etc. represented within a work. It contains one or more <gi scheme="MEI">language</gi> elements, each of which provides information about a single language.</p> <p> <specList> <specDesc key="langUsage"/> <specDesc key="language"/> </specList> </p> <p>A <gi scheme="MEI">language</gi> element may be supplied for each different language used in a document. If used, its <att>xml:id</att> attribute should specify an appropriate language identifier. This is particularly important if extended language identifiers have been used as the value of <att>xml:lang</att> attributes elsewhere in the document.</p> <p>Here is an example of the use of this element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><langUsage> <language xml:id="fr-CA">Québecois</language> <language xml:id="en-CA">Canadian English</language> <language xml:id="en-GB">British English</language> </langUsage> <!-- Later in the document --> <verse n="1" xml:lang="fr-CA"></verse> <verse n="2" xml:lang="en-CA"></verse> <verse n="3" xml:lang="en-GB"></verse></egXML> </figure> </p> </div> <div xml:id="headerWorkMedium" type="div3"> <head>Performance Medium</head> <p>The following elements are available for description of a composition’s performing forces:</p> <p> <specList> <specDesc key="castList"/> <specDesc key="perfMedium"/> <specDesc key="perfResList"/> </specList> </p> <p>The <gi scheme="MEI">perfMedium</gi> element provides the possibility of describing a work in terms of its medium of performance; that is, the performing forces required. In the case of a dramatic work, the dramatis personae and associated voice qualities may be enumerated using <gi scheme="MEI">castList</gi>. The <gi scheme="MEI">perfResList</gi> element describes the necessary instrumental and vocal resources.</p> <div xml:id="headerWorkCast" type="div4"> <head>Cast Lists</head> <p>A cast list is a specialized form of list, conventionally found at the start or end of a dramatic work, usually listing all the speaking/singing and non-speaking/singing roles in the play, often with additional description (‘Cataplasma, a maker of Periwigges and Attires’) or the name of an actor or actress (‘Old Lady Squeamish. Mrs Rutter’).</p> <p> <specList> <specDesc key="castList"/> <specDesc key="castGrp"/> <specDesc key="castItem"/> </specList> </p> <p>Cast lists often function as identifying metadata and for this reason are permitted within the description of a work.</p> <p>Because the format and internal structure of cast lists are unpredictable, a <gi scheme="MEI">castList</gi> may contain any combination of <gi scheme="MEI">castItem</gi> and <gi scheme="MEI">castGrp</gi> elements.</p> <p>A <gi scheme="MEI">castItem</gi> element may contain any mixture of text and the following elements:</p> <p> <specList> <specDesc key="role"/> <specDesc key="roleDesc"/> <specDesc key="perfRes"/> </specList> </p> <p>In the following example, <gi scheme="MEI">role</gi> provides the name of the dramatic character and <gi scheme="MEI">roleDesc</gi> contains a brief description of the role. The <gi scheme="MEI">perfRes</gi> element is used to describe the voice range of the role.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><castList xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <castItem> <role>Ursula</role> <roleDesc>Queen of the Britons</roleDesc> <perfRes>Soprano</perfRes> </castItem> <castItem> <role>Dersagrena</role> <roleDesc>Handmaiden to Ursula</roleDesc> <perfRes>Mezzo-Soprano</perfRes> </castItem> <castItem> <role>Fingal</role> <roleDesc>King of the Britons</roleDesc> <perfRes>Baritone</perfRes> </castItem> </castList> </egXML> </figure> </p> <p>The vocal qualities and associated roles for Beethoven’s opera <hi rend="italic">Fidelio</hi> may be encoded as:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium> <castList> <castItem> <perfRes>Tenor</perfRes> <role>Florestan</role> </castItem> <castItem> <perfRes>Soprano</perfRes> <role>Leonore</role>, <roleDesc>his wife</roleDesc> </castItem> <castItem> <perfRes>Bass</perfRes> <role>Rocco</role>, <roleDesc>gaoler</roleDesc> </castItem> <castItem> <perfRes>Soprano</perfRes> <role>Marzelline</role>, <roleDesc>his daughter</roleDesc> </castItem> <castItem> <perfRes>Tenor</perfRes> <role>Jaquino</role>, <roleDesc>assistant to Rocco</roleDesc> </castItem> <castItem> <perfRes>Bass-baritone</perfRes> <role>Don Pizarro</role>, <roleDesc>governor of the prison</roleDesc> </castItem> <castItem> <perfRes>Bass</perfRes> <role>Don Fernando</role>, <roleDesc>King's minister</roleDesc> </castItem> </castList> </perfMedium> </egXML> </figure> </p> <p>The <gi scheme="MEI">castItem</gi> element may also contain:</p> <p> <specList> <specDesc key="actor"/> </specList> </p> <p>However, this element is unlikely to be useful in the context of a work description. It may be used here, however, for the very rare occasion when a work was conceived for and is only performable by a single person or group, as for certain "performance art" works.</p> <p>It is common to find some roles presented in groups or sublists. Roles are also often grouped together by their function. To accommodate these situations, the <gi scheme="MEI">castGrp</gi> element is provided as a component of <gi scheme="MEI">castList</gi>. It may contain any combination of <gi scheme="MEI">castItem</gi>, <gi scheme="MEI">castGrp</gi>, and <gi scheme="MEI">roleDesc</gi> elements.</p> </div> <div xml:id="headerWorkInstrumentation" type="div4"> <head>Instrumentation</head> <p>The <gi scheme="MEI">perfResList</gi> element is used to capture the solo and ensemble instrumental and vocal resources of a composition. For example, a work for a standard ensemble may be indicated thus:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium> <perfResList> <perfRes>Orchestra</perfRes> </perfResList> </perfMedium> </egXML> </figure> </p> <p>The detailed make-up of standard and non-standard ensembles may also be enumerated:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium> <perfResList> <head>Orchestration</head> <perfRes>Flute</perfRes> <perfRes>Oboe</perfRes> <perfRes>English Horn</perfRes> <perfRes>2 Horns in D</perfRes> <perfRes>Strings</perfRes> </perfResList> </perfMedium> </egXML> </figure> </p> <p>Where multiple instruments of the same kind are used, the <att>count</att> attribute on <gi scheme="MEI">perfRes</gi> may be used to encode the exact number of players called for.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium> <perfResList> <!-- concert band --> <perfRes count="2">Piccolo</perfRes> <perfRes count="2">Flute</perfRes> <perfRes count="3">1st Clarinet</perfRes> <perfRes count="3">2nd Clarinet</perfRes> <perfRes count="3">3rd Clarinet</perfRes> <!-- and so on --> </perfResList> </perfMedium> </egXML> </figure> </p> <p>Instrument or voice specifications may be grouped using the <gi scheme="MEI">perfResList</gi> element and a label assigned to the group with</p> <p> <gi scheme="MEI">head</gi>. For example: <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium> <perfResList> <!-- concert band --> <perfResList> <head>Woodwinds</head> <perfRes count="2">Piccolo</perfRes> <perfRes count="2">Flute</perfRes> <perfRes count="3">1st Clarinet</perfRes> <perfRes count="3">2nd Clarinet</perfRes> <perfRes count="3">3rd Clarinet</perfRes> <!-- etc. --> </perfResList> <perfResList> <head>Brass</head> <perfRes count="3">1st Trumpet</perfRes> <perfRes count="3">2nd Trumpet</perfRes> <perfRes count="3">3rd Trumpet</perfRes> <!-- etc. --> </perfResList> <!-- and so on --> </perfResList> </perfMedium> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium xmlns="http://www.music-encoding.org/ns/mei" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron"> <perfResList> <perfResList> <head>Woodwinds</head> <perfRes codedval="wa" count="2">2 Flutes <perfRes codedval="wz">(2. piccolo)</perfRes> </perfRes> <perfRes codedval="wc" count="1">1 Oboe</perfRes> <!-- ... --> </perfResList> <perfResList> <head>Strings (8-6-4-4-2)</head> <perfRes count="8">Violin 1</perfRes> <perfRes count="6">Violin 2</perfRes> <perfRes count="4">Viola</perfRes> <perfRes count="4">Violoncello</perfRes> <perfRes count="2">Double Bass</perfRes> </perfResList> </perfResList> </perfMedium> </egXML> </figure> </p> <p>The preceding example also demonstrates how instrumental doublings can be accommodate through the use of nested <gi scheme="MEI">perfRes</gi> elements. Only the outer-most perfRes element should use the <att>count</att> attribute. Its value should reflect the total number of performers, not the number of instruments played.</p> <p>The <gi scheme="MEI">perfRes</gi> element provides the <att>codedval</att> attribute, which can be used to record a coded value that represents the string value stored as the element’s content. It is recommended that coded values be taken from a standardized list, such as the <ref target="http://www.urfm.braidense.it/risorse/searchmedium_en.php">International Association of Music Libraries' Medium of Performance Codes List</ref> or the <ref target="http://www.loc.gov/standards/valuelist/marcmusperf.html">MARC Instruments and Voices Code List</ref>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfMedium> <perfResList> <!-- @codedval contains values from the MARC Instruments and Voices Code List --> <perfRes codedval="ba">Horn</perfRes> <perfRes codedval="bb">Trumpet</perfRes> <perfRes codedval="bd">Trombone</perfRes> </perfResList> </perfMedium> </egXML> </figure> </p> <p>Solo parts may be marked with the <att>solo</att> attribute of <gi scheme="MEI">perfRes</gi>, like so:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><perfResList> <perfRes solo="true">Violin</perfRes> <perfRes>Violin</perfRes> <perfRes>Violin</perfRes> <perfRes>Viola</perfRes> <perfRes>Violoncello</perfRes> </perfResList> </egXML> </figure> </p> <p>Music for a single player does not have to be marked as solo with the <att>solo</att> attribute.</p> <p>An <hi rend="italic">ad libitum</hi> part, <abbr>i.e.</abbr>, not essential for the performance of the work, may be marked with the <att>adlib</att> attribute.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="false"><perfResList> <perfRes>Soprano</perfRes> <perfRes>Alto</perfRes> <perfRes>Tenor</perfRes> <perfRes>Bass</perfRes> <perfRes adlib="true">Organ</perfRes> </perfResList> </egXML> </figure> </p> </div> </div> <div xml:id="headerWorkAudience" type="div3"> <head>Audience and Context</head> <p> <specList> <specDesc key="audience"/> <specDesc key="context"/> </specList> </p> <p>The intended audience for the work and additional information about context for the work that is not captured in more specific elements elsewhere, such as <gi scheme="MEI">history</gi> and its sub-components, may be recorded in the <gi scheme="MEI">audience</gi> and <gi scheme="MEI">context</gi> elements.</p> </div> <div xml:id="headerWorkContents" type="div3"> <head>Work Contents</head> <p> <specList> <specDesc key="contents"/> <specDesc key="contentItem"/> </specList> </p> <p>Often, it is helpful to identify an entity by listing its constituent parts. A simple description of the work’s content, such as may be found in a bibliographic record, can be given in single paragraph element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents> <p>A suitable tone ; Left hand colouring ; Rhythm and accent ; Tempo ; Flexibility ; Ornaments </p> </contents> </egXML> </figure> </p> <p>Alternatively, a structured list of contents may be constructed using the <gi scheme="MEI">contentItem</gi> element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents> <contentItem>Sonata in D major, op. V, no. 1 / Corelli</contentItem> <contentItem>Sonata in G minor / Purcell (with Robert Donington, gamba)</contentItem> <contentItem>Forlane from Concert royal no. 3 / Couperin</contentItem> </contents> </egXML> </figure> </p> <p>Each <gi scheme="MEI">contentItem</gi> element may be preceded by an optional <gi scheme="MEI">label</gi>:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents> <label>1</label> <contentItem>Sonata in D major, op. V, no. 1 / Corelli</contentItem> <label>2</label> <contentItem>Sonata in G minor / Purcell (with Robert Donington, gamba)</contentItem> <label>3</label> <contentItem>Forlane from Concert royal no. 3 / Couperin</contentItem> </contents> </egXML> </figure> </p> <p>To reference a contents list in an external location, use the <att>target</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents target="http://www.contentProvider.org/toc/toc01.html"/> </egXML> </figure> </p> <p>To facilitate the creation of music catalogs based on MEI header information, <gi scheme="MEI">contents</gi> may contain a heading:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><contents> <head>Contents of this Work:</head> <contentItem>Sonata No. 1</contentItem> <contentItem>Sonata No. 2</contentItem> <contentItem>Sonata No. 3</contentItem> </contents> </egXML> </figure> </p> </div> <div xml:id="headerWorkBiblList" type="div3"> <head>Bibliographic Evidence</head> <p> <specList> <specDesc key="biblList"/> </specList> </p> <p>The <gi scheme="MEI">biblList</gi> element allows citation of bibliographic evidence supporting assertions made within other sub-components of the work description.</p> </div> <div xml:id="headerWorkNotes" type="div3"> <head>Notes Statement</head> <p>The <gi scheme="MEI">notesStmt</gi> element may be used within the description of the musical work to capture information not accounted for by the other elements of the description.</p> </div> <div xml:id="headerWorkClass" type="div3"> <head>Classification</head> <p>Within <gi scheme="MEI">work</gi>, the <gi scheme="MEI">classification</gi> element is used to classify the work according to some classification scheme. More generally, <gi scheme="MEI">classification</gi> may be used to classifiy any FRBR entity (<gi scheme="MEI">work</gi>, <gi scheme="MEI">expression</gi>, <gi scheme="MEI">manifestation</gi>, or <gi scheme="MEI">item</gi>). The following elements are provided for this purpose:</p> <p> <specList> <specDesc key="termList"/> <specDesc key="term"/> </specList> </p> <p>The <gi scheme="MEI">termList</gi> element categorizes the parent entity by supplying a set of terms which may describe its topic or subject matter, its physical or intellectual form, date, etc. Each term is indicated by a <gi scheme="MEI">term</gi> element. In some schemes, the order of items in the list is significant, for example, from major topic to minor; in others, the list has an organized substructure of its own. No recommendations are made here as to which method is to be preferred. Wherever possible, such terms should be taken from a recognized source. In its simplest form, the <gi scheme="MEI">term</gi> element just contains a descriptive keyword.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><termList> <term>motet</term> </termList> </egXML> </figure> </p> <p>The <att>class</att> attribute may be used on each term element to make reference to a classification scheme (declared in the <gi scheme="MEI">classDecls</gi> element) from which it is drawn.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><classification> <termList> <term class="#header.LCSH">Guitar music (Rock)</term> <term class="#header.LCSH">Rock music 1971-1980.</term> <term class="#header.LoC_lcco">M1630.18.Z26 O6 2011</term> </termList> </classification> </egXML> </figure> </p> <p>Alternatively, <att>class</att> may be used on <gi scheme="MEI">termList</gi> when all the contained terms come from the same source.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><classification> <termList class="#header.LCSH"> <term>Guitar music (Rock)</term> <term>Rock music 1971-1980.</term> </termList> <termList class="#header.LoC_lcco"> <term>M1630.18.Z26 O6 2011</term> </termList> </classification> </egXML> </figure> </p> </div> <div xml:id="headerWorkRelationships" type="div3"> <head>Work Relationships</head> <p>When the FRBR (Functional Requirements for Bibliographic Records) module is available, the following elements may be used within <gi scheme="MEI">work</gi> to describe relationships between the work being described and other works or between the work and expressions of it:</p> <p> <specList> <specDesc key="expressionList"/> <specDesc key="componentList"/> <specDesc key="relationList"/> </specList> </p> <p>For more information about FRBR and the use of these elements, see chapter <ptr target="#FRBR"/>.</p> </div> </div> <div xml:id="msdesc" type="div2"> <head>Encoding Sources in MEI</head> <p>The <gi scheme="MEI">manifestation</gi> and <gi scheme="MEI">item</gi> elements allow detailed description of various types of sources, for instance, a printed text or manuscript, another computer file, an audio or video recording, or a combination of these. Both <gi scheme="MEI">manifestation</gi> and <gi scheme="MEI">item</gi> are part of the <ptr target="#FRBR"/> implementation in MEI. Please note: in MEI 3.0.0, the <gi scheme="MEI">source</gi> element was used to capture this type of information. The <gi scheme="MEI">manifestation</gi> element may contain the following elements:</p> <p> <specList> <specDesc key="head"/> <specDesc key="locusGrp"/> <specDesc key="identifier"/> <specDesc key="titleStmt"/> <specDesc key="editionStmt"/> <specDesc key="pubStmt"/> <specDesc key="availability"/> <specDesc key="physDesc"/> <specDesc key="physLoc"/> <specDesc key="seriesStmt"/> <specDesc key="creation"/> <specDesc key="history"/> <specDesc key="langUsage"/> <specDesc key="contents"/> <specDesc key="biblList"/> <specDesc key="notesStmt"/> <specDesc key="classification"/> <specDesc key="itemList"/> <specDesc key="componentList"/> <specDesc key="relationList"/> <specDesc key="extMeta"/> </specList> </p> <p>The content of the <gi scheme="MEI">item</gi> element is quite similar to the <gi scheme="MEI">manifestation</gi> element. The <gi scheme="MEI">item</gi> element is used to describe a single item. This information can differ from the description at the manifestation level or can be additional information. The following elements may be used:</p> <p> <specList> <specDesc key="head"/> <specDesc key="identifier"/> <specDesc key="availability"/> <specDesc key="physDesc"/> <specDesc key="physLoc"/> <specDesc key="history"/> <specDesc key="notesStmt"/> <specDesc key="classification"/> <specDesc key="componentList"/> <specDesc key="relationList"/> <specDesc key="extMeta"/> </specList> </p> <p>Many of these elements are already described in chapter <ptr target="#headerstructure"/>, especially in <ptr target="#headerWorkDescription"/>.</p> <p>The <gi scheme="MEI">manifestationList</gi> is available to create lists of physical sources representing a work, for instance for use in a thematic catalog or a critical edition. The <gi scheme="MEI">manifestation</gi> child element corresponds to the <ptr target="#FRBR"/> level of the same name, that is, it describes embodiments of certain expressions of a work. The list below reflects the order in which the optional components of manifestation must occur. <specList> <specDesc key="locus"/> </specList> <specList> <specDesc key="locusGrp"/> </specList> <specList> <specDesc key="identifier"/> </specList> <specList> <specDesc key="titleStmt"/> </specList> <specList> <specDesc key="editionStmt"/> </specList> <specList> <specDesc key="pubStmt"/> </specList> <specList> <specDesc key="physDesc"/> </specList> <specList> <specDesc key="physLoc"/> </specList> <specList> <specDesc key="seriesStmt"/> </specList> <specList> <specDesc key="creation"/> </specList> <specList> <specDesc key="history"/> </specList> <specList> <specDesc key="langUsage"/> </specList> <specList> <specDesc key="contents"/> </specList> <specList> <specDesc key="biblList"/> </specList> <specList> <specDesc key="notesStmt"/> </specList> <specList> <specDesc key="classification"/> </specList> <specList> <specDesc key="itemList"/> </specList> <specList> <specDesc key="componentList"/> </specList> <specList> <specDesc key="relationList"/> </specList> </p> <div xml:id="manuscriptsAndPrints" type="div3"> <head>Manuscripts and Prints</head> <div xml:id="conditionColophon" type="div4"> <head>Condition and Statement of Production</head> <p> <specList> <specDesc key="condition"/> <specDesc key="colophon"/> </specList> </p> <p> <specList> <specDesc key="condition"/> </specList> </p> <p>The element <gi scheme="MEI">condition</gi> may contain either plain text or elements that can be used to structure the description (<abbr>e.g.</abbr>, for linking) in order to describe the state or condition of a source.</p> <p>The highest hierarchical level to describe the condition, in general, is at <gi scheme="MEI">physDesc</gi>. For a detailed description of special interest, the element <gi scheme="MEI">condition</gi> can also be used on lower hierarchical levels (see section “contained by” in the element definition).</p> <p>The <gi scheme="MEI">condition</gi> element as a direct child of <gi scheme="MEI">physDesc</gi> should be used to describe the condition of a source. To describe the condition of parts of a source (<abbr>e.g.</abbr>, the binding) the <gi scheme="MEI">condition</gi> element can also be used for a detailed description of that aspect (<abbr>e.g.</abbr>, within <gi scheme="MEI">binding</gi> ). The detail provided, and the structure of these descriptions, depend on your own encoding guidelines.</p> <p><specList> <specDesc key="colophon"/> </specList></p> <p>A <gi scheme="MEI">colophon</gi> is an inscription at the end of a text, similar to the modern practice of providing an <gi scheme="MEI">imprint</gi> at the beginning of a book. Providing a colophon was a common practice in medieval manuscripts and early prints, and often contains information about the place and year of publication, and sometimes about the printer or printing workshop. It may also contain information about the author or notes from the author to the reader.</p> </div> <div xml:id="textTitlePages" type="div4"> <head>Title Pages</head> <p>A specialized element is furnished for the capture of title page information.</p> <p> <specList> <specDesc key="titlePage"/> </specList> </p> <p>The <gi scheme="MEI">titlePage</gi> element, modelled after a similar element in the Encoded Archival Description (EAD), may occur within the textual matter preceding or following the musical content of the encoding. Since a diplomatic transcription of the title page is often necessary to accurately identify musical material contained within a source, the <gi scheme="MEI">titlePage</gi> element may also be used within the metadata header as a child of the <gi scheme="MEI">physDesc</gi> element.</p> <p>Detailed analysis of the title page and other preliminaries of older printed books and manuscripts is of major importance in descriptive bibliography and the cataloging of printed books. The following elements are suggested as a means of encoding the major features of most title pages for faithful rendition:</p> <p> <specList> <specDesc key="titlePage"/> <specDesc key="p"/> <specDesc key="table"/> <specDesc key="list"/> <specDesc key="quote"/> <specDesc key="lg"/> </specList> </p> <p>The following example shows the encoding of the title page of Vaughan Williams' <hi rend="italic">On Wenlock Edge</hi>. Note the use of the <gi scheme="MEI">lb</gi> element to mark the line breaks present in the original.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><titlePage> <p>ON WENLOCK EDGE</p> <p>A CYCLE OF SIX SONGS<lb/> FOR TENOR VOICE ___ WITH ACCOMPANIMENT OF<lb/> Pianoforte and String Quartet (ad lib)<lb/> THE WORDS BY A. E. HOUSMAN<lb/> (FROM "A SHROPSHIRE LAD") </p> <p> <fig/> </p> <p>MUSIC BY<lb/> R. VAUGHAN<lb/> WILLIAMS </p> <list> <li>PRICE $3.75</li> <li>(COMPLETE WITH SET OF STRING PARTS $5.00</li> <li>STRING PARTS SEPARATELY $1.00</li> </list> <p>Boosey &amp; Hawkes, Inc.</p> <p>New York, U.S.A.</p> <p>London · Toronto · Sydney · Capetown</p> </titlePage> </egXML> </figure> </p> <p>The physical appearance of title page information is often of considerable importance. One approach to capturing the appearance is to use the <gi scheme="MEI">rend</gi> element, described in chapter <ptr target="#sharedTextRendition"/> to specify the placement of each of the components of the title page. Another would be to employ a CSS stylesheet. Finally, a module customized for the description of typographic entities such as pages, lines, rules, etc., bearing special-purpose attributes to describe line-height, leading, degree of kerning, font, etc. could be employed.</p> </div> <div xml:id="physicalProperties" type="div4"> <head>Physical Properties</head> <p>The physical properties of a manifestation can be described using the following elements:</p> <p> <specList> <specDesc key="extent"/> <specDesc key="dimensions"/> <specDesc key="dim"/> <specDesc key="watermark"/> <specDesc key="stamp"/> <specDesc key="physMedium"/> <specDesc key="scoreFormat"/> </specList> </p> <p>Encoding the extent and dimensions of a source:</p> <p><specList> <specDesc key="extent"/> </specList></p> <p>The element <gi scheme="MEI">extent</gi> is used to express size in units such as ‘number of pages’, ‘number of folios’, ‘records’, ‘bytes’, ‘physical components’, etc. For specifying the physical dimensions of the material—for example, height and width—the use of the <gi scheme="MEI">dimensions</gi> element is recommended.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><physDesc> <extent>4 pages</extent> <!-- or more machine readable --> <extent unit="page" quantity="4"/> </physDesc> </egXML> </figure> </p> <p><specList> <specDesc key="dimensions"/> </specList></p> <p>The <gi scheme="MEI">dimensions</gi> contain information about the physical size of a source. Usually the dimensions are represented by numerical data. The elements <gi scheme="MEI">height</gi>, <gi scheme="MEI">width</gi>, <gi scheme="MEI">depth</gi>, and <gi scheme="MEI">dim</gi> are available for circumstances that require the capture of individual dimensions. To indicate the quantity of the described materials, please refer to the <gi scheme="MEI">extent</gi> element.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><physDesc> <dimensions unit="mm"> <height>333</height> <width>290</width> </dimensions> </physDesc> </egXML> </figure> </p> <p><specList> <specDesc key="dim"/> </specList></p> <p>Another way of encoding dimensional information about a source is to use the element <gi scheme="MEI">dim</gi>, which can be used to represent any dimensional specification in a generic way. The attribute <att>form</att> is required. With regard to structured metadata, the use of the <gi scheme="MEI">height</gi>, <gi scheme="MEI">width</gi>, and <gi scheme="MEI">depth</gi> elements as the content of <gi scheme="MEI">dim</gi> is advisable.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><physDesc> <dimensions> <dim form="height" unit="mm">333</dim> <dim form="width" unit="mm">290</dim> </dimensions> </physDesc> </egXML> </figure> </p> <p><specList> <specDesc key="watermark"/> </specList></p> <p> The element <gi scheme="MEI">watermark</gi> can be used to describe watermarks or similar devices of filigranology. It is important to distinguish whether the watermark to be described consists of only one sign or is composed of main and countermarks. The completeness of the watermark, its positioning on the page, and the time period of the paper's production and use also play a role.</p> <p>It is recommended to use at least the elements <gi scheme="MEI">title</gi>, <gi scheme="MEI">date</gi>, <gi scheme="MEI">annot</gi> and <gi scheme="MEI">locus</gi> in the description:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><watermark> <title>Welhartiz</title> <date label="usage" startdate="1815" enddate="1816">1815–1816</date> <annot>Wappenschild mit Schrägbalken, darüber Lilie, darunter Beizeichen IAA (J sieht aus wie I!), Gegenmarke Schriftzug: „WELHARTIZ”.</annot> <locus>[position on the page, where you found the watermark]</locus> </watermark> </egXML> </figure> </p> <p>For a more detailed description or encoding of a watermark, <gi scheme="MEI">fig</gi> can be used, which on the one hand allows reference to an existing image (<gi scheme="MEI">graphic</gi>) of the watermark, and on the other increases the depth of the description. To mark up different components of a watermark, several <gi scheme="MEI">heraldry</gi> elements can be used in a <gi scheme="MEI">figDesc</gi> and related to each other by means of <gi scheme="MEI">relation</gi>. </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><fig> <graphic mimetype="images/jpeg" target="../"/> <figDesc> <heraldry type="main" xml:id="watermark_ID_01-01"> <annot> <p>Wappenschild mit Schrägbalken, darüber Lilie, darunter Beizeichen IAA (J sieht aus wie I!)</p> </annot> <relation rel="hasCountermark" target="#watermark_ID_01-02"/> </heraldry> <heraldry type="countermark" xml:id="watermark_ID_01-02"> <annot> <p>Gegenmarke Schriftzug: „WELHARTIZ”</p> </annot> <relation rel="isCountermarkOf" target="#watermark_ID_01-01"/> </heraldry> </figDesc> </fig> </egXML> </figure> </p> <p>To ensure that the description of the pictorial signs conforms to international standards and that the individual components of the watermark are correctly represented, the multilingual description catalogue of the <ref target="https://www.memoryofpaper.eu/BernsteinPortal/" type="_blank">Bernstein project</ref> or the <ref target="http://www.paperhistory.org/Standards/" type="_blank">IPH standard</ref> should be consulted. To refer to already existing databases with watermarks, see <ptr target="#linkingdata"/>. </p> <p><specList> <specDesc key="stamp"/> </specList></p> <p>Stamps can appear in many forms in manuscripts and prints, for example as library stamps, library signatures, postmarks, ownership marks, address stamps or legal notices. The description of the stamp therefore depends on individual, project-specific requirements. However, it is helpful to first consider whether it is sufficient to merely name the occurring stamps, or wether it is also desirable to detail their form and textual elements, or even refer to a graphic that shows a facsimile of the stamp.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><stamp>* The * Library * of * Congress *</stamp> or <stamp> SUPPL. <heraldry>[Austrian coat of arms with double-headed eagle]</heraldry> MUS. <lb/><identifier label="shelfmark">No. 3177</identifier> ❋ </stamp> or <stamp> <ptr target="../berlin_SPKB_stamp.jpg"/> </stamp> </egXML> </figure> </p> <p>In any case, for a better structuring of the information as well as for better machine readability, it is recommended to identify within the description of the stamp the implicitly or explicitly mentioned persons or institutions by means of <gi scheme="MEI">persName</gi> or <gi scheme="MEI">corpName</gi> and to describe by <gi scheme="MEI">locus</gi> where the stamp is positioned on the page.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><stamp> <locus>Fol. 1, 2, 3 each recto in lower left corner.</locus> <corpName auth="GND" auth.uri="https://d-nb.info/gnd/" codedval="35626-8">Library of Congress</corpName> <ptr target="../loc_stamp.jpg"/> </stamp> </egXML> </figure> </p> <p>A higher level of distinction is also recommended for address stamps:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><stamp> <address> <addrLine><persName>Arnold Schönberg</persName></addrLine> <addrLine><geogName>Wien</geogName></addrLine> <addrLine><street>IX. Liechtensteinstraße 68/70</street></addrLine> </address> </stamp> </egXML> </figure> </p> <p><specList> <specDesc key="scoreFormat"/> </specList></p> <p>The <gi scheme="MEI">scoreFormat</gi> element is a form of classification. This element is part of <gi scheme="MEI">physDesc</gi> because within the MARC21 standard, the format of the music (score, piano score, etc.) is defined as a physical property.</p> <p>For describing the <gi scheme="MEI">scoreFormat</gi> a standard value list can be used, e.g., MARC21 (see “20 - Format of music (006/03)”, <ref target="https://www.loc.gov/marc/bibliographic/bd008m.html">https://www.loc.gov/marc/bibliographic/bd008m.html</ref>) or RDA (see <ref target="https://www.rdaregistry.info/termList/formatNoteMus/">https://www.rdaregistry.info/termList/formatNoteMus/</ref>). The values can be kept using the attributes <att>authority</att> and <att>authURI</att>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><scoreFormat auth="RDA" auth.uri="http://www.rdaregistry.info/termList/formatNoteMus/#" codedval="1001">choir book</scoreFormat></egXML> </figure> </p> <p>If those value lists are not sufficient, however, it is recommended to design your own classification (see <gi scheme="MEI">classification</gi>).</p> <p><gi scheme="MEI">scoreFormat</gi> can similarly be used for classification in <gi scheme="MEI">expression</gi>.</p> <!--<p>Internal note: Even <gi scheme="MEI">physDesc</gi> is part of the MEI.header module, the parent elements of <gi scheme="MEI">physDesc</gi> (<gi scheme="MEI">manifestation</gi>, <gi scheme="MEI">item</gi>) are part of MEI.frbr. So the use of the module MEI.frbr is mandatory for the use of <gi scheme="MEI">scoreFormat</gi>.</p>--> </div> <div xml:id="bindingDesc" type="div4"> <head>Binding Description</head> <p> <specList> <specDesc key="bindingDesc"/> <specDesc key="binding"/> </specList> </p> </div> <div xml:id="foliadesc" type="div4"> <head>Description of Folia</head> <p>While many other elements within <gi scheme="MEI">physDesc</gi> describe specific features of manuscripts and prints in prose, <gi scheme="MEI">foliaDesc</gi> is intended to provide a <hi rend="italic">structured</hi> description. It provides information about the collation of the manuscript; that is, how the individual leaves are bound and related to each other, and how the groups of bound leaves ("quires" or "gatherings") are related. Typically this uses these elements:</p> <p> <specList> <specDesc key="foliaDesc"/> <specDesc key="folium"/> <specDesc key="bifolium"/> </specList> </p> <p>The nesting of <gi scheme="MEI">bifolium</gi> and <gi scheme="MEI">folium</gi> elements reflects the nesting of paper sheets that make up the text block of the source. For instance, if a manuscript consists of two folded sheets of paper, with a single, unfolded sheet in the middle, this would be encoded with two nested <gi scheme="MEI">bifolium</gi> elements, where the inner one has an additional <gi scheme="MEI">folium</gi> element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><foliaDesc> <bifolium><!-- outer sheet --> <bifolium><!-- inner sheet --> <folium/> <!-- single leaf in the middle --> </bifolium> </bifolium> </foliaDesc> </egXML> </figure> </p> <p> <figure> <head>Nesting of two bifolia and one folium</head> <graphic url="../images/ExampleImages/foliadesc-01.png"/> </figure> </p> <p>Multiple signatures (groups of nested pages, also known as "gatherings" or "quires") bound together can be reflected by encoding a sequence of <gi scheme="MEI">bifolium</gi> elements (with their respective contents). If the binding of a source is unknown, but <gi scheme="MEI">foliaDesc</gi> is needed for other reasons, it is recommended to use a sequence of <gi scheme="MEI">folium</gi> elements only, with no indication of nesting at all.</p> <div xml:id="linkingsurfaces" type="div4"> <head>Linking surface elements</head> <p>The <gi scheme="MEI">surface</gi> element and it's children are used to relate musical content with digitizations and specific image zones on them (see <ptr target="#facsimileElements"/>). <gi scheme="MEI">surface</gi> elements are always encoded in sequence within <gi scheme="MEI">facsimile</gi>, and thus lack the expressiveness of <gi scheme="MEI">foliaDesc</gi>. However, it is possible to relate these two concepts.</p> <p> <gi scheme="MEI">folium</gi> offers two specific attributes:</p> <p> <specList> <specDesc key="att.foliumSurfaces" atts="recto"/> <specDesc key="att.foliumSurfaces" atts="verso"/> </specList> </p> <p>These attributes are used to point to the <att>xml:id</att> of a <gi scheme="MEI">surface</gi> element.</p> <p> <figure> <head>Positional attributes on folium and bifolium</head> <graphic url="../images/ExampleImages/foliadesc-02.png"/> </figure> </p> <p>On <gi scheme="MEI">bifolium</gi>, the corresponding attributes are:</p> <p> <specList> <specDesc key="att.bifoliumSurfaces" atts="outer.recto"/> <specDesc key="att.bifoliumSurfaces" atts="inner.verso"/> <specDesc key="att.bifoliumSurfaces" atts="inner.recto"/> <specDesc key="att.bifoliumSurfaces" atts="outer.verso"/> </specList> </p> <p>With those attributes, page numbers can be derived from <gi scheme="MEI">foliaDesc</gi>, alongside the information where the content on a given <gi scheme="MEI">surface</gi> is placed on a (bi)folium. Coming back to the example above this might look like so:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><foliaDesc> <bifolium outer.recto="#surface-p1" inner.verso="#surface-p2" inner.recto="#surface-p9" outer.verso="#surface-p10"> <bifolium outer.recto="#surface-p3" inner.verso="#surface-p4" inner.recto="#surface-p7" outer.verso="#surface-p8"> <folium recto="#surface-p5" verso="#surface-p6"/> </bifolium> </bifolium> </foliaDesc> </egXML> </figure> </p> </div> <div xml:id="foliumdimensions" type="div4"> <head>Specifying page dimensions</head> <p>Within <gi scheme="MEI">surface</gi>, each <gi scheme="MEI">graphic</gi> element may specify its dimensions using the following attributes:</p> <p> <specList> <specDesc key="att.height" atts="height"/> <specDesc key="att.width" atts="width"/> </specList> </p> <p>The values of those attributes, however, specify the height and width of the digital resource, the scan of the source, and they are typically given in pixels (see <ptr target="#facsimileElements"/>). In contrast, <gi scheme="MEI">folium</gi> and <gi scheme="MEI">bifolium</gi> may provide the dimensions of the original source in physical units, such as centimetres or inches. This makes it possible to combine separate parts of a manuscripts stored in different libraries, which are scanned at different resolutions. In case of <gi scheme="MEI">bifolium</gi> elements, these dimensions apply to the <hi rend="italic">folded</hi> sheet.</p> <p>Some printed scholarly editions like the <hi rend="italic">Neue Bach-Ausgabe</hi> provide very detailed information about the sizes and binding of individual leaves of a manuscript. With <gi scheme="MEI">foliaDesc</gi> and its children it is possible to capture that information, even without providing digitizations of the sources via <gi scheme="MEI">surface</gi>.</p> </div> <div xml:id="patches" type="div4"> <head>Patches</head> <p>Sometimes, manuscripts (but also prints) are subject to modifications that do not change the textual content, but the actual physical item. Typical examples for this are patches glued on a page, or cutouts. Both these situations can be encoded inside <gi scheme="MEI">foliaDesc</gi>.</p> <p>A patch is an additional writing surface attached to one of the sides of a <gi scheme="MEI">folium</gi> or <gi scheme="MEI">bifolium</gi>:</p> <p> <specList> <specDesc key="patch"/> </specList> </p> <p>The <gi scheme="MEI">patch</gi> element is placed inside the <gi scheme="MEI">folium</gi> or <gi scheme="MEI">bifolium</gi> to which it is attached. To which side of this parent it is attached is specified using the (required) <att>attached.to</att> attribute:</p> <p> <specList> <specDesc key="patch" atts="attached.to"/> </specList> </p> <p>Depending on the parent, allowed values for <att>attached.to</att> are either <val>recto</val> and <val>verso</val> (in case of <gi scheme="MEI">folium</gi>) or <val>outer.recto</val>, <val>inner.verso</val>, <val>inner.recto</val> and <val>outer.verso</val> (in case of <gi scheme="MEI">bifolium</gi>).</p> <p>The exact position of the patch on the underlying surface may be specified using the optional <att>x</att> and <att>y</att> attributes, which are used to specify the distance from the upper left corner of the patch from the upper left corner of the surface it is attached to. At this point, it is not possible to specify rotation.</p> <p>The (optional) <att>attached.by</att> attribute specifies by which means the patch is attached. Suggested values are: <val>glue</val> (patch is glued on surface beneath), <val>thread</val> (patch is sewn on surface beneath), <val>needle</val> (patch is pinned to the surface beneath), <val>tape</val> (patch is taped on surface beneath using an adhesive strip) and <val>staple</val> (patch is attached on surface beneath using a staple), but other values may be used as necessary.</p> <p>While the <gi scheme="MEI">patch</gi> element provides information about the attachment of a patch, the actual patch is encoded as a <gi scheme="MEI">folium</gi> or <gi scheme="MEI">bifolium</gi> child of <gi scheme="MEI">patch</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><bifolium> <patch attached.to="inner.verso" x="1cm" y="12cm" attached.by="glue"> <folium width="8cm" height="2cm"/> </patch> </bifolium> </egXML> </figure> </p> <p> <figure> <head>Positioning and sizing of a patch</head> <graphic url="../images/ExampleImages/foliadesc-04.png"/> </figure> </p> <p>The example above describes a bifolium where a patch is glued to the inner right side.</p> </div> <div xml:id="cutouts" type="div4"> <head>Cutouts</head> <p> <specList> <specDesc key="cutout"/> </specList> </p> <p>Cutouts are treated almost similarly as <ptr target="#patches"/>. The most relevant attributes are:</p> <p> <specList> <specDesc key="cutout" atts="removed.from"/> <specDesc key="cutout" atts="removed.by"/> </specList> </p> <p>The dimensions (<att>width</att>, <att>height</att>) of the parent element (e.g., <gi scheme="MEI">folium</gi>) indicate the size of the bounding box of the remaining part of the page. That is, if the complete lower half of a page has been cut, the <att>width</att> and <att>height</att> attributes describe the remaining upper half. If, in contrast, only the lower right quarter of the page has been cut, these attributes still indicate the size of the full page (assuming that the removed section was a regular rectangle).The dimensions (<att>width</att>, <att>heigh</att>) on cutout itself are only to be used when there is a "gap" in the manuscript that allows to specify the dimensions of that missing part. In this case, the bounding box dimensions are given, together with <att>x</att> and <att>y</att> to indicate the upper left point on the original page. If, however, the removed section is available by itself, then a corresponding <gi scheme="MEI">folium</gi> (or <gi scheme="MEI">bifolium</gi>) should be placed inside the cutout element, and should provide it's own dimensions using <att>width</att> and <att>height</att> there. In this case, <att>width</att> and <att>height</att> on cutout is expendable.</p> <p>The genetic aspect of applying patches or cutting out parts of a page is described in <ptr target="#genetic"/>.</p> </div> </div> <div xml:id="layoutDescSupportDesc" type="div4"> <head>Description of Layout and Support</head> <p> <specList> <specDesc key="layoutDesc"/> <specDesc key="supportDesc"/> </specList> </p> </div> <div xml:id="scriptDesc" type="div4"> <head>Description of Script</head> <p> <specList> <specDesc key="scriptDesc"/> </specList> </p> </div> <div xml:id="addDesc" type="div4"> <head>Additional Elements for Source Description</head> <div xml:id="sourcesPrinted" type="div5"> <head>Printed Sources</head> <p> <specList> <specDesc key="plateNum"/> <specDesc key="typeDesc"/> </specList> </p> <p>The dating of printed sources can help establish a history of the source, its provenance, and edition. In the absence of bibliographical information, <abbr>e.g.</abbr>, on the edition or the year of origin, plate numbers can be an essential aid to dating. Plate numbers are designations assigned to a resource by a music publisher, and have no specific structure so may contain letters, numbers, punctuation, or other marks. When present, they are typically printed at the bottom of each page, and sometimes appear on the title page as well. In MEI plate numbers can be encoded within the <gi scheme="MEI">plateNum</gi> element as plain text, similar to:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><plateNum>A &amp; P. No. 6412</plateNum></egXML> </figure> </p> <p>For <gi scheme="MEI">captureMode</gi> see <ptr target="#audioAndOther"/>.</p> </div> <div xml:id="sourcesAdditions" type="div5"> <head>Handwriting, Additions, Accompaning</head> <p> <specList> <specDesc key="accMat"/> <specDesc key="addDesc"/> <specDesc key="handList"/> </specList> </p> <p>In documents (handwritten or printed) there can be various kinds of entries, additions, corrections, marginalia and revisions; all these interventions in the “original” manuscript can be documented under <gi scheme="MEI">addDesc</gi>. However, it is important to understand that these are not additions to the musical text directly. These additions to the document can come from the composer himself, copyists, typesetters, publishers, previous owners, or librarians. These entries are usually indicated in the continuous text with an indication of the location within the document as well as the means of writing used. E.g. “Auf fol. 109v links mit Bleistift von Schindler „NB (Sch.) Hier fehlen 8 Takte (auch im Chor). jedoch die eine spätere […]“” (see <ref target="https://digital.staatsbibliothek-berlin.de/werkansicht?PPN=PPN756658373&PHYSID=PHYS_0398&DMDID=DMDLOG_0005">facsimile</ref>). </p> <p>This entry could be encoded as follows:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><addDesc> Auf fol. 109v links mit Bleistift von Schindler „NB (Sch.) Hier fehlen 8 Takte (auch im Chor). jedoch die eine spätere […]“ </addDesc> </egXML> </figure> </p> <p>A slightly more structured form would be:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><addDesc> <annot> <p>Auf fol. 109v links mit Bleistift von Schindler „NB (Sch.) Hier fehlen 8 Takte (auch im Chor). jedoch die eine spätere […]“</p> </annot> </addDesc> </egXML> </figure> </p> <p>These transcriptions – as in the musical text – can also be marked by means of <gi scheme="MEI">add</gi>, <gi scheme="MEI">del</gi>, (see module MEI.edittrans) etc. (see <ptr target="#editTrans"/>) and assigned to a specific scribe by <att>hand</att> (see <gi scheme="MEI">handList</gi>):</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><addDesc> <annot> <p>Auf <locus>fol. 109v</locus> links mit Bleistift von Schindler „<add hand="#Sch">NB (Sch.) Hier fehlen 8 Takte (auch im Chor). jedoch die eine spätere <unclear>[…]</unclear></add>“</p> </annot> </addDesc> </egXML> </figure> </p> <p>For structuring purposes, it may sometimes be useful to separate entries made by a composer in the manuscript from those made by others:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><addDesc> <annot type="autograph"> <p>[autograph entries]</p> </annot> <annot type="foreign"> <p>[foreign entries]</p> </annot> </addDesc> </egXML> </figure> </p> <p>Under certain circumstances, <gi scheme="MEI">stamp</gi> elements can also be encoded under <gi scheme="MEI">addDesc</gi>. </p> </div> <div xml:id="sourcesDecoSeal" type="div5"> <head>Seals and Decorations</head> <p> <specList> <specDesc key="decoDesc"/> <specDesc key="heraldry"/> <specDesc key="inscription"/> <specDesc key="sealDesc"/> </specList> </p> </div> <div xml:id="sourcesParticularObjects" type="div5"> <head>Describing particular objects within the manuscript</head> <p> <specList> <specDesc key="catchwords"/> <specDesc key="explicit"/> <specDesc key="rubric"/> <specDesc key="secFolio"/> </specList> </p> </div> </div> </div> <div xml:id="audioAndOther" type="div3"> <head>Describing Audio Sources or Other Media</head> <p> <specList> <specDesc key="captureMode"/> <specDesc key="carrierForm"/> <specDesc key="perfDuration"/> <specDesc key="fileChar"/> <specDesc key="playingSpeed"/> <specDesc key="soundChan"/> <specDesc key="specRepro"/> <specDesc key="trackConfig"/> </specList> </p> </div> <div xml:id="historicalAccount" type="div3"> <head>Additional Elements for Historical Account</head> <p> <specList> <specDesc key="acquisition"/> <specDesc key="exhibHist"/> <specDesc key="physLoc"/> <specDesc key="provenance"/> <specDesc key="treatHist"/> <specDesc key="treatSched"/> </specList> </p> <p> <specList> <specDesc key="acquisition"/> <specDesc key="provenance"/> </specList> </p> <p>The <gi scheme="MEI">acquisition</gi> element is a container for recording the process of the acquisition of an item by the holding institution. In comparison, <gi scheme="MEI">provenance</gi> deals with the history of ownership or custodianship of an item. Both elements allow for the choice of either text or more structured information when formulating the specific encoding. It is recommended to make use of <gi scheme="MEI">p</gi> elements when a text-centred encoding is favored and to use the <gi scheme="MEI">eventList</gi> element for a more structured encoding. It is up to the encoder to decide where the information is most appropriate for the particular project or encoding purposes.</p> <p> <specList> <specDesc key="exhibHist"/> </specList> </p> <p>The <gi scheme="MEI">exhibHist</gi> element contains descriptions of one or more public exhibitions of a bibliographic item. Often exhibitions include an additional description in the form of a tag for the public that accompanies the item on display. These descriptions may even be printed in a published exhibition catalogue, so the encoding may also include information about why the object was shown or what was significant about the exhibition. When formulating the encoding, it is at the discretion of the encoder whether to opt for text or more structured information. Text-centred encoding is made possible by <gi scheme="MEI">p</gi> elements in <gi scheme="MEI">exhibHist</gi>, among others. For more structured encodings, it is recommended to use the <gi scheme="MEI">eventList</gi> element contained in <gi scheme="MEI">exhibHist</gi>. In FRBR-based cataloging (see <ptr target="#FRBR"/>), <gi scheme="MEI">exhibHist</gi> is conceptually bound to the item-level. As an element it is not permitted at the work or expression level and only permitted at the manifestation level if the manifestation is a manifestation singleton.</p> <p> <specList> <specDesc key="physLoc"/> </specList> </p> <p>The <gi scheme="MEI">physLoc</gi> element encodes information related to, or associated with, the physical location of a bibliographic item. This includes, but is not limited to, the name of the holding institution, name or number of the building or room, or any shelfmarks, used for the purpose of retrieval. The level of detail or machine readability of the encoding is generally at the discretion of the encoder and may vary depending on the information available. The <gi scheme="MEI">physLoc</gi> element may contain the following MEI elements:</p> <p> <specList> <specDesc key="head"/> <specDesc key="repository"/> <specDesc key="identifier"/> <specDesc key="history"/> </specList> </p> <p>The <gi scheme="MEI">repository</gi> element contains a description of the institution or individual currently holding the bibliographic item. Its content is either prose or structured markup. The <gi scheme="MEI">history</gi> element, on the other hand, is a container for additional non-bibliographic details regarding the physical location of an item. It may contain the elements <gi scheme="MEI">acquisition</gi>, <gi scheme="MEI">exhibHist</gi> or <gi scheme="MEI">provenance</gi>, among others, to describe any events that coincided with a change of location, such as exhibitions, or change of custody.</p> <p>The following example demonstrates how to structure detailed information about a repository (including the use of <gi scheme="MEI">identifier</gi>):</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><physLoc> <repository auth="ISIL" auth.uri="http://ld.zdb-services.de/resource/organisations/" codedval="DE-1"> <identifier auth="RISM">D-B</identifier> <corpName xml:id="SBB-PK" role="holding institution"> <name type="organization">Staatsbibliothek zu Berlin – Preußischer Kulturbesitz</name> <name type="organization-site">Haus Unter den Linden</name> <name type="department">Musikabteilung</name> </corpName> <address> <addrLine>Unter den Linden 8</addrLine> <addrLine> <postCode>10117</postCode> <geogName auth="geonames" auth.uri="http://www.geonames.org/" codedval="2950159">Berlin</geogName> </addrLine> </address> </repository> <identifier type="shelfmark">Mus.ms. Bach P 175</identifier> </physLoc></egXML> </figure> </p> <p> <specList> <specDesc key="treatHist"/> </specList> </p> <p>Conservation activities are often necessary to ensure the long-term preservation and integrity of manuscripts or printed sources. These conservation activities might include interventions such as re-binding, restoration, or modifying paper chemistry. In MEI the <gi scheme="MEI">treatHist</gi> element records any treatment history an item has undergone, and may even specify details of the individual treatment process. The <gi scheme="MEI">treatHist</gi> element allows either text or structured information when formulating the specific encoding. It is recommended to make use of <gi scheme="MEI">p</gi> elements when a text-centred encoding is favored and to use the <gi scheme="MEI">eventList</gi> element for a more structured encoding. Like <gi scheme="MEI">exhibHist</gi>, <gi scheme="MEI">treatHist</gi> is conceptually bound to the item-level in FRBR-based encodings. The element is not permitted at the work or expression level and only permitted at the manifestation level, if the manifestation is a manifestation singleton.</p> <p> <specList> <specDesc key="treatSched"/> </specList> </p> <p>Similar to the MEI <gi scheme="MEI">treatHist</gi> element, the <gi scheme="MEI">treatSched</gi> element is intended to hold records of conservation activities or treatments in regard to a bibliographic item. However, in contrast to <gi scheme="MEI">treatHist</gi>, <gi scheme="MEI">treatSched</gi> allows records of any anticipated activities, rather than simply a historical account of previous treatments. This might include any description indicating the quantity and frequency of the treatments. <gi scheme="MEI">treatSched</gi> furthermore may also be used to indicate that no additions or treatments are to be expected. To that end, <gi scheme="MEI">treatSched</gi> allows the option for either text or more structured information when formulating a specific encoding. It is at the discretion of the encoder to decide which specifics of the encoding are most appropriate.</p> </div> </div> <div xml:id="headerusecases" type="div2"> <head>Typical Use Cases</head> <p>This chapter introduces common use cases for MEI metadata.</p> <div xml:id="headerIndependentHeader" type="div3"> <head>Independent Headers</head> <p>Many libraries, repositories, research sites and related institutions collect bibliographic and documentary information about machine readable music documents without necessarily collecting the music documents themselves. Such institutions may thus want access to the header of an MEI document without its attached text in order to build catalogs, indexes and databases that can be used to locate relevant texts at remote locations, obtain full documentation about those texts, and learn how to obtain them. This section describes a set of practices by which the metadata headers of MEI documents can be encoded separately from those documents and exchanged as freestanding MEI documents. Headers exchanged independently of the documents they describe are called independent headers.</p> <div xml:id="headerIndependentHeaderDefinition" type="div4"> <head>Independent MEI Headers</head> <p>An independent header is an MEI metadata header that can be exchanged as an independent document between libraries, archives, collections, projects, and individuals.</p> <p>The structure of an independent header is exactly the same as that of an header attached to a document. This means that an <gi scheme="MEI">meiHead</gi> can be extracted from an MEI document and sent to a receiving institution with little or no change.</p> <p>When deciding which information to include in the independent header, and the format or structure of that information, the following should be kept in mind:</p> <list rend="bulleted"> <item>The independent header should provide full bibliographic information about the encoded text, its sources, where the text can be located, and any restrictions governing its use.</item> <item>The independent header should contain useful information about the encoding of the text itself. In this regard, it is highly recommended that the encoding description be as complete as possible. The Guidelines do not require that the encoding description be included in the header (since some simple transcriptions of small items may not require it), but in practice the use of a header without an encoding description would be severely limited.</item> <item>The independent header should be amenable to automatic processing, particularly for loading into databases and for the creation of publications, indexes, and finding aids, without undue editorial intervention on the part of the receiving institution. For this reason, two recommendations are made regarding the format or structure of the header: first, where there is a choice between a prose content model and one that contains a formal series of specialized elements, wherever possible and appropriate the specialized elements should be preferred to unstructured prose. Second, with respect to corpora, information about each of the texts within a corpus should be included in the overall corpus-level <gi scheme="MEI">meiHead</gi>. That is, source information, editorial practices, encoding descriptions, and the like should be included in the relevant sections of the corpus <gi scheme="MEI">meiHead</gi>, with pointers to them from the headers of the individual texts included in the corpus. There are three reasons for this recommendation: first, the corpus-level header will contain the full array of bibliographic and documentary information for each of the texts in a corpus, and thus be of great benefit to remote users, who may have access only to the independent header; second, such a layout is easier for the coder to maintain than searching for information throughout a text; and third, generally speaking, this practice results in greater overall consistency, especially with respect to bibliographic citations.</item> </list> </div> </div> <div xml:id="headerExtendedMetadata" type="div3"> <head>Including non-MEI Metadata in MEI files</head> <p>The following element is provided to accommodate non-MEI metadata:</p> <p> <specList> <specDesc key="extMeta"/> </specList> </p> <p>The <gi scheme="MEI">extMeta</gi> element may be contained by <gi scheme="MEI">expression</gi>, <gi scheme="MEI">item</gi>, <gi scheme="MEI">manifestation</gi>, <gi scheme="MEI">work</gi> and <gi scheme="MEI">meiHead</gi> elements. It may include text and any number of well-formed XML fragments, XML comments, and CDATA sections, except for MEI markup, which is prohibited. The document element of each fragment must explicitly declare its namespace.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><extMeta> <!-- MARC (Machine-Readable Cataloging) title info --> <datafield xmlns="http://www.loc.gov/MARC21/slim" ind1="1" ind2="0" tag="245"> <subfield code="a">Simple dreams :</subfield> <subfield code="b">a musical memoir /</subfield> <subfield code="c">Linda Ronstadt.</subfield> </datafield> </extMeta> </egXML> </figure> </p> <p>An MEI processor is not required to validate or otherwise process any markup within the <gi scheme="MEI">extMeta</gi> element. Therefore, the <gi scheme="MEI">extMeta</gi> element itself is the lowest level at which an association can be created between ‘foreign’ metadata and other MEI elements as described in section <ptr target="#headerAssociatingMetadataAndData"/>.</p> </div> <div xml:id="headerMinimalRecommendedHeader" type="div3"> <head>Minimal and Recommended Header Information</head> <p>The MEI header allows for the provision of a very large amount of information concerning the text itself, its source, its encodings, and revisions of it, as well as a wealth of descriptive information, such as the languages it uses and the situation(s) in which it was produced, together with the setting and identity of participants within it. This diversity and richness reflects the diversity of uses to which it is envisaged that electronic texts conforming to these Guidelines will be put. It is emphatically not intended that all of the elements described above should be present in every MEI Header.</p> <p>The amount of encoding in a header will depend both on the nature and the intended use of the text. At one extreme, an encoder may expect that the header will be needed only to provide a bibliographic identification of the text adequate to local needs. At the other, wishing to ensure that their texts can be used for the widest range of applications, encoders will want to document as explicitly as possible both bibliographic and descriptive information, in such a way that no prior or ancillary knowledge about the text is needed in order to process it. The header in such a case will be very full, approximating the kind of documentation often supplied in the form of a manual. Most texts will lie somewhere between these extremes; textual corpora in particular will tend more to the latter extreme. In the remainder of this section we demonstrate first the minimal, and then a commonly recommended, level of encoding for the bibliographic information held by the MEI header.</p> <p>Supplying only the level of encoding required, the MEI header of a single text will look like the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><meiHead> <fileDesc> <titleStmt> <title>Fughette (in Gottes Namen Fahren wir - Dies sind die heil'gen zehn Gebote) for Brass Quintett : an electronic transcription </title> </titleStmt> <pubStmt> <respStmt> <corpName auth.uri="http://d-nb.info/gnd" auth="GND" codedval="5115204-6">Musikwissenschaftliches Seminar &lt;Detmold&gt;</corpName> </respStmt> </pubStmt> </fileDesc> </meiHead> </egXML> </figure> </p> <p>The only mandatory component of the MEI Header is the <gi scheme="MEI">fileDesc</gi> element. Within this element, <gi scheme="MEI">titleStmt</gi> and <gi scheme="MEI">pubStmt</gi> are required constituents. Within the title statement, a title is required. Within the <gi scheme="MEI">pubStmt</gi>, a publisher, distributor, or other agency responsible for the file is required.</p> <p>While not formally required, additional information is recommended for a minimally effective header. For example, it is recommended that the person or corporate entity responsible for the creation of the encoding should be specified using <gi scheme="MEI">respStmt</gi> within the <gi scheme="MEI">titleStmt</gi> element. It is also recommended that information about the source, or sources, of the encoding be included. Each <gi scheme="MEI">source</gi> element should contain at the least a loosely structured bibliographic citation that identifies the source used to construct the MEI file.</p> <p>Furthermore, If the electronic transcription is a member of a series of publications, the series title and publisher should be included using the <gi scheme="MEI">seriesStmt</gi> element. It is also common for cataloging records to include genre and/or form information, here represented by the MEI <gi scheme="MEI">classification</gi> element.</p> <p>We now present the same example header, expanded to include additionally recommended information, adequate for most bibliographic purposes, in particular to allow for the creation of an AACR2-conformant bibliographic record.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><meiHead> <fileDesc> <titleStmt> <title>Fughette (in Gottes Namen Fahren wir - Dies sind die heil'gen zehn Gebote) for Brass Quintett : an electronic transcription </title> <respStmt> <resp>Encoded by:</resp> <persName xml:id="header.MH">Maja Hartwig</persName> <persName xml:id="header.KR">Kristina Richts</persName> </respStmt> </titleStmt> <pubStmt> <respStmt> <corpName>Musikwissenschaftliches Seminar &lt;Detmold&gt;</corpName> </respStmt> <date>2011</date> </pubStmt> <seriesStmt> <title>MEI Sample Collection</title> <respStmt> <corpName role="publisher">MEI Project</corpName> </respStmt> </seriesStmt> <sourceDesc> <source> <bibl> <title>Fughette (in Gottes Namen Fahren wir - Dies sind die heil'gen zehn Gebote) for Brass Quintett</title> </bibl> </source> </sourceDesc> </fileDesc> <encodingDesc> <classDecls> <taxonomy> <category auth.uri="http://www.oclc.org/dewey/resources/summaries/default.htm#700" auth="OCLC" xml:id="header.OCLC_DDC"/> </taxonomy> </classDecls> </encodingDesc> <manifestationList> <manifestation> <titleStmt> <title>Fughette (in Gottes Namen Fahren wir - Dies sind die heil'gen zehn Gebote) for Brass Quintett </title> <respStmt> <persName role="composer">Johann Christoph Bach</persName> <persName role="arranger">Michel Rondeau</persName> </respStmt> </titleStmt> <pubStmt> <identifier type="URI">http://icking-music-archive.org/scores/j.chr.bach/JCBIN-xml.zip</identifier> <date isodate="2011-10-13"/> <respStmt> <name>Werner Icking Music Archive</name> </respStmt> <availability> <useRestrict>© 2010 - Gatineau,Qc.Ca.</useRestrict> </availability> </pubStmt> <classification> <termList> <term class="#header.OCLC_DDC">785.15</term> </termList> </classification> </manifestation> </manifestationList> </meiHead> </egXML> </figure> </p> </div> <div xml:id="headerBiblAnalog" type="div3"> <head>Header Elements and their Relationship to Other Bibliographic Standards</head> <p>Mapping elements from the MEI metadata header to another descriptive system may help a repository harvest selected data from the MEI file to build a basic catalog record. For this purpose, the following attribute is provided on most elements occurring within <gi scheme="MEI">meiHead</gi>:</p> <p> <specList> <specDesc key="att.bibl" atts="analog"/> </specList> </p> <p>The encoding system to which fields are mapped must be specified in <att>analog</att>. When possible, subfields as well as fields should be specified, <abbr>e.g.</abbr>, subfields within MARC fields.</p> </div> <div xml:id="corpus" type="div3"> <head>Musical Corpora</head> <p>The term corpus may refer to any collection of musical data, although it is often reserved for collections which have been organized or collected with a particular end in view, generally to illustrate a particular characteristic of, or to demonstrate the variety found in, a group of related texts. The principal distinguishing characteristic of a corpus is that its components have been selected or structured according to some conscious set of design criteria.</p> <p>In MEI, a corpus is regarded as a composite text because, although each discrete document in a corpus clearly has a claim to be considered as a text in its own right, it is also regarded as a subdivision of some larger object, if only for convenience of analysis. In corpora, the component samples are clearly distinct texts, but the systematic collection, standardized preparation, and common markup of the corpus often make it useful to treat the entire corpus as a unit, too. Corpora share a number of characteristics with other types of composite texts, including anthologies and collections. Most notably, different components of composite texts may exhibit different structural properties, thus potentially requiring elements from different MEI modules.</p> <p>Aside from these high-level structural differences, and possibly differences of scale, the encoding of language corpora and the encoding of individual texts present identical sets of problems. Therefore, any of the encoding techniques and elements presented in other chapters of these Guidelines may therefore prove relevant to some aspect of corpus encoding and may be used in corpora.</p> <div xml:id="corpusModuleOverview" type="div4"> <head>Corpus Module Overview</head> <p>The meiCorpus module defines a single element:</p> <p> <specList> <specDesc key="meiCorpus"/> </specList> </p> <p>The <gi scheme="MEI">meiCorpus</gi> element is intended for the encoding of corpora, though it may also be useful in encoding any collection of disparate materials. The individual samples in the corpus are encoded as separate <gi scheme="MEI">mei</gi> elements, and the entire corpus is enclosed in an <gi scheme="MEI">meiCorpus</gi> element. Each sample has the usual structure for a <gi scheme="MEI">mei</gi> document, comprising an <gi scheme="MEI">meiHead</gi> followed by a <gi scheme="MEI">music</gi> element. The corpus, too, has a corpus-level <gi scheme="MEI">meiHead</gi> element, in which the corpus as a whole, and encoding practices common to multiple samples may be described. The overall structure of an MEI-conformant corpus is thus:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><meiCorpus> <meiHead type="corpus"> <!-- metadata for the corpus --> </meiHead> <mei> <meiHead type="text"> <!-- metadata for sample 1 --> </meiHead> <music> <!-- the encoding of sample 1 --> </music> </mei> <mei> <meiHead type="text"> <!-- metadata for sample 2 --> </meiHead> <music> <!-- the encoding of sample 2 --> </music> </mei> </meiCorpus> </egXML> </figure> </p> <p>This two-level structure allows for metadata to be specified at the corpus level, at the individual text level, or at both. However, metadata which relates to the whole corpus rather than to its individual components should be removed from the individual component metadata and included only in the <gi scheme="MEI">meiHead</gi> element prefixed to the whole.</p> <p>In some cases, the design of a corpus is reflected in its internal structure. For example, a corpus of musical incipits might be arranged to combine all compositions of one type (symphonies, songs, chamber music, etc.) into some higher-level grouping, possibly with sub-groups for date of publication, instrumentation, key, etc. The <gi scheme="MEI">meiCorpus</gi> element provides no support for reflecting such internal structure in the markup: it treats the corpus as an undifferentiated series of components, each tagged with an <gi scheme="MEI">mei</gi> element.</p> <p>If it is essential to reflect the organization of a corpus into sub-components, then the members of the corpus should be encoded as composite texts instead, using the <gi scheme="MEI">group</gi> element described section <ptr target="#sharedMusicElement"/>. The mechanisms for corpus characterization described in this chapter, however, are designed to reduce the need to do this. Useful groupings of components may easily be expressed using the classification and identification elements described in section <ptr target="#headerWorkClass"/>, and those for associating declarations with corpus components described in section <ptr target="#headerAssociatingMetadataAndData"/>. These mechanisms also allow several different methods of text grouping to co-exist, each to be used as needed at different times. This helps minimize the danger of cross-classification and mis-classification of samples, and helps improve the flexibility with which parts of a corpus may be characterized for different applications.</p> <p>All composite texts share the characteristic that their different component texts may be of structurally similar or dissimilar types. If all component texts may all be encoded using the same module, then no problem arises. If however they require different modules, then the various modules must all be included in the schema.</p> </div> <div xml:id="corpusCombiningHeaders" type="div4"> <head>Combining Corpus and Text Headers</head> <p>An MEI-conformant document may have more than one header only in the case of a TEI corpus, which must have a header in its own right, as well as the obligatory header for each text. Every element specified in a corpus-header is understood as if it appeared within every text header in the corpus. An element specified in a text header but not in the corpus header supplements the specification for that text alone. If any element is specified in both corpus and text headers, the corpus header element is over-ridden for that text alone.</p> <p>The <gi scheme="MEI">titleStmt</gi> for a corpus text is understood to be prefixed by the <gi scheme="MEI">titleStmt</gi> given in the corpus header. All other optional elements of the <gi scheme="MEI">fileDesc</gi> should be omitted from an individual corpus text header unless they differ from those specified in the corpus header. All other header elements behave identically, in the manner documented in chapter <ptr target="#headerstructure"/>. This makes it possible to state information which is common to the whole of the corpus in the corpus header, while still allowing for individual texts to vary from this common metadata.</p> <p>For example, the following markup shows the structure of a corpus consisting of three texts, the first and last of which share the same encoding description. The second one has its own encoding description.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><meiCorpus> <meiHead> <fileDesc> <!-- corpus file description--> </fileDesc> <encodingDesc> <!-- default encoding description --> </encodingDesc> <revisionDesc> <!-- corpus revision description --> </revisionDesc> </meiHead> <mei> <meiHead> <fileDesc> <!-- file description for this corpus text --> </fileDesc> </meiHead> <music> <!-- first corpus text --> </music> </mei> <mei> <meiHead> <fileDesc> <!-- file description for this corpus text --> </fileDesc> <encodingDesc> <!-- encoding description for this corpus text, over-riding the default --> </encodingDesc> </meiHead> <music> <!-- second corpus text --> </music> </mei> <mei> <meiHead> <fileDesc> <!-- file description for third corpus text --> </fileDesc> </meiHead> <music> <!-- third corpus text --> </music> </mei> </meiCorpus> </egXML> </figure> </p> </div> <div xml:id="corpusRecommendations" type="div4"> <head>Recommendations for the Encoding of Large Corpora</head> <p>These Guidelines include proposals for the identification and encoding of a far greater variety of textual features and characteristics than is likely to be either feasible or desirable in any one corpus, however large and ambitious. For most large-scale corpus projects, it will therefore be necessary to determine a subset of recommended elements appropriate to the anticipated needs of the project; these mechanisms include the ability to exclude selected element types, add new element types, and change the names of existing elements.</p> <p>Because of the high cost of identifying and encoding many textual features, and the difficulty in ensuring consistent practice across very large corpora, encoders may find it convenient to divide the set of elements to be encoded into the following four categories:</p> <list type="gloss"> <label>required</label> <item>texts included within the corpus will always encode textual features in this category, should they exist in the text</item> <label>recommended</label> <item>textual features in this category will be encoded wherever economically and practically feasible; where present but not encoded, a note in the header should be made.</item> <label>optional</label> <item>textual features in this category may or may not be encoded; no conclusion about the absence of such features can be inferred from the absence of the corresponding element in a given text.</item> <label>proscribed</label> <item>textual features in this category are deliberately not encoded; they may be transcribed as unmarked up text, or represented as gap elements, or silently omitted, as appropriate.</item> </list> </div> </div> </div> </div> <div xml:id="cmn" type="div1"> <head>Repertoire: Common Music Notation</head> <p>The module described in this chapter offers the means to describe music in so-called ‘Common Music Notation’ (CMN, sometimes referred to as ‘Common Western Music Notation’). For this purpose, it provides a number of special elements and adds several attribute classes to elements from the <ptr target="#shared"/> module.</p> <div xml:id="cmnintro" type="div2"> <head>Introduction</head> <p>This chapter is supposed to frame the repertoire target by the module, <abbr>i.e.</abbr>, what is Common Music Notation?</p> </div> <div xml:id="cmnBasics" type="div2"> <head>Basic Elements of CMN</head> <p>This section describes the use of basic features of MEI important for encoding CMN material. Most of the elements discussed here are defined in chapter <ptr target="#shared"/> of these Guidelines, but are used in music from the CMN repertoire in specialized ways.</p> <div xml:id="cmnMeasures" type="div3"> <head>The Role of the Measure Element</head> <p>Arguably, the most important element of the CMN module is the <gi scheme="MEI">measure</gi> element. It is used as a structural unit inside <gi scheme="MEI">section</gi> elements and acts as a container for ‘events’ from the <ident type="class">model.eventLike</ident> class, such as notes, chords and rests as well as ‘control events’ from the <ident type="class">model.controlEventLike</ident> class, such as slurs and indications of dynamics.</p> <p>The following example demonstrates the use of the <gi scheme="MEI">measure</gi> element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure n="1"> <staff n="1"> <layer> <chord dur="1"> <note oct="5" pname="c"/> <note oct="4" pname="g"/> <note oct="4" pname="e"/> </chord> </layer> </staff> <staff n="2"> <layer> <note dur="1" oct="3" pname="c"/> </layer> </staff> </measure> </section> </egXML> </figure> </p> <p>A <gi scheme="MEI">measure</gi> slices the flow of a score or part into chunks that normally comply with a duration determined by the meter defined within a preceding <gi scheme="MEI">scoreDef</gi> or <gi scheme="MEI">staffDef</gi> element. Each staff in the source material is represented by a <gi scheme="MEI">staff</gi> element. As the order of the staff elements in the file does not have to reflect their order in the original document, to eliminate confusion they should always refer to a <gi scheme="MEI">staffDef</gi> element, using either an <att>n</att> or <att>def</att> attribute. Whereas the <att>def</att> attribute uses the xs:anyURI datatype, the <att>n</att> value refers to the closest preceding <gi scheme="MEI">staffDef</gi> or <gi scheme="MEI">layerDef</gi> with the same value in its <att>n</att> attribute.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staffDef n="3" xml:id="cmn_staffDef1" /> <!-- later in the file: --> <staff def="#cmn_staffDef1"> <!-- @def refers to staffDef with this identifier --> <!-- staff content --> </staff> <!-- or: --> <staff n="3"> <!-- @n refers to staffDef with this numeric label --> <!-- staff content --> </staff> </egXML> </figure> </p> <p>Each <gi scheme="MEI">staff</gi> may hold a number of <gi scheme="MEI">layer</gi> elements to reflect multiple ‘voices’. Just as with <gi scheme="MEI">staff</gi>, the order of the <gi scheme="MEI">layer</gi> elements in the file does not have to reflect their original order in the document, so they also possess <att>n</att> and <att>def</att> attributes for association with the appropriate layer definition.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staffDef> <layerDef n="1" xml:id="cmn_layerDef1"/> </staffDef> </egXML> </figure> </p> <p>Later in the file:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section xml:id="cmn_staffDef1"> <staff def="#cmn_staffDef1"> <layer def="#cmn_layerDef1"> <!-- layer content --> </layer> </staff> <!-- OR: --> <staff n="3"> <layer n="1"> <!-- layer content --> </layer> </staff> </section> </egXML> </figure> </p> </div> <div xml:id="cmnDefs" type="div3"> <head>Defining Score Parameters for CMN</head> <p>When encoding a score in CMN, MEI relies on the following elements from the <ptr target="#shared"/> module:</p> <p> <specList> <specDesc key="scoreDef"/> <specDesc key="staffGrp"/> <specDesc key="staffDef"/> <specDesc key="layerDef"/> </specList> </p> <p>A <gi scheme="MEI">scoreDef</gi> element is used to specify the common parameters of a score, <abbr>e.g.</abbr>, key and meter. The most important attributes for this purpose are:</p> <p> <specList> <specDesc key="att.meterSigDefault.log" atts="meter.count meter.unit"/> <specDesc key="att.meterSigDefault.log" atts="meter.sym"/> <specDesc key="att.keySigDefault.log" atts="keysig"/> </specList> </p> <p>The following example describes a score in common time with 3 flats:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><scoreDef keysig="3f" meter.count="4" meter.sym="common" meter.unit="4"/> </egXML> </figure> </p> <p>For encoding more complex time signatures, simple mathematical symbols such as asterisks and plus signs are allowed in <att>meter.count</att>.</p> <p>Non-standard key signatures have to be encoded with a <gi scheme="MEI">keySig</gi> element.</p> <p>Other attributes allow the description of default page and system margins and fonts for text and music:</p> <p> <specList> <specDesc key="att.pages" atts="page.width page.height page.leftmar page.topmar page.rightmar page.botmar"/> <specDesc key="att.systems" atts="system.leftmar system.topmar system.rightmar"/> <specDesc key="att.textStyle" atts="text.name text.fam text.size"/> <specDesc key="att.notationStyle" atts="music.name music.size"/> <specDesc key="att.lyricStyle" atts="lyric.name lyric.fam lyric.size"/> </specList> </p> <p>There are other attributes that allow the specification of many further details of a score. These are available from the element definitions accessible at <gi scheme="MEI">scoreDef</gi>, <gi scheme="MEI">staffDef</gi>, <gi scheme="MEI">staffGrp</gi> and <gi scheme="MEI">layerDef</gi>.</p> <p>When content is provided for <gi scheme="MEI">scoreDef</gi>, it must contain a <gi scheme="MEI">staffGrp</gi> element. This element is used to gather individual staves and other staff groups. This is useful for collecting instrumental or vocal groups in a large score, such as woodwinds, brasses, etc., and for assigning a shared label to the group, using the <gi scheme="MEI">label</gi> and <gi scheme="MEI">labelAbbr</gi> subelements. The <gi scheme="MEI">staffGrp</gi> element is also used for the two staves of a grand staff. The <att>bar.thru</att> attribute on <gi scheme="MEI">staffGrp</gi> allows one to specify whether bar lines are drawn across the space between staves of that group or only on the staves themselves.</p> <p>A <gi scheme="MEI">staffDef</gi> element is used to describe an individual staff of a <gi scheme="MEI">score</gi> or performer <gi scheme="MEI">part</gi>. It bears most of the attributes described above. The <gi scheme="MEI">label</gi> and <gi scheme="MEI">labelAbbr</gi> subelements may be used for providing staff labels for the first and subsequent systems.</p> <p>Every <gi scheme="MEI">staffDef</gi> must have an <att>n</att> attribute with an integer as its value. The first occurrence of a <gi scheme="MEI">staffDef</gi> with a given number must also indicate the number of staff lines via the <att>lines</att> attribute.</p> <p>The order of <gi scheme="MEI">staffDef</gi> elements within <gi scheme="MEI">scoreDef</gi> follows the order of staves in the source document or planned rendering. The individual <gi scheme="MEI">staff</gi> elements within a <gi scheme="MEI">measure</gi> refer to these <gi scheme="MEI">staffDef</gi> declarations using their own <att>n</att> attribute values. Therefore, the encoding order of staves within a measure does not have to mimic the order of the <gi scheme="MEI">staffDef</gi> elements with <gi scheme="MEI">scoreDef</gi>.</p> <p>In addition to the parameters inherited from <gi scheme="MEI">scoreDef</gi>, the following attributes are important for <gi scheme="MEI">staffDef</gi> elements:</p> <p> <specList> <specDesc key="att.cleffing.log" atts="clef.line clef.shape clef.dis clef.dis.place"/> </specList> </p> <p>A staff with a tenor clef is encoded as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staffDef clef.dis="8" clef.dis.place="below" clef.line="2" clef.shape="G"/> </egXML> </figure> </p> <p>In the case of transposing instruments, the key-related attributes described above may be used to override the written key expressed in the <gi scheme="MEI">scoreDef</gi> element. As a basic principle, MEI always captures written pitches, so the <att>trans.diat</att> and <att>trans.semi</att> attributes may be used to indicate the number of diatonic steps and semitones to calculate sounded pitch from written pitch. The piccolo and E♭ clarinet staves in the example below utilize these attributes:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><scoreDef meter.count="6" meter.unit="8"> <staffGrp> <!-- Piccolo sounds 12 semitones higher than written (and encoded in MEI). --> <staffDef clef.line="2" clef.shape="G" key.mode="major" keysig="4f" label="Piccolo" label.abbr="Picc." lines="5" n="1" trans.diat="0" trans.semi="12" xml:id="cmn.P1"/> <staffDef clef.line="2" clef.shape="G" key.mode="major" keysig="4f" label="Flute" label.abbr="Fl." lines="5" n="2" xml:id="cmn.P2"/> <staffDef clef.line="2" clef.shape="G" key.mode="major" keysig="4f" label="Oboe" label.abbr="Ob." lines="5" n="3" xml:id="cmn.P3"/> <staffDef clef.line="4" clef.shape="F" key.mode="major" keysig="4f" label="Bassoon" label.abbr="Bsn." lines="5" n="4" xml:id="cmn.P4"/> <!-- Clarinet sounds a minor third (two diatonic steps or three semitones) higher than written. --> <staffDef clef.line="2" clef.shape="G" key.mode="major" keysig="1f" label="Clarinet in E♭" label.abbr="E♭ Cl." lines="5" n="5" trans.diat="2" trans.semi="3" xml:id="cmn.P5"/> </staffGrp> </scoreDef> </egXML> </figure> </p> <p>There are a number of additional elements that can be used as children of <gi scheme="MEI">staffDef</gi> in order to describe additional features of the staff, such as the color of a clef or a key signature added in a different hand. These elements include:</p> <p> <specList> <specDesc key="clef"/> <specDesc key="clefGrp"/> <specDesc key="keySig"/> <specDesc key="keyAccid"/> <specDesc key="label"/> <specDesc key="meterSig"/> <specDesc key="meterSigGrp"/> </specList> </p> <p>With the exception of <gi scheme="MEI">label</gi>, these elements may also occur within the flow of musical events captured in a <gi scheme="MEI">layer</gi>, since they are members of <ident type="class">model.eventLike</ident>. In the layer context they function as milestones and affect all following content assigned to the layer (even in subsequent measures) until their information is again overridden either by the same element bearing different information or a <gi scheme="MEI">staffDef</gi> or <gi scheme="MEI">scoreDef</gi>. In this context, it is also possible to combine them with the elements described in chapters <ptr target="#critApp"/> and <ptr target="#editTrans"/> of these Guidelines.</p> <p>Such flexibility as this may require close inspection of an encoding to retrieve the correct definitions for a given staff. As a general rule, the closest preceding and most specific element provides this information: For example, a <gi scheme="MEI">keySig</gi> in the preceding measure is more relevant than a <gi scheme="MEI">staffDef</gi> at the beginning of the section, which is more relevant than a <gi scheme="MEI">scoreDef</gi> at the beginning of the score. However, a section-specific <gi scheme="MEI">scoreDef</gi> that provides only information about the meter does not override the more specific information about key signature gathered from a <gi scheme="MEI">staffDef</gi> for a transposing instrument.</p> <p>Every <gi scheme="MEI">staffDef</gi> may contain a number of <gi scheme="MEI">layerDef</gi> elements, which may be used to establish default values for the distinct layers sharing one staff. MEI does not use the term ‘voice’ to describe these ‘musical threads’ because that term implies continuity across measure boundaries. Given the sometimes arbitrary relationships between these threads from measure to measure as well as across staves, MEI uses the more neutral term ‘layer’.</p> </div> <div xml:id="cmnDefsSepecial" type="div3"> <head>Special cases in staff definitions</head> <p>Usually <gi scheme="MEI">clef</gi>, <gi scheme="MEI">key</gi>, and <gi scheme="MEI">meterSig</gi> apply to a whole staff.</p> <p>In some rare cases one can find different meters in different layers, as seen in Maurice Ravel’s <hi rend="italic">Oiseaux tristes</hi>.</p> <p> <figure> <head>Different meters in different layers on the upper staff</head> <graphic url="../images/modules/cmn/Ravel-layerMeter.png"/> </figure> </p> <p>In these cases it is necessary to encode each <gi scheme="MEI">meterSig</gi> for the staff as child of the corresponding <gi scheme="MEI">layerDef</gi>:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><staffGrp bar.thru="true"> <staffDef n="1"> <layerDef n="1"> <meterSig count="4" unit="4" sym="common" /> </layerDef> <layerDef n="2"> <meterSig count="12" unit="8" /> </layerDef> </staffDef> <staffDef n="2" lines="5"> <layerDef n="1"> <meterSig count="4" unit="4" sym="common" /> </layerDef> </staffDef> </staffGrp></egXML> </figure> </p> </div> <div xml:id="cmnReDef" type="div3"> <head>Re-definition of Score Parameters</head> <p>Sometimes it is necessary to re-define the parameters of a score or a staff. For example, a score may change keys, the number of staves, or use different layout settings. Likewise, a staff may change its clef, change the number of layers, or become invisible. To accommodate these changes, <gi scheme="MEI">staffDef</gi> is allowed to occur in the following locations:</p> <list rend="bulleted"> <item>within the description of staff groups; that is, in <gi scheme="MEI">staffGrp</gi>,</item> <item>within the content of a <gi scheme="MEI">measure</gi>,</item> <item>between measures; that is, directly within <gi scheme="MEI">section</gi> and <gi scheme="MEI">ending</gi> elements, and</item> <item>between sections and endings; that is, directly within a <gi scheme="MEI">score</gi> or <gi scheme="MEI">part</gi> element.</item> </list> <p>In addition, <gi scheme="MEI">scoreDef</gi> is allowed to occur:</p> <list rend="bulleted"> <item>within sections and endings; that is, inside <gi scheme="MEI">section</gi> and <gi scheme="MEI">ending</gi> elements; and</item> <item>between sections and endings; that is, directly within a <gi scheme="MEI">score</gi> or <gi scheme="MEI">part</gi>.</item> </list> <p>It is also possible to include <gi scheme="MEI">scoreDef</gi> and <gi scheme="MEI">staffDef</gi> in staves and layers when the MEI All schema is in use; however, this practice is not recommended for the CMN repertoire.</p> <p>The following example shows how to change the key and meter signatures within a score. The <att>keysig.cancelaccid</att> attribute may be used to control the position of the cancellation accidentals of the key signature change, while the <att>keysig.visible</att> can be used to hide the key signature entirely.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Key changes example</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>Example taken from the Verovio Test Suite</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <?edit-start?> <scoreDef keysig="4f" meter.sym="common"> <staffGrp> <staffDef n="1" lines="5" clef.shape="G" clef.line="2" /> </staffGrp> </scoreDef> <section> <measure right="dbl" n="1"> <staff n="1"> <layer n="1"> <chord dur="1"> <note oct="4" pname="a" accid.ges="f" /> <note oct="5" pname="c" accid.ges="f" /> <note oct="5" pname="e" accid.ges="f" /> </chord> </layer> </staff> </measure> <scoreDef keysig="0" keysig.cancelaccid="none" /> <measure right="dbl" n="4"> <staff n="1"> <layer n="1"> <chord dur="1"> <note oct="4" pname="a" /> <note oct="5" pname="c" /> <note oct="5" pname="e" /> </chord> </layer> </staff> </measure> <scoreDef keysig="2s" keysig.cancelaccid="before" meter.sym="cut" /> <measure n="2"> <staff n="1"> <layer n="1"> <chord dur="1"> <note oct="4" pname="b" /> <note oct="5" pname="d" /> <note oct="5" pname="f" accid.ges="s" /> </chord> </layer> </staff> </measure> <measure right="dbl" n="3"> <staff n="1"> <layer n="1"> <multiRest num="3" /> </layer> </staff> </measure> <scoreDef keysig.visible="false" keysig="5f" meter.count="4" meter.unit="4" /> <measure right="dbl" n="5"> <staff n="1"> <layer n="1"> <chord dur="1"> <note oct="4" pname="g" /> <note oct="4" pname="b" accid.ges="f" /> <note oct="5" pname="d" /> </chord> </layer> </staff> </measure> <scoreDef keysig="2s" keysig.cancelaccid="before-bar" /> <measure right="end" n="2"> <staff n="1"> <layer n="1"> <chord dur="1"> <note oct="4" pname="b" /> <note oct="5" pname="d" /> <note oct="5" pname="f" accid.ges="s" /> </chord> </layer> </staff> </measure> </section> <?edit-end?> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> </div> <div xml:id="cmnNotesChords" type="div3"> <head>Notes, Chords and Rests in CMN</head> <div xml:id="cmnNotes" type="div4"> <head>Notes</head> <p>Undoubtedly, the most important element for any music notation representation is the <gi scheme="MEI">note</gi> element, which is defined in section <ptr target="#sharedBasicEvents"/>. This section describes the usage of <gi scheme="MEI">note</gi> in the CMN repertoire as well as CMN-specific additions to the basic definition in the shared module.</p> <div xml:id="cmnNotesBasic" type="div5"> <head>Basic Usage of Notes in CMN</head> <p>In CMN, notes are determined by three basic parameters:</p> <list rend="bulleted"> <item>pitch name (using <att>pname</att>)</item> <item>octave (using <att>oct</att>)</item> <item>duration (using <att>dur</att>)</item> </list> <p>A single note, in this case a quarter note C4, is therefore encoded as: <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note dur="4" oct="4" pname="c"/> </egXML> </figure> </p> <p>The default values for <att>pname</att> and <att>oct</att> conform to the <ref target="https://en.wikipedia.org/wiki/Scientific_pitch_notation">Scientific Pitch Notation (SPN)</ref> (also known as American Standard Pitch Notation); that is, the letters A–G indicate the musical note name of a pitch, and the numbers 0–9 indicate the octave range to which a note belongs. <att>pname</att> values differ from this convention only by using lower case values for pitches (a–g instead of A-G). The value for <att>oct</att> changes between B and C, that is, octave ranges go from C, D, …, G, A, to B. For example, <hi rend="italic">middle C</hi> or <hi rend="italic">c'</hi> (the C in the middle, <abbr>i.e.</abbr>, fourth C key from left, on a standard 88-key piano keyboard) is represented on the first ledger line in G clef notation and labelled as <hi rend="italic">C4</hi>, in the naming convention of SPN. The note one semitone below would be labelled <hi rend="italic">B3</hi>, and <hi rend="italic">A4</hi> would refer to the first A above <hi rend="italic">C4</hi>.</p> <p>The usual CMN-specific values for <att>dur</att> are:</p> <list type="gloss"> <label>1</label> <item>whole note</item> <label>2</label> <item>half note</item> <label>4</label> <item>quarter note</item> <label>8</label> <item>eighth note</item> <label>16</label> <item>sixteenth note</item> <label>…</label> <item/> <label>2048</label> <item>2048th note</item> </list> <p>Additionally, the following two values borrowed from mensural notation are allowed, as they sometimes also appear in CMN:</p> <list type="gloss"> <label>breve</label> <item>double whole</item> <label>long</label> <item>quadruple whole</item> </list> <p>Please note that their mensural counterparts bear different names in order to clearly distinguish between repertoires.</p> <p>Dotted durational values are accommodated by the <att>dots</att> attribute, which records the number of written augmentation dots. Thus, a dotted quarter note is represented as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note dots="1" dur="4" oct="4" pname="c"/> </egXML> </figure> </p> </div> <div xml:id="cmnNotesGrace" type="div5"> <head>Grace Notes</head> <p>The CMN module adds two optional attributes, <att>grace</att> and <att>grace.time</att>, to <gi scheme="MEI">note</gi> and <gi scheme="MEI">chord</gi>. The presence of the <att>grace</att> attribute indicates a grace note or chord.</p> <p> <figure> <head>Grace notes</head> <graphic url="../images/modules/cmn/grace-300.png"/> </figure> </p> <p>The encoding of the left-most example would look like this:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><beam> <note dur="8" oct="5" pname="d" stem.dir="down"/> <note dur="8" oct="5" pname="e" stem.dir="up" grace="unacc" stem.mod="1slash"/> <note dur="8" oct="5" pname="d" stem.dir="down"/> <note accid="s" dur="8" oct="5" pname="c" stem.dir="up" grace="unacc" stem.mod="1slash"/> <note dur="8" oct="5" pname="d" stem.dir="down"/> <note dur="8" oct="4" pname="b" stem.dir="down"/> </beam> </egXML> </figure> </p> <p>Grace notes are not counted when determining the measure’s conformance to the current time signature. Therefore, the <att>dur</att> attribute records only the <hi rend="italic">written</hi> rhythmic value of the grace note. The time necessary for the performance of grace notes can be unspecified, calculated based on taking time from other non-grace notes, or specified precisely using the <att>dur.ges</att> attribute.</p> <p>The values of <att>grace</att> indicate from which note time is ‘borrowed’ to perform the grace note: The preceding note, in which case the value <val>unacc</val> (unaccented) is used, or the following note, when the value <val>acc</val> (accented) is appropriate. Technically, this value determines if the note following the grace will keep its original onset time or will be slightly delayed to allow the grace note itself to be accented. Sometimes it is not clear how to perform a grace; in these situations the value <val>unknown</val> allows one to indicate a grace note while unambiguously stating that its performed duration remains unknown.</p> <p>The <att>grace.time</att> attribute is only to be used in combination with the <att>grace</att> attribute. It records the amount of time (as a percentage of the written duration) that the grace note should ‘steal’ from the preceding note (when <att>grace</att>="unacc") or the following note (when <att>grace</att>="acc").</p> <p>Grace notes can be placed within a <gi scheme="MEI">graceGrp</gi> element, which itself allows all values for <att>grace</att> as explained above. The optional <att>attach</att> attribute is used to record whether the grace note group is attached to the following event or to the preceding one. The <gi scheme="MEI">graceGrp</gi> element can be used with single or multiple grace notes.</p> <p>More information about grace notes in the context of other CMN ornaments is available in chapter <ptr target="#cmnOrnaments"/>.</p> </div> </div> <div xml:id="cmnChords" type="div4"> <head>Chords</head> <p>Often we find multiple notes that are not sounding in succession but sounding simultaneously. These chords in MEI are basically defined as a container of notes that are stemmed together.</p> <div xml:id="cmnChordsBasic" type="div5"> <head>Chords in CMN</head> <p>A chord is any set of pitches consisting of multiple notes that are to be played simultaneously and are usually grouped together visually with a single stem. In MEI the <gi scheme="MEI">chord</gi> element functions as a container for all participating notes. Also it features many attributes that are allowed for notes, <abbr>e.g.</abbr>, usually all notes in a chord have a common duration, so it can be applied to the whole chord within it’s <att>dur</att> attribute.</p> <p>Some notational features like articulations or lyrics are connected to a whole chord instead of a single note. Therefore elements like <gi scheme="MEI">artic</gi> or <gi scheme="MEI">verse</gi> are also allowed as children of <gi scheme="MEI">chord</gi> elements. In the following example from Sergei Rachmaninoff’s <hi rend="italic">Prelude in C-sharp minor</hi>, Op. 3, No. 2 all chords carry an accent.</p> <p> <figure> <head>Chords in Rachmaninoff’s Prelude in C-sharp minor, Op. 3, No. 2</head> <graphic url="../images/ExampleImages/RachmaninoffPrelude.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <chord xml:id="ex-1877520550" dur="2" stem.dir="up"> <artic artic="acc" place="above"/> <note oct="3" pname="c" accid.ges="s"/> <note oct="3" pname="e"/> <note oct="3" pname="g" accid.ges="s"/> <note oct="4" pname="c" accid.ges="s"/> </chord> <chord xml:id="ex-1072408883" dur="4" stem.dir="up"> <artic artic="acc" place="above"/> <note oct="3" pname="a"> <accid accid="n"/> </note> <note oct="4" pname="a"> <accid accid="n"/> </note> </chord> <chord xml:id="ex-0929208104" dur="4" stem.dir="up"> <artic artic="acc" place="above"/> <note oct="3" pname="g" accid.ges="s"/> <note oct="4" pname="g" accid.ges="s"/> </chord> </layer> </egXML> </figure> </p> </div> <div xml:id="cmnChordsStems" type="div5"> <head>Stem Modifications</head> <p>The <att>stem.mod</att> attribute accommodates various stem modifiers found in the CMN repertoire. These symbols are placed on a note or chord’s stem and generally indicate different types of tremolo and Sprechstimme. The following values are allowed:</p> <list type="gloss"> <label>1slash</label> <item>1 slash through stem</item> <label>2slash</label> <item>2 slashes through stem</item> <label>3slash</label> <item>3 slashes through stem</item> <label>4slash</label> <item>4 slashes through stem</item> <label>5slash</label> <item>5 slashes through stem</item> <label>6slash</label> <item>6 slashes through stem</item> <label>sprech</label> <item>X placed on stem</item> <label>z</label> <item>Z placed on stem</item> </list> <p>The <att>stem.mod</att> attibute is normally used in accordance with practices described in section <ptr target="#cmnTrem"/>.</p> <p>The CMN module makes the <ident type="class">att.stems.cmn</ident> attribute class available, which adds the optional <att>stem.with</att> attribute to <gi scheme="MEI">note</gi> and <gi scheme="MEI">chord</gi>. The attribute <att>stem.with</att> allows for the indication of a stem that joins notes on adjacent staves.</p> <p> <figure> <head>Cross-staff chord</head> <graphic url="../images/modules/cmn/xchord-300.png"/> </figure> </p> <p>The following code demonstrates one method of encoding the first chord in the last measure in the image above. The <att>stem.with</att> attribute must occur on all the notes or chords attached to the cross-staff stem.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <staff n="1"> <layer n="1"> <note dur="2" oct="4" pname="d" stem.with="below"/> </layer> </staff> <staff n="2"> <layer n="1"> <chord dur="2" stem.with="above"> <note accid="n" oct="3" pname="b"/> <note oct="3" pname="f"/> </chord> </layer> </staff> </measure> </egXML> </figure> </p> <p>Alternatively, the encoder may choose to treat the notes in the lower staff as logically belonging to the top staff and to ‘displace’ them using the <att>staff</att> attribute on <gi scheme="MEI">note</gi>. Some use cases, however, may require filling the time that those notes would normally occupy using the <gi scheme="MEI">space</gi> element described in section <ptr target="#sharedNoteSpacing"/>. Using this mechanism, the example above could also be encoded like so:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <staff n="1"> <layer n="1"> <chord dur="2"> <note oct="4" pname="d"/> <note accid="n" oct="3" pname="b" staff="2"/> <note oct="3" pname="f" staff="2"/> </chord> </layer> </staff> <staff n="2"> <layer n="1"> <!-- the time used by the notes on staff 2 filled with non-sounding "space" --> <space dur="2"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>The choice between these two methods of representing material that crosses staves is often software-dependent.</p> <p>Whereas <att>stem.with</att> can be used to define stems that connect notes across different staves (cross-staff chords) <att>stem.sameas</att> is meant for describing a stem that connects two notes pertaining to different layers within the same staff.</p> <p>The typical scenario for <att>stem.sameas</att> is orchestral scores where two wind instruments are notated on one single staff. Normally, the notes have individual stems pointing in opposite directions. However, it is common engraving practice that notes of the same duration are often stemmed together between the parts encoded in separate layers. The following example demonstrates this practice in the wind instruments (bassoons and trumpets in meas. 1 - 3, horns in meas. 3)</p> <p> <figure> <head>Shared stems</head> <graphic url="../images/modules/cmn/K543_m1-3_exc.png"/> </figure> </p> <p>The following code represents an encoding of <hi rend="italic">shared stems</hi> in the bassoon and trumpet staff using <att>stem.sameas</att>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><score> <measure n="1"> <!-- ... --> <staff label="Fagotti" n="3"> <layer n="1" xml:id="L08"> <note accid.ges="f" dur="2" oct="4" pname="e" tstamp="1" xml:id="note_2754"/> <note accid.ges="f" dots="2" dur="4" oct="4" pname="e" tstamp="2" xml:id="note_2757"/> <note accid.ges="f" dur="16" oct="4" pname="e" tstamp="2.875" xml:id="note_2760"/> </layer> <layer n="2" xml:id="L10"> <note accid.ges="f" dur="2" oct="3" pname="e" stem.sameas="#note_2754" tstamp="1" xml:id="note_2766"/> <note accid.ges="f" dots="2" dur="4" oct="3" pname="e" stem.sameas="#note_2757" tstamp="2" xml:id="note_2769"/> <note accid.ges="f" dur="16" oct="3" pname="e" stem.sameas="#note_2760" tstamp="2.875" xml:id="note_2772"/> </layer> </staff> <!-- ... --> <staff label="Clarini" n="5"> <layer n="1" xml:id="L15"> <note dur="2" oct="5" pname="c" tstamp="1" xml:id="note_2808"/> <note dots="2" dur="4" oct="5" pname="c" tstamp="2" xml:id="note_2811"/> <note dur="16" oct="5" pname="c" tstamp="2.875" xml:id="note_2814"/> </layer> <layer n="2" xml:id="L17"> <note dur="2" oct="4" pname="c" stem.sameas="#note_2808" tstamp="1" xml:id="note_2820"/> <note dots="2" dur="4" oct="4" pname="c" stem.sameas="#note_2811" tstamp="2" xml:id="note_2823"/> <note dur="16" oct="4" pname="c" stem.sameas="#note_2814" tstamp="2.875" xml:id="note_2826"/> </layer> </staff> <!-- ... --> </measure> </score> </egXML> </figure> </p> </div> </div> <div xml:id="cmnRests" type="div4"> <head>Rests</head> <p>The <att>dur</att> attribute on <gi scheme="MEI">rest</gi> captures the written duration of the rest and allows the same values as on <gi scheme="MEI">note</gi> and <gi scheme="MEI">chord</gi>. The CMN module also makes three more elements available for special forms of rest:</p> <p> <specList> <specDesc key="mRest"/> <specDesc key="multiRest"/> <specDesc key="mSpace"/> </specList> </p> <div xml:id="cmnRestsMRest" type="div5"> <head>Measure Rests</head> <p>The <gi scheme="MEI">mRest</gi> (measure rest) element is used to indicate a complete measure rest, independent from the meter of the current</p> <p> <gi scheme="MEI">measure</gi>.</p> <p>The <att>cutout</att> attribute provides for the description of the rendition of the <gi scheme="MEI">mRest</gi>. If <att>cutout</att> is set to ‘cutout’ (the only value allowed), then the complete staff including the staff lines will not be rendered for this measure.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><staff> <layer> <mRest cutout="cutout"/> </layer> </staff> </egXML> </figure> </p> <p>It is a semantic error to mix an <gi scheme="MEI">mRest</gi> with other events in the same <gi scheme="MEI">layer</gi>. However, other ‘control events’, such as <gi scheme="MEI">fermata</gi>, may be used at the same time as <gi scheme="MEI">mRest</gi>.</p> </div> <div xml:id="cmnRestsMultiRest" type="div5"> <head>Multiple-Measure Rests</head> <p>The <gi scheme="MEI">multiRest</gi> (multiple measure rest) element is used to encode multiple measures of rest. It is commonly used in performer parts, but due to the problem of synchronicity with other staves, it is never found in scores. A numeric value, stored in the <att>num</att> attribute, indicates the number of resting measures. The older visual forms displayed below (often called <hi rend="italic">Kirchenpausen</hi>) are not captured by <gi scheme="MEI">multiRest</gi>, but may be created by rendering software. You may force modern block rests by using the <att>block</att> attribute.</p> <p> <figure> <head>Forms of multiple measure rests</head> <graphic url="../images/ExampleImages/multirest.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><staff> <layer> <multiRest num="9"/> </layer> </staff> </egXML> </figure> </p> </div> <div xml:id="cmnRestsMSpace" type="div5"> <head>Empty Measures</head> <p>The <gi scheme="MEI">mSpace</gi> (measure space) element is closely related to the <gi scheme="MEI">space</gi> and <gi scheme="MEI">mRest</gi> elements. It is used to explicitly indicate that a layer has no content but that no information is missing from the encoding.</p> <p> <figure> <head>Empty measure</head> <graphic url="../images/ExampleImages/mspace.1.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure n="2"> <staff> <layer> <mSpace/> </layer> </staff> </measure> </egXML> </figure> </p> </div> </div> </div> <div xml:id="cmnTstamp" type="div3"> <head>Timestamps and Durations</head> <p>MEI offers multiple ways of defining onsets and offsets of timed musical events such as notes and slurs. The most common and most musician-friendly approach to this is through the use of a combination of the attributes <att>tstamp</att> and <att>dur</att>, which are made available by the attribute classes <ident type="class">att.timestamp.log</ident> (inherited by <ident type="class">att.controlEvent</ident>) and <ident type="class">att.timestamp2.log</ident>, both from the shared module.</p> <p>The timestamp (<att>tstamp</att>) of a musical event is calculated in relation to the meter of the current measure and resembles the so-called ‘beat’ position. In a common time measure with four quarter notes, the timestamp of each quarter equals its beat position in the measure: The first quarter has a timestamp of 1, the second has a timestamp of 2, and so on. MEI defines the value of <att>tstamp</att> as a real number; the second eighth note position in a measure would thus be represented by the value of "1.5". The range of possible values is defined as starting with zero and ending with the number of metrical units in a measure (the ‘numerator’ in a time signature) + 1. This allows the capture of all graphical positions starting from the left bar line ('0') and ending with the right bar line of the measure ('5', in the case of 4/4 time).</p> <p>For expressing durations, MEI offers the <att>dur</att> attribute. This attribute is described in section <ptr target="#cmnNotesBasic"/>.</p> <p>For ‘spanning’ elements like slurs, which are members of the <ident type="class">model.controlEventLike</ident> class, it is often more intuitive to record two timestamps – one for the onset of the event and one for its termination. Because the termination of the event may be in a succeeding measure, the second timestamp (<att>tstamp2</att>) has a slightly different datatype than the one marking the initiation of the event. Its datatype is constrained to values following the formula "<hi rend="italic">xm + y</hi>", where <hi rend="italic">x</hi> is the number of full measures that this particular feature lasts (or the number of bar lines crossed) and <hi rend="italic">y</hi> is the timestamp in the target measure where the feature ends. The timestamp is expressed using the same logic as described above. For example, a value of "0m+3" in 4/4 time indicates that the element bearing this attribute, a slur for example, ends on beat 3 of the same measure where it started. A value of "1m+1.5" would indicate an end on the second eighth note of the following measure. In 6/8 time, the value "2m+3" means that the feature ends two measures later on the third eighth note.</p> </div> </div> <div xml:id="cmnAdditionalMeasureContent" type="div2"> <head>Advanced CMN Features</head> <p>Over time, in addition to the basic features of note, chord, and rest, many other symbols have been added to CMN. The following section describes some of these symbols and introduces their handling in MEI.</p> <div xml:id="cmnBeams" type="div3"> <head>Beams</head> <p>A very common feature of music from the CMN repertoire is the beaming of eighth or shorter notes. MEI provides two elements for the explicit encoding of features joined by beams.</p> <p> <specList> <specDesc key="beam"/> <specDesc key="beamSpan"/> </specList> </p> <p>Use of the <gi scheme="MEI">beam</gi> element is straightforward. The beamed notes, rests, or chords are simply enclosed by the <gi scheme="MEI">beam</gi> element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <beam> <note dur="8"/> <note dur="8"/> </beam> </layer> </egXML> </figure> </p> <p>Whereas in music notation every note value shorter than an eighth adds another beam (sometimes referred to as ‘secondary beams’), in MEI only one beam element is used, no matter the durations of the contained notes. The visual rendition of a set of beamed notes is presumed to be handled by rendering processes.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <!-- … --> <beam> <note dur="16"/> <note dur="32"/> <note dur="32"/> <note dots="1" dur="16"/> <note dur="32"/> </beam> <!-- … --> </layer> </egXML> </figure> </p> <p>From the 19th century onwards, it became quite common to break secondary beams to increase readability of longer beamed passages. The optional <att>breaksec</att> attribute on <gi scheme="MEI">note</gi>s and <gi scheme="MEI">chord</gi>s under the beam may be used to encode the breaking of secondary beams <hi rend="italic">after</hi> the note or chord bearing the attribute. The value of <att>breaksec</att> indicates the number of continuous beams. For example:</p> <p> <figure> <head>Primary and secondary beams</head> <graphic url="../images/ExampleImages/beam-a-20100510.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <beam> <note dots="1" dur="8"/> <note dur="16"/> </beam> <beam> <note dur="32"/> <note dur="32"/> <note breaksec="1" dur="16"/> <note dur="32"/> <note dur="32"/> <note dur="32"/> <note dur="32"/> </beam> </layer> </egXML> </figure> </p> <p>In the music of the second half of the 20th century, it is quite common to indicate acceleration or deceleration using converging (feathered) beams as in the image below:</p> <p>The encoding of such a beam is accomplished using the <att>form</att> attribute of the beam, which allows the following values:</p> <list type="gloss"> <label>acc</label> <item>Beams gradually diverge.</item> <label>rit</label> <item>Beams gradually converge (into one).</item> <label>mixed</label> <item>Beams diverge and converge arbitrarily.</item> <label>norm</label> <item>The beam is rendered as usual (default).</item> </list> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <!-- … --> <beam form="acc"> <note dur="8"/> <note/> <note/> <note/> <note/> <note dur="32"/> </beam> <!-- … --> </layer> </egXML> </figure> </p> <p>The duration of notes, rests, or chords under a beam which carries the <att>form</att> attribute with a value of ‘acc’, ‘rit’, or ‘mixed’ must be treated specially. The first and last contained elements must specify a duration which matches the number of beams displayed at the point of these events. In the case of a ‘mixed’ beam, each event at the point of change in the number of secondary beams must carry a <att>dur</att> attribute. Beams like this may be encoded thusly:</p> <p> <figure> <head>Feathered beaming</head> <graphic url="../images/modules/cmn/beamAcc-Rit.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <!-- … --> <beam form="mixed"> <note dur="8"/> <note dur="8"/> <note/> <note/> <note/> <note dur="32"/> </beam> <beam form="mixed"> <note dur="32"/> <note/> <note/> <note/> <note/> <note dur="8"/> <note dur="8"/> </beam> <!-- … --> </layer> </egXML> </figure> </p> <p> <figure> <head>Two measures from No. 4 of Moszkowski’s 12 Pianoforte Studies for the left hand</head> <graphic url="../images/ExampleImages/cross-staff.1.png"/> </figure> </p> <p>Beams that connect events on different staves may be encoded in two different ways. First, a single-layer approach may be taken that treats the events lying under the beam as logically belonging to the same layer as the initial event but visually ‘displaced’ to an adjacent staff. In the example above from <ref target="https://en.wikipedia.org/wiki/Moritz_Moszkowski">Moritz Moszkowski’s</ref> <hi rend="italic">12 Pianoforte Studies for the left hand</hi>, Op. 92, MoszWV 117 this method makes even from a semantic perspective perfect sense. It can be achieved with an additional <att>staff</att> attribute value that contradicts the ‘normal’ staff placement indicated by the <att>n</att> attribute of their ancestor <gi scheme="MEI">staff</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><staff n="2"> <layer> <!-- … --> <beam place="mixed"> <note dur="16" oct="3" pname="f" accid.ges="s"/> <note dur="16" oct="3" pname="b"/> <note dur="16" oct="4" pname="d" accid="s" staff="1"/> <note dur="16" oct="4" pname="f" accid.ges="s" staff="1"/> </beam> <!-- … --> </layer> </staff> </egXML> </figure> </p> <p>In other contexts however, a staff-by-staff methodology may be employed in which the notes are encoded according to the staff on which they appear. This encoding style requires that each <gi scheme="MEI">beam</gi> element account for the total time encompassed by the beam; that is, each <gi scheme="MEI">beam</gi> must use one or more <gi scheme="MEI">space</gi> elements to account for the time occupied by notes on the opposing staff. For example, the time used by the first two notes of the beam must be represented on staff number 1 and the time taken by the last two notes of the beam must be filled on staff number 2.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <staff n="1"> <layer> <beam beam.with="below"> <space dur="8"/> <note oct="4" pname="d"/> <note pname="f"/> </beam> </layer> </staff> <staff n="2"> <layer> <beam beam.with="above"> <note dur="16" oct="3" pname="g"/> <note pname="b"/> <space dur="8"/> </beam> </layer> </staff> </measure> </egXML> </figure> </p> <p>Downstream processing needs are the determining factor in the choice between the two alternative encoding methods.</p> <p>Due to the potential problem of overlapping hierarchies, the <gi scheme="MEI">beam</gi> element only allows the encoding of beams that do not cross bar lines. When beams cross bar lines, the use of the <gi scheme="MEI">beamSpan</gi> element is required. Unlike <gi scheme="MEI">beam</gi>, the <gi scheme="MEI">beamSpan</gi> element does not contain the beamed notes as its children. Instead, it references the <att>xml:id</att> values of all affected notes in its <att>plist</att> attribute and denotes the initial and terminal notes of the beam using <att>startid</att> and <att>endid</att> attributes. This configuration allows beams to cross measure boundaries. The following example from <ref target="https://en.wikipedia.org/wiki/Erwin_Schulhoff">Erwin Schulhoff’s</ref> <hi rend="italic">Violin Sonata</hi> demonstrates a typical example of such hierarchy-crossing beams:</p> <p> <figure> <head>Cross-measure beam in the third movement of Schulhoff’s Sonata</head> <graphic url="../images/ExampleImages/beamspan.1.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><beamSpan startid="#note1" endid="#note4" plist="#note1 #note2 #note3 #note4"/> </egXML> </figure> </p> <p>In addition to the explicit encoding of beams accommodated by the <gi scheme="MEI">beam</gi> and <gi scheme="MEI">beamSpan</gi> elements and the <att>beam</att> attribute, MEI allows for specification of default beaming behavior using the following attributes on <gi scheme="MEI">scoreDef</gi>, <gi scheme="MEI">staffDef</gi>, and <gi scheme="MEI">layerDef</gi>:</p> <list type="gloss"> <label>beam.group</label> <item>Provides an example of how automated beaming (including secondary beams) is to be performed.</item> <label>beam.rests</label> <item>Indicates whether automatically-drawn beams should include rests shorter than a quarter note duration.</item> </list> <p>The <att>beam.group</att> attribute can be used to set a default beaming pattern to be used when no beaming is indicated at the layer level. It must contain a comma-separated list of time values that add up to a measure in the current meter, <abbr>e.g.</abbr>, <val>4,4,4,4</val> in 4/4 time indicates that each quarter note worth of shorter notes should be beamed together. Parentheses can be used to indicate sub-groupings of secondary beams. For example, <val>(4.,4.,4.)</val> in 9/8 meter indicates one primary beam per measure with secondary beams broken at each dotted quarter duration, while <val>(4,4),(4,4)</val> in 4/4 will result in a measure of 16th notes being rendered with a primary beam covering all the notes and secondary beams for each group of four 16th notes.</p> <p>The <att>beam.group</att> attribute is available on <gi scheme="MEI">scoreDef</gi>, <gi scheme="MEI">staffDef</gi>, and <gi scheme="MEI">layerDef</gi> elements, making it possible to set different beaming patterns for each of these. Also, the beaming pattern can be changed anywhere score parameters may be changed, for example, at the start of sections. This beaming "directive" can be overridden by using <gi scheme="MEI">beam</gi>, <gi scheme="MEI">beamSpan</gi>, or <att>beam</att> attributes as described above. If none of these beaming specifications is used, then no beaming is implied. Default beaming can be explicitly ‘turned off’ by setting <att>beam.group</att> to an empty string.</p> </div> <div xml:id="cmnSlurTies" type="div3"> <head>Ties, Slurs and Phrase Marks</head> <p>One of the most specific features of CMN is the use of ‘curved lines’ which connect notes. These lines are used to indicate various musical features, depending on their context.</p> <p>A tie is a curved line connecting <hi rend="italic">two</hi> notes of the <hi rend="italic">same pitch</hi>. The purpose of a tie is to join the durations of both notes, so that the first note sounds for the combined duration. In other words, there is only one onset for both notes.</p> <p>In MEI, ties can be encoded in different ways, depending on the level of detail that the encoder wants to preserve. The simplest solution is to use the <att>tie</att> attribute found on <gi scheme="MEI">note</gi> and <gi scheme="MEI">chord</gi>. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <note dur="2" oct="4" pname="f" tie="i"/> <note dots="1" dur="4" oct="4" pname="f" tie="t"/> </layer> </egXML> </figure> </p> <p>This attribute allows three values:</p> <list type="gloss"> <label>i (initial)</label> <item>Marks the start of a tie</item> <label>m (medial)</label> <item>Marks a participant in a tie other than the first or last</item> <label>t (terminal)</label> <item>Marks the end of a tie</item> </list> <p>The scope of the <att>tie</att> attribute is the musical <gi scheme="MEI">layer</gi>; that is, a tie started in one layer may only be ended by a subsequent musical event with a <att>tie</att> attribute with an <val>m</val> or <val>t</val> value in the same layer. The tie-terminating event may lie in the following measure.</p> <p> <figure> <head>Ties across bar lines</head> <graphic url="../images/modules/cmn/finger-300.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <!-- staff 1 omitted --> <staff n="2"> <layer n="1"> <chord dur="16"> <note oct="2" pname="f" /> <note oct="1" pname="f" /> </chord> <beam> <note oct="2" pname="f" tie="i" /> <note oct="2" pname="a" tie="i" /> <note oct="3" pname="c" tie="i" /> </beam> <chord dur="4"> <note oct="3" pname="f" tie="i" /> <note oct="3" pname="c" tie="m" /> <note oct="2" pname="a" tie="m" /> <note oct="2" pname="f" tie="m" /> </chord> </layer> </staff> </measure> <measure n="2"> <!-- staff 1 omitted --> <staff n="2"> <layer n="1"> <chord dur="16"> <note oct="3" pname="f" tie="t" /> <note oct="3" pname="c" tie="t" /> <note oct="2" pname="a" tie="t" /> <note oct="2" pname="f" tie="t" /> </chord> <!-- … --> </layer> </staff> </measure> <!-- measures 3 and 4 omitted --> </egXML> </figure> </p> <p>When <att>tie</att> is used on chords, it functions as a shorthand indication for multiple tie markings; that is, a separate tie is drawn for every pitch in the chord that remains unchanged in the succeeding chord.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staff> <layer> <chord dur="4" tie="i"> <note pname="f"/> <note pname="c"/> <note pname="a"/> </chord> <chord dur="4" tie="t"> <note pname="f"/> <note pname="c"/> <note pname="a"/> </chord> </layer> </staff> </egXML> </figure> </p> <p>This is equivalent to the following, more verbose version:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staff> <layer> <chord dur="4"> <note pname="f" tie="i"/> <note pname="c" tie="i"/> <note pname="a" tie="i"/> </chord> <chord dur="4"> <note pname="f" tie="t"/> <note pname="c" tie="t"/> <note pname="a" tie="t"/> </chord> </layer> </staff> </egXML> </figure> </p> <p>A slur is a curved line that connects a group of notes of different pitch. It normally indicates that an instrument-specific performance technique should be applied to the affected notes. For example, in notation for winds, the notes should be played in one breath, while a single bow is indicated for string instruments.</p> <p> <figure> <head>Slurs</head> <graphic url="../images/ExampleImages/slur-300-20100514.png"/> </figure> </p> <p>In MEI, slurs may be encoded in a similar way to ties: <gi scheme="MEI">note</gi> and <gi scheme="MEI">chord</gi> bear a <att>slur</att> attribute that allows the commencement or ending of a slur at this element. The allowed values, however, are slightly different: The <hi rend="italic">i</hi>, <hi rend="italic">m</hi> or <hi rend="italic">t</hi> are followed by a single digit in the range 1 to 6, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <note accid="s" dur="4" oct="4" pname="f" slur="i1"/> <note dur="4" oct="4" pname="g" slur="m1"/> <note dur="4" oct="4" pname="a" slur="t1"/> </layer> </egXML> </figure> </p> <p>The reason for this difference is that slurs, unlike ties, may overlap, so that a second slur may start while the first slur is still ongoing. The digit indicates the level of nesting of slurs on the note; ‘1’ indicates no nesting, while ‘2’ indicates the existence of 2 slurs in which this note participates, and so on. In the example below, the second and third quarter notes lie under 2 slurs. The second note is covered by the slur that begins on the preceding note and by the one that it starts. The third note is affected by the slur that begins on note one and by the one that starts on note two.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staff> <layer> <note dur="2" oct="4" pname="g" slur="i1"/> <note dur="8" oct="4" pname="a" slur="i2"/> <note dur="8" oct="4" pname="g" slur="t2"/> <note accid="s" dur="4" oct="4" pname="f" slur="t1"/> </layer> <layer> <note dots="1" dur="2" oct="3" pname="b" slur="i1"/> <note dur="4" oct="4" pname="d" slur="t1"/> </layer> </staff> </egXML> </figure> </p> <p>To support analytical operations, <att>slur</att> may take on more than one value. For example, the example above may be more explicitly encoded as:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staff> <layer> <note dur="2" oct="4" pname="g" slur="i1"/> <note dur="8" oct="4" pname="a" slur="m1 i2"/> <note dur="8" oct="4" pname="g" slur="m1 t2"/> <note accid="s" dur="4" oct="4" pname="f" slur="t1"/> </layer> <layer> <note dots="1" dur="2" oct="3" pname="b" slur="i1"/> <note dur="4" oct="4" pname="d" slur="t1"/> </layer> </staff> </egXML> </figure> </p> <p>In this encoding, the notes in the beamed group are marked as participating in two slurs – one connecting just the beamed notes and one connecting the first and last notes of the layer. In ‘nested’ slurs like this, the function of the slurs is usually different. Here, the slur connecting the 8th notes indicates legato performance, while the longer slur functions as a phrase mark.</p> <p>While ties are not normally allowed to cross layers or staves, slurs may. The following example demonstrates how cross-staff slurs may be encoded using the <att>slur</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <note dur="4" oct="4" pname="g" slur="i1"/> <note dur="8" oct="4" pname="a" slur="m1"/> <note dur="8" oct="4" pname="g" slur="m1"/> <note accid="s" dur="4" oct="4" pname="f" slur="m1"/> </layer> </staff> <staff> <layer> <note dots="1" dur="2" oct="3" pname="b"/> <note dur="4" oct="4" pname="d" slur="t1"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>Slurs and ties that cross system or page breaks are often split into two separate symbols for rendering. One slur or tie ends at the last bar line, another one starts at the beginning of the new system. MEI expects this to be the default rendering behavior, so that in situations like these, the regular <att>tie</att> or <att>slur</att> attributes are sufficient to describe both curved lines resulting from the split.</p> <p>Sometimes, however, one of these two symbols is missing in the document, or the encoder wants to provide additional (often visual) information about the slur or tie. In these cases, using an attribute is not an adequate solution. Therefore, MEI offers dedicated <gi scheme="MEI">tie</gi> and <gi scheme="MEI">slur</gi> elements. A third element, <gi scheme="MEI">phrase</gi>, is used to identify a unified melodic idea (in German: <hi rend="italic">Phrasierungsbogen</hi>), whereas the <gi scheme="MEI">slur</gi> element is used as a generic element for all curved lines (in German: <hi rend="italic">Bogensetzung</hi>) except ties. All three elements have nearly identical models.</p> <p>Another reason for using elements instead of attributes for ties, slurs, and phrase marks is that only elements may be combined with the functionality provided in chapters <ptr target="#editTrans"/> and <ptr target="#critApp"/> of these Guidelines.</p> <p>Although these elements are allowed within a <gi scheme="MEI">layer</gi> to accommodate unmeasured notation, by convention in CMN they are normally placed inside <gi scheme="MEI">measure</gi>, after the encoding of staves, alongside other so-called ‘control events’.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <layer> <note dur="4" oct="5" pname="c"/> <note dur="4" oct="4" pname="f"/> <note dur="4" oct="4" pname="g"/> <note dur="4" oct="4" pname="c"/> </layer> </staff> <slur/> <tempo/> <dynam/> </measure> </egXML> </figure> </p> <p>Obviously, to be complete the slur in the above example needs to be ‘attached’ to the notes somehow. The ‘vertical assignment’ can be indicated for the example above using the <att>staff</att> and <att>layer</att> attributes like so:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><slur layer="1" staff="1"/> </egXML> </figure> </p> <p>For the ‘horizontal assignment’, the encoder may choose between two different mechanisms. The first uses two timestamp attributes as described in section <ptr target="#cmnTstamp"/>. The start and end points of the slur may be indicated thusly:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><slur layer="1" staff="1" tstamp="1" tstamp2="0m+4"/> </egXML> </figure> </p> <p>By using <att>tstamp</att> and <att>tstamp2</att> attributes, the encoder denotes a rather loose connection – the slur (or tie) is attached to a certain position in the measure, not to a specific note or chord. If the encoder wants to specify a close connection to a particular event, the <att>startid</att> and <att>endid</att> attributes may be used instead. Here, the <att>xml:id</att>s of the first and last note of the slur are referenced. This mechanism also allows the crossing of layers and staves.</p> <p>For human readability, it is recommended to encode <gi scheme="MEI">slur</gi>, <gi scheme="MEI">tie</gi> and <gi scheme="MEI">phrase</gi> features in the <gi scheme="MEI">measure</gi> where they begin; that is, in the measure that holds the element referenced by <att>startid</att>. On the other hand, for machine processability, it may be desirable to place <gi scheme="MEI">slur</gi>, <gi scheme="MEI">tie</gi>, and <gi scheme="MEI">phrase</gi> elements in the measure <hi rend="italic">where they end</hi> or even in the <hi rend="italic">last measure</hi> regardless of their beginning and ending points in the music. This last option makes all references contained within these elements ‘back references’. Back references are necessary when using processing software that treats the encoded file as a stream; that is, programs that process the file without creating an in-memory representation of its contents.</p> <p>When using the <gi scheme="MEI">tie</gi>, <gi scheme="MEI">slur</gi> or <gi scheme="MEI">phrase</gi> elements, the curvature of the line may be described using the <att>curvedir</att>, <att>bulge</att> and <att>bezier</att> attributes. Whereas the first attribute allows only specification of the slur’s vertical placement, the others give increasingly more precise control of the curve.</p> <p>If the encoder wishes to draw attention to the appearance of a slur or tie in a given source, the <att>facs</att> attribute may be used instead of (or in addition to) the curve description attributes to point to a graphic image or a zone within an image (see <ptr target="#facsimiles"/>).</p> </div> <div xml:id="cmnDynam" type="div3"> <head>Dynamics in CMN</head> <p>Common Music Notation provides two different methodologies for expressing the volume of a note, phrase, section, etc. The first is a verbal instruction providing such information in human language, possibly in an abbreviated form. An example is the word <hi rend="italic">piano</hi>, indicating a quiet volume, often abbreviated as <hi rend="italic">p</hi>. In MEI, verbal instructions like this are encoded using the <gi scheme="MEI">dynam</gi> element from the Shared module (see chapter <ptr target="#shared"/>): <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="false"><dynam>p</dynam> </egXML> </figure> </p> <p>By convention, <gi scheme="MEI">dynam</gi> elements, like <gi scheme="MEI">slur</gi> and other elements belonging to the <ident type="class">model.controlEventLike</ident> class, are encoded at the end of the <gi scheme="MEI">measure</gi> to which they belong. This requires <gi scheme="MEI">dynam</gi> to be assigned to a certain <gi scheme="MEI">staff</gi> using the <att>staff</att> attribute, whose value refers to the target element’s <att>n</att> attribute. In the absence of other information, all layers within the staff are assumed to have the same dynamic marking.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><dynam staff="1" tstamp="1">p</dynam> </egXML> </figure> </p> <p>However, when the layers of a staff have different dynamic indications, the <att>layer</att> attribute may be used to associate a dynamic marking with a particular layer:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <dynam layer="1" tstamp="1">p</dynam> <dynam layer="2" tstamp="1">mf</dynam> </measure> </egXML> </figure> </p> <p>A suitable MIDI value may be assigned to a dynamic marking using the <att>val</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><dynam layer="1" place="above" staff="2" tstamp="1" val="84">f</dynam> </egXML> </figure> </p> <p>The location of a dynamic marking in relation to a staff may be specified using the <att>place</att> attribute, which may be given as <val>above</val>, <val>within</val>, or <val>below</val> the staff:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><dynam place="above" staff="1" tstamp="1">p</dynam> </egXML> </figure> </p> <p>Dynamics must also be associated with a particular time point in a measure, using the <att>tstamp</att>, or with a particular event, using the <att>startid</att> attribute. Linking a control event with measures and events is discussed in section <ptr target="#cmnTstamp"/>:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="false"><measure> <staff n="1"> <!-- content omitted --> </staff> <staff n="2"> <layer n="1"> <note dur="2" oct="4" pname="c" stem.mod="2slash"/> <note dur="2" oct="4" pname="e" stem.mod="2slash"/> </layer> <layer n="2"> <!-- content omitted --> </layer> </staff> <dynam layer="1" place="above" staff="2" tstamp="1">p</dynam> <dynam layer="1" place="above" staff="2" tstamp="2.5">cresc. poco a poco</dynam> </measure> </egXML> </figure> </p> <p>Dynamics which do not have an explicit endpoint are often referred to as ‘instantaneous’. On the other hand, some dynamic directions indicate a continuous change that must have a defined end point. It is possible to specify the logical scope of continuous dynamic marks using the attributes <att>tstamp2</att>, <att>dur</att>, <att>dur.ges</att>, or <att>endid</att>. Additionally a corresponding ending value for MIDI output may be given in the <att>val2</att> attribute.</p> <p>To capture the fact that the <hi rend="italic">crescendo</hi> in the example above continue until the first beat of the next measure, they may be marked:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- using the tstamp2 attribute --><dynam place="above" staff="2" tstamp="2.5" tstamp2="1m+1">cresc. poco a poco</dynam> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- using the endid attribute --><dynam endid="#ID_of_ending_note" place="above" staff="2" tstamp="2.5">cresc. poco a poco</dynam> </egXML> </figure> </p> <p>Any combination of <att>tstamp</att>, <att>startid</att>, <att>tstamp2</att>, and <att>endid</att> attributes may be used to define the scope of a dynamic, although the <att>tstamp</att> and <att>tstamp2</att> or the <att>startid</att> and <att>endid</att> combinations are the most logical combinations. For example, the following alternatives are all possibilities for encoding up a crescendo. The choice of attributes is often task or processor dependent.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- tstamp attribute indicates starting point, dur attribute marks the end --><dynam place="above" staff="2" tstamp="3" dur="1">cresc. poco a poco</dynam> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- tstamp attribute indicates starting point, endid attribute marks the end --><dynam endid="#ID_of_last_note" place="above" staff="2" tstamp="3">cresc. poco a poco</dynam> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- startid attribute indicates starting point, tstamp2 attribute marks the end --><dynam place="above" staff="2" startid="#ID_of_first_note" tstamp2="1m+3">cresc. poco a poco</dynam> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- startid attribute indicates starting point, endid attribute marks the end --><dynam endid="#ID_of_last_note" place="above" staff="2" startid="#ID_of_first_note">cresc. poco a poco</dynam> </egXML> </figure> </p> <p>All musical elements affected by the <gi scheme="MEI">dynam</gi> may be explicitly specified using the <att>plist</att> attribute, which contains <att>xml:id</att> attribute value references:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><dynam endid="#note4" place="above" plist="#note1 #note2 #note3 #note4" staff="2" startid="#note1">cresc. poco a poco</dynam> </egXML> </figure> </p> <p>It is recommended that the list of references in <att>plist</att> include all participants in the dynamic marking, including the first and last notes as in the preceding example, even though they are duplicated by <att>startid</att> and <att>endid</att> attributes.</p> <p>In addition to verbal instructions, Common Music Notation uses graphical symbols to indicate ‘continuous’ dynamics. These crescendo and decrescendo (or diminuendo) symbols are encoded in MEI using the <gi scheme="MEI">hairpin</gi> element. It also is a member of the <ident type="class">model.controlEventLike</ident> class, which means it too is used just before the close of a <gi scheme="MEI">measure</gi> element, following the encoding of all staves. The required attribute <att>form</att> specifies the direction of the symbol by taking one of two possible values: <val>cres</val> (growing louder) or <val>dim</val> (getting softer).</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="false"><hairpin form="cres"/> </egXML> </figure> </p> <p>Marking the logical extent of hairpins is possible using the same attributes as for <gi scheme="MEI">dynam</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><hairpin form="cres" layer="1" place="above" staff="2" tstamp="2.5" tstamp2="1m+1"/> </egXML> </figure> </p> <p>The following example from <ref target="https://en.wikipedia.org/wiki/B%C3%A9la_Bart%C3%B3k">Béla Bartók’s</ref> <hi rend="italic">Mikrokosmos</hi>, Sz.107 shows a <hi rend="italic">diminuendo</hi> between two staves that begins on the first beat (in the current measure) and ends on the first one in the penultimate measure. The duration is highlighted with a dashed line, which can be indicated with the <att>extender</att> attribute.</p> <p> <figure> <head>A diminuendo in Bartók’s In Phrygian Mode</head> <graphic url="../images/ExampleImages/dynamics.1.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><dynam tstamp="1" tstamp2="2m+1" extender="true" place="between" staff="1 2">dim.</dynam> </egXML> </figure> </p> </div> <div xml:id="cmnTuplets" type="div3"> <head>Tuplets</head> <p>Tuplets indicate a localized change of meter; that is, a given duration in the regular meter is divided between a group of notes with irregular (according to the current meter) rhythmic values. The most common tuplet is a so-called ‘triplet’, in which three notes take the time normally occupied by two.</p> <p>The relation of the tuplet to the underlying meter is specified using the <att>num</att> and <att>numbase</att> attributes, where <att>num</att> specifies the number of replacing notes and <att>numbase</att> specifies the number of notes <hi rend="italic">of the same duration</hi> to be replaced. For example, when three eighth notes replace one quarter note in common time, <att>num</att> takes a value of "3", whereas <att>numbase</att> reads "2", because a quarter note in common time is normally divided into two eighths. When three quarters replace two in the same meter, <att>numbase</att> also reads "2". The combination of these attributes may be read as "3 in the time of 2" in either case.</p> <p> <figure> <head>Tuplet rhythms from Maurice Ravel’s Boléro</head> <graphic url="../images/ExampleImages/tuplets.1.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><tuplet num="3" numbase="2"> <note dur="16"/> <note dur="16"/> <note dur="16"/> </tuplet> </egXML> </figure> </p> <p>The duration of the entire tuplet may be encoded using the usual ‘power of 2’ values, <abbr>e.g.</abbr>, 1, 2, 4, etc., in the <att>dur</att> attribute if necessary.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <tuplet dur="2" num="3" numbase="2"> <note dur="4" oct="4" pname="g"/> <note accid="s" dur="4" oct="4" pname="f"/> <note dur="4" oct="4" pname="g"/> </tuplet> <note dur="2" oct="4" pname="d"/> </layer> </egXML> </figure> </p> <p>Tuplets are often highlighted using brackets above or below the affected notes. The presence and position of these brackets can be encoded using the <att>bracket.place</att> (above / below) and <att>bracket.visible</att> (true / false) attributes.</p> <p>Usually, however, tuplets are rendered with a bracket (<att>bracket.visible</att>="true") and a single number (<att>num.format</att>="count" and <att>num.visible</att>="true"), as seen in the example above. However, the number-to-numbase ratio may be provided in addition to, or in some cases as a replacement for, the bracket. The <att>num.format</att> attribute indicates whether a plain number (the value of <att>num</att>) or a ratio (comprised of <att>num</att> and <att>numbase</att>, <abbr>e.g.</abbr>, "3:2") should be displayed and <att>num.visible</att> indicates the general presence of such a number.</p> <p>Further visual control comes with the <att>num.place</att> and <att>bracket.place</att> attributes, that allow specific placement of the number and the bracket <val>above</val> or <val>below</val> the staff.</p> <p>In addition to <gi scheme="MEI">note</gi> elements, <gi scheme="MEI">tuplet</gi> may contain other elements, such as <gi scheme="MEI">rest</gi> or <gi scheme="MEI">space</gi>, to match the content of a source document or an intended rendering. In particular, the <gi scheme="MEI">beam</gi> element is allowed so that custom beaming may be indicated, <abbr>e.g.</abbr>, a septuplet may be divided into a group of three plus a group of four notes.</p> <p>The <gi scheme="MEI">tuplet</gi> element may also be used for repetition of the same pitch; that is, a single note or chord may be the only content of the tuplet. In some cases, optical music recognition software may treat these instances as bowed tremolandi due to the knowledge of the complete semantics of the notation at the time of recognition. However, marking these as tuplets is the recommended practice.</p> <p>In some situations, a tuplet is made up of events in different measures. As this raises the issue of non-concurrent hierarchies, it is not possible to encode such situations with the <gi scheme="MEI">tuplet</gi> element described above. Therefore, MEI offers the <gi scheme="MEI">tupletSpan</gi> element, which is member of the <ident type="class">model.controlEventLike</ident> class. It is nested inside of <gi scheme="MEI">measure</gi>, following all the measure’s <gi scheme="MEI">staff</gi> children. It uses the same attributes as <gi scheme="MEI">tuplet</gi> to describe tuplets, but instead of nesting all affected notes inside itself, it references the <att>xml:id</att> values of all affected notes in its <att>plist</att> attribute and the initial and terminal notes of the tuplet using <att>startid</att> and <att>endid</att> attributes. This configuration allows tuplets to cross beams or measure boundaries. The following example demonstrates a typical example of such hierarchy-crossing tuplets:</p> <p> <figure> <head>Hierarchy-crossing tuplets</head> <graphic url="../images/ExampleImages/tuplets.2.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><tupletSpan num="3" numbase="2" startid="#rest" endid="#note2" plist="#rest #note1 #note2"/> </egXML> </figure> </p> </div> <div xml:id="cmnArtic" type="div3"> <head>Articulation and Performance Instructions in CMN</head> <p>This section introduces elements and attributes which may hold CMN-specific performance instructions. The functionality described herein is related to the <att>artic</att> attribute and <gi scheme="MEI">artic</gi> element introduced in <ptr target="#shared"/>. The following elements are relevant in this context:</p> <p> <specList> <specDesc key="arpeg"/> <specDesc key="bend"/> <specDesc key="bTrem"/> <specDesc key="fermata"/> <specDesc key="fTrem"/> <specDesc key="gliss"/> <specDesc key="octave"/> </specList> </p> <div xml:id="cmnArpegGliss" type="div4"> <head>Arpeggio and Glissando</head> <p>In CMN, the notes of a chord are sometimes performed successively rather than simultaneously. This behavior, called arpeggiation, is normally indicated using a vertical wavy line preceding the chord. MEI offers the <gi scheme="MEI">arpeg</gi> element to describe arpeggios. This element is a member of the <ident type="class">model.controlEventLike.cmn</ident> class and, like other members of this class, uses the <att>staff</att>, <att>layer</att> and <att>tstamp</att> or the <att>startid</att> and <att>plist</att> attributes to connect it to the affected chord.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <staff n="1"> <!-- content omitted --> </staff> <staff n="2"> <layer> <note dur="4"/> <note dur="4"/> <chord dur="4"> <!-- notes omitted --> </chord> <note/> </layer> </staff> <arpeg staff="2" tstamp="3"/> </measure> </egXML> </figure> </p> <p>For arpeggios that involve chords spanning multiple staves as a continuous arpeggio (instead of two separate arpeggios), the <att>plist</att> attribute should be used to point to all affected <gi scheme="MEI">chord</gi> and single <gi scheme="MEI">note</gi> elements’ <att>xml:id</att> attributes. Therefore, the use of the <att>plist</att> attribute is sufficient in many cases, so that other attributes from above may be omitted.</p> <p> <figure> <head>Spanning arpeggios in Liszt’s Mazeppa study</head> <graphic url="../images/ExampleImages/LisztMazeppa.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><arpeg xml:id="ex-0149852838" plist="#ex-0731379794 #ex-1553574041" /> <arpeg xml:id="ex-1483377242" plist="#ex-1474174387 #ex-0553655856" /> </egXML> </figure> </p> <p>The usual direction for the performance of an arpeggio is from lowest note to highest, but this is not always the case. The customary signal of an downward arpeggio is an arrowhead added to the bottom of the wavy line. The indication of the presence of an arrowhead and the direction of the arpeggio are handled separately, however. The <att>arrow</att> attribute indicates the presence of an arrowhead in the arpeggiation sign, while the <att>order</att> attribute records the preferred sequence of notes. <ref target="https://en.wikipedia.org/wiki/B%C3%A9la_Bart%C3%B3k">Béla Bartók</ref> uses a wavy line behind the chord to indicate a downward arpeggio. In such cases, the <att>ho</att> attribute can be used to indicate the offset from the usual position.</p> <p>The following examples illustrate various ways in which the arrow and order attributes may be employed. The default visual rendition and performance are assumed in the absence of both attributes, while the typical downward arpeggio is indicated by the presence of both attributes. The last two possibilities occur less frequently, but are sometimes appropriate: The presence of the arrow attribute without the order attribute may be used in those cases where the arrowhead is redundant but is added to the symbol for the sake of consistency or when the direction of successive arpeggios changes frequently. The last possibility, an order attribute without an arrow attribute, is ambiguous; however, it can be used as an encoding shortcut since a downward arpeggio must have a visual indication of its direction to distinguish it from the upward arpeggio; therefore, the presence of the arrowhead can be implied.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- default visualization and performance --><arpeg staff="2" tstamp="3"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- downward arpeggio with arrow added to visual symbol --><arpeg arrow="true" order="down" staff="2" tstamp="3"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- default rendition with (redundant) arrow added to the top of the visual symbol --><arpeg arrow="true" staff="2" tstamp="3"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><!-- downward arpeggio with no visual indication of order --><arpeg order="down" staff="2" tstamp="3"/> </egXML> </figure> </p> <p>A third, and somewhat counter-intuitive, value for <att>order</att>, <val>nonarp</val>, indicates that no arpeggio shall be performed. Normally rendered as a bracket instead of a wavy line, this form of arpeggio is used to indicate a non-arpeggiated chord intervening in a sequence of arpeggiated ones. This is common in music for the harp, where arpeggiation is the usual method of performing chords and deviation from the norm must be explicitly indicated.</p> <p>Whereas an arpeggio ‘staggers’ the onset times of the notes of a chord, a glissando denotes a situation where the pitch ‘slides’ from one note to another. It makes no difference whether this slide produces distinct intermediate pitches (as on the piano) or not (as on the trombone), though the latter is sometimes referred to as portamento. The visual appearance of a glissando, which MEI encodes as <gi scheme="MEI">gliss</gi>, is normally a line connecting two notes in the glissando.</p> <p> <figure> <head>A simple glissando in Tárrega’s Alborada from a leading grace note</head> <graphic url="../images/ExampleImages/TarregaAlborada.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><gliss startid="#startgliss" endid="#endgliss"/> </egXML> </figure> </p> <p>The <gi scheme="MEI">gliss</gi> element is a member of the <ident type="class">model.controlEventLike</ident> class and therefore, like other control events, it occurs inside a measure after the staves and uses its <att>staff</att>, <att>layer</att>, <att>tstamp</att>, <att>tstamp2</att>, <att>startid</att> and <att>endid</att> attributes to connect it to the affected notes or chords. It is a semantic error not to specify a starting point attribute. The visual appearance of the indicating line may be recorded in the <att>lform</att> and <att>lwidth</att> attributes.</p> </div> <div xml:id="cmnBend" type="div4"> <head>Bend</head> <p>A bend is a variation in pitch (often microtonal) upwards or downwards during the course of a note. Typically, the performer attacks the note at ‘true’ pitch, changes the intonation, then returns to true pitch. The <gi scheme="MEI">bend</gi> element can also be used for so-called scoop, plop, falloff, and doit performance effects. It should <hi rend="italic">not</hi> be used for laissez vibrer (l.v.) indications. As with other elements in the <ident type="class">model.controlEventLike</ident> class, the starting point of the bend may be indicated by either a <att>tstamp</att>, <att>tstamp.ges</att>, <att>tstamp.real</att> or <att>startid</att> attribute. It is a semantic error not to specify a starting attribute.</p> </div> <div xml:id="cmnTrem" type="div4"> <head>Tremolandi</head> <p>CMN has two slightly different concepts which are both called tremolo. The first is a rapid repetition of a single pitch or chord, whereas the second is a rapid alternation between two different notes or chords. In addition, either species of tremolo may be measured or unmeasured. A measured tremolo is an abbreviation for written-out notation; that is, the tremolo is intended to be perceived as notes with distinct rhythmic values. On the other hand, in an unmeasured tremolo no specific number of alternations is intended.</p> <p>For the repetition of a single note or chord, MEI offers the <gi scheme="MEI">bTrem</gi> (bowed tremolo) element, which is a member of the <ident type="class">model.eventLike.cmn</ident> class, meaning it is encoded following the normal course of musical events within a <gi scheme="MEI">layer</gi>. It holds exactly one <gi scheme="MEI">note</gi> or <gi scheme="MEI">chord</gi> element that is to be repeated.</p> <p> <figure> <head>Bowed tremolandi in Schubert’s last string quartet</head> <graphic url="../images/ExampleImages/SchubertD887.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><layer> <bTrem unitdur="32"> <note dur="2" oct="4" pname="e" stem.mod="3slash"> <accid accid="n"/> </note> </bTrem> <bTrem unitdur="32"> <chord dur="4" stem.mod="3slash"> <note oct="4" pname="e"/> <note oct="4" pname="d"> <accid accid="s"/> </note> </chord> </bTrem> <bTrem unitdur="32"> <chord dur="4" stem.mod="3slash"> <note oct="4" pname="e"/> <note oct="4" pname="c"> <accid accid="s"/> </note> </chord> </bTrem> </layer> </egXML> </figure> </p> <p>The <att>unitdur</att> attribute value indicates the exact note values in an aural rendition of a measured tremolo, <abbr>i.e.</abbr>, quarters, 8ths, and so on. The <att>stem.mod</att> attribute must also be explicity set on the child <gi scheme="MEI">note</gi> or <gi scheme="MEI">chord</gi> element for a complete visual representation. The example above shows a short excerpt from the second movement of <ref target="https://en.wikipedia.org/wiki/Franz_Schubert">Franz Schubert’s</ref> <ref target="https://en.wikipedia.org/wiki/String_Quartet_No._15_(Schubert">String Quartet in G major, D. 887</ref>).</p> <p>However, the number of slashes present on the note may disagree with the number of slashes that should be present according to the <att>unitdur</att> attribute, especially in music manuscripts.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><bTrem unitdur="64"> <note dur="4" oct="4" pname="g" stem.mod="2slash"/> </bTrem> </egXML> </figure> </p> <p>Note that within beams the number of slashes should be adjusted anyway.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><beam> <bTrem unitdur="32"> <note dots="1" dur="8" oct="4" pname="b" stem.mod="2slash"/> </bTrem> <bTrem unitdur="32"> <note dots="1" dur="16" oct="4" pname="b" stem.mod="1slash"/> </bTrem> </beam> </egXML> </figure> </p> <p>The <gi scheme="MEI">bTrem</gi> element can be used as shorthand for a tuplet consisting of repetitions of a single note or chord. This kind of markup may be the result of an optical music recognition process in which complete semantics cannot be determined <hi rend="italic">a priori</hi>. When used this way, the <att>num</att> attribute on <gi scheme="MEI">bTrem</gi> can record a number to be rendered along with the pseudo-tuplet. In spite of this capability, the <gi scheme="MEI">tuplet</gi> element is preferred. This makes the following examples’ visual appearance equal, but not necessarily their semantics.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><bTrem num="3"> <note dur="4" oct="4" pname="g" stem.mod="3slash"/> </bTrem> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><tuplet num="3" numbase="2"> <bTrem> <note dur="4" oct="4" pname="g" stem.mod="3slash"/> </bTrem> </tuplet> </egXML> </figure> </p> <p>In the case of alternating pitches, MEI offers the <gi scheme="MEI">fTrem</gi> (fingered tremolo) element. While it mostly behaves the same as <gi scheme="MEI">bTrem</gi>, a fingered tremolo requires exactly two child elements, either being a <gi scheme="MEI">note</gi> or <gi scheme="MEI">chord</gi>. The <att>unitdur</att> attribute value indicates the exact note values in an aural rendition of a measured tremolo, <abbr>i.e.</abbr>, 4ths, 8ths, 16ths, etc. The number of beams present in the source is captured by the <att>beams</att> attribute.</p> <p> <figure> <head>Fingered tremolos</head> <graphic url="../images/ExampleImages/tremolos.2.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><fTrem unitdur="32"> <note pname="f" oct="4" dur="4"/> <note pname="a" oct="4" dur="4"/> </fTrem> </egXML> </figure> </p> <p>Similar to <gi scheme="MEI">bTrem</gi>, here the number of beams present may disagree with the rhythmic value indicated by the <att>unitdur</att> attribute, especially in manuscript sources. The number of so-called ‘floating’ beams, which are not attached to stems, may be encoded in the <att>beams.float</att> attribute.</p> <p> <figure> <head>Tremolos with floating beams</head> <graphic url="../images/ExampleImages/tremolos.3.png"/> </figure> </p> </div> <div xml:id="cmnFermata" type="div4"> <head>Fermata</head> <p>A very common feature of music notation from the CMN period is the so-called ‘fermata’ (or ‘corona’ in Italian). It is usually written as a dot above or below an arc. It may stand above or below the staff it affects with its ‘open’ side usually facing towards the staff. A fermata indicates that a related note or rest should be held longer than its written duration would normally require. Sometimes, a fermata occurs over or under a bar line to indicate a pause or even the end of a phrase or section.</p> <p> <figure> <head>The probably most famous fermatas in history from Beethoven’s fifth symphony</head> <graphic url="../images/ExampleImages/Beethoven.png"/> </figure> </p> <p>In MEI, fermatas may be encoded using an attribute on elements like <gi scheme="MEI">note</gi>, <gi scheme="MEI">chord</gi> or <gi scheme="MEI">rest</gi>. This attribute allows placement of a fermata above or below the element to which it’s attached.</p> <p> <figure> <head>Fermatas in Mozart’s String quartet K. 428 indicating general pauses</head> <graphic url="../images/ExampleImages/MozartK428.4.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><mRest fermata="above"/> </egXML> </figure> </p> <p>However, if there is further (visual) information about the fermata that should be addressed in the encoding, MEI offers the <gi scheme="MEI">fermata</gi> element. This element, which is a member of the <ident type="class">model.controlEventLike.cmn</ident> class and therefore requires the use of such attributes as <att>staff</att>, <att>layer</att>, <att>tstamp</att> and <att>startid</att>, allows specification of the orientation of the fermata using its <att>form</att> attribute. In addition, the <att>shape</att> attribute may be used to indicate whether the fermata is rendered as the common semicircle <graphic rend="smufl" url="https://edirom.de/smufl-browser/E4C0.png"/> ("curved"), a semisquare <graphic rend="smufl" url="https://edirom.de/smufl-browser/E4C6.png"/> ("square"), or a triangle <graphic rend="smufl" url="https://edirom.de/smufl-browser/E4C4.png"/> ("angular"). If the fermata should be rendered using some other symbol, a user-defined symbol may be referred to using an <att>altsym</att> attribute or the <att>glyph.name</att> and <att>glyph.num</att> attributes respectively.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><fermata form="inv" place="above" shape="square" staff="2" tstamp="4"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><fermata altsym="#myFermata.1" place="above" staff="2" tstamp="5"/> </egXML> </figure> </p> </div> <div xml:id="cmnOctave" type="div4"> <head>Octave Shift</head> <p>An indication that a passage should be performed one or more octaves above or below its written pitch is represented by the <gi scheme="MEI">octave</gi> element.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Octave shift example</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>Example use of the "octave" element for octave shifts. For correct MIDI output, the "oct.ges" attribute needs to be provided.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef n="1"> <staffGrp> <staffDef n="1" lines="5" clef.shape="G" clef.line="2" /> </staffGrp> </scoreDef> <?edit-start?> <section> <measure n="1"> <staff n="1"> <layer n="1"> <note dur="2" oct="6" pname="e" /> <beam> <note dur="8" oct="6" pname="f" /> <note dur="8" oct="6" pname="a" /> <note dur="8" oct="6" pname="g" /> <note dur="8" oct="6" pname="b" /> </beam> </layer> </staff> </measure> <measure right="dbl" n="2"> <staff n="1"> <layer n="1"> <note dur="1" oct="7" pname="c" /> </layer> </staff> </measure> <measure n="3"> <staff n="1"> <layer n="1"> <note xml:id="n1" dur="2" oct.ges="6" oct="5" pname="e" /> <beam> <note dur="8" oct.ges="6" oct="5" pname="f" /> <note dur="8" oct.ges="6" oct="5" pname="a" /> <note dur="8" oct.ges="6" oct="5" pname="g" /> <note dur="8" oct.ges="6" oct="5" pname="b" /> </beam> </layer> </staff> <octave startid="#n1" endid="#n2" dis="8" dis.place="above" /> </measure> <measure right="dbl" n="4"> <staff n="1"> <layer n="1"> <note xml:id="n2" dur="1" oct.ges="7" oct="6" pname="c" /> </layer> </staff> </measure> <measure n="5"> <staff n="1"> <layer n="1"> <note xml:id="n3" dur="2" oct.ges="2" oct="3" pname="e" /> <beam> <note dur="8" oct.ges="2" oct="3" pname="f" /> <note dur="8" oct.ges="2" oct="3" pname="a" /> <note dur="8" oct.ges="2" oct="3" pname="g" /> <note dur="8" oct.ges="2" oct="3" pname="b" /> </beam> </layer> </staff> <octave startid="#n3" endid="#n4" dis="8" dis.place="below" /> </measure> <measure right="dbl" n="6"> <staff n="1"> <layer n="1"> <note xml:id="n4" dur="1" oct.ges="3" oct="4" pname="c" /> </layer> </staff> </measure> <measure n="7"> <staff n="1"> <layer n="1"> <note xml:id="n5" dur="2" oct.ges="2" oct="4" pname="e" /> <beam> <note dur="8" oct.ges="2" oct="4" pname="f" /> <note dur="8" oct.ges="2" oct="4" pname="a" /> <note dur="8" oct.ges="2" oct="4" pname="g" /> <note dur="8" oct.ges="2" oct="4" pname="b" /> </beam> </layer> </staff> <octave startid="#n5" tstamp2="1m+4.0000" dis="15" dis.place="below" /> </measure> <measure right="dbl" n="8"> <staff n="1"> <layer n="1"> <note xml:id="n6" dur="1" oct.ges="3" oct="5" pname="c" /> </layer> </staff> </measure> <measure n="9"> <staff n="1"> <layer n="1"> <note xml:id="n7" dur="2" oct.ges="2" oct="3" pname="e" /> <beam> <note dur="8" oct.ges="2" oct="3" pname="f" /> <note dur="8" oct.ges="2" oct="3" pname="a" /> <note dur="8" oct.ges="2" oct="3" pname="g" /> <note dur="8" oct.ges="2" oct="3" pname="b" /> </beam> </layer> </staff> <octave startid="#n7" endid="#n8" lwidth="0.5000vu" dis="8" dis.place="below" /> </measure> <measure right="dbl" n="10"> <staff n="1"> <layer n="1"> <note xml:id="n8" dur="1" oct.ges="3" oct="4" pname="c" /> </layer> </staff> </measure> <measure n="11"> <staff n="1"> <layer n="1"> <note xml:id="n9" dur="2" oct.ges="4" oct="3" pname="e" /> <beam> <note dur="8" oct.ges="4" oct="3" pname="f" /> <note dur="8" oct.ges="4" oct="3" pname="a" /> <note dur="8" oct.ges="4" oct="3" pname="g" /> <note dur="8" oct.ges="4" oct="3" pname="b" /> </beam> </layer> </staff> <octave startid="#n9" tstamp2="1m+4.0000" lform="solid" dis="8" dis.place="above" /> </measure> <measure right="dbl" n="12"> <staff n="1"> <layer n="1"> <note dur="1" oct.ges="5" oct="4" pname="c" /> </layer> </staff> </measure> </section> <?edit-end?> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>Its <att>dis</att> and <att>dis.place</att> attributes record the amount and direction of displacement, respectively. The <att>lform</att> attribute captures the appearance of the continuation line associated with the octave displacement. The starting point of the octave displacement may be indicated by either a <att>tstamp</att>, <att>tstamp.ges</att>, <att>tstamp.real</att> or <att>startid</att> attribute, while the ending point may be recorded by either a <att>tstamp2</att>, <att>dur</att>, <att>dur.ges</att> or <att>endid</att> attribute. It is a semantic error not to specify one starting-type attribute and one ending-type attribute.</p> </div> </div> <div xml:id="cmnInstr" type="div3"> <head>Instrument-specific Symbols in CMN</head> <p>CMN contains a number of symbols which are closely related to a specific instrument. MEI offers elements for three of these symbols, namely breath marks, harp pedal diagrams, and piano pedals.</p> <div xml:id="cmnBreath" type="div4"> <head>Breath Marks</head> <p>A breath mark indicates a point at which the performer of a wind instrument or singer may breathe. It is sometimes also used to indicate a short pause or break for instruments <hi rend="italic">not</hi> requiring breath, which allows it to also serve as a guide to phrasing. In MEI, breath marks are encoded using the <gi scheme="MEI">breath</gi> element, which is a member of <ident type="class">model.controlEventLike.cmn</ident>. It is a semantic error not to specify a starting point attribute.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <layer> <note dur="2" oct="3" pname="g" syl="Wald,"/> <note dur="4" oct="3" pname="c" syl="so"/> </layer> </staff> <breath staff="1" tstamp="1.5"/> </measure> </egXML> </figure> </p> <p>The usual sign for the breath mark is a comma; however, other visual forms of the breath mark may be indicated using the <att>altsym</att> attribute (see chapter <ptr target="#userSymbols"/> for further details).</p> </div> <div xml:id="cmnHarp" type="div4"> <head>Harp Pedals</head> <p>Modern harps have seven pedals which allow adjustment of their strings to different pitches. The settings for these pedals occur at the beginning of the harp notation and/or whenever it is necessary to change the harp’s tuning. These settings may be rendered using letter pitches (in the order of the pedals from left to right) or in a diagrammatic fashion, such as the form invented by <ref target="https://en.wikipedia.org/wiki/Carlos_Salzedo">Carlos Salzedo</ref>.</p> <p>In MEI, harp pedal settings are encoded using the <gi scheme="MEI">harpPedal</gi> element. It is a member of the <ident type="class">model.controlEventLike.cmn</ident> class and is therefore placed within <gi scheme="MEI">measure</gi>, following all <gi scheme="MEI">staff</gi> children. The <att>staff</att> and <att>layer</att> attributes may be used to assign it to a certain <gi scheme="MEI">staff</gi> or <gi scheme="MEI">layer</gi>. Either a <att>tstamp</att> or <att>startid</att> attribute must be used to indicate the placement within the measure (see <ptr target="#cmnTstamp"/> and <ptr target="#linkingdata"/> for further details about those linking mechanisms).</p> <p>The musical intention of the element is described using the <att>c</att>, <att>d</att>, <att>e</att>, <att>f</att>, <att>g</att>, <att>a</att> and <att>b</att> attributes, which affect the corresponding strings of the harp. All of these attributes may take the values <val>f</val> (flat), <val>s</val> (sharp) or <val>n</val> (natural), where a natural is the default value, which is assumed when one of these attributes is not specified.</p> <p> <figure> <head>Harp pedal diagrams</head> <graphic url="../images/ExampleImages/harppedal.1.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <!-- staves omitted --> <harpPedal tstamp="1" c="s" b="f" e="f"/> </measure> </egXML> </figure> </p> <p>In the first diagram of the preceding example, the B, and E pedals are in the flat position, while the C pedal is in sharp position. The other, non-specified pedals are in the natural position.</p> </div> <div xml:id="cmnPedal" type="div4"> <head>Piano Pedal</head> <p>Music for piano also often includes indications of the use of pedals. In MEI, these symbols are encoded using the <gi scheme="MEI">pedal</gi> element. As a member of the <ident type="class">model.controlEventLike.cmn</ident> class, it is located within <gi scheme="MEI">measure</gi> and refers to a staff, layer and timestamp using the <att>staff</att>, <att>layer</att> and <att>tstamp</att> attributes. Alternatively, the <att>startid</att> attribute may be used to identify a <gi scheme="MEI">note</gi> or <gi scheme="MEI">chord</gi> to which the mark should be assigned.</p> <p>The meaning of the mark is captured using the <att>dir</att> attribute, which provides the following values:</p> <list type="gloss"> <label>down</label> <item>depress the pedal</item> <label>up</label> <item>release the pedal</item> <label>bounce</label> <item>release, then immediately depress the pedal again</item> <label>half</label> <item>depress the pedal half way</item> </list> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <!-- staves omitted --> <pedal dir="down" staff="2" tstamp="1"/> </measure> </egXML> </figure> </p> <p>To specify the pedal, that has to be used, the <att>func</att> attribute allows the following values:</p> <list type="gloss"> <label>sustain</label> <item>The sustain pedal, also referred to as the "damper" pedal, allows the piano strings to vibrate sympathetically with the struck strings. It is the right-most and the most frequently used pedal on modern pianos. (Often marked with: <graphic rend="smufl" url="https://edirom.de/smufl-browser/E650.png"/>)</item> <label>soft</label> <item>The soft pedal, sometimes called the "una corda", "piano", or "half-blow" pedal, reduces the volume and modifies the timbre of the piano. On the modern piano, it is the left-most pedal.</item> <label>sostenuto</label> <item>The sostenuto or tone-sustaining pedal allows notes already undamped to continue to ring while other notes are damped normally; that is, on their release by the fingers. This is usually the center pedal of the modern piano. (Often marked with: <graphic rend="smufl" url="https://edirom.de/smufl-browser/E659.png"/>)</item> <label>silent</label> <item>The silent or practice pedal mutes the volume of the piano so that one may practice quietly. It is sometimes a replacement for the sostenuto pedal, especially on an upright or vertical instrument.</item> </list> </div> <div xml:id="cmnFing" type="div4"> <head>Fingering</head> <p>A common feature for keyboard music is fingering, indicating the finger, which should be used to play a single note. Basic fingering can be encoded in MEI using the <gi scheme="MEI">fing</gi> element, which is a member of the <ident type="class">model.fingeringLike</ident> class, and thus part of the <ident type="class">model.controlEventLike</ident> class.</p> <p>The following example, taken from <ref target="https://en.wikipedia.org/wiki/Charles-Louis_Hanon">Charles-Louis Hanon’s</ref> <hi rend="italic">Le Pianiste virtuose</hi>, shows typical fingering:</p> <p> <figure> <head>Fingering in Hanon’s exercise no. 21</head> <graphic url="../images/ExampleImages/Hanon.21.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><fing startid="#ex_2099285249" place="above">1</fing> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><fing startid="#ex_0938118303" place="below">5</fing> </egXML> </figure> </p> </div> </div> <div xml:id="cmnOssia" type="div3"> <head>Ossia</head> <p>The term ossia, Italian for "or", denotes an alternative for a certain passage which is provided by the composer <hi rend="italic">without any preference</hi> of one alternative over another. An ossia often provides a simpler (easier to perform) version of the original content. Another frequent use case for ossia is the provision of indications about performance practice, such as an alternative version with ornamentation written out in full. In all cases, it is up to the performer to choose between the alternatives.</p> <p>Most often an ossia is rendered above the main staff on a reduced-size staff. Sometimes, however, the alternate material occurs on the same staff as the primary text, but in a separate layer. In this case, the alternative material is usually rendered in small-sized notation on the normal-sized staff. For both situations, MEI offers the <gi scheme="MEI">ossia</gi> element, which may be nested either inside <gi scheme="MEI">measure</gi> to reflect an ossia on a separate staff, or inside <gi scheme="MEI">staff</gi> to reflect an inline ossia in a separate layer. The following example demonstrates an ossia on a separate staff:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <!-- first staff, without ossia --> </staff> <ossia> <staff> <!-- alternative content on reduced-size staff --> </staff> <staff n="2"> <!-- original content on regular staff --> </staff> </ossia> <staff n="3"> <!-- third staff, without ossia --> </staff> </measure> </egXML> </figure> </p> <p>The example above demonstrates that only one of the two <gi scheme="MEI">staff</gi> elements within <gi scheme="MEI">ossia</gi> has an <att>n</att> attribute. This mechanism allows one to distinguish between the "regular" and the "alternative" content: The one bearing the <att>n</att> attribute goes in line with the preceding measure’s staff, the other one is printed in reduced size above. In this case, the vertical order of staves follows document order: The top-most staff is encoded as the first child, the lowest comes last. In combination with the presence of the <att>n</att> attribute, this allows the capture of multiple simultaneous ossia staves.</p> <p>All staves within <gi scheme="MEI">ossia</gi>, even the alternative ones without a direct reference, obey the definitions of the associated <gi scheme="MEI">staffDef</gi>, which can be derived from the value of the <att>n</att> attribute. Alternatively, a separate <gi scheme="MEI">staffDef</gi> may be given at the beginning of the contained <gi scheme="MEI">layer</gi> element(s).</p> <p>In case of an inline ossia, the whole setup of elements moves down one step in the hierarchy, as seen in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <!-- content omitted --> </staff> <staff n="2"> <ossia> <layer n="1"> <!-- original content in regular layer --> </layer> <layer> <!-- alternative content in separate layer --> </layer> </ossia> </staff> <staff n="3"> <!-- content omitted --> </staff> </measure> </egXML> </figure> </p> </div> <div xml:id="cmnCue" type="div3"> <head>Cue</head> <p>Cue notes are smaller notes that usually occur in an orchestral or vocal part and are not to be played or sung by the corresponding musician, but by other instruments or singers. Cue notes are used for orientation, <abbr>i.e.</abbr>, to follow the music during longer pauses and to find the correct re-entry point more easily. In MEI the <att>cue</att> attribute is available to indicate such notes.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><rest dur="8" cue="true"/> <note dur="4" oct="5" pname="f" cue="true"/> </egXML> </figure> </p> <p>Most often cue notes occur in a group rather than one by one. This is because usually a whole layer of another part is inserted as a cue. Therefore, a complete <gi scheme="MEI">layer</gi> can also be marked as cue.</p> <p> <figure> <head>Cue notes in the flute part of Brahms’ <hi rend="italic">Ein deutsches Requiem</hi>.</head> <graphic url="../images/modules/cmn/Brahms-flutePart.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><score> <scoreDef> <staffGrp> <staffDef n="1" lines="5"> <clef shape="G" line="2" /> <keySig sig="5f" /> <meterSig count="3" unit="4" /> </staffDef> </staffGrp> </scoreDef> <section> <measure metcon="false"> <staff n="1"> <layer n="1"> <rest dur="4" /> </layer> <layer n="2" cue="true"> <clef shape="F" line="4" /> <note dur="4" oct="2" pname="f" /> </layer> </staff> </measure> <measure n="1"> <staff n="1"> <layer n="1"> <mRest /> </layer> <layer n="2" cue="true"> <note dur="2" oct="2" pname="b" accid.ges="f" /> <note dur="4" oct="2" pname="f" /> </layer> </staff> </measure> <measure n="2"> <staff n="1"> <layer n="1"> <rest dur="4" /> <rest dur="4" /> <clef shape="G" line="2" /> <note dur="4" oct="5" pname="b" accid.ges="f" /> </layer> <layer n="2" cue="true"> <note dur="2" oct="2" pname="b" accid.ges="f" /> </layer> </staff> </measure> </section> </score> </egXML> </figure> </p> <p>If the voice from which the cue notes originate is also encoded, they should refer to their sounding counterpart with the <att>corresp</att> attribute.</p> <p>Cue notes must not be confused with other small notes such as grace notes or <ref target="https://en.wikipedia.org/wiki/Fioritura">fiorituras</ref>.</p> </div> <div xml:id="cmnDir" type="div3"> <head>Directives and Rehearsal marks</head> <p>In CMN scores, there is often a large number of natural language instructions. Some of them concern the loudness and the speed of the performance, in which case MEI offers the elements <gi scheme="MEI">dynam</gi> (described at <ptr target="#cmnDynam"/>) and <gi scheme="MEI">tempo</gi>. In other cases, however, they provide other instructions for the performer. Instead of providing separate elements for all possible types of such directions, MEI offers the generic <gi scheme="MEI">dir</gi> element. Although this element is not CMN specific (it is defined in <ptr target="#shared"/>), it is frequently used in this repertoire.</p> <div xml:id="cmnTempo" type="div4"> <head>Tempo changes and other directives</head> <p>A tempo or character indication is often provided above the topmost staff of the first measure of a score, movement, or section. This indication, such as "Allegro moderato" or "Andante maestoso", may be regarded as a label. Though it is possible to label the movement, etc. using a <att>label</att> attribute attached to the enclosing structural entity (that is, on <gi scheme="MEI">mdiv</gi> or <gi scheme="MEI">section</gi>), it is often required to capture the exact position, spelling, or other features of the label as found in the underlying source material. In these cases, an element is necessary.</p> <p>Labels which address the tempo at which the music should be performed should be encoded using the <gi scheme="MEI">tempo</gi> element, which is a specialized form of <gi scheme="MEI">dir</gi>. <gi scheme="MEI">tempo</gi> is a member of the <ident type="class">model.controlEventLike</ident> class and as such occurs as a child of <gi scheme="MEI">measure</gi>, following all <gi scheme="MEI">staff</gi> children. Its <att>staff</att>, <att>layer</att> and <att>tstamp</att> attributes are used to ensure correct semantic positioning, and <att>place</att> indicates a visual position with respect to the staff.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <!-- all staves omitted --> <tempo place="above" staff="1" tstamp="1">Allegro moderato</tempo> </measure> </egXML> </figure> </p> </div> <div xml:id="cmnReh" type="div4"> <head>Rehearsal marks</head> <p>Rehearsal marks are another specialized kind of directive. Consisting of letters, numbers, or a combination of both, rehearsal marks are used in scores and corresponding performer parts to identify convenient points to restart rehearsal after breaks or interruptions. For this reason, they are often visually emphasized by placing them within a square or circle. In MEI, they are encoded using the <gi scheme="MEI">reh</gi> element, which holds the textual content of the rehearsal mark. It is a member of the <ident type="class">model.controlEventLike.cmn</ident> class. The visual rendition of the rehearsal mark, including the surrounding shape, may be captured using the <gi scheme="MEI">rend</gi> element described in chapter <ptr target="#sharedTextRendition"/>.</p> <p>The following detail from an edition of Hector Berlioz’ <hi rend="italic">Symphonie Fantastique</hi> shows a typical example:</p> <p> <figure> <head>Rehearsal mark</head> <graphic url="../images/modules/cmn/reh_berlioz.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <!-- content omitted --> </staff> <staff n="2"> <!-- content omitted --> </staff> <staff n="3"> <!-- content omitted --> </staff> <reh place="above" staff="1"> <rend rend="box">37</rend> </reh> </measure> </egXML> </figure> </p> <p>As rehearsal marks usually are placed at the beginning of a measure the <att>tstamp</att> attribute may be omitted. To place it anywhere else the <att>startid</att>, <att>tstamp</att> or even <att>ho</att> attributes could be used.</p> <p>The following example demonstrates how rehearsal marks often apply to more than one staff. In this instance, the rehearsal mark is placed above staff 1 and below staves 7 and 11.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <reh place="above" staff="1">A</reh> <reh place="below" staff="7 11">A</reh> </measure> </egXML> </figure> </p> </div> </div> <div xml:id="cmnRep" type="div3"> <head>Repetition in CMN</head> <p>Repetition is a characteristic feature of music. Many musical forms rely on repetition (sometimes with modification) of distinct sections of the music. Repetition in this sense can be thought of as ‘structural’. At the same time, composers and engravers of music often use local symbols for repeating smaller portions of music instead of writing them in full more than once. In this case, the repetition is better defined as a species of abbreviation.</p> <div xml:id="cmnRepStruct" type="div4"> <head>Structural Repetition</head> <p>Large-scale structural repetition, utilizing <gi scheme="MEI">section</gi> and <gi scheme="MEI">expansion</gi> elements, is discussed in section <ptr target="#sharedMdivContent"/>. This section will focus on repetition within sections.</p> </div> <div xml:id="cmnRepSym" type="div4"> <head>Measure-Level Repetition Symbols</head> <p>In addition to repetition at the section level, CMN includes a number of different symbols for measure-level repetitions. Many of these symbols are found in manuscripts and may be regarded as personal conventions of their respective authors. Some signs, however, have been widely adopted. For example, it is common to indicate the repetition of a single beat or an entire measure with one or more diagonal lines, sometimes with dots at the upper left and lower right, much like a percent sign. The illustration below contains the most common signs:</p> <p> <figure> <head>Beat repeat signs</head> <graphic url="../images/ExampleImages/beatrpt-20100510.png"/> </figure> </p> <p>In general, MEI places primary emphasis on the capture of the semantic meaning of symbols, not their visual rendition. In this case, the focus is on the material being repeated, for example, a beat, a measure, a 2-measure fragment, etc. The following elements are provided for this purpose:</p> <p> <specList> <specDesc key="beatRpt"/> <specDesc key="halfmRpt"/> <specDesc key="mRpt"/> <specDesc key="mRpt2"/> <specDesc key="multiRpt"/> </specList> </p> <p>The <gi scheme="MEI">beatRpt</gi> element is used to represent a single repeated beat. Its visual rendition can be recorded using the <att>slash</att> attribute. This attribute indicates the number of slashes required to render the appropriate repeat symbol, which, as demonstrated in the preceding figure, depends on the rhythmic content of the beat being repeated. When a beat that consists of a single note or chord is repeated, the repetition sign is typically rendered as a single thick, slanting slash; therefore, the value <val>1</val> should be used. The following values should be used when the beat is divided into even notes: 4ths or 8ths=1, 16ths=2, 32nds=3, 64ths=4, 128ths=5. When the beat is comprised of mixed duration values, the symbol is always rendered as 2 slashes and 2 dots.</p> <p>In addition to its indication of a repeated beat, the beatRpt element is sometimes used in popular music notation, especially in guitar or percussion parts, to indicate a repeated rhythmic pattern. The <gi scheme="MEI">beatRpt</gi> element can be used, but when these parts require durations longer or shorter than a beat, note elements with appropriately-shaped note heads should be employed instead.</p> <p>The <gi scheme="MEI">mRpt</gi> element is available for repetition of an entire measure. Like <gi scheme="MEI">mRest</gi>, it must be the sole child of <gi scheme="MEI">layer</gi>, no other events should be used. The <att>n</att> attribute of <gi scheme="MEI">mRpt</gi> should not be used to record the number displayed above the measure in the figure below. Instead, the numbering of repetitions of the written-out measure can be enabled using the <att>multi.number</att> attribute available on the <gi scheme="MEI">scoreDef</gi> and <gi scheme="MEI">staffDef</gi> elements.</p> <p> <figure> <head>Measure repetition</head> <graphic url="../images/ExampleImages/mrpt-20100510.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure> <staff> <layer> <beam> <note dur="8" oct="4" pname="f"/> <note dur="16" pname="a"/> <note oct="5" pname="c"/> <note dur="8" oct="4" pname="a"/> </beam> <beam> <note dur="8" oct="5" pname="c"/> <note oct="4" pname="a"/> <note pname="g"/> </beam> </layer> </staff> </measure> <measure> <staff> <layer> <mRpt/> </layer> </staff> </measure> <measure> <staff> <layer> <mRpt/> </layer> </staff> </measure> <measure> <staff> <layer> <mRpt/> </layer> </staff> </measure> </section> </egXML> </figure> </p> <p>The <gi scheme="MEI">halfmRpt</gi> element represents the incorrect, but frequently found, use of the measure repeat (or similar) sign to indicate repetition of half of a measure. This practice mostly occurs in hand-written notation and usually involves the repetition of the second half of a measure in duple time. This element is necessary because the function of the symbol, not the visual symbol itself, is of primary importance. The following example from the beginning of Beethoven’s <hi rend="italic">Waldstein</hi> sonata illustrates such usage:</p> <p> <figure> <head>Half-measure repeat</head> <graphic url="../images/modules/cmn/halfmRpt_beethoven.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure> <staff n="1"> <!-- omitted --> </staff> <staff n="2"> <layer n="1"> <!-- omitted --> </layer> <layer n="2"> <chord dur="2" stem.mod="1slash"> <note oct="2" pname="g"> </note> <note oct="1" pname="b"> </note> </chord> <halfmRpt/> </layer> </staff> </measure> <measure> <staff n="1"> <!-- omitted --> </staff> <staff n="2"> <layer n="1"> <!-- omitted --> </layer> <layer n="2"> <halfmRpt/> <halfmRpt/> </layer> </staff> </measure> </section> </egXML> </figure> </p> <p>As seen in the example above, it is possible to continuously repeat half measures, even across bar lines.</p> <p>The <gi scheme="MEI">mRpt2</gi> and <gi scheme="MEI">multiRpt</gi> elements (like the <gi scheme="MEI">multiRest</gi> element) never occur in scores, only in performer parts, where it is often necessary to abbreviate the notation due to page size limitations.</p> <p> <figure> <head>Two-measure repetition</head> <graphic url="../images/ExampleImages/mrpt2-20100510.png"/> </figure> <figure> <head>Multi-measure repetition</head> <graphic url="../images/ExampleImages/multirpt-20100510.png"/> </figure> </p> <p>The <gi scheme="MEI">mRpt2</gi> element represents repetition of a 2-measure fragment, while <gi scheme="MEI">multiRpt</gi> is for repetition of fragments longer than two measures. In modern publishing practice, repeats of more than two measures are written out using repeat signs. This element is provided, however, for handling non-standard practices often found in manuscripts. The <att>num</att> attribute on <gi scheme="MEI">multiRpt</gi> records the number of preceding measures to be repeated.</p> <p>All elements described above allow for association of the sign with a symbol in a digital facsimile (via the <att>facs</att> attribute) and with a user-defined symbol (using <att>altsym</att>). See <ptr target="#facsimiles"/> and <ptr target="#userSymbols"/> for further details. In addition, the <att>expand</att> attribute is available on the foregoing elements to inform a rendering process whether to use the repeat symbol or the full content represented by it. A value of <val>true</val> indicates that the content should be displayed, while a <val>false</val> value means to show only the repeat symbol.</p> </div> </div> </div> <div xml:id="cmnOrnaments" type="div2"> <head>Common Music Notation Ornaments</head> <p>This module includes elements and attributes for the encoding of ornaments typical of ‘Common Music Notation’ (CMN). Ornaments are formulae of embellishment that can be realized by adding supplementary notes to one or more notes of the melody. In written form, these are usually expressed as symbols written above or below a note, though some have a more complex written expression, such as those that involve multiple notes and/or include grace notes.</p> <p>These symbols may have different resolutions depending on a large number of factors, such as historical context, national boundaries, composer, scribe, etc. The elements described here, therefore, are not bound to a specific symbol; they are, instead, meant to encode the encoder’s interpretation of a symbol and its position on the staff.</p> <p>Nonetheless, in order to establish common ground, the guidelines suggest commonly accepted symbols and realizations for the ornaments supported by MEI.</p> <p>The following sections will introduce each element in detail for all types of ornaments supported.</p> <div xml:id="cmnOrnamentsAll" type="div3"> <head>Encoding Common To All Ornaments</head> <p>When encoding CMN, ornaments should be encoded within a <gi scheme="MEI">measure</gi>, following the <gi scheme="MEI">staff</gi> elements, and connected to events on the staff via attributes. The <att>startid</att> attribute is used to refer to the <att>xml:id</att> of the starting note. Additionally, if the ornament involves more than one events on the staff, the <att>endid</att> attribute can be used to anchor the ornament to a concluding event.</p> <p>The following example demonstrates the encoding of a mordent over a middle C:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="c" xml:id="co_1_n1"/> </layer> </staff> <mordent place="above" staff="1" startid="#co_1_n1"/> </measure> </egXML> </figure> </p> <p>Alternatively, the relationship of an ornament to a note can be expressed in terms of beats with the attribute <att>tstamp</att>. If the ornament involves more than one event on the staff, the <att>tstamp2</att> attribute can be used to indicate the ending time stamp, as is explained in section <ptr target="#cmnTstamp"/>. These methods may also be utilized simultaneously.</p> <p>The following example shows the use of <att>tstamp</att> for an ornament. Assuming that the following measure is in 2/2, the ornament (in this case, a mordent) is related to the note on the second beat.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="2" oct="4" pname="c"/> <note dur="2" oct="4" pname="c"/> </layer> </staff> <mordent place="below" staff="1" tstamp="2"/> </measure> </egXML> </figure> </p> <p>The relationship between an ornament and the notes on staff must always be encoded. It is, in fact, a semantic error not to specify a starting event or time stamp for an ornament.</p> <p>In their resolution, ornaments will involve auxiliary notes, which typically follow the key signature or the scale of the current key. When the ornament involves other chromatic auxiliaries, an accidental is expressed next to or above the ornament sign. The attributes <att>accidlower</att> and <att>accidupper</att>, available on all ornaments described in this chapter, can be used to record this accidental. The attribute values ‘upper’ and ‘lower’ indicate whether the accidental is associated with an upper or lower auxiliary note, not the position of the accidental sign.</p> <div xml:id="cmnOrnamentsOverride" type="div4"> <head>Overriding Default Resolutions</head> <p>The symbols and sounded resolutions suggested for each ornament in this chapter are to be considered defaults. Nevertheless, because of the great historical and geographical variance in the notation of ornaments, the encoder is given methods to override the default resolutions.</p> <p>It is possible, for example, to specify in the <gi scheme="MEI">meiHead</gi> a new default sounded resolution for an ornament. As discussed in the section <ptr target="#headerEncodingDescription"/>, the element <gi scheme="MEI">encodingDesc</gi> holds a description (optional, but recommended) of the methods and editorial principles which govern the transcription or encoding of the source material. Let us take a trill as an example. The section regarding <ptr target="#cmnOrnamentsTrills"/> does not set a specific number of alternations between the principal and secondary notes; the encoder, however, may specify an exact number in the encoding description.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><encodingDesc> <editorialDecl> <p>All trills should be resolved by playing three alternations.</p> </editorialDecl> </encodingDesc> </egXML> </figure> </p> <p>Alternatively, resolutions can be defined on a case-by-case basis by encoding a specific resolution using the <gi scheme="MEI">choice</gi> element. See the section <ptr target="#cmnOrnamentsTrillsSpecial"/> below for an example of a specific resolution of a trill.</p> </div> </div> <div xml:id="cmnOrnamentsMordents" type="div3"> <head>Mordents</head> <p>A mordent is an ornament that involves an auxiliary note a step above or below the principal note. The presence of a mordent is encoded with the <gi scheme="MEI">mordent</gi> element and its attributes:</p> <p> <specList> <specDesc key="mordent"/> <specDesc key="att.mordent.log" atts="form long"/> <specDesc key="att.ornamentAccid" atts="accidlower accidupper"/> </specList> </p> <p>It is recommended, but not required, to use the attribute <att>form</att> to encode the typology of mordents. Two common types are supported: those mordents that involve a note lower than the principal note, and those that involve a note higher than the principal note.</p> <p>The attribute <att>form</att> accepts the following values:</p> <list type="gloss"> <label>upper</label> <item>usually corresponding to the symbol: <graphic rend="smufl" url="https://edirom.de/smufl-browser/E56C.png"/>. This mordent is commonly performed as the principal note, followed by its upper neighbor, with a return to the principal note.</item> <label>lower</label> <item>usually corresponding to the symbol: <graphic rend="smufl" url="https://edirom.de/smufl-browser/E56D.png"/>. This mordent is commonly performed as the principal note, followed by its lower neighbor, with a return to the principal note.</item> </list> <p>The following example demonstrates the encoding of simple mordents:</p> <p> <figure> <head>Example of simple mordent</head> <graphic url="../images/modules/cmnOrnaments/ex_mordent.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="5" pname="c" stem.dir="down"/> <note dur="4" oct="4" pname="g" stem.dir="up"/> <note dur="4" oct="4" pname="b" stem.dir="down"/> <note dur="4" oct="5" pname="c" stem.dir="down"/> </layer> </staff> <mordent form="upper" staff="1" tstamp="1"/> </measure> </egXML> </figure> </p> <p>Occasionally, mordents can be longer, employing five notes instead of three. The <att>long</att> attribute can be used to identify mordents of this type. The following example shows the encoding of a long mordent:</p> <p> <figure> <head>Example of a long mordent</head> <graphic url="../images/modules/cmnOrnaments/ex_mordent_l.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="5" pname="c" stem.dir="down"/> <note dur="4" oct="4" pname="g" stem.dir="up"/> <note dur="4" oct="4" pname="b" stem.dir="down"/> <note dur="4" oct="5" pname="c" stem.dir="down"/> </layer> </staff> <mordent form="upper" long="true" staff="1" tstamp="1"/> </measure> </egXML> </figure> </p> </div> <div xml:id="cmnOrnamentsTrills" type="div3"> <head>Trills</head> <p>Trills are a type of ornament that consists of a rapid alternation of a note with one a semitone or tone above. A trill is encoded with the <gi scheme="MEI">trill</gi> element and its attributes:</p> <p> <specList> <specDesc key="trill"/> <specDesc key="att.ornamentAccid" atts="accidlower accidupper"/> </specList> </p> <p>Trills in modern notation are usually expressed with the abbreviation "tr" above a note on the staff. Often the abbreviation is followed by a wavy line that indicates the length of the trill.</p> <p>The following example demonstrates the encoding of simple trills:</p> <p> <figure> <head>Example of simple trills.</head> <graphic url="../images/modules/cmnOrnaments/ex_tr.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="f" stem.dir="up"/> <note dur="4" oct="4" pname="a" stem.dir="up"/> <rest dur="8"/> <note dur="8" oct="5" pname="c" stem.dir="down"/> <note dur="4" oct="5" pname="e" stem.dir="down"/> </layer> </staff> <trill place="above" staff="1" tstamp="1"/> <trill accidupper="f" place="above" staff="1" tstamp="2"/> <trill place="above" staff="1" tstamp="3.5"/> <trill accidupper="s" place="above" staff="1" tstamp="4"/> </measure> </egXML> </figure> </p> <p>It has been specified earlier that it is a semantic error not to encode a starting event or time stamp for an ornament. This starting point of a trill can be expressed with the <att>startid</att> attribute and/or with the <att>tstamp</att> attribute. Specifying the end point is not required, although the <att>tstamp2</att> or <att>endid</att> attribute may be used to imply the use of a wavy line extender as shown in this example:</p> <p> <figure> <head>Example of trills followed by wavy lines.</head> <graphic url="../images/modules/cmnOrnaments/ex_trill_wavy.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><score> <scoreDef> <staffGrp> <staffDef clef.line="2" clef.shape="G" keysig="2f" lines="5" n="1"/> </staffGrp> </scoreDef> <section> <measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="f" xml:id="n1"/> <note dur="4" oct="5" pname="d" xml:id="n2"/> <note dur="4" oct="5" pname="d" xml:id="n3"/> <note dur="4" oct="4" pname="g" xml:id="n4"/> </layer> </staff> <trill place="above" staff="1" startid="#n1" endid="#n2"/> <trill place="above" staff="1" startid="#n2" endid="#n3"/> <trill accidupper="n" place="above" staff="1" startid="#n3" endid="#n4"/> <trill accidupper="f" place="above" staff="1" startid="#n4" tstamp2="5"/> </measure> </section> </score> </egXML> </figure> </p> <p>When giving an end point to trills, the <att>extender</att> attribute should also be added, to indicate the presence or absence of a line extender. Notice, that the note referenced in <att>endid</att> is not part of the trill itself, just like in <ref target="#cmnArpegGliss">glissandos</ref>.</p> <p>Chromatic alterations of auxiliary notes are occasionally expressed on the staff using small notes enclosed in parentheses, as shown in the example below. However, the attribute <att>accidupper</att> is still to be used to encode the alteration. Display of the auxiliary note in this ‘cautionary’ manner is left to down-stream rendering processes.</p> <p> <figure> <head>Example alterations expressed on the staff.</head> <graphic url="../images/modules/cmnOrnaments/ex_tr_accid.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="2" oct="4" pname="g" stem.dir="up"/> </layer> </staff> <trill accidupper="f" place="above" staff="1" tstamp="1"/> </measure> </egXML> </figure> </p> <p>Some trills may be introduced by a turn or followed by an inverted turn leading to the next note (see Le garzantine, Musica 2003, p. 911). In such cases, the trill is encoded as in previous examples and associated with the principal note. Starting or concluding turns are notated on the staff (in <gi scheme="MEI">layer</gi>) as <ptr target="#cmnNotesGrace"/>.</p> <p>The following example, from a keyboard sonata by Joseph Haydn, shows a trill with concluding grace notes (called <hi rend="italic">Nachschlag</hi>):</p> <p> <figure> <head>Haydn, Sonata in D major, Hoboken XVI:33 (Wiener Urtex no. 34), mvmt. 1.</head> <graphic url="../images/modules/cmnOrnaments/ex_tr_grace.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="2"> <staff n="1"> <layer n="1"> <note accid.ges="s" dur="32" grace="acc" oct="6" pname="c" stem.dir="up"/> <note dur="2" oct="5" pname="b" stem.dir="down"/> <graceGrp attach="pre" grace="unacc"> <beam> <note dur="32" oct="5" pname="a" stem.dir="up"/> <note dur="32" oct="5" pname="b" stem.dir="up"/> </beam> </graceGrp> </layer> </staff> <trill place="above" staff="1" tstamp="1" tstamp2="3" vo="6.5"/> </measure> </egXML> </figure> </p> <div xml:id="cmnOrnamentsTrillsSpecial" type="div4"> <head>Special Cases</head> <p>Symbols and abbreviations for trills have changed and evolved considerably throughout history. Strategies to clarify the encoding and interpretation of ornaments have been discussed in section <ptr target="#cmnOrnamentsOverride"/> above. However, in order to aid the encoder in making educated choices in the encoding of non-standard trills, this section shows two examples diverging from modern standard use.</p> <p>The abbreviation "tr" followed by a wavy line spanning multiple notes is sometimes used to indicate multiple trills:</p> <p> <figure> <head>Example of multiple trills.</head> <graphic url="../images/modules/cmnOrnaments/ex_tr_multi.png"/> </figure> </p> <p>The encoding of this kind of trill may vary depending on the purpose of the encoding. For representation of the source, a single trill is sufficient:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="f" stem.dir="up"/> <note dur="4" oct="4" pname="a" stem.dir="up"/> <rest dur="8"/> <note dur="8" oct="5" pname="c" stem.dir="down"/> <note dur="4" oct="5" pname="e" stem.dir="down"/> </layer> </staff> <trill place="above" staff="1" tstamp="1" tstamp2="0m+4"/> </measure> </egXML> </figure> </p> <p>To support analytical and aural rendering applications, however, each trill may be explicitly encoded, as the following example demonstrates:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="f" stem.dir="up"/> <note dur="4" oct="4" pname="a" stem.dir="up"/> <rest dur="8"/> <note dur="8" oct="5" pname="c" stem.dir="down"/> <note dur="4" oct="5" pname="e" stem.dir="down"/> </layer> </staff> <trill place="above" staff="1" tstamp="1"/> <trill accidupper="f" place="above" staff="1" tstamp="2"/> <trill place="above" staff="1" tstamp="3.5"/> <trill accidupper="s" place="above" staff="1" tstamp="4"/> </measure> </egXML> </figure> </p> <p>However, when it is necessary to support multiple outputs, use of the <gi scheme="MEI">choice</gi> element and appropriate sub-elements is recommended. In this case, the <gi scheme="MEI">orig</gi> and <gi scheme="MEI">reg</gi> elements can be used to represent the original source and a regularization provided by the editor, respectively:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><choice> <orig> <trill place="above" staff="1" tstamp="1" tstamp2="0m+4"/> </orig> <reg> <trill place="above" staff="1" tstamp="1"/> <trill accidupper="f" place="above" staff="1" tstamp="2"/> <trill place="above" staff="1" tstamp="3.5"/> <trill accidupper="s" place="above" staff="1" tstamp="4"/> </reg> </choice> </egXML> </figure> </p> <p>Another situation that requires disambiguation of an ornament’s name and its potential rendition is due to the fact that the symbols for trills and mordents have been often used interchangeably in the past. The following example, taken from <ref target="https://en.wikipedia.org/wiki/Klavierbüchlein_für_Wilhelm_Friedemann_Bach"> <hi rend="italic">Klavierbüchlein für Wilhelm Friedemann Bach</hi> </ref> (1720), shows a trill (<hi rend="italic">Trillo</hi>) identified by the symbol associated with a mordent in modern practice. Nonetheless, J.S. Bach’s suggested resolution should be encoded with a variant of the procedure presented above.</p> <p>In the example below, the child elements of <gi scheme="MEI">choice</gi>; that is, <gi scheme="MEI">orig</gi> and <gi scheme="MEI">reg</gi>, represent non-exclusive options; that is, both may be processed by applications that aim to support both visual and aural renditions.</p> <p> <figure> <head>Trill transcribed from J. S. Bach’s Klavierbüchlein für Wilhelm Friedemann Bach</head> <graphic url="../images/ExampleImages/ExplicationBach.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="5" pname="c" stem.dir="down"/> </layer> </staff> <choice> <orig> <trill place="above" staff="1" tstamp="1"/> </orig> <reg> <note dur="32" oct="5" pname="d"/> <note dur="32" oct="5" pname="c"/> <note dur="32" oct="5" pname="d"/> <note dur="32" oct="5" pname="c"/> <note dur="32" oct="5" pname="d"/> <note dots="1" dur="16" oct="5" pname="c"/> </reg> </choice> </measure> </egXML> </figure> </p> <p>Depending on the purpose of the encoding, it may be more convenient to encode the regularized text within the stream of events, along with a corresponding choice with regard to the existence of the trill marking, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <choice> <orig> <note dur="4" oct="5" pname="c" stem.dir="down"/> </orig> <reg> <note dur="32" oct="5" pname="d"/> <note dur="32" oct="5" pname="c"/> <note dur="32" oct="5" pname="d"/> <note dur="32" oct="5" pname="c"/> <note dur="32" oct="5" pname="d"/> <note dots="1" dur="16" oct="5" pname="c"/> </reg> </choice> </layer> </staff> <choice> <orig> <trill place="above" staff="1" tstamp="1"/> </orig> <reg> </reg> </choice> </measure> </egXML> </figure> </p> <p>The <gi scheme="MEI">orig</gi> element contains the single-note-with-trill transcription of the original text, while the <gi scheme="MEI">reg</gi> element represents the realization-without-trill version.</p> <p>This approach facilitates substitution of the realization of the trill for the original written note (as well as the opposite procedure) and is therefore the recommended markup for applications where exchange of this kind is desirable.</p> </div> </div> <div xml:id="cmnOrnamentsTurns" type="div3"> <head>Turns</head> <p>A turn is an ornament that typically consists of four notes: the upper neighbor of the principal note, the principal note, the lower neighbor, and the principal note again.</p> <p>The presence of a turn is encoded with the <gi scheme="MEI">turn</gi> element and its attributes:</p> <p> <specList> <specDesc key="att.turn.log" atts="form delayed"/> <specDesc key="att.ornamentAccid" atts="accidlower accidupper"/> </specList> </p> <p>It is recommended, but not required, to use the attribute <att>form</att> to encode the typology of the turn.</p> <p>The attribute <att>form</att> accepts the following values:</p> <list type="gloss"> <label>upper</label> <item>usually corresponding to the symbol: <graphic rend="smufl" url="https://edirom.de/smufl-browser/E567.png"/>. This turn is commonly performed beginning on a note higher than the principal note.</item> <label>lower</label> <item>usually corresponding to the symbol: <graphic rend="smufl" url="https://edirom.de/smufl-browser/E568.png"/>. This turn is commonly performed beginning on a note lower than the principal note.</item> </list> <p>The following example shows the encoding of a simple turn:</p> <p> <figure> <head>Example of a simple turn.</head> <graphic url="../images/modules/cmnOrnaments/ex_turn.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure n="1"> <staff n="1"> <layer n="1"> <note dur="4" oct="5" pname="c" stem.dir="down"/> <note dur="4" oct="5" pname="d" stem.dir="down"/> <note dur="4" oct="5" pname="e" stem.dir="down"/> <note dur="4" oct="5" pname="c" stem.dir="down"/> </layer> </staff> <turn form="upper" staff="1" tstamp="1"/> </measure> </egXML> </figure> </p> <p>Turns can sometimes be performed after the principal note (usually on the second half of the beat, see Read 1979, p. 246) and leading to the following event. To indicate this, the turn symbol is typically written in between the principal note and the next. These kind of turns are encoded with the attribute <att>delayed</att>.</p> <p>The following example from Beethoven’s piano sonata no. 1 in F minor, op. 2, no. 1, mvmt. 2 demonstrates the encoding of turns with the <att>delayed</att> attribute. Note that the <att>tstamp</att> attribute indicates the actual starting point in time, while <att>startid</att> points to the principal note.</p> <p> <figure> <head>Delayed turn.</head> <graphic url="../images/modules/cmnOrnaments/ex_turn_d.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure> <staff n="1"> <layer n="1"> <note dots="1" dur="4" oct="5" pname="g" stem.dir="down" tie="i"/> <beam> <note dots="1" dur="16" oct="5" pname="g" stem.dir="down" tie="t"/> <note dur="32" oct="5" pname="a" stem.dir="down"/> </beam> </layer> </staff> <turn accidlower="s" delayed="true" place="above" staff="1" tstamp="2.75"/> </measure> </egXML> </figure> </p> </div> <div xml:id="cmnOrnamentsOther" type="div3"> <head>Other Ornaments</head> <p>CMN ornaments that are not mordents, trills, or turns can be encoded with a generic <gi scheme="MEI">ornam</gi>.</p> <p>This element allows the encoder to represent ornaments as textual strings (<abbr>e.g.</abbr>, with a Unicode symbol) or with a user defined symbol. Chromatic auxiliaries can be represented with <att>accidlower</att> and <att>accidupper</att>. The <gi scheme="MEI">ornam</gi> element can also be a control element. That is, it can be linked via its attributes to other events. The starting point of the directive may be indicated by either a tstamp, tstamp.ges, tstamp.real or startid attribute, while the ending point may be recorded by either a tstamp2, dur, dur.ges or endid attribute. It is a semantic error not to specify a starting point attribute.</p> <p>For example, Johann Sebastian Bach used non-standard ornaments in the <hi rend="italic">Klavierbüchlein für Wilhelm Friedemann Bach</hi>:</p> <p> <figure> <head>Table of ornaments used by Johann Sebastian Bach in the Klavierbüchlein für Wilhelm Friedemann Bach</head> <graphic url="../images/modules/cmnOrnaments/JSBtableofornaments.jpg"/> </figure> </p> <p>The ornament for (5) doppelt-cadence could be encoded in the following way, by adopting the Unicode code-points defined by the SMuFL standard:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><ornam tstamp="1"> <symbol glyph.auth="smufl" glyph.num="#xE5C0" glyph.name="ornamentPrecompDoubleCadenceLowerPrefix"/> </ornam> </egXML> </figure> </p> <p>A resolution, or expansion of the ornament can be provided as discussed in <ptr target="#cmnOrnamentsTrillsSpecial"/> below.</p> </div> <div xml:id="cmnOrnamentsMultiple" type="div3"> <head>Ornaments in Combinations</head> <p>Particularly in baroque keyboard music, but also in the early classical period, various combinations of ornaments can be found. Despite being written vertically above the same note, they are to be performed in sequence.</p> <p>The following example from <ref target="https://en.wikipedia.org/wiki/Carl_Philipp_Emanuel_Bach">Carl Philipp Emanuel Bach’s</ref> song <hi rend="italic">Dorinde</hi> Wq 199/7 shows a turn followed by a inverted mordent:</p> <p> <figure> <head>Combined ornaments in C.P.E. Bach’s song Dorinde</head> <graphic url="../images/ExampleImages/CPEB_Dorinde.png"/> </figure> </p> <p>When encoding the example above, both ornaments will be positioned above the same note. The encoded order of the elements, moreover, may correspond to the performed sequence, which in this example is top to bottom: first the turn, then the mordent. As every renderer deals differently with such combined ornaments it is best practice to encode the performed sequence additionally with <att>next</att> and <att>prev</att> attributes. The visual order can be specified globally with <att>aboveorder</att> in the preceding <gi scheme="MEI">scoreDef</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><measure n="3"> <staff n="1"> <layer n="1"> <note dur="8" grace="unknown" oct="5" pname="f" stem.dir="up"/> <note dur="4" oct="5" pname="e" stem.dir="down" xml:id="ex_m3_n1"/> <beam> <note dur="16" oct="5" pname="d" stem.dir="up"/> <note accid="s" dur="16" oct="4" pname="f" stem.dir="up"/> <note dur="16" oct="4" pname="g" stem.dir="up"/> <note dur="16" oct="5" pname="e" stem.dir="up"/> </beam> <note dur="8" grace="unknown" oct="5" pname="d" stem.dir="up"/> <note dur="4" oct="5" pname="c" stem.dir="down" xml:id="ex_m3_n2"/> </layer> </staff> <mordent xml:id="or_1" form="upper" staff="1" startid="#co_1_m_n1" prev="#or_2"/> <turn xml:id="or_2" form="upper" staff="1" startid="#co_m_1_n1" next="#or_1"/> <mordent xml:id="or_3" form="upper" staff="1" startid="#co_m_1_n2" prev="#or_4"/> <turn xml:id="or_4" form="upper" staff="1" startid="#co_m_1_n2" next="#or_3"/> </measure> </egXML> </figure> </p> </div> </div> </div> <div xml:id="mensural" type="div1"> <head>Repertoire: Mensural Notation</head> <p>This chapter describes the module for encoding mensural notation from the late 13th century to about 1600. Historically, mensural notation preceded the development of Common Music Notation (CMN) and it included a wide range of features that persist in CMN and that can be encoded in a standard manner in MEI. In mensural notation, pitches are notated as in CMN, leaving out here the major exception of <hi rend="italic">musica ficta</hi>. The pitch is given by the position of the note on the staff and the current clef as in CMN, and the mensural module introduces no modification to MEI regarding how pitches are encoded.</p> <p>There are a number of differences, however, in the representation of duration in mensural notation. The mensural module introduces specific attribute values for notes and rests for appropriately encoding mensural durations. One of the main differences is that the duration of a note is not determined by its symbol, but also by the meter and the context in which the symbol appears in relation to other notes and rests in the same voice. The meter is given by one of the 16 mensural <hi rend="italic">species</hi> provided by four levels of division: <hi rend="italic">modus major</hi>, <hi rend="italic">modus minor</hi>, <hi rend="italic">tempus</hi> and <hi rend="italic">prolatio</hi>. In the case of triple meter and depending on the specific context where the note is positioned, certain rules must be applied in order to determine the duration of a note. In these cases, encoding both the sign and its actual duration is highly recommended (as will be shown in <ptr target="#mensuralNotes"/>).</p> <p>Another difference is the use of proportions that are indicated by numeric ratios or by specific mensuration signs. The proportions indicate that the durations have to be modified and they may be combined. Proportions and mensuration signs were eventually simplified and became time signatures in CMN. The attributes and elements available in this module for encoding mensural signs and proportions can be found below (see <ptr target="#mensuralSigns"/> and <ptr target="#mensuralProportions"/>).</p> <p>In mensural notation, notes can also be notated in ligatures that regroup two or more notes. Ligatures were a legacy from an earlier notation system that were still widely used in Renaissance music notation. They gradually disappeared during the seventeenth century. The mensural module provides multiple ways of encoding the ligatures.</p> <div xml:id="mensuralNotes" type="div2"> <head>Durations</head> <p>When the mensural module is included, <att>dur</att> on <gi scheme="MEI">note</gi>, <gi scheme="MEI">rest</gi>, and other elements takes the following values (from the Latin names of notes):</p> <list type="gloss"> <label>maxima</label> <item>Two or three times as long as a longa</item> <label>longa</label> <item>Two or three times as long as a brevis</item> <label>brevis</label> <item>Two or three times as long as a semibrevis</item> <label>semibrevis</label> <item>Half or one-third as long as a brevis</item> <label>minima</label> <item>Half or one-third as long as a semibrevis</item> <label>semiminima</label> <item>Half as long as a minima</item> <label>fusa</label> <item>Half as long as a semiminima</item> <label>semifusa</label> <item>Half as long as a fusa</item> </list> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Notes and Rests</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The upper staff shows the different mensural note shapes and the lower staff shows the different mensural rests.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="notes" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" /> <staffDef label="rests" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" /> </staffGrp> </scoreDef> <section> <?edit-start?> <staff n="1"> <layer n="1"> <note dur="maxima" /> <note dur="longa" /> <note dur="brevis" /> <note dur="semibrevis" /> <note dur="minima" /> <note dur="semiminima" /> <note dur="fusa" /> <note dur="semifusa" /> </layer> </staff> <staff n="2"> <layer n="1"> <rest dur="maxima" /> <rest dur="longa" /> <rest dur="brevis" /> <rest dur="semibrevis" /> <rest dur="minima" /> <rest dur="semiminima" /> <rest dur="fusa" /> <rest dur="semifusa" /> </layer> </staff> <?edit-end?> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>Normally, <hi rend="italic">longa</hi> rests are vertical strokes occupying two or three spaces in the staff, depending on the mensuration. For instance, in <att>modusminor</att>="3", they take up three spaces; and in <att>modusminor</att>="2", they take two. However, there are situations where both types of <hi rend="italic">longa</hi> rests can be present in the same piece, regardless of the <hi rend="italic">modus minor</hi>. For this reason, the <att>dur</att> attribute can take on two other values when used within <gi scheme="MEI">rest</gi> elements:</p> <list type="gloss"> <label>2B</label> <item>Two-breve rest</item> <label>3B</label> <item>Three-breve rest</item> </list> <p>The example below illustrates this case in a passage in <hi rend="italic">perfect modus</hi> from the <hi rend="italic">triplum</hi> voice of a motet in the <hi rend="italic">Roman de Fauvel</hi> music manuscript. The blue arrows on the image are pointing to the two-breve and three-breve rests in this passage.</p> <p> <figure> <head>Inflammatis invidia / Sicut de ligno / Victimae paschali detail from F-Pn 146, fol. 22r (https://gallica.bnf.fr/ark:/12148/btv1b8454675g/f55.image).</head> <graphic url="../images/modules/mensural/Motet_Fauvel_Fol22r_Triplum_Staves4-5.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- mensuration encoded in <staffDef> element indicates @modusminor = 3 --> <layer n="1"> <!-- First system in the image --> <!-- ... --> <rest dur="2B"/> <ligature> <note dur="semibrevis" oct="4" pname="d"/> <note dur="semibrevis" oct="4" pname="c"/> </ligature> <ligature> <note dur="semibrevis" oct="4" pname="d"/> <note dur="semibrevis" oct="4" pname="e"/> </ligature> <ligature> <note dur="semibrevis" oct="4" pname="d"/> <note dur="semibrevis" oct="3" pname="a"/> </ligature> <note dur="longa" oct="3" pname="b"/> <dot form="div"/> <ligature> <note dur="semibrevis" oct="4" pname="c"/> <note dur="semibrevis" oct="4" pname="d"/> </ligature> <ligature> <note dur="semibrevis" oct="4" pname="c"/> <note dur="semibrevis" oct="3" pname="b"/> </ligature> <ligature> <note dur="semibrevis" oct="3" pname="a"/> <note dur="semibrevis" oct="3" pname="g"/> </ligature> <note dur="longa" oct="3" pname="a"/> <note dur="semibrevis" oct="4" pname="d"/> <note dur="semibrevis" oct="4" pname="e"/> <!-- Next system in the image --> <note dur="longa" oct="4" pname="f"/> <note dur="brevis" oct="4" pname="e"/> <dot form="div"/> <note dur="brevis" oct="4" pname="d"/> <ligature> <note dur="semibrevis" oct="4" pname="c"/> <note dur="semibrevis" oct="3" pname="b"/> </ligature> <ligature> <note dur="semibrevis" oct="4" pname="c"/> <note dur="semibrevis" oct="4" pname="d"/> </ligature> <note dur="longa" oct="4" pname="e"/> <rest dur="3B"/> <!-- ... --> </layer> </egXML> </figure> </p> <div xml:id="mensuralRules" type="div3"> <head>Alteration and Imperfection</head> <p>In ternary mensurations, the ambiguity between the note shape and its actual duration requires specific attention. The rules of mensural notation can require the alteration or the imperfection of a note; that is, an increase or reduction in its performed duration. In these cases, if the encoding is intended to be used for more than just graphically representing the notation, encoding only the note shape by means of the <att>dur</att> attribute alone is insufficient. In that case, in addition to encoding the duration sign in the <att>dur</att> attribute, it is recommended to encode its performed duration in the <att>dur.quality</att> attribute. The <att>dur.quality</att> attribute specifies the length of a note according to the contextual rules of mensural notation. Its values, listed below, are adopted from the original Latin terms:</p> <list type="gloss"> <label>perfecta</label> <item>Three times the duration of the note in the next smaller degree</item> <label>imperfecta</label> <item>Two times the duration of the note in the next smaller degree</item> <label>altera</label> <item>Twice the original duration of the note (only usable in perfect mensurations)</item> <label>minor</label> <item>Category of a regular semibrevis in Ars antiqua, equivalent to a third of a brevis</item> <label>maior</label> <item>Category of an altered semibrevis in Ars antiqua, equivalent to two minor semibrevis</item> <label>duplex</label> <item>One of the three categories of a longa in Ars antiqua ('duplex', 'perfecta', and 'imperfecta')</item> </list> <p>The last three values are to be used exclusively in <hi rend="italic">Ars antiqua</hi> mensural notation, where <val>maior</val> and <val>minor</val> refer to types of <hi rend="italic">semibreves</hi>, and <val>duplex</val> refers to a type of <hi rend="italic">longa</hi>. Examples of each of these six values are presented below. In these examples, the ‘voice’ staff renders the notes in the code snippet, and the ‘reference’ staff, together with the dotted bar lines, are shown to help to visualize the relative values of the notes in the ‘voice’ staff.</p> <p>The following example illustrates an <hi rend="italic">alteration</hi> (the second <hi rend="italic">brevis</hi>) in <hi rend="italic">modus minor perfectus</hi>. Notice that the second <hi rend="italic">brevis</hi> has doubled its regular value, it has been altered, unlike the first one. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of 'alteration'</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="3" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="3" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 3 --> <layer n="1"> <note dur="longa" dur.quality="perfecta" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="brevis" dur.quality="altera" /> <barLine form="dashed" /> <note dur="longa" dur.quality="perfecta" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>It is possible to omit the <att>dur.quality</att> attribute in a note when the performed duration of the note is the default value provided by the mensuration. In this case, the <hi rend="italic">longas</hi> are perfect, just as the mensuration (<hi rend="italic">perfect modus minor</hi>) indicates. Therefore, the <att>dur.quality</att> attribute can be omitted for the two <hi rend="italic">longas</hi>. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- mensuration encoded in <staffDef> element indicates @modusminor = 3 --> <layer> <note dur="longa"/> <note dur="brevis"/> <note dur="brevis" dur.quality="altera"/> <note dur="longa"/> </layer> </egXML> </figure> The same applies to the examples that follow.</p> <p>The following example illustrates an <hi rend="italic">imperfection</hi> (the two <hi rend="italic">longae</hi>) in <hi rend="italic">modus minor perfectus</hi> with the same <hi rend="italic">longa</hi>-<hi rend="italic">brevis</hi>-<hi rend="italic">brevis</hi>-<hi rend="italic">longa</hi> sequence but with an additional <hi rend="italic">dot of division</hi> between the two <hi rend="italic">breves</hi> (see <ptr target="#dots"/> for more details). Notice that here the <hi rend="italic">longae</hi> have been imperfected, unlike the previous example in which they kept the perfect value indicated by the mensuration. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of 'imperfection' and 'dot of division'</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="3" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="3" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 3 --> <layer n="1"> <note dur="longa" dur.quality="imperfecta" /> <barLine form="dashed" /> <note dur="brevis" /> <dot form="div" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="longa" dur.quality="imperfecta" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>The following example in <hi rend="italic">modus minor imperfectus</hi> illustrates the use of a dot of augmentation following the <hi rend="italic">longa</hi> (see <ptr target="#dots"/> for more details). Notice that the <hi rend="italic">longa</hi>, which is supposed to be imperfect according to the mensuration, has a perfect value due to the augmentation dot. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of 'augmentation'</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" tempus="2" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" tempus="2" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 2 and @tempus = 2 --> <layer n="1"> <note dur="longa" dur.quality="perfecta" /> <dot form="aug" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="brevis" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>Finally, the following example illustrates the <att>dur.quality</att> values related to the <hi rend="italic">Ars antiqua</hi> style, for <hi rend="italic">perfect modus</hi>, with the breve equivalents notated in the lower staff for reference (as in the previous examples). <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of 'imperfection' and 'dot of division'</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.black" lines="5" clef.shape="G" clef.line="2" modusminor="3" tempus="3" /> <staffDef label="reference" n="2" notationtype="mensural.black" lines="5" clef.shape="G" clef.line="2" modusminor="3" tempus="3" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 3 and @tempus = 3 --> <layer n="1"> <note dur="longa" dur.quality="perfecta" /> <barLine form="dashed" /> <note dur="semibrevis" dur.quality="minor" /> <note dur="semibrevis" dur.quality="minor" /> <note dur="semibrevis" dur.quality="minor" /> <dot form="div" /> <barLine form="dashed" /> <note dur="semibrevis" dur.quality="minor" /> <note dur="semibrevis" dur.quality="maior" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="longa" dur.quality="duplex" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="brevis" /> <note dur="brevis" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="brevis" /> <note dur="brevis" /> <note dur="brevis" /> <barLine form="dashed" /> <note dur="brevis" /> <note dur="brevis" /> <note dur="brevis" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p> <hi rend="italic">Note:</hi> In <hi rend="italic">Ars Antiqua</hi>, only the <hi rend="italic">longa</hi> could be "perfecta" / "imperfecta" and the <hi rend="italic">brevis</hi> could have a regular value ("recta") or be "altera". In the <hi rend="italic">Ars nova</hi>, principles of imperfection and alteration were extended into the other note levels (<hi rend="italic">brevis</hi>-<hi rend="italic">semibrevis</hi> and <hi rend="italic">semibrevis</hi>-<hi rend="italic">minima</hi>). This means that the <hi rend="italic">breves</hi> in <hi rend="italic">Ars antiqua</hi> do not have a "perfecta" / "imperfecta" quality, and this is why there is no <att>dur.quality</att> attribute for the <hi rend="italic">breves</hi> in the previous example. However, the <hi rend="italic">brevis</hi> can have a ternary division (indicated by <att>tempus</att>="3"), being divided either into three (equal) <hi rend="italic">minor semibreves</hi> or into a <hi rend="italic">minor</hi>-<hi rend="italic">maior</hi> pair of <hi rend="italic">semibreves</hi>. The encoding also allows for the possibility of encoding a binary division of the breve in <hi rend="italic">Ars antiqua</hi> notations: the indication <att>tempus</att>="2" indicates the breve is divided into two equal <hi rend="italic">semibreves</hi>. This is why in this example with <att>tempus</att>="3", the <hi rend="italic">semibreves</hi> do have a <att>dur.quality</att> attribute (with values <val>minor</val> or <val>maior</val>).</p> <p>An alternative encoding---removing the <att>dur.quality</att> attributes for notes which lengths are not modified from their default values (<abbr>i.e.</abbr>, the perfect long and the minor <hi rend="italic">semibreves</hi>)---would be: <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- mensuration encoded in <staffDef> element indicates @modusminor = 3 and @tempus = 3 --> <layer> <note dur="longa"/> <note dur="semibrevis"/> <note dur="semibrevis"/> <note dur="semibrevis"/> <dot form="div"/> <note dur="semibrevis"/> <note dur="semibrevis" dur.quality="maior"/> <note dur="brevis"/> <note dur="longa" dur.quality="duplex"/> </layer> </egXML> </figure> </p> <p>The conjunct use of the <att>dur</att> and <att>dur.quality</att> attributes is generally enough to encode the duration of a note—and, as indicated before, one could even remove <att>dur.quality</att> when its value is in agreement with the mensuration. However, there are cases (<abbr>e.g.</abbr>, partial imperfection) where the values of <att>dur.quality</att> are not enough to provide the note’s duration.</p> </div> <div xml:id="partialImp" type="div3"> <head>Partial Imperfection</head> <p>In opposition to regular imperfection, which is caused by a note of the next smaller degree (<abbr>e.g.</abbr>, a perfect <hi rend="italic">brevis</hi> imperfected by a following/preceding <hi rend="italic">semibrevis</hi>), partial imperfection is caused by a note of two or even three orders apart. As an example, consider an imperfect <hi rend="italic">longa</hi> made up of two perfect <hi rend="italic">breves</hi>. This <hi rend="italic">longa</hi> can be ‘partially imperfected’ by a following/preceding <hi rend="italic">semibrevis</hi>. This <hi rend="italic">semibrevis</hi> causes part of the <hi rend="italic">longa</hi>—one of its perfect <hi rend="italic">breves</hi>—to be imperfected, taking away one-third of one of its two halves. In this case, the <hi rend="italic">longa</hi>’s value changes from 6 <hi rend="italic">semibreves</hi> (two perfect <hi rend="italic">breves</hi>) into 5 <hi rend="italic">semibreves</hi>. Partial imperfection is not supported by the <att>dur.quality</att> attribute—because there can be many cases of partial imperfection, as will be seen in the following examples. To encode a partial imperfection, the <att>num</att> and <att>numbase</att> pair of attributes are used instead. Given the change in the <hi rend="italic">longa</hi>’s value from 6 <hi rend="italic">semibreves</hi> to 5 <hi rend="italic">semibreves</hi>, the corresponding attributes to encode this particular case of partial imperfection would be <att>num</att>="6" and <att>numbase</att>="5" as shown below in the code snippet and its rendering.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of "partial imperfection of an immediate part" (ad partem propinquam)</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" tempus="3" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" tempus="3" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 2 and @tempus = 3 --> <layer n="1"> <note dur="longa" num="6" numbase="5" /> <barLine form="dotted" /> <note dur="semibrevis" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>Partial imperfection can also happen from both sides of a note at once, as shown below:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of "partial imperfection" from both sides (ad partes)</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" tempus="3" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" tempus="3" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 2 and @tempus = 3 --> <layer n="1"> <note dur="semibrevis" /> <barLine form="dotted" /> <note dur="longa" num="6" numbase="4" /> <barLine form="dotted" /> <note dur="semibrevis" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <note dur="semibrevis" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>An example of partial imperfection caused by a note three orders apart is given next. Here the <hi rend="italic">longa</hi> is partially imperfected by a <hi rend="italic">minima</hi> (instead of by a <hi rend="italic">semibrevis</hi>).</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of "partial imperfection of a remote part" (ad partem remotam)</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted and dashed barlines, is used here to help visualizing the durational values of the notes in the upper staff. Dotted barlines in the bottom staff show the minim groups equivalent to a semibreve, and the dashed barlines show the groups of semibreves equivalent to a breve.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" prolatio="3" tempus="2" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="2" prolatio="3" tempus="2" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 2, @tempus = 2, and @prolatio = 3 --> <layer n="1"> <note dur="longa" num="12" numbase="11" /> <barLine form="dotted" /> <note dur="minima" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dotted" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dotted" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p>In the next example, the <hi rend="italic">longa</hi> is also imperfected by a <hi rend="italic">minima</hi>. However, the <att>num</att> and <att>numbase</att> ratio is different from the example above because the default value of the <hi rend="italic">longa</hi> here (18 <hi rend="italic">minimas</hi>) is different from that of the previous example (12 <hi rend="italic">minimas</hi>).</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of "partial imperfection of a remote part" (ad partem remotam)</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>The bottom staff, together with the dotted barlines, is used here to help visualizing the durational values of the notes in the upper staff. Dotted barlines in the bottom staff show the minim groups equivalent to a semibreve, and the dashed barlines show the groups of semibreves equivalent to a breve.</annot> </notesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <score> <scoreDef> <staffGrp> <staffDef label="voice" n="1" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="3" prolatio="3" tempus="2" /> <staffDef label="reference" n="2" notationtype="mensural.white" lines="5" clef.shape="G" clef.line="2" modusminor="3" prolatio="3" tempus="2" /> </staffGrp> </scoreDef> <section> <staff n="1"> <?edit-start?> <!-- mensuration encoded in <staffDef> element indicates @modusminor = 3, @tempus = 2, and @prolatio = 3 --> <layer n="1"> <note dur="longa" num="18" numbase="17" /> <barLine form="dotted" /> <note dur="minima" /> <barLine form="dashed" /> </layer> <?edit-end?> </staff> <staff n="2"> <layer n="1"> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dotted" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dotted" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dashed" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dotted" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <note dur="minima" oct="4" pname="a" /> <barLine form="dashed" /> </layer> </staff> </section> </score> </mdiv> </body> </music> </mei></egXML> </figure> </p> </div> </div> <div xml:id="mensuralSigns" type="div2"> <head>Mensuration</head> <p>Using the mensural module, mensuration signs can be indicated with the attributes available on the <gi scheme="MEI">scoreDef</gi> and <gi scheme="MEI">staffDef</gi> elements. Mensuration signs encoded using attributes on <gi scheme="MEI">scoreDef</gi> are regarded as default values which may be overridden by values attached to individual <gi scheme="MEI">staffDef</gi> elements.</p> <p>The division levels corresponding to <hi rend="italic">modus maior</hi>, <hi rend="italic">modus minor</hi>, <hi rend="italic">tempus</hi>, and <hi rend="italic">prolatio</hi> can be encoded in the <att>modusmaior</att>, <att>modusminor</att>, <att>tempus</att>, and <att>prolatio</att> attributes respectively. Their value must be 3 (perfect) or 2 (imperfect).</p> <p> <specList> <specDesc key="att.mensural.shared" atts="modusmaior modusminor tempus prolatio"/> </specList> </p> <p>The mensur signs themselves can be encoded in the <att>mensur.sign</att> attribute with a possible value of <val>C</val> or <val>O</val>. Its orientation can be encoded in the <att>mensur.orient</att> attribute, for example, with the value <val>reversed</val> for a flipped C sign. The number of slashes (up to 6) can be given in the <att>mensur.slash</att> attribute. There is also a <att>mensur.dot</att> attribute for indicating the presence of a dot through the boolean values <val>true</val> or "false".</p> <p> <specList> <specDesc key="att.mensural.vis" atts="mensur.sign mensur.dot mensur.slash mensur.orient"/> </specList> </p> <p> <gi scheme="MEI">mensur</gi> elements can also be used instead of <gi scheme="MEI">staffDef</gi> and its attributes. In <gi scheme="MEI">mensur</gi>, the division levels are encoded with the previously mentioned <att>modusmaior</att>, <att>modusminor</att>, <att>tempus</att>, and <att>prolatio</att> attributes, while the attributes to indicate the mensur signs are: <att>sign</att>, <att>orient</att>, <att>slash</att>, and <att>dot</att>. <gi scheme="MEI">mensur</gi> can be a child of the <gi scheme="MEI">staffDef</gi> and <gi scheme="MEI">layer</gi> elements.</p> <p> <specList> <specDesc key="mensur"/> </specList> </p> <p> <specList> <specDesc key="att.mensural.shared" atts="modusmaior modusminor tempus prolatio"/> </specList> </p> <p> <specList> <specDesc key="att.mensur.vis" atts="sign dot orient"/> <specDesc key="att.slashCount" atts="slash"/> </specList> </p> <div xml:id="changeinmensuration" type="div3"> <head>Change in mensuration</head> <p>The following example illustrates a <hi rend="italic">change in mensuration</hi>. In this case, the element <gi scheme="MEI">mensur</gi> is used within the <gi scheme="MEI">layer</gi> element, preceding the stream of notes affected by the new mensuration defined by it. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of 'mensuration changes'</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> </fileDesc> </meiHead> <music> <body> <mdiv> <?edit-start?> <score> <scoreDef> <staffGrp> <staffDef n="1" notationtype="mensural" lines="5" clef.shape="G" clef.line="2" mensur.color="red" mensur.dot="true" mensur.sign="O" mensur.slash="1" /> </staffGrp> </scoreDef> <section> <staff n="1"> <layer n="1"> <note /> <note /> <note /> <mensur sign="C" loc="3" /> <note /> <note /> <note /> </layer> </staff> </section> </score> <?edit-end?> </mdiv> </body> </music> </mei></egXML> </figure> </p> <p><hi rend="bold">Sesquialtera</hi> is frequently used to change the mensuration. The effect of the sesquialtera on the mensuration can be encoded by using the <att>tempus</att> and <att>prolatio</att> attributes of <gi scheme="MEI">mensur</gi> (for example, when changing the tempus to perfect, the effect can be encoded in <att>tempus</att>="3"). The actual sesquialtera can be encoded using <att>num</att>="3", <att>numbase</att>="2", and <att>level</att> to define the note level the sesquialtera is applied to (<abbr>e.g.</abbr>, <att>level</att>="semibrevis").</p> </div> <div xml:id="implicitmensuration" type="div3"> <head>Implicit mensuration</head> <p>It is common in <hi rend="italic">Ars antiqua</hi> and some <hi rend="italic">Ars nova</hi> pieces to have no mensuration signs. In this case, the mensuration—the division levels corresponding to <hi rend="italic">modus maior</hi>, <hi rend="italic">modus minor</hi>, <hi rend="italic">tempus</hi>, and <hi rend="italic">prolatio</hi>—is given by the context. The next example shows the incipit of a four-voice piece, Josquin’s <hi rend="italic">Tu solus qui facis mirabilia</hi>, where only two of the voices (<hi rend="italic">Cantus</hi> and <hi rend="italic">Tenor</hi>) have a mensuration sign. The other two (<hi rend="italic">Altus</hi> and <hi rend="italic">Bassus</hi>) have <hi rend="italic">no mensuration signs</hi>, and the <hi rend="italic">mensura is given by the context</hi>. Therefore, while only the <hi rend="italic">Cantus</hi> and the <hi rend="italic">Tenor</hi> have attributes for encoding the mensuration sign (in this case, <att>mensur.sign</att> and <att>mensur.slash</att>), all four voices include attributes to encode the <hi rend="italic">mensura</hi> (<att>tempus</att> and <att>prolatio</att>). <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="verovio code" xml:space="preserve"><?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?> <?xml-model href="https://music-encoding.org/schema/5.0/mei-all.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?> <mei xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <meiHead> <fileDesc> <titleStmt> <title>Example of omitted mensuration signs</title> </titleStmt> <pubStmt> <date isodate="2023">2023</date> <respStmt> <corpName>Music Encoding Initiative (MEI) Board</corpName> </respStmt> <availability> <useRestrict label="license" auth="https://spdx.org/licenses/" codedval="ECL-2.0"> <p>Educational Community License v2.0</p> </useRestrict> </availability> </pubStmt> <seriesStmt> <title>MEI guidelines examples</title> </seriesStmt> <notesStmt> <annot>In this choir book, only the verso parts have a mensuration sign, whereas Altus and Bassus on the recto don't.</annot> </notesStmt> <sourceDesc> <source> <bibl>FlorPanc27, 79v-80r</bibl> </source> </sourceDesc> </fileDesc> </meiHead> <music> <body> <mdiv> <?edit-start?> <score> <scoreDef keysig="1f"> <staffGrp> <staffDef n="1" label="Cantus" lines="5" notationtype="mensural.white" clef.shape="C" clef.line="1" mensur.sign="C" mensur.slash="1" prolatio="2" tempus="2" /> <staffDef n="2" label="Tenor" lines="5" notationtype="mensural.white" clef.shape="C" clef.line="4" mensur.sign="C" mensur.slash="1" prolatio="2" tempus="2" /> <staffDef n="3" label="Altus" lines="5" notationtype="mensural.white" clef.shape="C" clef.line="3" prolatio="2" tempus="2" /> <staffDef n="4" label="Bassus" lines="5" notationtype="mensural.white" clef.shape="F" clef.line="4" prolatio="2" tempus="2" /> </staffGrp> </scoreDef> <section> <staff n="1"> <layer n="1"> <note pname="b" oct="4" dur="brevis" /> <note pname="b" oct="4" dur="brevis" /> <note pname="a" oct="4" dur="brevis" /> <note pname="g" oct="4" dur="brevis" /> <note pname="g" oct="4" dur="semibrevis" /> <note pname="g" oct="4" dur="semibrevis" /> </layer> </staff> <staff n="2"> <layer n="1"> <note pname="g" oct="3" dur="brevis" /> <note pname="b" oct="3" dur="brevis" /> <note pname="c" oct="4" dur="brevis" /> <note pname="c" oct="4" dur="brevis" /> <note pname="c" oct="4" dur="semibrevis" /> <note pname="c" oct="4" dur="semibrevis" /> </layer> </staff> <staff n="3"> <layer n="1"> <note pname="d" oct="4" dur="brevis" /> <note pname="d" oct="4" dur="brevis" /> <note pname="f" oct="4" dur="brevis" /> <note pname="e" oct="4" dur="brevis" /> <note pname="e" oct="4" dur="semibrevis" /> <note pname="e" oct="4" dur="semibrevis" /> </layer> </staff> <staff n="4"> <layer n="1"> <note pname="g" oct="2" dur="brevis" /> <note pname="g" oct="3" dur="brevis" /> <note pname="g" oct="3" dur="brevis" /> <note pname="c" oct="3" dur="brevis" /> <note pname="c" oct="3" dur="semibrevis" /> <note pname="c" oct="3" dur="semibrevis" /> </layer> </staff> </section> </score> <?edit-end?> </mdiv> </body> </music> </mei></egXML> </figure> </p> </div> <div xml:id="italianMensur" type="div3"> <head>Italian Divisiones</head> <p>The division of the breve in Italian trecento notation can be encoded using the <att>divisio</att> attribute, which provides the values: ternaria, quaternaria, senariaimperf, senariaperf, octonaria, novenaria, duodenaria. The <att>divisio</att> attribute would usually replace the use of the <att>tempus</att> and <att>prolatio</att> set of attributes.</p> <p> <specList> <specDesc key="att.mensural.shared" atts="divisio"/> </specList> </p> <p>The signs for the Italian <hi rend="italic">divisiones</hi> can be encoded in the <att>sign</att> or <att>mensur.sign</att> attribute (to be used with <att>mensur</att> or <att>staffDef</att> respectively), with the values: <val>t</val> for ternaria, <val>q</val> for quaternaria, <val>si</val> and <val>i</val> for senaria imperfecta, <val>sp</val> and <val>p</val> for senaria perfecta, <val>oc</val> for octonaria, <val>n</val> for novenaria, and <val>d</val> for duodenaria. And the additional values for senaria gallica, <val>sg</val> and <val>g</val>, and senaria ytalica, <val>sy</val> and <val>y</val>.</p> </div> </div> <div xml:id="mensuralProportions" type="div2"> <head>Proportions</head> <p>Proportions can also be indicated within the <gi scheme="MEI">staffDef</gi> element. The <att>proport.num</att> and <att>proport.numbase</att> attributes are available for encoding the numerator and the denominator of the proportion, respectively. There is also a <gi scheme="MEI">proport</gi> element that can be used as an alternative, with the corresponding <att>num</att> and <att>numbase</att> attributes.</p> <p> <specList> <specDesc key="proport"/> </specList> </p> </div> <div xml:id="mensuralLigatures" type="div2"> <head>Ligatures</head> <p>Ligatures can be encoded using the <gi scheme="MEI">ligature</gi> element. The <att>form</att> attribute is available for specifying if the ligature is <hi rend="italic">recta</hi> or <hi rend="italic">obliqua</hi>.</p> <p> <figure> <head>Recta and obliqua ligatures</head> <graphic url="../images/modules/mensural/ex_ligatures01.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <ligature form="recta"> <note dur="semibrevis" oct="4" pname="d"/> <note dur="semibrevis" oct="3" pname="g"/> </ligature> <ligature form="obliqua"> <note dur="semibrevis" oct="3" pname="g"/> <note dur="semibrevis" oct="4" pname="c"/> </ligature> </layer> </egXML> </figure> </p> <p>In cases where the ligature contains both <hi rend="italic">recta</hi> and <hi rend="italic">obliqua</hi> notes, the <att>lig</att> attribute of the <gi scheme="MEI">note</gi> element can be used to specify the form of the ligature at the note level.</p> <p> <figure> <head>Ligature with more than two notes with recta and obliqua</head> <graphic url="../images/modules/mensural/ex_ligatures02.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ligature form="recta"> <note dur="longa" oct="3" pname="a"/> <note dur="longa" oct="4" pname="e"/> <note dur="semibrevis" lig="obliqua" oct="4" pname="d"/> <note dur="semibrevis" lig="obliqua" oct="4" pname="c"/> <note dur="brevis" oct="3" pname="b"/> <note dur="brevis" oct="4" pname="e"/> </ligature> </egXML> </figure> </p> </div> <div xml:id="mensuralData" type="div2"> <head>Music Data Organization</head> <p>The data organization based on <gi scheme="MEI">measure</gi> elements that usually prevails in MEI is not appropriate for mensural notation because most music until 1600 does not have measures (bars) as we understand them today. Even though it is not defined by the mensural module, a more suitable alternate data organization without measures is available: <gi scheme="MEI">staff</gi> elements may occur directly within the <gi scheme="MEI">section</gi> element without being organized into measures first. The organization of events (notes, rests, etc.) within the <gi scheme="MEI">staff</gi> and <gi scheme="MEI">layer</gi> elements remains unchanged.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <staff n="1"> <layer> <note dur="longa" oct="5" pname="c"/> <note dur="brevis" oct="4" pname="g"/> <note dur="brevis" oct="4" pname="e"/> </layer> </staff> <staff n="2"> <layer> <note dur="maxima" oct="3" pname="c"/> </layer> </staff> </section> </egXML> </figure> </p> <p>This feature may also be used to encode measured music without using the <gi scheme="MEI">measure</gi> element. That is, the same data organization described above may be used, but with the addition of bar lines, indicated by the <gi scheme="MEI">barLine</gi> element, for those situations where a measure-by-measure organization is not appropriate, for example, when measures are not coincident in all the staves of a score.</p> </div> <div xml:id="otherFeatures" type="div2"> <head>Other Features</head> <p>Other features included in the MEI schema that allow for the encoding of various mensural notation properties are presented below:</p> <div xml:id="notationtype" type="div3"> <head>Notation Type</head> <p>The <att>notationtype</att> attribute, part of the MEI module, can be used within the <gi scheme="MEI">staffDef</gi> element to specify which dialect of mensural notation is in use.</p> <p> <specList> <specDesc key="att.notationType" atts="notationtype"/> </specList> </p> <p>At the moment, three values are in use for mensural notation:</p> <list type="gloss"> <label>mensural</label> <item>For mensural notation in general</item> <label>mensural.black</label> <item>For black mensural notation, this is in reference to the use of filled-in note heads</item> <label>mensural.white</label> <item>For white mensural notation, this is in reference to the use of void note heads, which became most widely used in the Renaissance period</item> </list> <p>The values of the <att>notationtype</att> attribute can indicate notation types other than mensural, such as common (Western) music notation, neume notation, and tablature.</p> <p>The attribute <att>notationsubtype</att> can be used, together with the <att>notationtype</att> attribute, to provide more specificity regarding the type of notation encoded. This attribute can be used, for example, to specify if a piece in black mensural notation (<att>notationtype</att>="mensural.black") is written in <hi rend="italic">Ars antiqua</hi> or <hi rend="italic">Ars nova</hi> style. Currently, the values allowed in the <att>notationsubtype</att> attribute consist of any sequence of characters provided by the user.</p> <p> <specList> <specDesc key="att.notationType" atts="notationsubtype"/> </specList> </p> <p> <hi rend="italic">Important:</hi> An element with a <att>notationsubtype</att> attribute must have a <att>notationtype</att> attribute.</p> </div> <div xml:id="stems" type="div3"> <head>Stems</head> <p>The characteristics of a note’s stem can be encoded within the <gi scheme="MEI">note</gi> element, using the attributes:</p> <p> <specList> <specDesc key="att.stems" atts="stem.dir stem.len stem.pos stem.x stem.y"/> <specDesc key="att.stems.mensural" atts="stem.form"/> </specList> </p> <p>[include example (image and code) of a note with one stem that includes many of these attributes]</p> <p>Sometimes notes have two stems. In this case, the <gi scheme="MEI">stem</gi> element can be used as a child of <gi scheme="MEI">note</gi> to define the individual characteristics of each stem with the following attributes:</p> <p> <specList> <specDesc key="stem"/> </specList> </p> <p> <specList> <specDesc key="att.stem.vis" atts="dir form len pos flag.form flag.pos"/> <specDesc key="att.xy" atts="x y"/> </specList> </p> <p>[include example (image and code) of a note with two stems]</p> </div> <div xml:id="plicas" type="div3"> <head>Plicas</head> <p>Plicas can be encoded using the <gi scheme="MEI">plica</gi> element as a child of <gi scheme="MEI">note</gi>. The direction of the plica, as well as its length, can be encoded using the following visual-domain attributes:</p> <p> <specList> <specDesc key="plica"/> </specList> </p> <p> <specList> <specDesc key="att.plica.vis" atts="dir len"/> </specList> </p> <figure> <head>Encoding and rendering of plicas</head> <graphic url="../images/modules/mensural/ex_plicae.png"/> </figure> </div> <div xml:id="dots" type="div3"> <head>Dots</head> <p>Dots of division and augmentation can be encoded by using the <gi scheme="MEI">dot</gi> element (provided by the MEI.shared module). This element is meant to be used as a child of <gi scheme="MEI">layer</gi> following the <gi scheme="MEI">note</gi> or <gi scheme="MEI">rest</gi> after which it appears in the original source.</p> <p>Dots in mensural notation are not encoded as children of notes or rests, but rather as a sibling of these. They are also not encoded as attributes (the use of the <att>dot</att> attribute in a <gi scheme="MEI">note</gi> or <gi scheme="MEI">rest</gi> element is only acceptable in Common Music Notation, not mensural).</p> <p>To indicate the nature of the dot (as a dot of division or augmentation), the <gi scheme="MEI">dot</gi> element has an attribute <att>form</att>, which can take on the following values:</p> <list type="gloss"> <label>aug</label> <item>Value of the form attribute for a dot of augmentation (this is a dot that adds half the value to the previous note, like a dotted note in common Western music notation)</item> <label>div</label> <item>Value of the form attribute for a dot of division (this is a dot that modifies the perfect groupings of the notes, thus, changing some notes' duration in the process)</item> </list> <p>The actual effect of these dots (<hi rend="italic">augmenting</hi> a note and making it perfect, or dividing a sequence of notes in different groupings by <hi rend="italic">imperfecting</hi> some notes or <hi rend="italic">altering</hi> others) is encoded with the <att>dur.quality</att> attribute of the correspoding <gi scheme="MEI">note</gi> elements. Examples of the use of dots of division and augmentation can be found in the <ptr target="#mensuralRules"/> section.</p> </div> <div xml:id="accidentals" type="div3"> <head>Accidentals</head> <p>[explain that accidentals are usually encoded as independent elements and that accid.ges can be used within notes]</p> </div> <div xml:id="coloration" type="div3"> <head>Coloration</head> <p>[explain where/how coloration can be encoded]</p> </div> <div xml:id="custos" type="div3"> <head>Custos</head> <p>[explain that there is a custos element available]</p> </div> </div> </div> <div xml:id="neumes" type="div1"> <head>Repertoire: Neume Notation</head> <p>This chapter describes the elements, model classes, and attribute classes that are part of the MEI.neumes module.</p> <div xml:id="neumesRepertoire" type="div2"> <head>Overview of the Neumes Module</head> <p>The MEI Neumes Module represents the community’s attempt to create a standardized set of rules that encapsulate in a logical, systematic, and unequivocal way the musical information represented and conveyed by Western European neumatic notations (beginning with the late ninth century and continuing to the printed books of the twentieth). Most neume notation is used to set music to an existing text. The syllable is the fundamental unit of structure, with the neumes themselves serving as a means of “sonifying” the text. A syllable may be expressed via one or more neumes, with the particular neume shape chosen depending on the pitch contour that is being employed and the desired interpretation.</p> <p>The `syllable` element is used as the primary organizational element for neume notation within a `layer` element. Within `syllable`, the `syl` element defined in the `MEI.shared` module is used for encoding the textual content, while the `neume` and `nc` elements are used to encode the neumes themselves. Within these Neumes Module elements, other standard MEI mechanisms are available to accommodate, for example, editorial or critical markup.</p> <div xml:id="basicfourelements" type="div3"> <head>Basic four elements</head> <p>The following four elements are the fundamental components of the Neumes Module:</p> <p> <specList> <specDesc key="syllable"/> </specList> </p> <p>Neume notation can be thought of as "neumed text". Therefore, the syllable element provides high-level organization in this repertoire.</p> <p> <specList> <specDesc key="syl"/> </specList> </p> <p>(syllable) – Individual lyric syllable. <figure> <head/> <graphic url="../images/modules/neumes/syllable.png"/> </figure> </p> <p> <specList> <specDesc key="neume"/> </specList> Sign representing one or more musical pitches. As such, a <gi scheme="MEI">neume</gi> consists of one or more <gi scheme="MEI">nc</gi> element(s):</p> <table> <row> <cell>Connected</cell> <cell>Non-connected</cell> </row> <row> <cell> <figure> <head>Connected</head> <graphic url="../images/modules/neumes/NEUME-con.png"/> </figure> </cell> <cell> <figure> <head>Non-connected</head> <graphic url="../images/modules/neumes/NEUME-non-con.png"/> </figure> </cell> </row> </table> <p> <specList> <specDesc key="nc"/> </specList> </p> <p>Sign representing a single pitched event, although the exact pitch may not be known. Examples of neume components are:</p> <table> <row> <cell>Example 1</cell> <cell>Example 2</cell> <cell>Example 3</cell> </row> <row> <cell> <figure> <head>nc-1</head> <graphic url="../images/modules/neumes/NC-rhombusNEW.png"/> </figure> </cell> <cell> <figure> <head>nc-2</head> <graphic url="../images/modules/neumes/NC-squareNEW.png"/> </figure> </cell> <cell> <figure> <head>nc-3</head> <graphic url="../images/modules/neumes/NC-squaretailNEW.png"/> </figure> </cell> </row> </table> </div> </div> <div xml:id="neumesBackground" type="div2"> <head>Neumes Module Background</head> <p>Neume encoding in MEI was initially developed as part of the <ref target="https://www.dimused.uni-tuebingen.de/tuebingen_e.php">Hildegard von Bingen project</ref> at the University of Tübingen. MEI was chosen as the basic representation format after a <ref target="http://www.dimused.uni-tuebingen.de/tuebingen_phase1_e.php">comparison of existing music encoding formats</ref>. The initial work on this module was performed by Gregor Schräder <ref target="http://www.dimused.uni-tuebingen.de/downloads/studienarbeit.pdf">(Ein XML-Datenformat zur Repräsentation kritischer Musikedition unter besonderer Berücksichtigung von Neumennotation)</ref>, supervised by Prof. Stefan Morent. Since 2012 a group of scholars has been working on the development of a new version of the MEI schema for neume notations (Ichiro Fujinaga, Jennifer Bain, Debra Lacoste, Kate Helsen, and Inga Behrendt). Afterwards, other chant scholars joined the group bringing further expertise on other kinds of early music notations (namely <ref target="https://sites.google.com/fcsh.unl.pt/elsadeluca/">Elsa De Luca</ref>, Alessandra Ignesti, and Sarah A. Long).</p> </div> <div xml:id="neumesNotation" type="div2"> <head>Neume Notation and MEI</head> <p>There are four main challenges in encoding Western European early music. The first relates to the fact that early notation was just a mnemonic aid that helped the readers to recall the music they already knew by heart and, as such, it conveys only partial musical information (Bain, Behrendt, & Helsen 2014; Helsen, Behrendt, & Bain 2017). Indeed, it is only with the invention of staff lines in the eleventh century that the system of musical transmission gradually changed, relying more on the written record rather than on orality. The second challenge refers to the existence of different regional styles of early notation; early-music manuscripts display a great graphical variety of musical signs, which include both neumes and other notational elements conveying further musical information (<abbr>e.g.</abbr>, significative letters, Old Hispanic ticks, etc.). Thirdly, some of those regional notational styles occasionally share graphically similar shapes; these similar shapes within the different notational styles are understood by modern scholars to represent the same, a similar, or even a <hi rend="italic">different</hi> musical meaning. Finally, while on occasion the neume shapes appear to mirror graphically the musical characteristics of the sound being represented (<abbr>e.g.</abbr>, pen-stroke going up = rising melody), in many instances it is generally understood that the meaning attached to the neumes (or the other notational elements) may not be so straight-forward, but instead was ruled by conventions shared by the people who knew orally the musical repertory being fixed in written form by means of notation.</p> <p><hi rend="italic">What do these challenges entail for modern encoders?</hi></p> <p>Firstly, sometimes we have to deal with written signs whose meaning is obscure to us and, while we can infer the meaning of some of those signs from the study of later manuscripts with the same melodies and a more precise notation, in other cases we need to turn to music palaeographers who examine the recurrence of those written signs and the context where they were used. By analysing scribal hands in particular manuscripts, palaeographers can often work out if a written sign is a meaningless scribal variant or a graphical feature conveying musical meaning to the medieval reader. Secondly, since a neume shape could either mirror on the page the aural event or bear some other musical meaning attached by convention, the encoding sometimes relies on the visual level or on the semantic level, and this distinction has to be made on a case-by-case basis. Moreover, since the same written sign could have multiple interpretations according to the style of notation where it was employed, it is crucial to be aware of the conventions of each regional notational alphabet in order to capture the musical information conveyed by that sign in the contexts where it is found.</p> <p>See two examples of shapes found in different regional styles that are not captured with the same encoding:</p> <p> <hi rend="italic">Example 1</hi> </p> <p> <hi rend="italic">St Gall notation</hi> Oriscus (one-note ornamental neume). The oriscus is the middle note of a three-note raising gesture (commonly called <hi rend="italic">salicus</hi> in the literature). <figure> <head/> <graphic url="../images/modules/neumes/salicus.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc> <oriscus/> </nc> <nc tilt="ne" intm="u"/> </neume> </egXML> </figure> </p> <p> <hi rend="italic">Old Hispanic notation</hi>: Two-note downward melodic gesture. <figure> <head/> <graphic url="../images/modules/neumes/NLneumeOH.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> <nc curve="c" tilt="s" intm="d"/> </neume> </egXML> </figure> </p> <p> <hi rend="italic">Example 2</hi> </p> <p> <hi rend="italic">Old Hispanic notation:</hi> Four-note neutral-low-high-low melodic gesture. <figure> <head/> <graphic url="../images/modules/neumes/MneumeOH.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> <nc tilt="se" intm="d"/> <nc tilt="ne" intm="u"/> <nc tilt="se" intm="d"/> </neume> </egXML> </figure> </p> <p> <hi rend="italic">Aquitanian notation:</hi> Three-note rising neume with oriscus on the second note. <figure> <head/> <graphic url="../images/modules/neumes/LIQUESCENT-ExampleB.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc> <oriscus/> </nc> <nc tilt="ne" intm="u"/> </neume> </egXML> </figure> </p> <p>A further complication is that while the music encoding aims to narrow down and capture the meaning of the neumes in a logical and coherent system, occasionally the significance of some neumes is under debate (<abbr>e.g.</abbr>, <gi scheme="MEI">quilisma</gi>) and, despite its aim for accuracy, the encoding must remain open for future interpretations. From all these challenges has arisen the need for an early music encoding standardisation, that is, a set of rules that work for the description of any neume across all early notations regardless of the different methodologies applied to the study of individual notations and their idiosyncrasies.</p> <p>Broadly speaking, Western early notations belong to two main categories. On one side we have notations where two or more notes were represented by a single pen-stroke, while on the other side there are notations where the notes are graphically separated by means of discrete dots or short pen-strokes. These distinctions have been described even within single notational styles as gapped or not gapped (Behrendt, Bain, & Helsen 2017). To date, the MEI Neumes Module has been tested mainly on square notations and stroke notations (St. Gall, Old Hispanic, etc.), but also on Aquitanian point-notation.</p> </div> <div xml:id="neumesExamples" type="div2"> <head>Samples of MEI encodings</head> <div xml:id="elements" type="div3"> <head>Elements</head> <p> <gi scheme="MEI">neume</gi> and <gi scheme="MEI">nc</gi> are the most common elements used in the MEI Neumes module. In the following examples we can see how these elements are used to describe sung gestures of 1, 2, and 4 notes in square notation.</p> <table> <row> <cell> <hi rend="italic">One pitch - Staff notation. Example A</hi> </cell> <cell> <figure> <head>One pitch</head> <graphic url="../images/modules/neumes/one-pitch-ex-aNEW.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="f" oct="3"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">One pitch - Staff notation. Example B</hi> </cell> <cell> <figure> <head>One pitch</head> <graphic url="../images/modules/neumes/one-pitch-ex-bNEW.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="c" oct="3"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">Two pitches - Staff notation</hi> </cell> <cell> <figure> <head>Two pitches</head> <graphic url="../images/modules/neumes/two-pitchesSN.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="e" oct="3" tilt="n"/> <nc pname="c" oct="3"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">Four pitches - Staff notation</hi> </cell> <cell> <figure> <head>Four pitches</head> <graphic url="../images/modules/neumes/four-pitchesSN.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="a" oct="3"/> <nc pname="b" oct="3"/> <nc pname="g" oct="3" tilt="se" con="g"/> <nc pname="f" oct="3" tilt="se" con="g"/> </neume> </egXML> </figure> </p> <p>In addition to <gi scheme="MEI">neume</gi> and <gi scheme="MEI">nc</gi> the following elements are also frequently used in the MEI Neumes Module: <gi scheme="MEI">custos</gi>, <gi scheme="MEI">episema</gi>, <gi scheme="MEI">hispanTick</gi>, <gi scheme="MEI">liquescent</gi>, <gi scheme="MEI">ncGrp</gi>, <gi scheme="MEI">oriscus</gi>, <gi scheme="MEI">quilisma</gi>, <gi scheme="MEI">signifLet</gi>, <gi scheme="MEI">strophicus</gi>. Note that <gi scheme="MEI">nc</gi>, <gi scheme="MEI">episema</gi>, <gi scheme="MEI">hispanTick</gi>, and <gi scheme="MEI">signifLet</gi> are <gi scheme="MEI">neume</gi> elements. Instead <gi scheme="MEI">oriscus</gi>, <gi scheme="MEI">liquescent</gi>, <gi scheme="MEI">quilisma</gi>, and <gi scheme="MEI">strophicus</gi> are elements that must be part of a <gi scheme="MEI">nc</gi> element. The <gi scheme="MEI">custos</gi> is an element that is encoded inside the <gi scheme="MEI">syl</gi> element. Furthermore, there are many other elements such as Editorial and Metadata elements that are not specific to Neumes and are not listed here.</p> <p> <gi scheme="MEI">custos</gi>: to indicate a symbol placed at the end of a line of music to indicate the first note of the next line. Sometimes called a "direct" (see MEI encoding of <gi scheme="MEI">custos</gi> below).</p> <p><gi scheme="MEI">mdiv</gi>: to indicate pause between neumes <figure> <head/> <graphic url="../images/modules/neumes/division.png"/> </figure></p> <p> <gi scheme="MEI">episema</gi>: to indicate an episema (see MEI encoding of <gi scheme="MEI">episema</gi> below). <figure> <head/> <graphic url="../images/modules/neumes/episema.png"/> </figure> </p> <p> <gi scheme="MEI">hispanTick</gi>: to indicate Old Hispanic ticks (see MEI encoding of <gi scheme="MEI">hispanTick</gi> below). <figure> <head/> <graphic url="../images/modules/neumes/hispanTick.png"/> </figure> </p> <p> <gi scheme="MEI">liquescent</gi>: to indicate a liquescent (see MEI encoding of <gi scheme="MEI">liquescent</gi> neumes below). <figure> <head/> <graphic url="../images/modules/neumes/liquescent2NEW.png"/> </figure> </p> <p> <gi scheme="MEI">ncGrp</gi>: to indicate multiple <gi scheme="MEI">nc</gi>s.</p> <p> <gi scheme="MEI">oriscus</gi>: to indicate an oriscus.</p> <table> <row> <cell> <hi rend="italic">ORISCUS - Square notation</hi> </cell> <cell> <figure> <head>Oriscus1</head> <graphic url="../images/modules/neumes/oriscus.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc oct="3" pname="g"> <oriscus/> </nc> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">ORISCUS - St Gall notation</hi> </cell> <cell> <figure> <head>Oriscus2</head> <graphic url="../images/modules/neumes/salicus.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc/> <nc> <oriscus/> </nc> <nc tilt="ne" intm="u"/> </neume> </egXML> </figure> </p> <p> <gi scheme="MEI">quilisma</gi>: to indicate a quilisma (see MEI encoding of <gi scheme="MEI">quilisma</gi> below).</p> <p> <figure> <head/> <graphic url="../images/modules/neumes/quilisma.png"/> </figure> </p> <p> <gi scheme="MEI">signifLet</gi>: element indicates significative letter(s) attached to a <gi scheme="MEI">neume</gi> or a <gi scheme="MEI">nc</gi> (see MEI encoding of <gi scheme="MEI">signifLet</gi> below).</p> <p> <figure> <head/> <graphic url="../images/modules/neumes/signifLet.png"/> </figure> </p> <p> <gi scheme="MEI">strophicus</gi>: to indicate a strophicus</p> <table> <row> <cell> <hi rend="italic">STROPHICUS - Square notation</hi> </cell> <cell> <figure> <head>Strophicus</head> <graphic url="../images/modules/neumes/strophicusNEW.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="c" oct="4" tilt="n" ligated="true"/> <nc pname="a" oct="3" ligated="true"/> <nc pname="c" oct="4"/> <nc pname="c" oct="4"> <strophicus/> </nc> <nc pname="c" oct="4"> <strophicus/> </nc> </neume> </egXML> </figure> </p> </div> <div xml:id="neumecomponentattributes" type="div3"> <head>Neume component attributes</head> <p> <specList> <specDesc key="att.nc.log" atts="pname"/> <specDesc key="att.nc.log" atts="oct"/> <specDesc key="att.intervalMelodic" atts="intm"/> <specDesc key="att.ncForm" atts="con"/> </specList> </p> <table> <row> <cell> <hi rend="italic">GAPPED CONNECTION - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Gapped</head> <graphic url="../images/modules/neumes/gapped.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="e"/> <nc con="g" tilt="n" rellen="l" intm="u"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">LOOPED CONNECTION - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Looped</head> <graphic url="../images/modules/neumes/looped.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc s-shape="s"/> <nc con="l" tilt="ne" intm="u"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">EXTENDED CONNECTION - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Extended</head> <graphic url="../images/modules/neumes/extended.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> <nc curve="c" con="e" tilt="sw" rellen="s" intm="d"/> </neume> </egXML> </figure> </p> <p>Nota bene: the following neume has a similar shape but the neumatic connection is <hi rend="italic">not</hi> extended.</p> <table> <row> <cell> <hi rend="italic">NON-EXTENDED CONNECTION - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Non-extended</head> <graphic url="../images/modules/neumes/non-extended.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="n"/> <nc curve="c" tilt="s" rellen="s" intm="d"/> </neume> </egXML> </figure> </p> <p> <specList> <specDesc key="att.curvatureDirection" atts="curve"/> </specList> </p> <table> <row> <cell> <hi rend="italic">CURVE - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Curve</head> <graphic url="../images/modules/neumes/curve.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc curve="c"/> <nc con="g" curve="a" intm="s"/> </neume> </egXML> </figure> </p> <p> <specList> <specDesc key="att.ncForm" atts="angled"/> </specList> </p> <table> <row> <cell> <hi rend="italic">ANGLED - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Angled</head> <graphic url="../images/modules/neumes/angled.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="e"/> <nc angled="true" intm="u"/> <nc angled="true" intm="u"/> <nc tilt="n" rellen="l" intm="u"/> </neume> </egXML> </figure> </p> <p> <specList> <specDesc key="att.ncForm" atts="hooked"/> </specList> </p> <table> <row> <cell> <hi rend="italic">HOOK – Old Hispanic notation</hi> </cell> <cell> <figure> <head>Hook</head> <graphic url="../images/modules/neumes/hooked.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> <nc tilt="se" hooked="true" rellen="s" intm="d"/> </neume> </egXML> </figure> </p> <p> <specList> <specDesc key="att.ncForm" atts="ligated"/> </specList> {true | false} if this <gi scheme="MEI">nc</gi> is part of a ligature. See the encoding of the <gi scheme="MEI">strophicus</gi> example, above.</p> <p> <specList> <specDesc key="att.ncForm" atts="rellen"/> </specList> </p> <table> <row> <cell> <hi rend="italic">RELATIVE LENGTH – Old Hispanic notation. Example A</hi> </cell> <cell> <figure> <head>Relative-Length-A</head> <graphic url="../images/modules/neumes/rellenA.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> <nc tilt="se" rellen="s" intm="d"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">RELATIVE LENGTH – Old Hispanic notation. Example B</hi> </cell> <cell> <figure> <head>Relative-Length-B</head> <graphic url="../images/modules/neumes/rellenL.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> <nc tilt="se" rellen="l" intm="d"/> </neume> </egXML> </figure> </p> <p> <specList> <specDesc key="att.ncForm" atts="tilt"/> </specList> </p> <table> <row> <cell> <hi rend="italic">TILT – Old Hispanic / St Gall notation</hi> </cell> <cell> <figure> <head>Tilt</head> <graphic url="../images/modules/neumes/tilt.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"/> </neume> </egXML> </figure> </p> <p> <specList> <specDesc key="att.ncForm" atts="s-shape"/> </specList> </p> <table> <row> <cell> <hi rend="italic">S-SHAPE – Old Hispanic notation</hi> </cell> <cell> <figure> <head>S-shape-A</head> <graphic url="../images/modules/neumes/s-shapeA.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc s-shape="s"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">S-SHAPE – St Gall notation</hi> </cell> <cell> <figure> <head>S-shape-B</head> <graphic url="../images/modules/neumes/s-shapeB.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc s-shape="w"> <oriscus/> </nc> </neume> </egXML> </figure> </p> </div> <div xml:id="custosattributes" type="div3"> <head>Custos attributes</head> <p> <specList> <specDesc key="att.pitch" atts="pname"/> <specDesc key="att.octave" atts="oct"/> <specDesc key="att.staffLoc" atts="loc"/> </specList> </p> <table> <row> <cell> <hi rend="italic">CUSTOS - Staff notation</hi> </cell> <cell> <figure> <head>Custos1</head> <graphic url="../images/modules/neumes/custos.EX1.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><custos pname="f" oct="3"/> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">CUSTOS - Late Aquitanian notation</hi> </cell> <cell> <figure> <head>Custos2</head> <graphic url="../images/modules/neumes/custos.EX2.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><custos pname="c" oct="4"/> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">CUSTOS - Aquitanian notation</hi> </cell> <cell> <figure> <head>Custos3</head> <graphic url="../images/modules/neumes/custos.EX3.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><custos loc="+3"/> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">CUSTOS - Aquitanian notation</hi> </cell> <cell> <figure> <head>Custos4</head> <graphic url="../images/modules/neumes/custos.EX4.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><custos loc="0"/> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">CUSTOS - Aquitanian notation</hi> </cell> <cell> <figure> <head>Custos5</head> <graphic url="../images/modules/neumes/custos-and-lozenged-punctum.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><custos pname="a" oct="4"/> </egXML> </figure> </p> <p>Nota bene: in the last example we can read the exact pitch of the custos because the lozenged punctum (placed one step below the line) signals the lower note of the semitone E-F. This information, combined with the identification of the finalis of the piece, allows us to decipher the mode of this piece, that is the 4th.</p> </div> <div xml:id="episemaattributes" type="div3"> <head>Episema attributes</head> <p> <specList> <specDesc key="att.episema.vis" atts="form"/> <specDesc key="att.episema.vis" atts="place"/> </specList> </p> <table> <row> <cell> <hi rend="italic">EPISEMA – Staff notation</hi> </cell> <cell> <figure> <head>Episema-A</head> <graphic url="../images/modules/neumes/episema.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="a" oct="4" tilt="s"> <episema form="h" place="above"/> </nc> <nc pname="g" oct="4"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">EPISEMA - St Gall notation. Example A</hi> </cell> <cell> <figure> <head>Pes rotundus episema</head> <graphic url="../images/modules/neumes/episemaB.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc curve="a"/> <nc intm="u" tilt="ne" rellen="l"> <episema form="h" place="above-right"/> </nc> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">EPISEMA - St Gall notation. Example B</hi> </cell> <cell> <figure> <head>Pes quadratus episema</head> <graphic url="../images/modules/neumes/episemaC.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="se"/> <nc intm="u" tilt="ne" rellen="l"> <episema form="h" place="above-right"/> </nc> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">EPISEMA - St Gall notation. Example C</hi> </cell> <cell> <figure> <head>Pes quassus episema</head> <graphic url="../images/modules/neumes/episemaD.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc s-shape="w"/> <nc intm="u" tilt="ne" rellen="l"> <episema form="v" place="above-right"/> </nc> </neume> </egXML> </figure> </p> </div> <div xml:id="liquescentattributes" type="div3"> <head>Liquescent attributes</head> <p> <specList> <specDesc key="att.curvatureDirection" atts="curve"/> <specDesc key="att.liquescent.vis" atts="looped"/> </specList> </p> <table> <row> <cell> <hi rend="italic">LIQUESCENT - Staff notation. Example A</hi> </cell> <cell> <figure> <head>Liquescent.Ex.A</head> <graphic url="../images/modules/neumes/liquescent2NEW.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc curve="a" pname="b" oct="3"> <liquescent/> </nc> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">LIQUESCENT - Staff notation. Example B</hi> </cell> <cell> <figure> <head>Liquescent.Ex.B</head> <graphic url="../images/modules/neumes/liquescent1NEW.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc curve="c" pname="c" oct="4" tilt="n"> <liquescent/> </nc> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">LIQUESCENT - Aquitanian notation</hi> </cell> <cell> <figure> <head>Liquescent</head> <graphic url="../images/modules/neumes/Aquitanian_liquescent.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc curve="c"> <liquescent/> </nc> </neume> </egXML> </figure> </p> </div> <div xml:id="oldhispanictickattributes" type="div3"> <head>Old Hispanic tick attributes</head> <p> <specList> <specDesc key="att.hispanTick.vis" atts="tilt"/> <specDesc key="att.hispanTick.vis" atts="place"/> </specList> </p> <table> <row> <cell> <hi rend="italic">HISPAN TICK - Old Hispanic notation.</hi> The following encoding refers to the neume signalled by the arrow on the left. </cell> <cell> <figure> <head>Hispan tick</head> <graphic url="../images/modules/neumes/hispanTick.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc curve="a"/> <nc tilt="n" intm="u"> <hispanTick tilt="n" place="above-right"/> </nc> </neume> </egXML> </figure> </p> </div> <div xml:id="quilismaattribute" type="div3"> <head>Quilisma attribute</head> <p> <specList> <specDesc key="att.quilisma.vis" atts="waves"/> </specList> </p> <table> <row> <cell> <hi rend="italic">QUILISMA - Staff notation</hi> </cell> <cell> <figure> <head>Quilisma</head> <graphic url="../images/modules/neumes/quilisma.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc pname="d" oct="4"/> <nc pname="e" oct="4"> <quilisma/> </nc> <nc pname="f" oct="4"/> <nc pname="e" oct="4"/> </neume> </egXML> </figure> </p> <table> <row> <cell> <hi rend="italic">QUILISMA - Old Hispanic notation</hi> </cell> <cell> <figure> <head>Quilisma2</head> <graphic url="../images/modules/neumes/quilismaOH.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc> <quilisma waves="2"/> </nc> <nc tilt="n" intm="u"/> <nc tilt="se" rellen="l" intm="d"/> </neume> </egXML> </figure> </p> </div> <div xml:id="significativelettersattribute" type="div3"> <head>Significative letters attribute</head> <p> <specList> <specDesc key="att.signifLet.vis" atts="place"/> </specList> </p> <table> <row> <cell> <hi rend="italic">SIGNIFICATIVE LETTERS - St Gall notation</hi> </cell> <cell> <figure> <head>Significative Letters</head> <graphic url="../images/modules/neumes/signifLet.png"/> </figure> </cell> </row> </table> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><neume> <nc tilt="ne"> <signifLet place="above-right">c</signifLet> </nc> <nc con="g" rellen="s" intm="d"/> <nc con="g" tilt="e" rellen="l" intm="d"/> </neume> </egXML> </figure> </p> </div> <div xml:id="note" type="div3"> <head>Note</head> <p>Other articulation marks such as ictus, circulus, semicirculus, accentus, and other fonts in <ref target="https://www.smufl.org/fonts/">SMuFL</ref> can be encoded using: glyph.auth, glyph.name, glyph.num, and glyph.uri.</p> </div> <div xml:id="basicencodingsyllable" type="div3"> <head>Basic Encoding – Syllable</head> <p>The following example illustrates the MEI encoding of the opening of Hildegarde’s “O Splendidissima Gemma” with the text “O splendidissima”. This example provides the basic MEI skeleton to have a valid MEI file and it may be used for reference for scholars willing to start encoding early music (and its text) in MEI. Information about the <gi scheme="MEI">staff</gi> has been omitted for brevity, but it was originally encoded on a 5-line staff with two clefs, a “C” and a “F” on lines 5 and 3, respectively.</p> <p> <figure> <head/> <graphic url="../images/modules/neumes/O-splendidissima.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><music xmlns="http://www.music-encoding.org/ns/mei" meiversion="5.0"> <body> <mdiv> <score> <section> <staff n="1"> <layer> <syllable> <syl n="initial"> <rend color="red">O</rend> </syl> <neume> <nc oct="3" pname="e"/> <nc oct="2" pname="d"/> <nc oct="3" pname="e"/> </neume> </syllable> <syllable> <syl>splen_</syl> <neume> <nc oct="3" pname="g"/> <nc oct="3" pname="e"/> </neume> <neume> <nc oct="3" pname="d"/> <nc oct="3" pname="e"/> </neume> </syllable> <syllable> <syl>di_</syl> <neume> <nc tilt="n" oct="3" pname="f"/> <nc tilt="se" con="g" oct="3" pname="d"/> <nc tilt="se" con="g" oct="3" pname="c"/> </neume> </syllable> <syllable> <syl>dis_</syl> <neume> <nc tilt="n" oct="3" pname="e"/> </neume> </syllable> <syllable> <syl>si_</syl> <neume> <nc oct="2" pname="a"/> <nc con="g" oct="2" pname="b"/> <nc con="g" tilt="n" oct="3" pname="c"/> </neume> </syllable> <syllable> <syl>ma </syl> <neume> <nc oct="2" pname="b"/> <nc oct="2" pname="a"/> </neume> </syllable> </layer> </staff> </section> </score> </mdiv> </body> </music> </egXML> </figure> </p> </div> <div xml:id="manuscripts" type="div3"> <head>Manuscripts</head> <p>Samples of MEI of St Gall notation are taken from the winter volume of the so-called ”Hartker Antiphonary” <ref target="https://www.e-codices.unifr.ch/en/list/one/csg/0359">CH-SGs Cod. Sang. 390</ref>.</p> <p>Samples of MEI of Old Hispanic notation are taken from the ”León Antiphoner” <ref target="https://bvpb.mcu.es/es/catalogo_imagenes/grupo.cmd?path=26408">E-L MS 8</ref>.</p> <p>Samples of MEI of Aquitanian notation are taken from sources on the <ref target="http://pemdatabase.eu">Portuguese Early Music Database</ref>.</p> </div> </div> <div xml:id="bibliographicreferences" type="div2"> <head>Bibliographic References</head> <p>Bain, Jennifer, Inga Behrendt, and Kate Helsen. 2014. “Linienlose Neumen und ihre Repräsentation mit MEI Schema, Herausforderungen in der Arbeit im Optical Neume Recognition Project (ONRP).” <hi rend="italic">Digitale Rekonstruktionen mittelalterlicher Bibliotheken</hi>. Edited by Sabine Philippi and Philipp Vanscheidt. <hi rend="italic">Trierer Beiträge zu den historischen Kulturwissenschaften</hi> 12: 119–32.</p> <p>Behrendt, Inga, Jennifer Bain, and Kate Helsen. 2017. “MEI Kodierung der frühesten Notation in linienlosen Neumen.” <hi rend="italic">Kodikologie und Paläographie im Digitalen Zeitalter 4 / Codicology and Palaeography in the Digital Age</hi>. Vol. 4. Edited by Hannah Busch, Franz Fischer, and Patrick Sahle, with the cooperation of Philip Hegel and Celiz Krause, Norderstedt 2016. Köln: Institut für Dokumentologie und Editorik e.V, 2017, 281–96.</p> <p> <ref target="https://sites.google.com/fcsh.unl.pt/elsadeluca/">De Luca, Elsa</ref>, Jennifer Bain, Inga Behrendt, Ichiro Fujinaga, Kate Helsen, Alessandra Ignesti, Debra Lacoste, and Sarah Long. 2019. <ref target="https://music-encoding.org/conference/2019/abstracts_mec2019/MEI%202019_De%20Luca%20et%20alii.pdf">”Cantus Ultimus’ MEI Neume Module and its Interoperability Across Chant Notations”</ref>. Music Encoding Conference, Vienna.</p> <p> <ref target="https://sites.google.com/fcsh.unl.pt/elsadeluca/">De Luca, Elsa</ref>, Jennifer Bain, Inga Behrendt, Ichiro Fujinaga, Kate Helsen, Alessandra Ignesti, Debra Lacoste, and Sarah Long. “Capturing Early Notations in MEI: The Case of Old Hispanic Neumes”. <hi rend="italic">Musiktheorie-Zeitschrift für Musikwissenschaft 2</hi>, 2019: 229-49.</p> <p>Helsen, Kate, Inga Behrendt, and Jennifer Bain. 2017. “<ref target="https://hrcak.srce.hr/index.php?show=clanak&id_clanak_jezik=284211">A Morphology of Medieval Notations in the Optical Neume Recognition Project</ref>.” <hi rend="italic">Arti musices: Croatian Musicological Review</hi> 48/2: 241–266.</p> <p>MEI Guidelines v4, ch. 6: <ref target="https://music-encoding.org/guidelines/v4/content/neumes.html">Neume Notation</ref> introducing <gi scheme="MEI">nc</gi> as “neume component”.</p> </div> </div> <div xml:id="tablature" type="div1"> <head>Repertoire: String Tablature</head> <p>This chapter describes the attribute classes that are part of the MEI.tablature module.</p> <div xml:id="tablatureOverview" type="div2"> <head>Overview of the Tablature Module</head> <p>The tablature module is used to record basic tablature notation. It is designed primarily for guitar and similar plucked-string instruments.</p> <p>The <att>lines</att> attribute on the <gi scheme="MEI">staffDef</gi> element is used to define the number of lines, courses, or strings, present in the tablature. The <att>tab.strings</att> attribute is then used to enumerate the pitches of the open strings. It is important to note that this is given using the written pitch, not the sounding pitch. For example, the Western 6-string guitar, in standard tuning, sounds an octave below written pitch.</p> <p>The <att>tab.strings</att> attribute gives the string tuning, ordered from highest to lowest pitch.</p> <p>For standard guitar tuning, the <gi scheme="MEI">staffDef</gi> element might look like this:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staffDef lines="6" n="1" tab.strings="e5 b4 g4 d4 a3 e3"/> </egXML> </figure> </p> <p>Chromatic alteration of the open string’s pitch may be indicated with the '-' or 'f' (flat), or the '#' or 's' (sharp). Multiple sharps and flats are not permitted.</p> <p>A guitar in E-flat tuning might look like this:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staffDef lines="6" n="1" tab.strings="ef5 bf4 gf4 df4 af3 ef3"/> </egXML> </figure> </p> <p>Some instruments, like the 12-string guitar, have the four lowest strings tuned an octave above but are still written on a 6-line tablature staff. In this case, you may enumerate the open string pitches while maintaining 6 lines.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staffDef lines="6" n="1" tab.strings="e4 e3 a4 a3 d4 d3 g5 g4 b4 b4 e5 e5"/> </egXML> </figure> </p> <p>The <gi scheme="MEI">note</gi> element is used to capture the specific events in the tablature. The <att>tab.string</att> attribute is used to capture which string the note is to be played on. String order is the same as that given in the <att>tab.strings</att> attribute. This attribute takes a positive integer in the range of 1-9.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note dur="4" oct="3" pname="a" tab.string="3"/> </egXML> </figure> </p> <p>In the case of fretted instruments, the fret number may be captured using the <att>tab.fret</att> attribute. An open string may be indicated using the value <val>0</val> (zero).</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <note dur="4" oct="2" pname="a" tab.fret="5" tab.string="6"/> <note dur="4" oct="2" pname="a" tab.fret="0" tab.string="5"/> </layer> </egXML> </figure> </p> </div> </div> <div xml:id="lyricsperfdir" type="div1"> <head>Lyrics and Performance Directions</head> <p>This chapter describes how to encode words and syllables in vocal notation. This text is typically written under a staff to indicate the text to be vocally performed. As such, this text should not be confused with other text on the score, for which see chapter <ptr target="#textencoding"/>.</p> <div xml:id="lyricsDesc" type="div2"> <head>Vocal Text</head> <p>These guidelines suggest two methods for encoding text in vocal notation: encoding syllables as <ptr target="#lyricsInEvents"/> and encoding performed text as <ptr target="#lyricsAfterEvents"/> after the notes (and other staff events) either within <gi scheme="MEI">layer</gi> elements or within <gi scheme="MEI">measure</gi> elements when available (for example in a Common Music Notation context). Each method may be more convenient depending on the source text and on the textual phenomena that the encoding intends to record.</p> <p>Both methods eventually rely on the <gi scheme="MEI">syl</gi> element, which is part of the ‘shared’ module and is therefore available in all MEI files. The following sections will begin by introducing the general use of <gi scheme="MEI">syl</gi> and then show in detail the two different encoding methods.</p> </div> <div xml:id="lyricsSyl" type="div2"> <head>Lyric Syllables</head> <p>By ‘lyric syllable’, these guidelines mean a word or portion of a word that is to be performed vocally. Each syllable is encoded with the <gi scheme="MEI">syl</gi> element, with which it is also possible to specify the position of the syllable in a word, the type of connectors between syllables, alignment adjustments, and the formatting for each syllable. These are the key components:</p> <p> <specList> <specDesc key="syl"/> <specDesc key="att.syl.log" atts="wordpos con"/> <specDesc key="att.horizontalAlign" atts="halign"/> </specList> </p> <p>The attribute <att>wordpos</att> is used to specify the position of the marked-up lyric syllable in a word. It allows the following values:</p> <list type="gloss"> <label>i</label> <item>Indicates that the current syllable’s position is initial; that is, at the beginning of a word;</item> <label>m</label> <item>Indicates that the current syllable is in the middle of a word;</item> <label>t</label> <item>Indicates that the syllable’s position is terminal; that is, at the end of a word.</item> </list> <p>When a syllable is at the beginning or in the middle of a word (in which case it will have the <att>wordpos</att> attribute set to ‘i’ or ‘m’), it is recommended to specify the type of connector written between the current and the following syllable. This is expressed with the <att>con</att> attribute, which takes the following values:</p> <list type="gloss"> <label>s</label> <item>A space is used as a connector between syllables;</item> <label>d</label> <item>A dash is used as a connector between syllables;</item> <label>u</label> <item>An underscore sign (indicating prolongation of the syllable) is used as a connector between syllables;</item> <label>t</label> <item>A tilde is used to indicate elision with the following syllable. This is typically rendered as a small curved line between the syllables.</item> </list> <p>Occasionally, a word or a final syllable needs to be extended across multiple notes. In this case an ‘extender’ is provided. An extender is a continuous line drawn at the text’s baseline from the end of the syllable associated with the first note until the last note to be sung with the syllable.</p> <p>The use of <gi scheme="MEI">syl</gi> described in this section is common to CMN and other notation systems, such as mensural notation. Other uses specific to certain types of notation and repertoires are addressed in other chapters. See for example <ptr target="#neumes"/>.</p> </div> <div xml:id="lyricsInEvents" type="div2"> <head>Vocally Performed Text Encoded Within Notes</head> <p>Each lyric syllable can be encoded directly within an associated note, either by using the <att>syl</att> attribute on <gi scheme="MEI">note</gi> or the <gi scheme="MEI">verse</gi> element.</p> <p>Using the <att>syl</att> attribute on notes is the simplest way of encoding vocally performed text and is recommended only for simple situations or for those encodings which do not focus on vocally performed text.</p> <p>The following example from Handel’s <hi rend="italic">Messiah</hi> (HWV 56) shows the use of <att>syl</att>:</p> <p> <figure> <head>Handel, Messiah HWV 56, Hallelujah</head> <graphic url="../images/modules/lyrics/ex_syl_att.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <note dots="1" dur="4" oct="5" pname="c" syl="Hal-"/> <note dur="8" oct="4" pname="g" syl="le-"/> <beam> <note dur="8" oct="4" pname="a" syl="lu-"/> <note dur="8" oct="4" pname="g" syl="jah,"/> </beam> <rest dur="4"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>When there are multiple lines of vocally performed text, or the encoder wishes to be more specific about connectors, etc., the use of <gi scheme="MEI">verse</gi> and <gi scheme="MEI">syl</gi> is recommended.</p> <p> <specList> <specDesc key="verse"/> </specList> </p> <p>The following example from Handel’s <hi rend="italic">Messiah</hi> (HWV 56) shows the use of <gi scheme="MEI">verse</gi>:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <note dots="1" dur="4" oct="5" pname="c"> <verse n="1"> <syl con="d" wordpos="i">Hal</syl> </verse> </note> <note dur="8" oct="4" pname="g"> <verse n="1"> <syl con="d" wordpos="m">le</syl> </verse> </note> <beam> <note dur="8" oct="4" pname="a"> <verse n="1"> <syl con="d" wordpos="m">lu</syl> </verse> </note> <note dur="8" oct="4" pname="g"> <verse n="1"> <syl wordpos="t">jah,</syl> </verse> </note> </beam> <rest dur="4"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>As it is common practice in written text, it is assumed that a space separates words. Many vocal texts, however, introduce elisions and connect two syllables into one unit. For example, the vocal text from Mozart’s <hi rend="italic">Don Giovanni</hi> sung by Don Giovanni in Finale II, Ho fermo il core in petto introduces an elision between the word fermo and il and between core and in. An elision can be indicated by placing both syllables within the same <gi scheme="MEI">note</gi> and setting the <gi scheme="MEI">syl</gi> element’s <att>con</att> attribute value to 't':</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note> <verse> <syl con="t" wordpos="t">re</syl> <syl wordpos="i">in</syl> </verse> </note> </egXML> </figure> </p> <p>When there is more than one line of text, more than one <gi scheme="MEI">verse</gi> element can be used. The following example from a piano reduction of Wagner’s <hi rend="italic">Rheingold</hi> has two lines of text, with an English translation on the second line. Note the use of the <att>xml:lang</att> attribute to differentiate the two languages:</p> <p> <figure> <head>Example from Wagner’s Rheingold with translated text.</head> <graphic url="../images/modules/lyrics/ex_verse_m.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><scoreDef> <staffGrp> <staffDef clef.line="4" clef.shape="F" keysig="4s" lines="5" n="1"></staffDef> </staffGrp> </scoreDef> <section> <measure> <staff n="1"> <layer n="1"> <note dur="2" oct="3" pname="f" stem.dir="down"> <verse n="1" xml:lang="ger"> <syl con="d" wordpos="i">Rei</syl> </verse> <verse n="2" xml:lang="eng"> <syl>thinks</syl> </verse> </note> <note dur="8" oct="3" pname="f" stem.dir="down"> <verse n="1"> <syl wordpos="t">fes</syl> </verse> <verse n="2"> <syl>it</syl> </verse> </note> <note dur="8" oct="3" pname="f" stem.dir="down"> <verse n="1"> <syl>zu</syl> </verse> <verse n="2"> <syl>were</syl> </verse> </note> </layer> </staff> </measure> <measure> <staff n="1"> <layer> <note dur="4" oct="3" pname="b" stem.dir="down"> <verse n="1"> <syl con="d" wordpos="i">wal</syl> </verse> <verse n="2"> <syl>wise</syl> </verse> </note> <note dur="4" oct="3" pname="d" stem.dir="down"> <accid accid="n"></accid> <verse n="1"> <syl wordpos="t">ten,</syl> </verse> <verse n="2"> <syl>now</syl> </verse> </note> <rest dur="4" dur.ges="8p"></rest> </layer> </staff> </measure> </section></egXML> </figure> </p> <p>Optionally, it is possible to include an <gi scheme="MEI">lb</gi> element within <gi scheme="MEI">verse</gi> to explicitly encode line and line group endings. This is specifically meant to facilitate karaoke applications.</p> <p>Finally, the <att>rhythm</att> attribute can be used to specify a rhythm for the syllable that differs from that of the notes on the staff.</p> </div> <div xml:id="lyricsAfterEvents" type="div2"> <head>Vocally Performed Text Encoded Separately</head> <p>Vocally performed text may also be encoded separately from the notes with the <gi scheme="MEI">lg</gi> element. These are the main components:</p> <p> <specList> <specDesc key="lg"/> <specDesc key="l"/> <specDesc key="att.staffIdent" atts="staff"/> <specDesc key="att.layerIdent" atts="layer"/> </specList> </p> <p>Since this element is separated from the encoding of the notes, it must be associated with a staff that will provide rhythm information when required for automated processing. The <att>staff</att> attribute gives the associated staff and if there is more than one layer on that staff, the <att>layer</att> attribute may be used to indicate the layer from which the rhythm should be taken. If there is any divergence between the rhythm of the vocally performed text and the notes, the <att>rhythm</att> attribute on <gi scheme="MEI">l</gi> may be used to specify the text’s rhythm.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"> <staff n="1"> <layer n="1"> <tuplet num="3" numbase="2"> <note dur="4" oct="3" pname="c" /> <note dur="8" oct="3" pname="e" accid.ges="f" /> </tuplet> <tuplet num="3" numbase="2"> <note dur="4" oct="3" pname="g" /> <note dur="8" oct="3" pname="g" /> </tuplet> <note dur="4" oct="3" pname="g" /> <note dur="4" oct="3" pname="b" accid.ges="f" /> </layer> </staff> <!-- later --> <div> <lg staff="1"> <l><syl>Or</syl> <syl>let</syl> <syl con="d">Au</syl><syl>tumn</syl> <syl>fall</syl> <syl>on</syl> <syl>me</syl></l> <l><syl>Where</syl> <syl con="d">a</syl><syl>field</syl> <syl>I</syl> <syl>lin</syl><syl>ger</syl></l> </lg> </div> </egXML> </figure> </p> </div> <div xml:id="drama" type="div2"> <head>Drama</head> <p>This section is supposed to explain stage directions and speeches in MEI drama.</p> </div> </div> <div xml:id="textencoding" type="div1"> <head>Text Encoding</head> <p>This chapter describes methods for encoding textual content with MEI. It is divided into section: One part deals with <ptr target="#textstructures"/> in MEI, the other with <ptr target="#text"/>. While the first covers structures of textual documents such as front matter or back matter, the latter describes how to mark up features and various entities within a text, such as names, tables or quotes. These features may appear both within data (a <gi scheme="MEI">fig</gi>ure scribbled as marginal <gi scheme="MEI">annot</gi>ation into a score by a bored second violin…) and metadata (a number of <gi scheme="MEI">date</gi>s within a text about the <gi scheme="MEI">creation</gi> of a work). Accordingly, many of the elements and models explained in this chapter are used to encode <ptr target="#metadata"/>. However, they should not be confused with the elements from the <ptr target="#lyricsperfdir"/> chapter, which deals with <hi rend="italic">performed</hi> text in MEI.</p> <p>Most of the elements described here take inspiration from encoding formats that deal primarily with text, such as HTML and the Text Encoding Initiative (TEI). These elements are provided to encode relatively basic textual information. For deeper encoding of text, these Guidelines recommend consideration of other text-specific encoding formats with embedded MEI markup.</p> <div xml:id="textstructures" type="div2"> <head>Text Structures</head> <p>This chapter focuses on the text that accompanies the score, <abbr>i.e.</abbr>, paratext (prefatory material, back matter, appendices, etc.).</p> <div xml:id="textDivisions" type="div3"> <head>Organizing Text into Divisions</head> <p>Text can be organized in different parts, for example in chapters or sections. The <gi scheme="MEI">div</gi> element is used to encode such structural divisions.</p> <p> <specList> <specDesc key="div"/> </specList> </p> <p>For example, printed scores, before the actual notation, can have text that can be organized in multiple sections (<abbr>e.g.</abbr>, a preface, a critical report, performance instructions, etc. for which see the following sections); each of these sections should be identified by a different <gi scheme="MEI">div</gi> element. Text might also occur in between music sections (see <ptr target="#sharedMdivContent"/>), for example in a collection of romantic piano works, a few pieces might be preceded or followed by poetry. Such text should be encoded with the <gi scheme="MEI">div</gi> element, as demonstrated in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><mdiv> <score> <section> <!-- Score of Franz Liszt's "Sonetto 104 del Petrarca --> </section> <div> <!-- Text of Francesco Petrarca's Sonett n. 104. --> <lg> <l>L'aspectata vertù, che 'n voi fioriva</l> <l>quando Amor cominciò darvi bataglia,</l> <!-- ... --> </lg> </div> </score> </mdiv> </egXML> </figure> </p> <p>Textual divisions may have titles or other forms of introductory material, which are encoded with the <gi scheme="MEI">head</gi> element.</p> <p> <specList> <specDesc key="head"/> </specList> </p> <p>The following example shows the encoding of a preface translated into three different languages, each with a different heading:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><front> <div xml:lang="en"> <head>Preface</head> <!-- text --> </div> <div xml:lang="de"> <head>Vorwort</head> <!-- text --> </div> <div xml:lang="it"> <head>Prefazione</head> <!-- text --> </div> </front> </egXML> </figure> </p> <p>Having said that <gi scheme="MEI">div</gi> identifies any structural organization of text, it is often helpful to distinguish the typology of division. The <att>type</att> attribute can be used for this purpose.</p> <p> <specList> <specDesc key="div" atts="type"/> </specList> </p> <p> <att>type</att> may contain any number of space-separated <hi rend="italic">tags</hi> describing the nature of the <gi scheme="MEI">div</gi> (or, in fact, any other element). The following example shows the use of <att>type</att> (in combination with <att>n</att>) to indicate three prefaces in English, German and Italian are columns on the same page.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><front> <div n="1" type="column" xml:lang="en"> <head> Preface </head> <!-- text --> </div> <div n="2" type="column" xml:lang="de"> <head>Vorwort</head> <!-- text --> </div> <div n="3" type="column" xml:lang="it"> <head>Prefazione</head> <!-- text --> </div> <pb/> </front> </egXML> </figure> </p> </div> <div xml:id="textFrontBack" type="div3"> <head>Paratext</head> <p>This section introduces paratextual material, such as title pages, prefaces, indexes and other text that precedes or follows the actual score.</p> <div xml:id="textFront" type="div4"> <head>Front Matter</head> <p>By ‘front matter’ these Guidelines mean distinct sections of a text (usually, but not necessarily, a printed one), prefixed to it by way of introduction or identification as a part of its production. Features such as title pages or prefaces are clear examples; a less definite case might be the prologue attached to a dramatic work. The front matter of an encoded text should not be confused with the MEI header described in chapter <ptr target="#headerstructure"/>, which provides metadata for the entire file.</p> <p>An encoder may choose simply to ignore the front matter in a text, if the original presentation of the work is of no interest. No specific tags are provided for the various kinds of subdivision which may appear within front matter: instead, generic <gi scheme="MEI">div</gi> (“division”) elements may be used, which should not be confused with <gi scheme="MEI">mdiv</gi> (“musical division”) elements. The following suggested values for the <att>type</att> attribute may be used to distinguish various kinds of division characteristic of front matter:</p> <list type="gloss"> <label>'preface'</label> <item>A foreword or preface addressed to the reader in which the author or publisher explains the content, purpose, or origin of the text.</item> <label>'ack'</label> <item>A formal declaration of acknowledgement by the author in which persons and institutions are thanked for their part in the creation of a text.</item> <label>'dedication'</label> <item>A formal offering or dedication of a text to one or more persons or institutions by the author.</item> <label>'abstract'</label> <item>A summary of the content of a text as continuous prose.</item> <label>'contents'</label> <item>A table of contents, specifying the structure of a work and listing its constituents. The list element should be used to mark its structure.</item> <label>'frontispiece'</label> <item>A pictorial frontispiece, possibly including some text.</item> </list> <p>The following extended example demonstrates how various parts of the front matter of a text may be encoded. The front part begins with a title page, which is presented in section <ptr target="#textTitlePages"/>, below. This is followed by a dedication and a preface, each of which is encoded as a distinct div:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><front> <titlePage> <!-- transcription of title page --> </titlePage> <div type="dedication"> <p> <!-- Dedicatory text --> </p> </div> <div type="preface"> <head> Preface </head> <p> <!-- paragraph 1 --> </p> <p> <!-- paragraph 2 --> </p> <!-- additional material --> </div> </front> </egXML> </figure> </p> <p>The front matter concludes with another <gi scheme="MEI">div</gi> element, shown in the next example, this time containing a table of contents, which contains a <gi scheme="MEI">list</gi> element (as described in chapter <ptr target="#textLists"/>). Note the use of the <gi scheme="MEI">ptr</gi> element to provide page-references: the implication here is that the target identifiers (song1, song2, etc.) will correspond with identifiers used for the <gi scheme="MEI">mdiv</gi> elements containing the individual songs. (For a description of the <gi scheme="MEI">ptr</gi> element, see chapter <ptr target="#linkFromMei"/>.)</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><div type="contents"> <head> Contents </head> <list form="ordered"> <li>On Wenlock Edge <ptr target="#song1"/> </li> <li>From Far, From Eve and Morning <ptr target="#song2"/> </li> <li>Is My Team Ploughing? <ptr target="#song3"/> </li> <li>Oh, When I Was In Love With You <ptr target="#song4"/> </li> <li>Bredon Hill <ptr target="#song5"/> </li> <li>Clun <ptr target="#song6"/> </li> </list> </div> </egXML> </figure> </p> <p>Alternatively, the pointers in the table of contents might link to the page breaks at which a song begins, assuming that these have been included in the markup:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><list form="ordered"> <li>On Wenlock Edge <ref target="#song1-p1">1</ref> </li> <li>From Far, From Eve and Morning <ref target="#song2-p15">15</ref> </li> <!-- .... --> </list> <!-- Later in the document --> <mdiv type="song"> <pb xml:id="song1-p1"/> <!-- .... --> </mdiv> <mdiv type="song"> <pb xml:id="song2-p15"/> <!-- .... --> </mdiv> <!-- .... --> </egXML> </figure> </p> </div> <div xml:id="textBack" type="div4"> <head>Back Matter</head> <p>Conventions vary as to which elements are grouped as back matter and which as front. For example, some books place the table of contents at the front, and others at the back. For this reason, the content models of the <gi scheme="MEI">front</gi> and <gi scheme="MEI">back</gi> elements are identical.</p> <p>The following suggested values may be used for the <att>type</att> attribute on all division elements, in order to distinguish various kinds of divisions characteristic of back matter:</p> <list type="gloss"> <label>'appendix'</label> <item>An ancillary self-contained section of a work, often providing additional but in some sense extra-canonical text.</item> <label>'glossary'</label> <item>A list of terms associated with definition texts (‘glosses’).</item> <label>'notes'</label> <item>A section in which textual notes are gathered together.</item> <label>'bibliography'</label> <item>A list of bibliographic citations.</item> <label>'index'</label> <item>Any form of index to the work.</item> <label>'colophon'</label> <item>A statement appearing at the end of a book describing the conditions of its physical production.</item> </list> <p>No additional elements are proposed for the encoding of back matter at present. Some characteristic examples follow; first, an index (for the case in which a printed index is of sufficient interest to merit transcription):</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><back> <div type="index"> <head> Index </head> <list type="index"> <li>a2, a3, etc., 175-176</li> <li>Abbreviations, 3 <list type="index"> <li>Percussion, 205-213</li> <li>Strings, 307</li> </list> </li> <li>Afterbeats, 77</li> </list> </div> </back> </egXML> </figure> </p> <p>Note that if the page breaks in the original source have also been explicitly encoded, and given identifiers, the references to them in the above index can more usefully be recorded as links. For example, assuming that the encoding of page 77 of the original source starts like this:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><pb xml:id="text.P77"/> </egXML> </figure> </p> <p>then the last item above might be encoded more usefully in the following form:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><li>Afterbeats, <ref target="#text.P77">77</ref> </li> </egXML> </figure> </p> </div> </div> </div> <div xml:id="text" type="div2"> <head>Text in MEI</head> <p>This chapter describes methods for encoding textual content with MEI. Textual information on scores has several different uses, although some text is closer to music notation than other kinds. For example, tempo marks, directives and lyrics are directly related to the functionality of the notated music and are, therefore, described in other chapters (see for example <ptr target="#lyricsDesc"/> and <ptr target="#sharedTextDirectives"/>).</p> <p>Most of the elements described here take inspiration from encoding formats that deal primarily with text, such as HTML and the Text Encoding Initiative (TEI). These elements are provided to encode relatively basic textual information. For deeper encoding of text, these Guidelines recommend consideration of other text-specific encoding formats with embedded MEI markup.</p> <div xml:id="sharedParagraphs" type="div3"> <head>Paragraphs</head> <p>Paragraphs are fundamental to prose text and typically group one or more sentences that form a logical passage. Usually, it is typographically distinct; that is, it usually begins on a new line and the first letter of the content is often indented, enlarged, or both. This element has a similar meaning as the corresponding elements in Encoded Archival Description (EAD), Text Encoding Initiative (TEI), and HTML.</p> <p>A paragraph is encoded with the <gi scheme="MEI">p</gi> element:</p> <p> <specList> <specDesc key="p"/> </specList> </p> <p>Prose text is used for several different purposes within a MEI document, therefore <gi scheme="MEI">p</gi> can occur in many situations. For example, it may be used within metadata elements (see <ptr target="#headerstructure"/>):</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><samplingDecl> <p>The encoding contains only the first 5 measures.</p> </samplingDecl> </egXML> </figure> </p> <p>Alternatively, paragraphs may be part of the document contents (and therefore encoded within <gi scheme="MEI">music</gi>), either as <ptr target="#textFrontBack"/> or within the music notation. In these cases, a paragraph will likely be contained by a <gi scheme="MEI">div</gi> or other elements containing prose (<abbr>e.g.</abbr>, <gi scheme="MEI">annot</gi>, <gi scheme="MEI">figDesc</gi>, etc.).</p> <p>The following example shows a paragraph in a preface section:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><front> <div> <head> The Preludes<lb/> Symphonic Poem No.3 by F. Liszt. </head> <p>What else is our life but a series of preludes to that unknown Hymn, the first and solemn note of which is intoned by Death? </p> </div> </front> </egXML> </figure> </p> </div> <div xml:id="sharedTextRendition" type="div3"> <head>Text Rendition</head> <p>Sometimes, it is desirable to capture the typographical qualities of a word or phrase without assigning it a special meaning. For this purpose, MEI offers the <gi scheme="MEI">rend</gi> element, similar to TEI’s <hi rend="italic">hi</hi> element. Using CSS-like values, its <att>rend</att> attribute can be used to specify many typographic features, such as font style, font variants, and relative font size and weight. In addition, text decoration, direction, and enclosing ‘boxes’ may be captured. While <att>rend</att> is used to record relative font size and weight, absolute values for these qualities (measured in printer’s points) should be specified using the <att>fontsize</att> and <att>fontweight</att> attributes. In addition to commonly found typographical qualities, MEI provides the <att>altrend</att> attribute for the capture of additional, user-defined rendition information.</p> <p>The <gi scheme="MEI">rend</gi> element can accept <att>glyph.auth</att> and <att>glyph.uri</att> attributes, which provide encoders with the ability to specify an external authority for Unicode codepoints in the textual content. Only the text content that should be rendered using SMuFL code points should go inside the <gi scheme="MEI">rend</gi> element when using <att>glyph.auth</att> and <att>glyph.uri</att>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><rend> This is what a G clef looks like: <rend glyph.auth="smufl">&amp;#xE050;</rend> </rend></egXML> </figure> </p> <p> <specList> <specDesc key="rend"/> <specDesc key="att.textRendition" atts="rend altrend"/> <specDesc key="att.typography" atts="fontname fontsize fontstyle fontweight"/> <specDesc key="att.horizontalAlign" atts="halign"/> <specDesc key="att.verticalAlign" atts="valign"/> </specList> </p> </div> <div xml:id="figTableFigures" type="div3"> <head>Figures</head> <p>The <gi scheme="MEI">fig</gi> element groups elements representing or containing graphic information such as an illustration or figure. This element is modelled on the figure element in the Text Encoding Initiative (TEI). The <gi scheme="MEI">fig</gi> element is used to contain images, captions, and textual descriptions of the pictures. The images themselves are specified using the <gi scheme="MEI">graphic</gi> element, whose <att>target</att> attribute provides the location of an image. For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><fig> <graphic target="../samples/snippets/mei2012-30shortexamples/beam-grace/grace-300.png"/> </fig> </egXML> </figure> </p> <p>The graphic element may occur multiple times within the markup of the figure in order to indicate the availability of different image formats or resolutions:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><fig> <graphic target="../samples/snippets/mei2012-30shortexamples/beam-grace/grace-72.png"/> <graphic target="../samples/snippets/mei2012-30shortexamples/beam-grace/grace-300.png"/> <graphic target="../samples/snippets/mei2012-30shortexamples/beam-grace/grace-600.png"/> </fig> </egXML> </figure> </p> <div xml:id="figTableCaptionsDescriptions" type="div4"> <head>Figure Captions and Descriptions</head> <p>The element <gi scheme="MEI">caption</gi> may be used to transcribe (or supply) a title or descriptive heading for the graphic itself, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><fig> <caption>Grace notes</caption> <graphic target="../samples/snippets/mei2012-30shortexamples/beam-grace/grace-300.png"/> </fig> </egXML> </figure> </p> <p>The figure description (<gi scheme="MEI">figDesc</gi>) element usually contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image, perhaps without displaying it. This element is intended for use as an alternative to the content of its parent <gi scheme="MEI">fig</gi> element; for example, for display when the equipment in use cannot display graphic images. It may also be used for indexing or documentary purposes, in which case best practice suggests the use of controlled vocabulary terms.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><fig> <graphic target="emblem1.png"/> <caption>Emblemi d'Amore</caption> <figDesc>A pair of naked winged cupids, each holding a flaming torch, in a rural setting.</figDesc> </fig> </egXML> </figure> </p> <p>Occasionally, a figure description may have a complex structure. In this case, one or more textual component elements (<gi scheme="MEI">p</gi> [paragraph], <gi scheme="MEI">table</gi>, <gi scheme="MEI">list</gi>, <gi scheme="MEI">quote</gi>, or <gi scheme="MEI">lg</gi> [linegroup]) may be used to model the internal structure of the description:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><fig> <caption>Grace notes</caption> <figDesc> <p>The example shows grace notes within beams ...</p> <p>This illustration was created by ...</p> </figDesc> <graphic target="../samples/snippets/mei2012-30shortexamples/beam-grace/grace-300.png"/> </fig> </egXML> </figure> </p> </div> <div xml:id="figTableImages" type="div4"> <head>Images</head> <p>The <gi scheme="MEI">graphic</gi> element indicates the location of an inline graphic, illustration, or figure. As noted above, there exists a wide variety of different graphics formats, and the following list is in no way exhaustive. Moreover, inclusion of any format in this list should not be taken as indicating endorsement by the MEI of this format or any products associated with it. Some of the formats listed here are proprietary to a greater or lesser extent and cannot therefore be regarded as standards in any meaningful sense. They are, however, widely used by many different vendors. The following formats are widely used at the present time, and are likely to remain supported by more than one vendor’s software:</p> <list rend="bulleted"> <item>BMP: Microsoft bitmap format</item> <item>CGM: Computer Graphics Metafile</item> <item>GIF: Graphics Interchange Format</item> <item>JPEG: Joint Photographic Expert Group</item> <item>PBM: Portable Bit Map</item> <item>PCX: IBM PC raster format</item> <item>PICT: Macintosh drawing format</item> <item>PNG: Portable Network Graphics format</item> <item>Photo-CD: Kodak Photo Compact Disk format</item> <item>QuickTime: Apple real-time image system</item> <item>SMIL: Synchronized Multimedia Integration Language format</item> <item>SVG: Scalable Vector Graphics format</item> <item>TIFF: Tagged Image File Format</item> </list> <p>Brief descriptions of all the above are given below. Where possible, current addresses or other contact information are shown for the originator of each format. Many formal standards, especially those promulgated by the ISO and many related national organizations (ANSI, DIN, BSI, and many more), are available from those national organizations. Addresses may be found in any standard organizational directory for the country in question.</p> <div xml:id="figTableVectorGraphicFormats" type="div5"> <head>Vector Graphic Formats</head> <list type="gloss"> <label>SVG (Scalable Vector Graphics format)</label> <item>SVG is a language for describing two-dimensional vector and mixed vector or raster graphics in XML. It is defined by the Scalable Vector Graphics (SVG) 1.0 Specification, W3C Recommendation, 04 September 2001, available at http://www.w3.org/TR/2001/REC-SVG-20010904/.</item> <label>PICT (Macintosh drawing format)</label> <item>This format is universally supported on Macintosh (tm) systems, and readable by a limited range of software for other systems. Documentation is available from Apple Computer, Cupertino, California USA.</item> <label>CGM (Computer Graphics Metafile)</label> <item>This vector graphics format is specified by an ISO standard, ISO 8632:1987, amended in 1990. It defines binary, character, and plain-text encodings; the non-binary forms are safer for blind interchange, especially over networks. Documentation is available from ISO and from its member national bodies, such as AFNOR, ANSI, BSI, DIN, JIS, etc.</item> </list> </div> <div xml:id="figTableRasterGraphicFormats" type="div5"> <head>Raster Graphic Formats</head> <list type="gloss"> <label>PNG (Portable Network Graphics format)</label> <item>PNG is a non-proprietary raster format currently widely available. It provides an extensible file format for the losslessly compressed storage of raster images. Indexed-color, grayscale, and true-color images are supported, plus an optional alpha channel. Sample depths range from 1 to 16 bits. It is defined by IETF RFC 2083, March 1997.</item> <label>TIFF (Tagged Image File Format)</label> <item>Currently the most widely supported raster image format, especially for black and white images, TIFF is also one of the few formats commonly supported on more than one operating system. The drawback to TIFF is that it actually is a wrapper for several formats, and some TIFF-supporting software does not support all variants. TIFF files may use LZW, CCITT Group 4, or PackBits compression methods, or may use no compression at all. Also, TIFF files may be monochrome, greyscale, or polychromatic. All such options should be specified in prose at the end of the encodingDesc section of the MEI header for any document including TIFF images. TIFF is owned by Aldus Corporation. Documentation on TIFF is available from the owner at Craigcook Castle, Craigcook Road, Edinburgh EH4 3UH, Scotland, or 411 First Avenue South, Seattle, Washington 98104 USA.</item> <label>GIF (Graphics Interchange Format)</label> <item>Raster images are widely available in this form, which was created by CompuServe Information Services, but has by now been implemented for many other systems as well. Documentation is copyright by, and is available from, CompuServe Incorporated, Graphics Technology Department, 5000 Arlington Center Boulevard, Columbus, Ohio 43220 USA.</item> <label>PBM (Portable Bit Map</label> <item>PBM files are easy to process, eschewing all compression in favor of transparency of file format. PBM files can, of course, be compressed by generic file-compression tools for storage and transfer. Public domain software exists which will convert many other formats to and from PBM. Documentation of PBM is copyright by Jeff Poskanzer, and is available widely on the Internet.</item> <label>PCX (IBM PC raster format)</label> <item>This format is used by most IBM PC paint programs, and supports both monochrome and polychromatic images. Documentation is available from ZSoft Corporation, Technical Support Department, ATTN: Technical Reference Manual, 450 Franklin Rd. Suite 100, Marietta, GA 30067 USA.</item> <label>BMP (Microsoft bitmap format)</label> <item>This format is the standard raster format for computer using Microsoft Windows (tm) or Presentation Manager (tm). Documentation is available from Microsoft Corporation.</item> </list> </div> <div xml:id="figTablePhotographicAndMotionVideoFormats" type="div5"> <head>Photographic and Motion Video Formats</head> <list type="gloss"> <label>JPEG (Joint Photographic Experts Group)</label> <item>This format is sponsored by CCITT and by ISO. It is ISO/IEC Draft International Standard 10918-1, and CCITT T.81. It handles monochrome and polychromatic images with a variety of compression techniques. JPEG per se, like CCITT Group IV, must be encapsulated before transmission; this can be done via TIFF, or via the JPEG File Interchange Format (JFIF), as commonly done for Internet delivery.</item> <label>Photo-CD (Kodak Photo Compact Disk format)</label> <item>This format was introduced by Kodak for rasterizing photographs and storing them on CD-ROMs (about one hundred 35mm file images fit on one disk), for display on televisions or CD-I systems. Information on Photo-CD is available from Kodak Limited, Research and Development, Headstone Drive, Harrow, Middlesex HA1 4TY, UK.</item> </list> </div> </div> </div> <div xml:id="textLists" type="div3"> <head>Lists</head> <p>When a text contains lists, they can be encoded with the following elements:</p> <p> <specList> <specDesc key="list"/> <specDesc key="head"/> <specDesc key="item"/> </specList> </p> <p>The <gi scheme="MEI">list</gi> element can identify any kind of list; the <att>form</att> attribute can be used to specify whether the list is ordered, unordered etc. Each item in the list is encoded with the <gi scheme="MEI">li</gi> element. The <att>n</att> can be used to record a label for a list item, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p>The modulation follows the following steps: <list form="ordered"> <li n="1">C major</li> <li n="2">A minor</li> <li n="3">D major seventh</li> <li n="4">G major</li> </list> </p> </egXML> </figure> </p> <p>Occasionally, lists have headers or titles, which can be encoded with <gi scheme="MEI">head</gi>:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><list> <head> Ornaments in different languages </head> <li n="English" xml:lang="en">Turn</li> <li n="Italian" xml:lang="it">Gruppetto</li> <li n="French" xml:lang="fr">Gruppetto</li> <li n="German" xml:lang="de">Doppelschlag</li> </list> </egXML> </figure> </p> </div> <div xml:id="figTableTables" type="div3"> <head>Tables</head> <p>The element <gi scheme="MEI">table</gi> contains text displayed in tabular form, <abbr>i.e.</abbr>, in rows and columns. A table is the least ‘graphic’ of the elements discussed in this chapter. Almost any text structure can be presented as a series of rows and columns: one might, for example, choose to show a glossary or other form of list in tabular form, without necessarily regarding it as a table. When tabular presentation is regarded as of less intrinsic importance, it is correspondingly simpler to encode descriptive or functional information about the contents of the table, for example to identify one cell as containing a name and another as containing a date, though the two methods may be combined.</p> <p>The <gi scheme="MEI">table</gi> element may appear both within other components (such as paragraphs), or between them, provided that the module defined in this chapter has been enabled. It is to a large extent arbitrary whether a table should be regarded as a series of rows or as a series of columns. For compatibility with currently available systems, however, these Guidelines require a row-by-row description of a table.</p> <p>While rows and columns are always encoded in top-to-bottom, left-to-right order, formatting properties such as those provided by CSS may be used to specify that they should be displayed differently.</p> <div xml:id="figTableTableRows" type="div4"> <head>Rows</head> <p>The <gi scheme="MEI">tr</gi> (table row) element is a formatting element that contains one or more <gi scheme="MEI">td</gi> or <gi scheme="MEI">th</gi> elements (cells) in a <gi scheme="MEI">table</gi>. A cell is the intersection of a row and a column. The precise rendition of the table and its cells should be specified in a style steet. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><table> <tr> <th colspan="7">Besetzungen der Triosonate und ihrer Nachfolger</th> </tr> <tr> <td/> <td>Triosonate <lb/>Standardbes. </td> <td>Triosonate für <lb/>Orgel (Bach) </td> <td>Sonate mit obl. <lb/>Cembalo (Bach) </td> <td>Klaviertrio</td> <td>Streichquartett</td> <td>Streichtrio</td> </tr> <tr> <td>1. Oberstimme</td> <td>1. Violine</td> <td>Orgel r.H.</td> <td>Violine <lb/>(Flöte, Gambe) </td> <td>Violine</td> <td>1. Violine</td> <td>1. Violine</td> </tr> <tr> <td>2. Oberstimme</td> <td>2. Violine</td> <td>Orgel l.H.</td> <td>Cembalo r.H.</td> <td>Klavier r.H.</td> <td>2. Violine</td> <td/> </tr> <tr> <td>harmonische Füllung</td> <td>Cembalo r.H.</td> <td/> <td/> <td/> <td>Bratsche</td> <td>Bratsche</td> </tr> <tr> <td>Bass-Stimme</td> <td>Cello</td> <td>Orgel Pedal</td> <td>Cello</td> <td>Cello</td> <td>Cello</td> <td>Cello</td> </tr> </table> </egXML> </figure> </p> </div> <div xml:id="figTableTableCells" type="div4"> <head>Cells</head> <p>The <gi scheme="MEI">td</gi> (table data) element designates a table cell that contains data as opposed to a cell that contains column or row heading information. The <att>colspan</att> and <att>rowspan</att> attributes provide tabular rendering information. They indicate that a particular cell or row of a table spans more than one row or column.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><table> <tr> <td colspan="2" rowspan="2">unmittelbares Schlagen</td> <td colspan="2" rowspan="2">mittelbares Schlagen</td> </tr> <tr> <td>Gegenschlag</td> <td>Aufschlag</td> <td>Schütteln</td> <td>Schrapen</td> </tr> <tr> <td>1. Stäbe</td> <td>1. Stäbe</td> <td>1. Rahmen</td> <td>1. Raspeln</td> </tr> <tr> <td>2. Platten</td> <td>2. Röhren</td> <td>2. Gefäße</td> <td>2. Räder</td> </tr> <tr> <td/> <td>3. Platten</td> <td>3. Reihen</td> <td/> </tr> <tr> <td/> <td>4. Gefäße</td> <td/> <td/> </tr> </table> </egXML> </figure> </p> <p>The <gi scheme="MEI">th</gi> (table header) element designates a table cell containing column or row heading information as opposed to one containing data. The <att>colspan</att> and <att>rowspan</att> attributes tabular display rendering information. They indicate that a particular cell or row of a table spans more than one row or column.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><table> <tr> <th colspan="4">Systematische Einteilung der Idiophone</th> </tr> <tr> <td colspan="2">unmittelbares Schlagen</td> <td colspan="2">mittelbares Schlagen</td> </tr> <tr> <td>Gegenschlag</td> <td>Aufschlag</td> <td>Schütteln</td> <td>Schrapen</td> </tr> <tr> <td>1. Stäbe</td> <td>1. Stäbe</td> <td>1. Rahmen</td> <td>1. Raspeln</td> </tr> <tr> <td>2. Platten</td> <td>2. Röhren</td> <td>2. Gefäße</td> <td>2. Räder</td> </tr> <tr> <td/> <td>3. Platten</td> <td>3. Reihen</td> <td/> </tr> <tr> <td/> <td>4. Gefäße</td> <td/> <td/> </tr> </table> </egXML> </figure> </p> </div> </div> <div xml:id="textQuote" type="div3"> <head>Quotation</head> <p>It is common, in many types of texts, to find quotations. A quotation is typically attributed to another text other than the one being encoded. Often, the quoted material is typographically distinct from the surrounding text; <abbr>i.e.</abbr>, surrounded by so-called ‘quote marks’ or rendered as a separate block of text. The <gi scheme="MEI">quote</gi> element is used to mark this function:</p> <p> <specList> <specDesc key="quote"/> </specList> </p> <p>The following examples show the use of <gi scheme="MEI">quote</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p>Hugh MacDonald has argued that Liszt's Symphonic Poems were meant to <quote>display the traditional logic of symphonic thought</quote>. </p> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p>The majority of the works represented in this catalogue were purchased in Paris and London between 1928 and 1934. After graduating from Harvard in 1924, Mackay-Smith spent several years in Europe: <quote> <p>I bought my first early music from Harold Reeves in London in the summer of 1928 when I was able to acquire virtually all the 18th century editions, particularly of trio music, which he then had in stock, going back not only through his current but also through earlier catalogues, picking out numbers which remained unsold. It is almost a shame today to think of the prices at which such things were then available, one or two pounds apiece. </p> </quote> </p> </egXML> </figure> </p> </div> <div xml:id="textPoetry" type="div3"> <head>Poetry</head> <p>This <gi scheme="MEI">lg</gi> (line group) element is used generically to encode any section of text that is organized as a group of lines. Following the recommendations of the Text Encoding Initiative, it is recommended to use it, along with the following elements, for marking up poetry:</p> <p> <specList> <specDesc key="lg"/> <specDesc key="head"/> <specDesc key="l"/> </specList> </p> <p>Because <gi scheme="MEI">lg</gi> groups verses, it can be used to encode additional stanzas not integrated into the music notation. In addition, it is common for a poem to include a title or a header, as is demonstrated by the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><mdiv> <score> <section> <!-- Score of Franz Liszt's "Sonetto 104 del Petrarca" --> </section> <div> <!-- Text of Francesco Petrarca's Sonett n. 104. --> <lg> <head> Sonetto 104 </head> <l>L'aspectata vertù, che 'n voi fioriva</l> <l>quando Amor cominciò darvi bataglia,</l> <l>produce or frutto, che quel fiore aguaglia,</l> <l>et che mia speme fa venire a riva.</l> <!-- ... --> </lg> </div> </score> </mdiv> </egXML> </figure> </p> </div> <div xml:id="sharedNames" type="div3"> <head>Names</head> <p>The <gi scheme="MEI">name</gi> element may be used to mark up portions of a text that function as name.</p> <p> <specList> <specDesc key="name"/> </specList> </p> <p>The <gi scheme="MEI">name</gi> element is intended for generic applications and may be used to identify any named entity, such as a person, item, application, place, etc. Sometimes, however, a more specific encoding is desired, identifying the type of entity by using dedicated elements. MEI offers an (optional) module for this, which provides such elements for various types of names.</p> </div> <div xml:id="dates" type="div3"> <head>Dates</head> <p>The <gi scheme="MEI">date</gi> element may be used to mark up portions of a text that denote a date.</p> <p> <specList> <specDesc key="date"/> </specList> </p> <p>The element <gi scheme="MEI">date</gi> contains a date in any format, including a date range. A date range may be expressed as textual content or, when intervening punctuation is present, as a combination of date sub-elements and text.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p> <date>5/3/05</date> <date>May 30, 2012</date> <date>March 1-21, 1812</date> <date> <date>March 1, 1812</date>- <date>March 21, 1812</date> </date> </p> </egXML> </figure> </p> <p>To be more specific about the date, the attributes in the <ident type="class">att.datable</ident> and <ident type="class">att.calendared</ident> classes can be used:</p> <p> <specList> <specDesc key="att.datable" atts="startdate enddate notbefore notafter isodate"/> <specDesc key="att.calendared" atts="calendar"/> </specList> </p> <p>In the following example, the ambiguous date text "5/3/05" is resolved using the <att>isodate</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p> <date isodate="1905-05-03">5/3/05</date> <date isodate="2005-03-05">5/3/05</date> </p> </egXML> </figure> </p> </div> <div xml:id="sharedNumbers" type="div3"> <head>Numbers</head> <p>The <gi scheme="MEI">num</gi> element may be used to identify any numeric information in a text. The <att>unit</att> may be used to specify the unit of measurement.</p> <p> <specList> <specDesc key="num"/> <specDesc key="att.measurement" atts="unit"/> </specList> </p> <p>This element is useful when it is necessary to provide specific information about numeric data, such as the unit of measurement or the kind of quantity described, or when it should be displayed in a special manner.</p> </div> <div xml:id="sharedAddresses" type="div3"> <head>Addresses</head> <p>Addresses may be encoded using the <gi scheme="MEI">address</gi> element, which itself may hold an arbitrary number of <gi scheme="MEI">addrLine</gi> elements.</p> <p> <specList> <specDesc key="address"/> <specDesc key="addrLine"/> </specList> </p> <p>It is important to note that the <gi scheme="MEI">address</gi> element does not hold a reference to the person or organization whose address is specified. This must be provided in a separate element, as in the following example: <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p> <corpName>Universität Paderborn</corpName> <address> <addrLine>Warburger Straße 100</addrLine> <addrLine>33098 Paderborn</addrLine> <addrLine>Germany</addrLine> </address> </p> </egXML> </figure> </p> </div> <div xml:id="sharedBibliographicCitations" type="div3"> <head>Bibliographic Citations and References</head> <p>The following element is used in the encoding of bibliographic citations and references:</p> <p> <specList> <specDesc key="bibl"/> </specList> </p> <p>The <gi scheme="MEI">bibl</gi> element may contain a mix of text and more specific elements, including the following:</p> <p> <specList> <specDesc key="annot"/> <specDesc key="arranger"/> <specDesc key="author"/> <specDesc key="biblScope"/> <specDesc key="composer"/> <specDesc key="creation"/> <specDesc key="date"/> <specDesc key="distributor"/> <specDesc key="edition"/> <specDesc key="editor"/> <specDesc key="extent"/> <specDesc key="funder"/> <specDesc key="genre"/> <specDesc key="identifier"/> <specDesc key="imprint"/> <specDesc key="librettist"/> <specDesc key="lyricist"/> <specDesc key="physLoc"/> <specDesc key="publisher"/> <specDesc key="pubPlace"/> <specDesc key="recipient"/> <specDesc key="relatedItem"/> <specDesc key="repository"/> <specDesc key="respStmt"/> <specDesc key="series"/> <specDesc key="sponsor"/> <specDesc key="textLang"/> <specDesc key="title"/> </specList> </p> <p>These elements fall into the following categories: - identification of the bibliographic entity and those responsible for its intellectual content - publication and distribution data for the bibliographic entity - description of the physical characteristics of the item - annotation of the bibliographic citation and additional details regarding the item’s intellectual content</p> <p>The elements <gi scheme="MEI">title</gi>, <gi scheme="MEI">edition</gi>, <gi scheme="MEI">series</gi>, and <gi scheme="MEI">identifier</gi> fall into the first category as do the elements <gi scheme="MEI">arranger</gi>, <gi scheme="MEI">author</gi>, <gi scheme="MEI">composer</gi>, <gi scheme="MEI">librettist</gi>, <gi scheme="MEI">lyricist</gi>, <gi scheme="MEI">funder</gi>, <gi scheme="MEI">sponsor</gi>, and <gi scheme="MEI">respStmt</gi>. The respStmt element is provided for marking responsibility roles that cannot be recorded using more specific elements. The <gi scheme="MEI">biblScope</gi> element also carries information of an identifying nature.</p> <p>The <gi scheme="MEI">identifier</gi> for a given item may be an International Standard Book/Music Number, Library of Congress Control Number, a publisher’s or plate number, a personal identification number, an entry in a bibliography or catalog, etc.</p> <p>To classify the <gi scheme="MEI">title</gi> according to some convenient typology, the <att>type</att> attribute may be used. Sample values include: main (main title), subordinate (subtitle, title of part), abbreviated (abbreviated form of title), alternative (alternate title by which the work is also known), translated (translated form of title), uniform (collective title). The <att>type</att> attribute is provided for convenience in analysing titles and processing them according to their type; where such specialized processing is not necessary, there is no need for such analysis, and the entire title, including subtitles and any parallel titles, may be enclosed within a single <gi scheme="MEI">title</gi> element. Title parts may be encoded in <gi scheme="MEI">title</gi> sub-elements. The name of the list from which a controlled value is taken may be recorded using the <att>authority</att> attribute.</p> <p>Publication and distribution data may be captured using <gi scheme="MEI">pubPlace</gi>, <gi scheme="MEI">publisher</gi>, <gi scheme="MEI">distributor</gi>, and <gi scheme="MEI">date</gi> elements directly inside <gi scheme="MEI">bibl</gi> when the citation is unstructured. However, these elements should be grouped within <gi scheme="MEI">imprint</gi> whenever practical.</p> <p>The physical characteristics of the cited item may be described using the <gi scheme="MEI">extent</gi> element.</p> <p>Annotation of the bibliographic citation and the provision of other pertinent details are addressed by several elements. Commentary on the bibliographic item or citation is accommodated by the <gi scheme="MEI">annot</gi> and <gi scheme="MEI">creation</gi> elements. The <gi scheme="MEI">annot</gi> element is provided for generic comments, while <gi scheme="MEI">creation</gi> is intended to hold information about the context of the creation of the cited item. Terms by which the bibliographic item can be classified may be placed in <gi scheme="MEI">genre</gi>. For letters and other correspondence, <gi scheme="MEI">recipient</gi> captures the name of the person or organization to whom the item was addressed. The natural language(s) of the item may be recorded in one or more <gi scheme="MEI">textLang</gi> elements. Finally, a holding institution may be documented using the <gi scheme="MEI">repository</gi> element directly within <gi scheme="MEI">bibl</gi>, but <gi scheme="MEI">physLoc</gi> should be used whenever possible as a grouping mechanism for location and shelfmark information. To identify sub-units of the holding institution, <gi scheme="MEI">repository</gi> sub-elements may be used. The name of the list from which a controlled value for the agency name is taken may be recorded using the <att>authority</att> attribute.</p> <p>When supplied with a <att>target</att> attribute, <gi scheme="MEI">bibl</gi> may function as a hypertext reference to an external electronic resource. In addition, other related bibliographic items may be described or referenced using the <gi scheme="MEI">relatedItem</gi> element.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><bibl> <genre>letter</genre> <author>Carl Nielsen</author> <recipient>Gustav Hetsch</recipient> <creation> <date isodate="1915-04-08">1915-04-08</date> </creation> <physLoc> <repository> <identifier auth.uri="http://www.rism.info/" auth="RISM">DK-Kk</identifier> </repository> <identifier>CNA IAc</identifier> </physLoc> <relatedItem rel="host"> <bibl xml:id="shared.bibl_d1e380372"> <title>CNB</title> <biblScope>V/210</biblScope> </bibl> </relatedItem> </bibl> </egXML> </figure> </p> <p>Please consult <ptr target="#sharedNames"/> and <ptr target="#dates"/> for more information about recording the names and dates frequently found in bibliographic citations.</p> <div xml:id="sharedRelatedItemDesc" type="div4"> <head>Related Items</head> <p>In some situations it is necessary to provide references from one bibliographic item to another. For these situations, MEI offers the <gi scheme="MEI">relatedItem</gi> element. A <gi scheme="MEI">relatedItem</gi> may be used inside of <gi scheme="MEI">bibl</gi>, and may either point to a different entity using its <att>target</att> attribute, or may hold the related item as a child.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><bibl> <genre>letter</genre> <author>Carl Nielsen</author> <recipient>Gustav Hetsch</recipient> <creation> <date isodate="1915-04-08">1915-04-08</date> </creation> <physLoc> <repository> <identifier auth.uri="http://www.rism.info/" auth="RISM">DK-Kk</identifier> </repository> <identifier>CNA IAc</identifier> </physLoc> <relatedItem rel="host"> <bibl xml:id="shared.bibl_d1e380372"> <title>CNB</title> <biblScope>V/210</biblScope> </bibl> </relatedItem> </bibl> </egXML> </figure> </p> <p>In this example, the nested <gi scheme="MEI">relatedItem</gi> / <gi scheme="MEI">bibl</gi> provides information about the ‘container’ where the outer <gi scheme="MEI">bibl</gi> may be found. The kind of relation is expressed using the <att>rel</att> attribute. It describes the relationship of the child <gi scheme="MEI">bibl</gi> to the <gi scheme="MEI">relatedItem</gi>’s parent <gi scheme="MEI">bibl</gi>.</p> <p> <specList> <specDesc key="relatedItem" atts="rel"/> </specList> </p> <p>In these relations, the subject is always the relatedItem, and the object is always the parent of the relatedItem. Thus, a value of <att>rel</att>="preceding" indicates that the resource described within the relatedItem (or referenced by its <att>target</att> attribute) precedes the <gi scheme="MEI">bibl</gi> containing the <gi scheme="MEI">relatedItem</gi>. Following <abbr>MODS</abbr>, both values of <val>preceding</val> and <val>succeeding</val> indicate a temporal order.</p> <p>It is important not to confuse <gi scheme="MEI">relatedItem</gi> with the concepts of <ptr target="#FRBR"/>; see <ptr target="#headerRelatedItemVsFRBR"/>.</p> </div> </div> <div xml:id="sharedAnnotations" type="div3"> <head>Annotations</head> <p>Annotations are one of the most versatile features of MEI. They are provided using the <gi scheme="MEI">annot</gi> element.</p> <p> <specList> <specDesc key="annot"/> </specList> </p> <p>This element may be contained by a wide range of other elements and may contain a large number of other elements. While this offers great flexibility in addressing the wide variety of textual features that might occur within an annotation, it may lead to markup that cannot be effectively processed mechanistically.</p> <p>In all cases, <gi scheme="MEI">annot</gi> provides a comment upon a feature of the encoding, but never contains textual transcription. Depending on its context, an annotation will deal with either its parent element, or, more usually, with the element(s) specified in its <att>plist</att> attribute. This attribute uses URI references to link to one or more other elements using their <att>xml:id</att> attribute values, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note xml:id="shared.someInterestingNote"/> <!-- elsewhere in the document: --> <annot plist="#shared.someInterestingNote"> <!-- additional information about this note --> </annot></egXML> </figure> </p> </div> </div> </div> <div xml:id="analysisharm" type="div1"> <head>Analysis Markup and Harmonies</head> <p>This chapter of the MEI Guidelines describes how the results of a musical analysis or harmonic information may be stored in MEI.</p> <div xml:id="analysis" type="div2"> <head>Analytical Information</head> <p>This chapter describes the use of attributes that capture data which may be useful for analytical purposes. The analysis module provides attributes that record relationships between entities found in the encoding. These attributes may be used differently by different users, depending on the purpose of the analysis.</p> <p>These Guidelines recommend that encoders employ commonly accepted analytical practices, such as ‘functional analysis’ or ‘Schenkerian analysis’, and document their use in the <gi scheme="MEI">encodingDesc</gi> described in section <ptr target="#headerEncodingDescription"/>. For general information on musical analysis, please consult Grove Music Online, ‘<ref target="https://doi.org/10.1093/gmo/9781561592630.article.41862">Analysis</ref>’.</p> <div xml:id="analysisDescribingRelationships" type="div3"> <head>General Relationships Between Elements</head> <p>The relationships between event elements, such as note, chord, and rest, are the basic material of musical analysis; the attributes described below ensure a closed network of these relations and provide the opportunity to record data useful for common analytical tasks. In the context of a formal analysis, for instance, the attributes presented here can be useful in the capture information about the structure of a musical work.</p> <p>MEI offers several attributes in the <ident type="class">att.linking</ident> class for the description of basic relationships:</p> <p> <specList> <specDesc key="att.linking" atts="copyof sameas corresp next prev precedes follows synch"/> </specList> </p> <p>The <ident type="class">att.alignment</ident> class also contains an attribute for describing temporal relationships:</p> <p> <specList> <specDesc key="att.alignment" atts="when"/> </specList> </p> <p>These attributes accommodate the encoding of linkages between the element carrying the attribute and one or more other elements. All of them use URIs to establish the connection. While the examples below illustrate relationships between musical events, the use of the aforementioned attributes is not restricted to musical events. On the contrary, these attributes can be used to capture information about relations between any elements. Further information on this can be found in <ptr target="#linkingdata"/>.</p> <p>Using the attributes above makes it possible to create relationships between events, which are often widely-spaced in both encoded order and time. The attributes allow a large number of connections, enhancing the informational content, and therefore the potential usefulness, of the encoding.</p> <p>The <att>copyof</att> attribute points to an element of which the current element is a copy. It can be used to repeat a note, for example, without encoding the whole <gi scheme="MEI">note</gi> element again. The copy is a ‘deep’ one; that is, the <att>copyof</att> attribute copies all attributes and child elements which belong to the copied element, such as the <att>dur</att> and <att>oct</att> attributes of a copied <gi scheme="MEI">note</gi>. The value of the <att>copyof</att> attribute must be a URI, which usually refers to an element in the current document. The following example demonstrates use of the <att>copyof</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure n="1"> <staff n="1"> <layer> <note xml:id="analysis.note1_1" dur="4" oct="4" pname="g"/> </layer> </staff> </measure> <measure n="2"> <staff n="1"> <layer> <note copyof="#analysis.note1_1"/> </layer> </staff> </measure> </section> </egXML> </figure> </p> <p>In this example, the <gi scheme="MEI">note</gi> in the second measure has exactly the same characteristics as the <gi scheme="MEI">note</gi> in the first <gi scheme="MEI">measure</gi>.</p> <p>Using <att>copyof</att> is not limited to copying events. The <att>copyof</att> attribute can also be used to copy an entire <gi scheme="MEI">measure</gi> or <gi scheme="MEI">staff</gi>. When there are many repeated features, the use of the <att>copyof</att> greatly reduces encoding effort. The image and the following encoding of the beginning of Schubert’s <hi rend="italic">Erlkönig</hi> illustrates the benefit of using the <att>copyof</att> attribute.</p> <p> <figure> <head>First measure of Schubert’s Erlkönig</head> <graphic url="../images/modules/analysis/schubert_erlkonig_op1_m1.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <layer> <tuplet num="3" num.visible="true" xml:id="analysis.tup1"> <chord dur="8"> <note oct="3" pname="g"/> <note oct="4" pname="g"/> </chord> <chord dur="8"> <note oct="3" pname="g"/> <note oct="4" pname="g"/> </chord> <chord dur="8"> <note oct="3" pname="g"/> <note oct="4" pname="g"/> </chord> </tuplet> <tuplet copyof="#analysis.tup1" xml:id="analysis.tup2"/> <tuplet copyof="#analysis.tup1" xml:id="analysis.tup3"/> <tuplet copyof="#analysis.tup1" xml:id="analysis.tup4"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>This example can be reduced further by using <att>copyof</att> inside the initial tuplet to represent the repeated chords:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <layer> <mRest/> </layer> </staff> <staff n="2"> <layer> <tuplet num="3" num.visible="true" xml:id="analysis.tup5"> <chord dur="8" xml:id="analysis.t1c1"> <note oct="3" pname="g"/> <note oct="4" pname="g"/> </chord> <chord copyof="#analysis.t1c1"/> <chord copyof="#analysis.t1c1"/> </tuplet> <tuplet copyof="#analysis.tup5" xml:id="analysis.tup6"/> <tuplet copyof="#analysis.tup5" xml:id="analysis.tup7"/> <tuplet copyof="#analysis.tup5" xml:id="analysis.tup8"/> </layer> </staff> <staff n="3"> <layer> <mRest/> </layer> </staff> </measure> </egXML> </figure> </p> <p>While <att>copyof</att> signifies a duplicate copy of an element, the <att>sameas</att> indicates that the current element represents exactly the same entity as the one referenced in <att>sameas</att>. Use of <att>sameas</att> is used for describing the same entity from multiple perspectives, <abbr>e.g.</abbr>, the same event in two layers.</p> <p>While <att>copyof</att> and <att>sameas</att> have defined semantics, the <att>corresp</att> may be used to create user-defined relationships between elements. The example below demonstrates the encoding of a relationship between the third note and the fermata, even though the fermata is not placed directly above the note.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1" right="end"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="c" xml:id="analysis.note1"/> <note dur="4" oct="4" pname="d" xml:id="analysis.note2"/> <note dur="2" oct="4" pname="e" xml:id="analysis.note3"/> </layer> </staff> <fermata corresp="#analysis.note3" place="above" tstamp="4.75"/> </measure> </egXML> </figure> </p> <p>The <att>corresp</att> attribute only marks the correspondence between the current element and one or more other entities. To describe the nature of the correspondence, one must use <gi scheme="MEI">annot</gi>.</p> <p>The <att>next</att> and <att>prev</att> attributes point to elements which follow or precede the current element in some fashion other than that indicated by encoding order. The use of these attributes helps to avoid confusion in the sequence of events, for example, in voice leading across layers or staves, when the encoding reflects the physical arrangement of voices. In the second measure of the following example, the target of the next attribute occurs after the pointing element in time, but before it in encoding order:</p> <p> <figure> <head>Bach Chorale, Ach Gott, vom Himmel sieh' darein, m. 6-7</head> <graphic url="../images/modules/analysis/chor003_m6-7.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="6" xml:id="analysis.m_sc_62"> <staff n="1"> <layer n="1"> <note dur="4" oct="4" pname="g" xml:id="analysis.n_sc_63_3"/> <note dur="4" oct="4" pname="a" xml:id="analysis.n_sc_65_3"/> <note dur="4" fermata="above" oct="4" pname="b" xml:id="analysis.n_sc_67_3"/> <note dur="4" oct="4" pname="g" xml:id="analysis.n_sc_68_3"/> </layer> <layer n="2"> <beam> <note dur="8" oct="4" pname="e" xml:id="analysis.n_sc_63_2"/> <note dur="8" oct="4" pname="g" xml:id="analysis.n_sc_64_2"/> </beam> <beam> <note dur="8" oct="4" pname="f" xml:id="analysis.n_sc_65_2"/> <note dur="8" oct="4" pname="e" xml:id="analysis.n_sc_66_2"/> </beam> <note accid="s" dur="4" next="#analysis.n_sc_68_2" oct="4" pname="d" xml:id="analysis.n_sc_67_2"/> <beam> <note dur="8" oct="4" pname="e" xml:id="analysis.n_sc_68_1"/> <note accid="n" dur="8" oct="4" pname="d" xml:id="analysis.n_sc_69_1"/> </beam> </layer> </staff> <staff n="2"> <layer n="1"> <note dur="4" oct="3" pname="b" xml:id="analysis.n_sc_63_1"/> <note dur="4" oct="4" pname="c" xml:id="analysis.n_sc_65_1"/> <note dur="4" oct="3" pname="f" xml:id="analysis.n_sc_67_1"/> <note dur="4" oct="3" pname="b" xml:id="analysis.n_sc_68_2"/> </layer> <layer n="1"> <beam> <note dur="8" oct="3" pname="e" xml:id="n_sc_63_0"/> <note dur="8" oct="3" pname="d" xml:id="n_sc_64_0"/> </beam> <note dur="4" oct="3" pname="c" xml:id="n_sc_65_0"/> <note dur="4" fermata="below" oct="2" pname="b" xml:id="n_sc_67_0"/> <note dur="4" oct="3" pname="e" xml:id="n_sc_68_0"/> </layer> </staff> </measure> <measure n="7" xml:id="m_sc_70"> <staff n="1"> <layer n="1"> <beam> <note dur="8" oct="4" pname="a" xml:id="analysis.n_sc_71_3"/> <note dur="8" oct="4" pname="b" xml:id="analysis.n_sc_72_3"/> </beam> <note dur="4" oct="5" pname="c" xml:id="analysis.n_sc_73_3"/> <note dur="4" oct="4" pname="b" xml:id="analysis.n_sc_75_3"/> <beam> <note dur="8" oct="5" pname="c" xml:id="analysis.n_sc_76_3"/> <note dur="8" oct="4" pname="b" xml:id="analysis.n_sc_77_3"/> </beam> </layer> <layer n="2"> <space dur="4"/> <note dur="4" oct="4" pname="a" xml:id="analysis.n_sc_73_2"/> <note accid="s" dur="4" oct="4" pname="g" xml:id="analysis.n_sc_75_2"/> <note dur="4" oct="4" pname="a" xml:id="analysis.n_sc_76_2"/> </layer> <layer n="3"> <beam> <note dur="8" oct="4" pname="c" xml:id="analysis.n_sc_71_1"/> <note dur="8" oct="4" pname="d" xml:id="analysis.n_sc_72_1"/> </beam> <note dur="4" oct="4" pname="e" xml:id="analysis.n_sc_73_1"/> <note dur="4" oct="4" pname="e" xml:id="analysis.n_sc_75_1"/> <beam> <note dur="8" oct="4" pname="e" xml:id="analysis.n_sc_76_1"/> <note dur="8" oct="4" pname="d" xml:id="analysis.n_sc_77_1"/> </beam> </layer> </staff> <staff n="2"> <layer n="1"> <note dur="4" next="#analysis.n_sc_73_2" oct="3" pname="a" xml:id="analysis.n_sc_71_2"/> </layer> <layer n="2"> <note accid="n" dur="4" oct="3" pname="f" xml:id="n_sc_71_0"/> <beam> <note dur="8" oct="3" pname="c" xml:id="n_sc_73_0"/> <note dur="8" oct="3" pname="d" xml:id="n_sc_74_0"/> </beam> <note dur="4" oct="3" pname="e" xml:id="n_sc_75_0"/> <beam> <note dur="8" oct="2" pname="a" xml:id="n_sc_76_0"/> <note dur="8" oct="2" pname="b" xml:id="n_sc_77_0"/> </beam> </layer> </staff> </measure> </egXML> </figure> </p> <p>This attribute may also be useful to clarify a sequence of entities which occurs across some form of interruption, in this case, notes before and after a system or page break where there is no custos or direct in the source:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer> <note dur="4" next="#analysis.m1s1e2" oct="4" pname="f" stem.dir="up" xml:id="analysis.m1s1e1"/> <pb/> <note dur="8" next="#analysis.m1s1e3" oct="3" pname="b" prev="#analysis.m1s1e1" stem.dir="up" xml:id="analysis.m1s1e2"/> <note dur="8" oct="4" pname="c" prev="#analysis.m1s1e2" stem.dir="up" xml:id="analysis.m1s1e3"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>A one-to-many relationship between the current element and the entities being referred to can be expressed by using a list of space-separated URIs in <att>corresp</att>.</p> <p>The <att>synch</att> attribute points to an element that is synchronous with; that is, begins at the same moment in time, as the current element. It is useful when the encoding order differs from the order in which entities occur in time.</p> <p>The <att>when</att> attribute may be used to indicate the point of occurrence of the feature bearing this attribute along a time line. Its value must be the ID of a <gi scheme="MEI">when</gi> element. For more detailed information regarding the use of <att>when</att>, please see <ptr target="#performances"/>.</p> </div> <div xml:id="analysisSpecificAttrs" type="div3"> <head>Event-Specific Analytical Information</head> <p>In addition to the common analytical attributes, the analysis module also offers other, more specific attributes on certain musical elements:</p> <p> <specList> <specDesc key="att.intervalHarmonic" atts="inth"/> <specDesc key="att.intervalMelodic" atts="intm"/> <specDesc key="att.melodicFunction" atts="mfunc"/> <specDesc key="att.harmonicFunction" atts="deg"/> <specDesc key="att.pitchClass" atts="pclass"/> <specDesc key="att.solfa" atts="psolfa"/> </specList> </p> <div xml:id="analysisMelodicIntervals" type="div4"> <head>Melodic Intervals</head> <p>The <att>intm</att> attribute offers several methods for encoding the melodic interval from a preceding pitch. First, Parsons Code allows for description of the contour of the melody in very general terms; that is, as up, down, or same note. Parsons Code is helpful for identifying musical works with clearly defined melodies and analyzing the relationship between successive notes of monophonic tunes. For more information about the Parsons Code, please see the "The Directory of Tunes and Musical Themes" by Denys Parsons (2002). The next example shows interval relationships indicated by the Parsons Code:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure n="1"> <staff n="1"> <layer> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="d" intm="u"/> <note dur="4" oct="4" pname="e" intm="u"/> <note dur="4" oct="4" pname="f" intm="u"/> <note dur="2" oct="4" pname="g" intm="u"/> <note dur="2" oct="4" pname="g" intm="s"/> <note dur="4" oct="4" pname="f" intm="d"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>Alternatively, diatonic interval quality and size may be indicated by a letter signifying the interval quality (A= augmented, d= diminished, M = major, m = minor, P = perfect) followed by a number indicating the size of the interval. The interval direction may be encoded using a leading plus (+) or minus (-) sign:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <note dur="4" oct="5" pname="c"/> <note dur="4" oct="5" pname="d" intm="+M2"/> <note dur="4" oct="5" pname="c" intm="-M2"/> <note dur="4" oct="4" pname="b" intm="-m2"/> <note dur="4" oct="3" pname="b" intm="-P8"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>As a third option, signed integers may be used to record the difference in half steps between the previous pitch and the current one. Decimal values accommodate the description of microtonal intervals:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="d" intm="1.1"/> <note dur="4" oct="5" pname="d" intm="7.9"/> <note dur="4" oct="5" pname="c" intm="-2.334"/> </layer> </staff> </measure> </egXML> </figure> </p> </div> <div xml:id="analysisMelodicFunction" type="div4"> <head>Melodic Function</head> <p>The <att>mfunc</att> attribute describes melodic function of a <gi scheme="MEI">note</gi> or neume using the <ref target="https://www.humdrum.org/rep/embel/">Humdrum **embel syntax</ref>. In the following example, the note B is labeled as a lower neighbor while all other notes are labeled as chord tones: <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure n="2"> <staff n="1"> <layer> <chord dur="4" stem.dir="up" xml:id="analysis.chord1"> <note dur="4" mfunc="ct" oct="4" pname="f" xml:id="analysis.m2e1"/> <note dur="4" mfunc="ct" oct="4" pname="a" xml:id="analysis.m2e2"/> <note dur="4" mfunc="ct" oct="5" pname="c" xml:id="analysis.m2e3"/> </chord> <note accid="f" dur="4" mfunc="ln" oct="4" pname="b" stem.dir="down" xml:id="analysis.m2e4"/> </layer> </staff> </measure> <measure n="3"> <staff n="1"> <layer> <chord dur="4" stem.dir="up" xml:id="analysis.chord2"> <note dur="4" mfunc="ct" oct="4" pname="c" xml:id="analysis.m3e5"/> <note dur="4" mfunc="ct" oct="4" pname="e" xml:id="analysis.m3e6"/> <note dur="4" mfunc="ct" oct="4" pname="g" xml:id="analysis.m3e7"/> </chord> </layer> </staff> </measure> </section> </egXML> </figure> </p> </div> <div xml:id="analysisHarmonicIntervals" type="div4"> <head>Harmonic Intervals</head> <p> <specList> <specDesc key="att.intervalHarmonic" atts="inth"/> </specList> </p> <p>In contrast with <att>intm</att>, which characterizes melodic (sequential) intervals, the <att>inth</att> attribute is used to encode the harmonic interval between the current note and other pitches occurring at the same moment in time. The notes of interest may or may not be marked as a <gi scheme="MEI">chord</gi>. In the markup below, for example, the values of <att>inth</att> capture the harmonic intervals between notes distributed across multiple staves and layers.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer n="1"> <note dur="4" inth="M3 P5" oct="4" pname="c" xml:id="analysis.e1"/> </layer> <layer n="2"> <note dur="4" inth="M3 m3" oct="4" pname="e" xml:id="analysis.e2"/> </layer> </staff> <staff n="2"> <layer n="3"> <note dur="4" inth="P5 m3" oct="4" pname="g" xml:id="analysis.e3"/> </layer> </staff> </measure> </egXML> </figure> </p> <p>Use of the <att>inth</att> permits detailed specification of intervallic information for every note and its function in relation to other simultaneously-occurring notes and hence about the harmonic nature of the musical work.</p> </div> <div xml:id="analysisScaleDegrees" type="div4"> <head>Scale Degrees</head> <p> <specList> <specDesc key="att.harmonicFunction" atts="deg"/> </specList> </p> <p>The <att>deg</att> attribute can be used to represent key-dependent scale-degree information for music in major or minor keys.</p> <p>Scale-degree values are relative to the prevailing major or minor key. In the case of minor keys, scale degrees are characterized with respect to the harmonic minor scale. For example, the pitch F in the key of A minor is the submediant (6), but F is the lowered submediant (6-) in the key of A major.</p> <p>Melodic approach can be indicated by a leading caret (^) or lowercase v, representing ascending and descending approaches, respectively.</p> <p>Chromatic alteration of the scale degree can be represented using a trailing plus (+) or minus (-) signs, signifying raised or lowered scale degree, respectively. The actual amount of chromatic alteration is not indicated.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Fifth scale degree in the prevailing scale --><note deg="5"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Augmented 5th --><note deg="5+"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Lowered 6 scale degree approached from below --><note deg="^6-"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Leading tone approached from above --><note deg="v7"/> </egXML> </figure> </p> </div> <div xml:id="analysisPitchClass" type="div4"> <head>Pitch Class</head> <p>The <att>pclass</att> attribute can be used to encode information about the pitch class to which a note belongs. The attribute’s value must be an integer less than or equal to 11. It is only allowed on the <gi scheme="MEI">note</gi> element. The <att>pclass</att> attribute comes from "musical set theory" elaborated first by Howard Hanson and Allen Forte as a new method for organizing tones. It provides a concept for categorizing musical objects (notes) and describing their relationships. It is a kind of grouping and combining, mostly developed in connection with atonal music. However, the concept of set theory is general and can also be applied to tonal music. A pitch class means the summary of every pitch with specific characteristics that means a pitch class set is an unordered collection of pitches, <abbr>e.g.</abbr>, every pitch with the name C.</p> <p>A pitch class may contain a large number of pitches, because different octaves and enharmonic spellings of pitch make no difference. The notes C, E, and G would be 0, 4 and 7 in pitch class notation, for example, regardless of the octave in which they are performed. The example below contains the same pitch in four different enharmonic spellings, but all are part of the same pitch class.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note dur="2" oct="5" pclass="2" pname="d"/> <note accid="ss" dur="4" pclass="2" pname="c"/> <note accid="ff" dur="1" pclass="2" pname="e"/> </chord> </egXML> </figure> </p> <p>For further information on pitch class set theory, please consult the following sources:</p> <list rend="bulleted"> <item> <ref target="http://www.mta.ca/faculty/arts-letters/music/pc-set_project/pc-set_new/pages/introduction/toc.html">http://www.mta.ca/faculty/arts-letters/music/pc-set_project/pc-set_new/pages/introduction/toc.html</ref></item> <item>"Analyzing Atonal Music: Pitch Class Set Theory and its Contexts" by Michael Schuijler (2008)</item> <item>Cohen, Allen Laurence (2004). Howard Hanson in Theory and Practice</item> </list> </div> <div xml:id="analysisSolmization" type="div4"> <head>Solmization</head> <p>Solmization is a system which associates a syllable with each note of a musical scale. There are various forms of solmization used throughout the world. In Europe and North America, solfège is the most common practice. In this system, the seven syllables for a major scale are do, re, mi, fa, so, la and ti. In the ‘fixed-do’ system, the syllable "do" is always associated with the pitch "c", while in the ‘movable-do’ system, "do" is associated with the tonic note. The <att>psolfa</att> attribute is only allowed on <gi scheme="MEI">note</gi> and <gi scheme="MEI">nc</gi> elements. Its value is unconstrained in order to accommodate various solmization systems. <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff n="1"> <layer> <note dur="4" oct="4" pname="c" psolfa="do"/> <note dur="4" oct="4" pname="d" psolfa="re"/> <note dur="4" oct="4" pname="e" psolfa="mi"/> <note dur="4" oct="4" pname="f" psolfa="fa"/> </layer> </staff> </measure> </egXML> </figure> </p> </div> </div> <div xml:id="analysisMetricalConformance" type="div3"> <head>Metrical Conformance</head> <p>It is often helpful to record whether a given staff, layer, or measure obeys the meter established for it. The following attributes are provided for this purpose:</p> <p> <specList> <specDesc key="att.meterConformance" atts="metcon"/> <specDesc key="att.meterConformance.bar" atts="metcon"/> </specList> </p> <p>When used on <gi scheme="MEI">staff</gi> or <gi scheme="MEI">layer</gi> elements, the <att>metcon</att> attribute can be used to indicate if the duration of the contained events is equal to (<val>c</val>), less than (<val>i</val>), or greater than (<val>o</val>) that predicted by the time signature. When used on the <gi scheme="MEI">measure</gi> element, <att>metcon</att> takes a boolean value, where <val>true</val> indicates conformance by all staff and layer descendants of the measure.</p> <p>In the first example below, the layer, staff, and measure all match the prevailing meter. In the second example, however, the first layer does not comply with the meter, making the staff containing it and measure as a whole non-compliant. When there is a single layer or when all the layers on a staff agree with each other, metrical compliance can be indicated on the <gi scheme="MEI">staff</gi> element. When, however, not all layers have the same value for <att>metcon</att>, then it is necessary to omit <att>metcon</att> at the staff level. The value of <att>metcon</att> on the measure level can usually be computed based on the values of its layer and staff sub-elements.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- in 2/4 --><measure metcon="true" n="1"> <staff n="1"> <layer> <note dur="4" oct="4" pname="f"/> <note dur="8" oct="4" pname="b"/> <note dur="8" oct="4" pname="a"/> </layer> </staff> </measure> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- in 2/4 --><measure metcon="false" n="1"> <staff n="1"> <layer metcon="i"> <note dur="4" oct="4" pname="f"/> <note dur="8" oct="4" pname="b"/> </layer> <layer metcon="true"> <note dur="4" oct="4" pname="d"/> <note dur="8" oct="4" pname="g"/> <note dur="8" oct="4" pname="f"/> </layer> </staff> </measure> </egXML> </figure> </p> </div> </div> <div xml:id="harmony" type="div2"> <head>Harmony</head> <p>This chapter describes the encoding of indications of harmony occurring within a music text, <abbr>e.g.</abbr>, chord names, tablature grids, figured bass, or signs for harmonic analysis, and the methods by which these indications can be connected with their interpretations. For encoder-supplied analysis of intervallic content, please see chapter <ptr target="#analysis"/>.</p> <div xml:id="harmonyDetails" type="div3"> <head>Indications of Harmony</head> <p>On the most basic level, chords in the musical text can be encoded using the <gi scheme="MEI">chord</gi> element:</p> <p> <specList> <specDesc key="chord"/> </specList> </p> <p>Additional information on the use of the <gi scheme="MEI">chord</gi> element is available in <ptr target="#sharedBasicEvents"/> and <ptr target="#cmnNotesChords"/>.</p> <p>With only this kind of markup, harmonic information is implicit in the notes themselves. The elements and attributes of this module, however, provide for the encoding of explicit indications of harmony, such as chord symbols, tablature grids, figured bass signs, and the symbols of harmonic analysis like Roman numerals and their interpretation.</p> <div xml:id="harmonyMetadataInscoreDef" type="div4"> <head>Interpreted Chord Data in scoreDef</head> <p>An harmonic label, such as "7", may occur many times throughout an MEI instance. Where the goal is diplomatic transcription, simply recording the uninterpreted label is sufficient. Recording the precise meaning of such a label requires storing an interpretation. But, including the interpretation at every point of occurrence of the label would swell the size of the file and complicate the markup for those users who are not interested in the interpretation. Therefore, MEI separates the encoding of harmonic labels from the encoding of the interpretation of those labels.</p> <p>The following elements enable the creation and re-use of interpreted chord data:</p> <p> <specList> <specDesc key="chordTable"/> <specDesc key="chordDef"/> <specDesc key="att.stringtab.position" atts="tab.pos"/> <specDesc key="chordMember"/> <specDesc key="att.intervalHarmonic" atts="inth"/> <specDesc key="att.stringtab" atts="tab.fing tab.fret"/> <specDesc key="barre"/> <specDesc key="barre" atts="fret"/> </specList> </p> <p>The <gi scheme="MEI">chordTable</gi> element is a container for a set of chord definitions, while the <gi scheme="MEI">chordDef</gi> element defines a single chord. Chord definitions may be created <hi rend="italic">a priori</hi> or as the result of analysis of the pitch content of the music at hand, for instance, by examination of the notes occurring on the downbeat of each measure. In this way, the chord definitions serve as a record of the analysis.</p> <p>Even though it is not required by the schema, an <att>xml:id</att> attribute on <gi scheme="MEI">chordDef</gi> is necessary to permit the creation of associations between harmonic indications in the musical text with the chord defined here. The <att>xml:id</att> attribute provides a unique identifier for the chord definition that can be referenced by the <gi scheme="MEI">harm</gi> element’s <att>chordref</att> attribute.</p> <p>Individual pitches of a chord are encoded using <gi scheme="MEI">chordMember</gi>. The <att>inth</att> attribute provides the means for indicating the number of half steps of the chord note above the bass note.</p> <p>These simple resources allow for the detailed specification and interpretation of harmonic indications found in the musical text. For example, the harmonic label A can be equated with a fully spelled-out indication of functional harmony that can be substituted for the harmonic label, say, in an aural rendition:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"> <!-- Chord defined in scoreDef --><chordDef xml:id="harmonychordA"> <chordMember oct="2" pname="a"></chordMember> <chordMember oct="3" pname="e"></chordMember> <chordMember accid.ges="s" oct="4" pname="c"></chordMember> <chordMember oct="4" pname="e"></chordMember> <chordMember oct="4" pname="a"></chordMember> </chordDef> <!-- Later in musical text --> <harm chordref="#harmonychordA" tstamp="1">A</harm></egXML> </figure> </p> <p>Alternatively, the non-bass chord tones may be indicated, not with pitch names, but with their intervallic distance above the bass note. Therefore, the example above may also be encoded:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chordDef xml:id="harmonychordA2"> <chordMember oct="2" pname="a"/> <chordMember inth="7"/> <chordMember inth="16"/> <chordMember inth="19"/> <chordMember inth="24"/> </chordDef> </egXML> </figure> </p> <p>The preceding encoding possibilities provide the detailed information necessary to create playable chord annotations. For more generic uses, however, the encoding can be taken one step further; that is, it can be reduced to its minimum intervallic content by eliminating octave duplications and expressing all chord members, including the bass note, using intervals above the bass. Of course, the <att>inth</att> attribute for the bass note itself should be set to 0. For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chordDef xml:id="harmonychordA3"> <chordMember inth="0"/> <chordMember inth="4"/> <chordMember inth="7"/> </chordDef> </egXML> </figure> </p> </div> <div xml:id="harmonyTablatureGrids" type="div4"> <head>Chord Tablature Grids</head> <p>The <att>pos</att> attribute on <gi scheme="MEI">chordDef</gi>, the <att>fing</att> and <att>fret</att> attributes on <gi scheme="MEI">chordMember</gi>, and the <gi scheme="MEI">barre</gi> element child of <gi scheme="MEI">chordDef</gi> are provided in order to create displayable and performable chord tablature grids for guitar and other fretted string instruments. The fret at which a finger should be placed is recorded in the <att>fret</att> attribute, while <att>fing</att> indicates which finger, if any, should be used to play an individual string. The values x and o are used to indicate muffled and open strings, respectively.</p> <p>The <gi scheme="MEI">chordDef</gi> element may contain <gi scheme="MEI">barre</gi> sub-elements when a single finger is used to stop multiple strings. Here the <att>fret</att> attribute gives the fret position at which the barre should be created, while the <att>startid</att> and <att>endid</att> attributes are used to indicate the <gi scheme="MEI">chordMember</gi> elements on which the barre starts and finishes.</p> </div> <div xml:id="harmonyMusicText" type="div4"> <head>Indications of Harmony in the Music Text</head> <p>With regard to indications of harmony, MEI attempts to strike a balance between very precise (interpreted) and very loose (uninterpreted) markup needs. Therefore, various kinds of harmonic labels are accommodated by the <gi scheme="MEI">harm</gi> element. While some are more structured than others, in the final analysis they all function as <hi rend="italic">labels</hi>. Therefore, MEI provides only a single element for the capture of harmonic indications of all kinds:</p> <p> <specList> <specDesc key="att.extender" atts="extender"/> <specDesc key="att.harm.vis" atts="rendgrid"/> </specList> </p> <p>The <gi scheme="MEI">harm</gi> element can be used to capture chord labels that consist entirely of text: <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <harm tstamp="1">Cmaj</harm> <harm tstamp="2">ii6</harm> </measure> </egXML> </figure> </p> <p>or labels that are chord tablature grids:</p> <p> <figure> <head>Chord grid without label</head> <graphic url="../images/modules/harmony/A7_5th.gif"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm chordref="#harmonychordA" tstamp="1"/> </egXML> </figure> </p> <p>or labels that mix these styles:</p> <p> <figure> <head>Chord grid with label</head> <graphic url="../images/modules/harmony/A7_1st.gif"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm chordref="#harmonychordA" rendgrid="gridtext" tstamp="1">A7</harm> </egXML> </figure> </p> <p>The <gi scheme="MEI">harm</gi> element must define a point of attachment using one of the following attributes: <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att> or <att>tstamp.real</att>. The most commonly-used of these are <att>startid</att> and <att>tstamp</att>.</p> <p>The <att>dur</att> attribute encodes the logical and visual duration of the harmony. Please note that the <att>dur</att> attribute here is not a true duration, but rather a time stamp for the end point of the harmony.</p> <p>Precise placement of the harmonic label can be controlled through the use of attributes in the <ident type="class">att.harm.vis</ident> attribute class.</p> <div xml:id="harmonyFigbass" type="div5"> <head>Figured Bass</head> <p>Figured bass is a specialized form of harmonic indication. In order to support the capture of the semantics of figured bass, and not just its visual representation, MEI provides the following elements:</p> <p> <specList> <specDesc key="fb"/> <specDesc key="att.extender" atts="extender"/> </specList> </p> <p>Figured bass, consisting as it does of text, can always be represented purely visually. This is probably how an OMR program or other naive encoder might deal with the markup of figured bass:</p> <p> <figure> <head>Figured bass</head> <graphic url="../images/modules/harmony/figuredBass01.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm place="above" staff="1" tstamp="1">6</harm> </egXML> </figure> </p> <p>However, this kind of approach fails to recognize that a figured bass is being used and not some other system of harmonic indications. To capture this knowledge, the preceding example can also be marked more explicitly with:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm place="above" staff="1" tstamp="1"> <fb> <f>6</f> </fb> </harm> </egXML> </figure> </p> <p>In order to provide greater control over the individual components of the figured bass, each component can be treated as a figure. The natural symbol is encoded using the Unicode MUSIC NATURAL SIGN character.</p> <p> <figure> <head>Figured bass with accidental</head> <graphic url="../images/modules/harmony/figuredBass02.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm place="above" staff="1" tstamp="1"> <fb> <f>7</f> <f>♮</f> </fb> </harm> </egXML> </figure> </p> <p>Encoding order of the component <gi scheme="MEI">f</gi> elements is significant as is the encoding order of the characters within each component. In the preceding example, the entire figured bass sign is encoded from top to bottom, in other words, just as the figure appears on the page. In the following examples, the encoding order of the characters in <gi scheme="MEI">f</gi> explicitly locates the accidentals:</p> <p> <figure> <head>Figured bass with chromatically altered figure</head> <graphic url="../images/modules/harmony/figuredBass03.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm place="below"> <fb> <f>7♭</f> </fb> </harm> </egXML> </figure> <figure> <head>Figured bass with chromatically altered figures</head> <graphic url="../images/modules/harmony/figuredBass04.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm> <fb> <f>6</f> <f>4+</f> <f>♮3</f> </fb> </harm> </egXML> </figure> </p> <p>You may use 6\ and 6/ for numerals that should be shown with a backslash and slash, respectively. An alternative would be to use the "bslash" (backward slash) and "fslash" (forward slash) on the <gi scheme="MEI">rend</gi> element.</p> <p> <figure> <head>Figured bass with chromatically altered figure</head> <graphic url="../images/modules/harmony/figuredBass05.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm> <fb> <f><rend rend="bslash">6</rend></f> <!-- or --> <f><rend rend="fslash">6</rend></f> </fb> </harm> </egXML> </figure> </p> <p>Each component of the figured bass sign may use the <att>extender</att> attribute to indicate that horizontal lines are used to mark the extent of the figure’s harmonic influence. The <att>altsym</att> attribute can be used to point to a user-defined symbol that better represents the figure component, for example, the combined "2" and "+" below. Similar to the slash in the preceding example before, the small curve over the "5" in example 6 can be represented by the Unicode COMBINING INVERTED BREVE.</p> <p> <figure> <head>Figured bass with alternative sign</head> <graphic url="../images/modules/harmony/figuredBass06.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><measure> <harm tstamp="1"> <fb> <f>̑</f> <f extender="true">5</f> <f altsym="combo2plus">2+</f> </fb> </harm> <harm tstamp="3"> <fb> <f>3</f> </fb> </harm> </measure> </egXML> </figure> </p> <p>Because the repertoire of signs is so large, figures which consist entirely of a mark indicating repetition of the preceding figure, should be represented by the character appearing in the document. For example, in some notational styles, the repetition sign is a dash (-), while in others it is a solidus (/). Using characters like this is also consistent with other existing figured bass encoding schemes.</p> <p> <figure> <head>Figured bass repetition</head> <graphic url="../images/modules/harmony/figuredBass07.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><harm tstamp="1.5"> <fb> <f>-</f> </fb> </harm> </egXML> </figure> </p> <p>Often, the distinction between extending lines and repetition signs is unclear. Treating what at first appear to be extenders as repetition signs, however, can sometimes help to simplify the required markup and to make the intent of the signs explicit. For example, in the following example the dashes on beat 4 and 4.5 are treated as repetition signs:</p> <p> <figure> <head>Extenders and repetition</head> <graphic url="../images/modules/harmony/figuredBass09.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <harm tstamp="3.5"> <fb> <f>♭3</f> <f>6</f> <f>5</f> </fb> </harm> <harm tstamp="4"> <fb> <f>-</f> <f>♯3</f> </fb> </harm> <harm tstamp="4.5"> <fb> <f>7</f> <f>-</f> </fb> </harm> </measure> </egXML> </figure> </p> <p>Using <att>extender</att> attributes for this example may make it easier to render the figured bass symbol, but it is less explicit with regard to the intended harmony. For example, it is difficult to ascertain what harmony should be sounding on beat 4 and its after-beat.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <harm tstamp="3.5"> <fb> <f>♭3</f> <f extender="true">6</f> <f>5</f> </fb> </harm> <harm tstamp="4"> <fb> <f extender="true">♯3</f> </fb> </harm> <harm tstamp="4.5"> <fb> <f>7</f> </fb> </harm> </measure> </egXML> </figure> </p> <p>The primary goal of <gi scheme="MEI">fb</gi> is not the capture all the visual idiosyncracies that can be found in printed and manuscript scores throughout the centuries, but to provide a more-or-less standardized label. The markup below, or any markup in fact, cannot capture the exact look of the figured bass signs. The <att>altsym</att> attribute may be used to provide access to a user-defined symbol for precise rendition. Similarly, the <att>facs</att> attribute may be employed to point to the symbol as it occurs in the encoding source material.</p> <p> <figure> <head>Figured bass with alternative sign</head> <graphic url="../images/modules/harmony/figuredBass10.png"/> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Ex. a --><measure> <harm tstamp="3"> <fb> <f>8</f> <f altsym="#my6_1" facs="#source6_1">6♮</f> <f>4+</f> <f>2</f> </fb> </harm> <harm tstamp="4"> <fb> <f altsym="#my6_2" facs="#source6_2">6\</f> <f>4</f> <f>3</f> </fb> </harm> </measure> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Ex. b --><harm tstamp="4.5"> <fb> <f>6\</f> </fb> </harm> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Ex. c --><harm tstamp="1"> <fb> <f>5/</f> </fb> </harm> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Ex. d --><harm> <fb> <f altsym="#my5" facs="#source5">5+</f> </fb> </harm> </egXML> </figure> </p> </div> </div> </div> </div> </div> <div xml:id="scholarlyediting" type="div1"> <head>Scholarly Editing with MEI</head> <p>This chapter introduces markup targeting at digital scholarly editions of music. In <ptr target="#critApp"/>, the alignment of multiple sources / witnesses of the same musical text is discussed. <ptr target="#editTrans"/> covers editorial observations in and interventions to the text. <ptr target="#genetic"/> finally deals with the special requirements and needs of genetic editions in music.</p> <div xml:id="critApp" type="div2"> <head>Critical Apparatus</head> <p>This chapter describes how to encode differences between multiple exemplars of the same musical work (often referred to in MEI as ‘sources’). The mechanisms and elements described in this chapter are closely related to their counterparts in the TEI guidelines. It is also important to refer to chapter <ptr target="#editTrans"/> of these guidelines, especially concerning the <gi scheme="MEI">choice</gi> element described therein.</p> <div xml:id="critAppElements" type="div3"> <head>General Usage</head> <p>The following elements are defined in the critApp Module:</p> <p> <specList> <specDesc key="app"/> <specDesc key="lem"/> <specDesc key="rdg"/> </specList> </p> <p>An <gi scheme="MEI">app</gi> element always encapsulates the differences between varying sources. Therefore, it must contain at least two child elements. Possible child elements are <gi scheme="MEI">lem</gi> and <gi scheme="MEI">rdg</gi>, which use the same model, but have a different meaning: Whereas <gi scheme="MEI">lem</gi> is used for prioritizing one alternative, a <gi scheme="MEI">rdg</gi> has no such additional meaning and simply indicates a reading as found in one or more sources. Accordingly, <gi scheme="MEI">lem</gi> is allowed only once in <gi scheme="MEI">app</gi>, whereas <gi scheme="MEI">rdg</gi> may appear as often as necessary.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><app> <lem> <!-- preferred reading --> </lem> <rdg> <!-- alternative reading --> </rdg> <rdg> <!-- alternative reading --> </rdg> </app> </egXML> </figure> </p> <p>The <gi scheme="MEI">rdg</gi> (and <gi scheme="MEI">lem</gi>) elements use the <att>source</att> attribute to point to one or more descriptions of the bibliographic sources containing the material they mark:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- In the document content: --><app> <rdg source="#critApp.source1"> <!-- reading of source 1 --> </rdg> <rdg source="#critApp.source2 #critApp.source3"> <!-- reading of sources 2 *and* 3 --> </rdg> </app> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- Earlier in the document header: --><sourceDesc> <source xml:id="critApp.source1"> <!-- bibliographic description of source 1 --> </source> <source xml:id="critApp.source2"> <!-- bibliographic description of source 2 --> </source> <source xml:id="critApp.source3"> <!-- bibliographic description of source 3 --> </source> </sourceDesc> </egXML> </figure> </p> <p>The <att>seq</att> attribute may be used on <gi scheme="MEI">lem</gi> or <gi scheme="MEI">rdg</gi> to record the sequence of a series of readings. In the following example, the material in source B is marked as sequential to (and perhaps derived from) the reading in source A:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><app> <rdg seq="1" source="#critApp.sourceA"> <!-- material in source 1 --> </rdg> <rdg seq="2" source="#critApp.sourceB"> <!-- material in source 2 --> </rdg> </app> </egXML> </figure> </p> <p>If interested in modeling such dependencies between witnesses, using markup from <ptr target="#FRBR"/> is generally recommendable.</p> <p>If a source has additional content that is not found in other sources, an empty <gi scheme="MEI">rdg</gi> element may be used to indicate the lack of material in the other sources. In the following example, source 1 includes material that is not found in sources 2 and 3:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><app> <rdg source="#critApp.source1"> <!-- additional content of source 1 --> </rdg> <rdg source="#critApp.source2 #critApp.source3"/> </app> </egXML> </figure> </p> <p>When working with a large number of sources, it might seem tedious to provide references for all sources. However, use of the <gi scheme="MEI">rdg</gi> element without <att>source</att> is not recommended because such an encoding is not explicit and is therefore difficult to process.</p> </div> <div xml:id="critAppInContent" type="div3"> <head>Variants in Musical Content</head> <p>The <gi scheme="MEI">app</gi> element may be used to accommodate textual variation at nearly any point in a musical text. For example, it may be used to indicate minor differences such as stem directions:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <!-- preceding notes --> <app> <rdg source="#critApp.source1"> <note dur="2" oct="4" pname="b" stem.dir="down"/> </rdg> <rdg source="#critApp.source2"> <note dur="2" oct="4" pname="b" stem.dir="up"/> </rdg> </app> <!-- following notes --> </layer> </egXML> </figure> </p> <p>or to indicate more significant differences, such as the insertion of extra measures:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure>…</measure> <measure>…</measure> <app> <rdg source="#critApp.source1"/> <rdg source="#critApp.source2"> <!-- source 2 has 2 measures not found in source 1 --> <measure>…</measure> <measure>…</measure> </rdg> </app> <measure>…</measure> </section> </egXML> </figure> </p> <p>However, the flexibility in the location of <gi scheme="MEI">app</gi> places a burden on the encoder to ensure that the <gi scheme="MEI">app</gi>, <gi scheme="MEI">rdg</gi>, and <gi scheme="MEI">lem</gi> elements are used correctly; that is, the content of every <gi scheme="MEI">rdg</gi> and <gi scheme="MEI">lem</gi> has to be a valid replacement for its parent <gi scheme="MEI">app</gi>, even though this cannot be controlled effectively by the MEI schema.</p> </div> <div xml:id="critAppInDefs" type="div3"> <head>Variants in Score Definitions</head> <p>In addition to its use for differentiation of the musical content of multiple sources, <gi scheme="MEI">app</gi> may also be utilized to describe the layout of different scores, even when the musical content itself remains the same. An example of this is two sources that have the same content, but a different ordering of staves on which the content is written. By definition, the order of staves in MEI is described in and derived from the order of <gi scheme="MEI">staffDef</gi> elements in <gi scheme="MEI">scoreDef</gi>, not from the order of <gi scheme="MEI">staff</gi> elements within a <gi scheme="MEI">measure</gi>. The <gi scheme="MEI">staff</gi> element in a measure points to its corresponding <gi scheme="MEI">staffDef</gi> using the same value for <att>n</att> on both elements.</p> <p>This rather loose mechanism makes it possible to point dynamically to the correct staff definition for a given source. The following example demonstrates how this can be accomplished for two sources, both presenting a two-staff score, but with differing staff order. No further <gi scheme="MEI">app</gi> element is necessary within the <gi scheme="MEI">measure</gi> to describe the alternative score order of the sources.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><score> <app> <rdg source="#critApp.source1"> <scoreDef> <staffGrp> <staffDef n="1"/> <staffDef n="2"/> </staffGrp> </scoreDef> </rdg> <rdg source="#critApp.source2"> <scoreDef> <staffGrp> <!-- The order of <staffDef> elements defines score order, not its @n attribute! --> <staffDef n="2"/> <staffDef n="1"/> </staffGrp> </scoreDef> </rdg> </app> <section> <measure> <staff n="1">…</staff> <staff n="2">…</staff> </measure> </section> </score> </egXML> </figure> </p> <p>When unique values for <att>n</att> on <gi scheme="MEI">layerDef</gi> and <gi scheme="MEI">layer</gi> are provided, it is possible to reallocate layers in the same fashion as staves.</p> <p>This mechanism may also be used to describe not only differing page orientations, formats and margins, but also clefs and keys.</p> <p>The use of <gi scheme="MEI">app</gi> in conjunction with <gi scheme="MEI">staffDef</gi> illustrates the greater flexibility of connecting <gi scheme="MEI">staff</gi> and <gi scheme="MEI">staffDef</gi> by a shared <att>n</att> value. A technically more robust alternative to <att>n</att> would be to use the <att>def</att> attribute on <gi scheme="MEI">staff</gi>, which points to the <att>xml:id</att> of a <gi scheme="MEI">staffDef</gi>. However, this strong connection would be tied to one specific <gi scheme="MEI">staffDef</gi>, and would not allow to pick one alternative out of an <gi scheme="MEI">app</gi>.</p> </div> <div xml:id="critAppNesting" type="div3"> <head>Nesting Apparati</head> <p>In some situations, musical sources will agree at one level while differing at a lower level. For these cases, <gi scheme="MEI">app</gi> elements may be nested to any level necessary. In the following example, there are three sources, two of which agree on the addition of a measure, but differ in the content of the added measure:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure>…</measure> <app> <rdg source="#critApp.source1"/> <rdg source="#critApp.source2 critApp.#source3"> <!-- whereas source1 omits it, source2 and source3 have an additional measure --> <measure> <staff> <layer> <app> <!-- while source2 provides a measure rest, source3 has a whole note --> <rdg source="#critApp.source2"> <mRest/> </rdg> <rdg source="#critApp.source3"> <note dur="1" oct="3" pname="g"/> </rdg> </app> </layer> </staff> </measure> </rdg> </app> <measure>…</measure> </section> </egXML> </figure> </p> <p>When nesting <gi scheme="MEI">app</gi> elements, it is important that the value(s) in the child <gi scheme="MEI">rdg</gi> element’s <att>source</att> attribute must be a strict subset of the ancestor <gi scheme="MEI">rdg</gi> element’s <att>source</att> value.</p> </div> </div> <div xml:id="editTrans" type="div2"> <head>Editorial Markup</head> <p>It is often necessary to render an account of any changes made to a musical text during its creation (and any subsequent editing) and to accommodate editorial comment necessitated by an editorial process. The elements and attributes described in this chapter may be used to record such editorial interventions, whether made by the composer, the copyists of the manuscript, the editor of an earlier edition used as a copy text, or the current encoder/editor.</p> <p>The scope of the elements described herein is therefore the description of features relating to the genesis, later revision and editorial interpretation of a text. Mechanisms for describing multiple sources are described in chapter <ptr target="#critApp"/> of these Guidelines, while the full setup for genetic editions is described in chapter <ptr target="#genetic"/>.</p> <p>The elements described in this chapter may be contained by a wide range of other MEI elements and, in turn, may contain a variety of elements. The encoder must assume responsibility for the appropriateness of the markup; that is, a great many combinations of editorial and transcriptional markup are technically possible, but care must be taken to see that the encoding does not contravene the rationale of these Guidelines. In general, it should be ensured that a file would be valid if the editorial markup would be omitted, as such a validation cannot be ensured in an efficient way by the MEI schema.</p> <p>For most of the elements discussed here, some encoders may wish to indicate both a responsibility; that is, a coded value indicating the person or agency responsible for making the editorial intervention in question, and an indication of the degree of certainty which the encoder wishes to associate with the intervention. The elements discussed here thus may potentially carry the following optional attributes:</p> <p> <specList> <specDesc key="att.evidence" atts="cert"/> <specDesc key="att.responsibility" atts="resp"/> </specList> </p> <p>They are available through the generic attribute class <ident type="class">att.common</ident>, which is a member of <ident type="class">att.responsibility</ident>, and the attribute class <ident type="class">att.edit</ident>, to which these elements subscribe.</p> <p>Many of the elements discussed here can be used in two ways. Their primary purpose is to indicate that their content represents an editorial intervention (or, in some cases, the lack of intervention) of a specific kind. Sometimes, pairs or other meaningful groupings of such elements can be recorded, then wrapped within the special purpose <gi scheme="MEI">choice</gi> element:</p> <p> <specList> <specDesc key="choice"/> </specList> </p> <p>Wrapping elements this way enables the encoder to represent, for example, a text in its ‘original’, uncorrected form alongside the same text in one or more ‘edited’ forms. Making use of this style of representation, software may dynamically switch between the ‘Urtext view’ of the text and one or more ‘views’ of the text after the application of the encoded editorial interventions.</p> <p>Elements which can be combined in this way constitute the <ident type="class">model.choicePart</ident> class. The default members of this class are <gi scheme="MEI">sic</gi>, <gi scheme="MEI">corr</gi>, <gi scheme="MEI">reg</gi>, <gi scheme="MEI">orig</gi>, and <gi scheme="MEI">unclear</gi>. As <ident type="class">model.editLike</ident> and <ident type="class">model.editorialLike</ident> are members of <ident type="class">model.choicePart</ident>, <gi scheme="MEI">choice</gi>, <gi scheme="MEI">subst</gi>, <gi scheme="MEI">abbr</gi>, and <gi scheme="MEI">expan</gi> can also be combined with the other elements. All of their functions and usage are described in greater detail below.</p> <p>Three categories of editorial intervention are discussed by the remainder of this chapter:</p> <list rend="bulleted"> <item>indication or correction of apparent errors;</item> <item>indication of regularization of variant, irregular, non-standard, or eccentric forms; and</item> <item>editorial additions, suppressions, and omissions.</item> </list> <div xml:id="edittransAbbrev" type="div3"> <head>Abbreviations</head> <p>MEI offers methods for marking abbreviations in prose, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p> ... the next passage shall be performed in<abbr>pno:</abbr>... </p> </egXML> </figure> </p> <p>or abbreviations in the music itself, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><abbr> <bTrem unitdur="16"> <note dur="4" oct="5" pname="c" stem.mod="2slash"/> </bTrem> </abbr> </egXML> </figure> </p> <p>The generic <att>type</att> attribute may be used to classify the abbreviation according to a convenient typology. Sample values include:</p> <list type="gloss"> <label>suspension</label> <item>the abbreviation provides the first letter(s) of the word or phrase, omitting the remainder;</item> <label>contraction</label> <item>the abbreviation omits some letter(s) in the middle;</item> <label>brevigraph</label> <item>the abbreviation comprises a special symbol or mark;</item> <label>superscription</label> <item>the abbreviation includes writing above the line;</item> <label>acronym</label> <item>the abbreviation comprises the initial letters of the words of a phrase;</item> <label>title</label> <item>the abbreviation is for a title of address (Dr, Ms, Mr, ...);</item> <label>organization</label> <item>the abbreviation is for the name of an organization;</item> <label>geographic</label> <item>the abbreviation is for a geographic name.</item> </list> <p>This tag is the mirror image of the <gi scheme="MEI">expan</gi> tag (not to be confused with the <gi scheme="MEI">expansion</gi> element described in <ptr target="#sharedMdivContent"/>). Both <gi scheme="MEI">abbr</gi> and <gi scheme="MEI">expan</gi> allow the encoder to transcribe an abbreviation and its expansion. In the case of <gi scheme="MEI">abbr</gi>, the original is transcribed as the content of the element and the expansion as an attribute value, while <gi scheme="MEI">expan</gi> reverses this. The choice between the two is up to the user. For example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><div> <!-- using abbr --> <p> … the next passage shall be performed in<abbr expan="piano">pno:</abbr>… </p> <!-- using expan --> <p>… the next passage shall be performed in <expan abbr="pno:">piano</expan>… </p> </div> </egXML> </figure> </p> <p>The <gi scheme="MEI">abbr</gi> tag is not required; if appropriate, the encoder may transcribe abbreviations in the source text silently, without tagging them. If abbreviations are not transcribed directly but expanded silently, then the MEI header should indicate this is the case. The <att>cert</att> attribute signifies the degree of certainty ascribed to the expansion of the abbreviation. The <att>expan</att> attribute gives an expansion of the abbreviation. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for supplying the expansion of the abbreviation.</p> <p>When the content of the <att>abbr</att> or <att>expan</att> attributes requires additional markup, an attribute cannot be used. In this case, the abbreviated and expanded forms must be presented within elements. Furthermore, as alternatives to each other, the <gi scheme="MEI">abbr</gi> and <gi scheme="MEI">expan</gi> elements must be wrapped by the <gi scheme="MEI">choice</gi> element, as described above. The previous example, where the 'o:' in 'pno:' is written as superscript, would be encoded as:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p>… the next passage shall be performed in <choice> <abbr>pn<rend rend="sup">o:</rend> </abbr> <expan>piano</expan> </choice> </p> </egXML> </figure> </p> <div xml:id="edittranscpMark" type="div4"> <head> Instructions</head> <p>Many musical scores make use of various kinds of shorthand notation which omit some parts of the score that have already been written elsewhere. Typical examples for this are symbols that indicate repetition of the preceding measure or beat. In MEI, these symbols can be encoded using the <gi scheme="MEI">mRpt</gi> and <gi scheme="MEI">beatRpt</gi> elements respectively. Often, similar graphical symbols (often one or two slashes, "//") are used to mean that the current staff should have the same or similar content as another staff.</p> <p> <hi rend="italic">colla parte</hi> directives have a less strictly-defined scope than the ‘Rpt elements’ (<gi scheme="MEI">beatRpt</gi>, <gi scheme="MEI">halfmRpt</gi>, <gi scheme="MEI">mRpt</gi>, <gi scheme="MEI">mRpt2</gi>, <gi scheme="MEI">multiRpt</gi>). That is, rather than specifying the repetition of content of a particular duration, like a measure or beat, <hi rend="italic">colla parte</hi> instructions can refer to material of any length. In order to encode such scribal shorthand, MEI offers the <gi scheme="MEI">cpMark</gi> element, which allows filling of blank spaces in the score with horizontally and/or vertically distant material.</p> <p> <specList> <specDesc key="cpMark"/> </specList> </p> <p>Like any other ‘controlEvent’ (see <ptr target="#eventsControlevents"/>), <gi scheme="MEI">cpMark</gi> is placed in the score using the <att>staff</att> and <att>tstamp</att> attributes. The end point of the mark itself, when necessary, may be indicated using the <att>tstamp2</att> attribute. The source material, which is intended to be inserted in the space indicated by the copy mark, can be identified by the attributes <att>origin.tstamp</att>, <att>origin.tstamp2</att>, <att>origin.staff</att> and <att>origin.layer</att>. While <att>origin.tstamp</att> provides the relative distance from the beginning of the "gap", <att>origin.tstamp</att> is relative to the position identified by <att>origin.tstamp</att>. However, <att>origin.tstamp</att> defaults to the same value as <att>tstamp2</att> and should only be provided when necessary. When neither <att>origin.staff</att> nor <att>origin.tstamp</att> are provided, they take the same values as the cpMark’s <att>staff</att> and <att>tstamp</att> attributes; that is, they indicate a strict ‘vertical’ or ‘horizontal’ copy.</p> <p> <figure> <head>Copy marks in the first and second violin of C.M.v.Weber’s Freischütz, Autograph, Nr.3 (Walzer), measures 223-231</head> <graphic url="../images/ExampleImages/cpMark_2.png"/> </figure> </p> <p>In the example above, there are no less than three different copy instructions, which need to be encoded with four <gi scheme="MEI">cpMark</gi> elements. First, Weber inserts characters from "a" to "f" in red ink to identify filled measures. Then, he repeats the same characters in <hi rend="italic">empty</hi> measures, which indicates that the content from the <hi rend="italic">filled</hi> measures should be copied here. While one could try to encode this with just one <gi scheme="MEI">cpMark</gi> element, it is both clearer and easier to process when using two elements.</p> <p>The second and third shorthand indications are written in the second violin (lower staff). Here, Weber writes "unis.[ono]", silently omitting the reference to the first violin. His next shorthand ("in 8va") additionally instructs the copyist to double the written material in another octave. This information can be captured using the <att>dis</att> and <att>dis.place</att> attributes on <gi scheme="MEI">cpMark</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="true"><cpMark origin.tstamp="-6m+1" staff="8" tstamp="1" tstamp2="5m+4">a. b. c. d. e. f. g.</cpMark> <cpMark origin.tstamp="-6m+1" staff="9" tstamp="1" tstamp2="5m+4">a. b. c. d. e. f. g.</cpMark> <cpMark origin.staff="8" staff="9" tstamp="1.5" tstamp2="1m+3.5">unis:</cpMark> <cpMark dis="8" dis.place="below" origin.staff="8" staff="9" tstamp="2" tstamp2="2m+3.5">in 8va</cpMark></egXML> </figure> <figure> <head>A transcription of the example above with all shorthand resolved and colored</head> <graphic url="../images/ExampleImages/cpMark_3.png"/> </figure> </p> <p>Text used as a copy mark, like the letters in the Weber example, may be encoded as content of the <gi scheme="MEI">cpMark</gi> element. In the case of non-text marks, the <att>altsym</att> and <att>facs</att> attributes may be used to refer to a graphical surrogate.</p> <p>Depending on the purpose of the encoding, the omitted parts in the score may be filled with <gi scheme="MEI">space</gi> and <gi scheme="MEI">mSpace</gi> elements of appropriate duration or silently overwritten with the content that the <gi scheme="MEI">cpMark</gi> identifies. Also, these two options may be combined through the use a <gi scheme="MEI">choice</gi> element whose <gi scheme="MEI">abbr</gi> and <gi scheme="MEI">expan</gi> children explicitly encode a transcription of the original ‘gap’ (in abbr) and the result of the insertion of the indicated material (in expan, see <ptr target="#edittransAbbrev"/>).</p> </div> </div> <div xml:id="edittransErrors" type="div3"> <head>Apparent Errors</head> <p>When the source material to be encoded is manifestly faulty, an encoder or transcriber may elect simply to correct it without comment, although for scholarly purposes it will often be more generally useful to record both the correction and the original state of the text. The elements described here enable all three approaches, and allows the last to be done in a way that makes it easy for software to present either the original or the correction.</p> <p> <specList> <specDesc key="sic"/> <specDesc key="corr"/> </specList> </p> <p>The following examples show alternative treatment of the same material. The text to be encoded contains a chord (c4, e4, g4, a4), where c4, e4, and a4 are quarter notes, but g4 is incorrectly written as a half note.</p> <p>An encoder may choose to silently correct the engraver’s error:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="e"/> <note dur="4" oct="4" pname="g"/> <note dur="4" oct="4" pname="a"/> </chord> </egXML> </figure> </p> <p>or the correction may be made explicit:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="e"/> <corr> <note dur="4" oct="4" pname="g"/> </corr> <note dur="4" oct="4" pname="a"/> </chord> </egXML> </figure> </p> <p>Alternatively, the encoder may simply record the typographic error without correcting it, either without comment or with a <gi scheme="MEI">sic</gi> element to indicate the error is not a transcription error in the encoding:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="e"/> <sic> <note dur="2" oct="4" pname="g"/> </sic> <note dur="4" oct="4" pname="a"/> </chord> </egXML> </figure> </p> <p>If the encoder elects to record the original source text and provide a correction for the sake of transparency, both <gi scheme="MEI">sic</gi> and <gi scheme="MEI">corr</gi> may be used, wrapped in a <gi scheme="MEI">choice</gi> element. The order of the <gi scheme="MEI">sic</gi> and <gi scheme="MEI">corr</gi> elements is not significant:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="e"/> <choice> <sic> <note dur="2" oct="4" pname="g"/> </sic> <corr> <note dur="4" oct="4" pname="g"/> </corr> </choice> <note dur="4" oct="4" pname="a"/> </chord> </egXML> </figure> </p> <p>An indication of the person or agency responsible for the emendation can be provided as follows:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"> <!-- within the header for this document: --> <respStmt> <name role="editor" xml:id="editTrans.JK">Johannes Kepper</name> </respStmt> <!-- … --> <chord> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="e"/> <choice> <sic> <note dur="2" oct="4" pname="g"/> </sic> <corr resp="#editTrans.JK"> <note dur="4" oct="4" pname="g"/> </corr> </choice> <note dur="4" oct="4" pname="a"/> </chord> </egXML> </figure> </p> <p>Here the <att>resp</att> attribute has been used to indicate responsibility for the correction. Its value (<val>#editTrans.JK</val>) is an example of the pointer values discussed in section <ptr target="#linkingdata"/>. In this case, the <att>resp</att> attribute points to a <gi scheme="MEI">name</gi> element within the metadata header, but any element might be indicated in this way, if the correction has been taken from some other source. The <att>resp</att> attribute is available for all elements which are members of the <ident type="class">att.common</ident> class (through <ident type="class">att.responsibility</ident>). The <ident type="class">att.edit</ident> class makes available a <att>cert</att> attribute (through <ident type="class">att.evidence</ident>), which may be used to indicate the degree of editorial confidence in a particular correction, as in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note dur="4" oct="4" pname="c"/> <note dur="4" oct="4" pname="e"/> <choice> <sic> <note dur="2" oct="4" pname="g"/> </sic> <corr cert="high"> <note dur="4" oct="4" pname="g"/> </corr> </choice> <note dur="4" oct="4" pname="a"/> </chord> </egXML> </figure> </p> <p>Where, as here, the correction takes the form of amending information present in the text being encoded, the encoder should use the <gi scheme="MEI">corr</gi> element. Where the correction is present in the text being encoded, and consists of some combination of visible additions and deletions, the elements <gi scheme="MEI">add</gi> and / or <gi scheme="MEI">del</gi> should be used. For additional information on the use of <gi scheme="MEI">add</gi> and <gi scheme="MEI">del</gi>, see section <ptr target="#edittransAddDel"/>. Where the correction takes the form of an addition of material not present in the original because of physical damage or illegibility, the <gi scheme="MEI">supplied</gi> element may be used. Where the ‘correction’ is simply a matter of expanding abbreviated notation, the <gi scheme="MEI">expan</gi> element may be used.</p> </div> <div xml:id="edittransReg" type="div3"> <head>Regularization and Normalization</head> <p>When the musical source makes extensive use of unusual symbol shapes or non-standard notation features, it may be desirable for a number of reasons to regularize it; that is, provide ‘standard’ or ‘regularized’ forms that are equivalent to the non-standard forms.</p> <p>As with other such changes to the source text, the changes may be made silently (in which case the MEI header should still specify the types of silent changes made) or may be explicitly marked using the following elements:</p> <p> <specList> <specDesc key="reg"/> <specDesc key="orig"/> <specDesc key="choice"/> </specList> </p> <p>Consider this traditional soprano clef appearing somewhere in the course of a musical piece:</p> <p> <figure> <head>Soprano clef from the begin of Heinrich Schütz’ St. Matthew’s Passion.</head> <graphic url="../images/modules/edittrans/schuetz_sopranoclef.png"/> </figure> </p> <p>An encoder may choose to preserve this original clef, but flag it as nonstandard from the perspective of current practice by using the <gi scheme="MEI">orig</gi> element with no attributes specified, as follows:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><orig> <clef line="1" shape="C"/> </orig> </egXML> </figure> </p> <p>Alternatively, the encoder may indicate that the clef has been modernized into a G-clef by using the <gi scheme="MEI">reg</gi> element with no attributes specified, as follows:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><reg> <clef line="2" shape="G"/> </reg> </egXML> </figure> </p> <p>As another alternative, the encoder may encode both the old and modernized shapes, so that applications may render both at the reader’s will:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><choice> <orig> <clef line="1" shape="C"/> </orig> <reg> <clef line="2" shape="G"/> </reg> </choice> </egXML> </figure> </p> <p>As described above, the <att>resp</att> attribute may be used to specify the agent responsible for the regularization.</p> </div> <div xml:id="edittransAddDelOmissions" type="div3"> <head>Additions, Deletions, and Omissions</head> <p>The following elements are used to indicate when single notational symbols have been omitted from, added to, or marked for deletion from, a musical text. Like the other editorial elements described in this chapter, they allow for a wide range of editorial practices:</p> <p> <specList> <specDesc key="gap"/> <specDesc key="unclear"/> <specDesc key="att.reasonIdent" atts="reason"/> <specDesc key="add"/> <specDesc key="del"/> </specList> </p> <div xml:id="edittransOmission" type="div4"> <head>Omissions, Unclear Readings, Damage, and Supplied Readings</head> <p>Encoders may choose to omit parts of the source for reasons ranging from illegibility, (making transcription difficult or impossible), to editorial policy, <abbr>e.g.</abbr>, systematic exclusion of poetry or prose from an encoding. The full details of the policy decisions concerned should be documented in the MEI header (see section <ptr target="#headerEncodingDescription"/>). Each place in the text at which omission has taken place should be marked with a <gi scheme="MEI">gap</gi> element, optionally with further information about the reason for the omission, its extent, and the person or agency responsible for it, as in the following examples:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><gap extent="2" reason="illegible" unit="quarter_note"/> </egXML> </figure> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><gap extent="several notes" reason="overwriting illegible"/> </egXML> </figure> </p> <p>Note that the extent of the gap may be marked precisely using attributes <att>unit</att> and <att>extent</att>.</p> <p>Unlike TEI, MEI does not offer a <hi rend="italic">desc</hi> element for further description of the reason for a gap. Instead, an <gi scheme="MEI">annot</gi> may refer to the gap via its <att>startid</att>, <att>endid</att>, or <att>plist</att> attributes and provide additional information.</p> <p>The <gi scheme="MEI">unclear</gi> element is used to mark passages in the original which cannot be read with confidence, or about which the transcriber is uncertain for other reasons, as for example when transcribing an illegible source. Its <att>reason</att> and <att>resp</att> attributes are used, as with the <gi scheme="MEI">gap</gi> element, to indicate the cause of uncertainty and the person responsible for the conjectured reading.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note dur="4" oct="4" pname="c"> <unclear reason="ink blot"> <artic artic="acc"/> </unclear> </note> </egXML> </figure> </p> <p>Where the difficulty in transcription arises from an identifiable cause, the <att>agent</att> attribute signifies the causative agent. The <att>cert</att> attribute signifies the degree of certainty ascribed to the transcription of the text contained within the <gi scheme="MEI">unclear</gi> element. Where the difficulty in transcription arises from action (partial deletion, etc.) assignable to an identifiable hand, the <att>hand</att> attribute may record the hand responsible for the action.</p> <p>When the reason for a gap in the encoding is damage of the document carrier (the paper on which the document is written, for example), the <gi scheme="MEI">damage</gi> element should be used instead of the <gi scheme="MEI">gap</gi> element. In the case of damage resulting from an identifiable cause, the <att>agent</att> attribute signifies the causative agent. The <att>degree</att> attribute signifies the degree of damage according to a convenient scale. A <gi scheme="MEI">damage</gi> tag with this attribute should only be used where the text may be read with some confidence; data supplied from other sources should be tagged as <gi scheme="MEI">supplied</gi>. The <att>extent</att> attribute indicates approximately how much text is in the damaged area, in notes, measures, inches, or any appropriate unit, where this cannot be deduced from the contents of the tag. For example, the damage may span structural divisions in the text so that the tag must then be empty of content. In the case of damage (deliberate defacement, etc.) assignable to an identifiable hand, the <att>hand</att> attribute signifies the hand responsible for the damage.</p> <p>Sometimes the editor provides information not present in the source material. These conjectures or emendations are marked up in MEI using the <gi scheme="MEI">supplied</gi> element.</p> <p>The following example demonstrates the use of the <gi scheme="MEI">supplied</gi> element in combination with <gi scheme="MEI">gap</gi> within <gi scheme="MEI">subst</gi>:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><beam> <note dur="4" oct="3" pname="c"/> <note dur="4" oct="3" pname="d"/> <subst> <gap extent="two eighth notes" reason="missing notes"/> <supplied> <note dur="4" oct="3" pname="e"/> <note dur="4" oct="3" pname="f"/> </supplied> </subst> <note dur="4" oct="3" pname="g"/> <note dur="4" oct="3" pname="a"/> </beam> </egXML> </figure> </p> <p>When the presumed loss of text arises from an identifiable cause, <att>agent</att> signifies the causative agent. When the presumed loss of text arises from action (partial deletion, etc.) assignable to an identifiable hand, the <att>hand</att> attribute signifies the hand responsible for the action. The <att>reason</att> attribute indicates why the text has to be supplied, <abbr>e.g.</abbr>, 'overbinding', 'faded ink', 'lost folio', 'omitted in original', etc. The <att>source</att> attribute contains the source of the supplied text. The editor(s) responsible for supplied material may be recorded in the <att>resp</att> attribute. The value of <att>resp</att> must point to one or more identifiers declared in the document header. The <att>cert</att> attribute signifies the degree of certainty ascribed to the supplied material.</p> </div> <div xml:id="edittransVisual" type="div4"> <head>Visual appearance of editorial decisions</head> <p>Material added by the editors is often highlighted in the sheet music, either by brackets or small print. In addition to the semantic markup by elements like <gi scheme="MEI">supplied</gi>, the visual appearance can be encoded using the attributes <att>enclose</att> and <att>fontsize</att>, which are available on many elements.</p> <p> <figure> <head>Different appearances of editorial articulation</head> <graphic url="../images/modules/edittrans/editorial_example.png"/> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><supplied> <artic enclose="paren" artic="acc" place="above" /> </supplied> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><supplied> <artic fontsize="small" artic="acc" place="above" /> </supplied> </egXML> </figure> </p> </div> <div xml:id="edittransAddDel" type="div4"> <head>Additions and Deletions</head> <p>The <gi scheme="MEI">add</gi> and <gi scheme="MEI">del</gi> elements may be used to record where material has been added or deleted in the source material.</p> <p>The following example demonstrates the usage of <gi scheme="MEI">add</gi> to mark up a note being added to an existing chord:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><chord> <note pname="c"/> <note pname="e"/> <note pname="g"/> <add> <note accid="f" pname="b"/> </add> </chord> </egXML> </figure> </p> <p>The next example shows how <gi scheme="MEI">del</gi> may be used to capture the information that two measures have been cancelled. As seen in this example, the <att>rend</att> attribute is used to specify the method of deletion.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><section> <measure> <!-- … --> </measure> <measure> <!-- … --> </measure> <del rend="strike"> <measure> <!-- … --> </measure> <measure> <!-- … --> </measure> </del> <measure> <!-- … --> </measure> </section> </egXML> </figure> </p> <p>Additional information for both elements may be specified using attributes. Whereas the <att>hand</att> attribute marks responsibility for the textual change, the <att>resp</att> attribute is used to refer to the editor who identified this textual change as such. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the hand of the deletion or addition.</p> <p>The <gi scheme="MEI">add</gi> element should not be used to mark editorial changes, such as supplying a note omitted by mistake from the source text or a passage present in another source. In these cases, either the <gi scheme="MEI">corr</gi> or <gi scheme="MEI">supplied</gi> tags should be used instead.</p> </div> <div xml:id="edittransSubst" type="div4"> <head>Substitutions, Restorations, and Handshifts</head> <p>When several interventions to the musical text are to be regarded as a single action, they may be grouped using the <gi scheme="MEI">subst</gi> element. The most common combination is a replacement of portions of the musical text using both the <gi scheme="MEI">add</gi> and <gi scheme="MEI">del</gi> element, as seen in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <!-- preceding content --> <subst> <del> <note dur="4" oct="4" pname="c"/> </del> <add> <beam> <note dur="8" oct="4" pname="c"/> <note dur="8" oct="4" pname="d"/> </beam> </add> </subst> <!-- subsequent content --> </layer> </egXML> </figure> </p> <p>An intervention closely related to substitution is the restoration of a previously deleted section. For this purpose MEI offers the <gi scheme="MEI">restore</gi> element, which may contain a <gi scheme="MEI">del</gi> or other content directly.</p> <p>The following example illustrates an instance where a lyric was cancelled and later restored by overwriting it:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><note dur="4" oct="4" pname="c"> <syl> <restore desc="overwritten"> <del>God</del> </restore> </syl> </note> </egXML> </figure> </p> <p>The <att>desc</att> attribute gives a prose description of the means of restoration. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the hand of the restoration. The <att>type</att> attribute may be used to indicate the action cancelled by the restoration. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for identifying the hand of the restoration. The <att>hand</att> attribute signifies the hand of the agent which made the restoration.</p> <p>MEI offers a <gi scheme="MEI">handShift</gi> milestone element that can be used to mark a change of scribe or scribal style.</p> <p>The <att>character</att> attribute describes characteristics of the hand, particularly those related to the quality of the writing, <abbr>e.g.</abbr>, 'shaky', 'thick', regular'. A description of the tint or type of ink, <abbr>e.g.</abbr>, 'brown' or the writing medium, <abbr>e.g.</abbr>, 'pencil', may be placed in the <att>medium</att> attribute.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><layer> <note pname="f"/> <note pname="a"/> <handShift medium="blue ink"/> <note pname="c"/> <note pname="e"/> </layer> </egXML> </figure> </p> <p>The new hand may be identified using the <att>new</att> attribute, while the previous hand may be recorded in the <att>old</att> attribute. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for identifying the change of hand. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the new hand.</p> <p>When using this element within a layer, it is important to ensure that all layers and staves are considered. Every <gi scheme="MEI">handShift</gi> affects only the content of its own layer and staff, even in the following measures. Therefore, there must be a separate <gi scheme="MEI">handShift</gi> for every <gi scheme="MEI">staff</gi> and <gi scheme="MEI">layer</gi>. This mechanism allows the description of shifts at timestamps that differ between each staff.</p> </div> </div> </div> <div xml:id="genetic" type="div2"> <head>Genetic Markup</head> <p>Genetic editions try to trace the creation of a (musical) work in all its recorded details, from the first sketches to the ‘final’ complete text. The aim of genetic textual criticism is to investigate compositional working and thinking processes - the genesis of compositions. In contrast to traditional scholarly editions, which focus on the constitution of a performable text of a work, Genetic Textual Criticism focuses on the process of production, the gradual elaboration of musical thoughts while writing. It is dependent on the availability of comprehensible traces of these writing processes. Genetic editions often have to deal with significant uncertainties, and they require a considerable amount of markup, as detailed below.</p> <div xml:id="geneticStates" type="div3"> <head>Encoding Genetic States</head> <p>Leaving aside temporary breaks, a compositional process is continuous: the composer’s writing operations have happened in a strict order, which could be specified if his working would have been filmed. However, this exact order is rarely ever recoverable from the surviving manuscripts, prints or other materials. Instead, relative statements can be made – the red pencil must have been written after the brown ink etc. Instead of a continuous movie, scholars are often only able to reconstruct a slide show, reflecting certain recoverable states of the composition. Very often, those states have a local range only – the order of two states on one page may be known, as is the order of two other states on a second page. This doesn't necessarily allow to identify the succession of all four states.</p> <p>MEI utilizes the <gi scheme="MEI">genDesc</gi> element to describe the recoverable genetic states of a work. It is nested inside <gi scheme="MEI">music</gi> and may contain a number of <gi scheme="MEI">genState</gi> elements.</p> <p> <specList> <specDesc key="genDesc"/> <specDesc key="genState"/> </specList> </p> <p>A genetic description is used to bundle all known states of a work. The <att>ordered</att> attribute may be used to specify whether the order of child elements of the <gi scheme="MEI">genDesc</gi> matches their temporal order, or if their temporal order is unknown. As <gi scheme="MEI">genDesc</gi> may be self-nested, it is possible to specify the order of some states within a larger unordered set of genetic states, or to position a set of states with unknown temporal order in a larger ordered set.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><genDesc ordered="false"> <genState label="State A"/> <genState label="State B"/> <genDesc ordered="true"> <genState label="State C1"/> <genState label="State C2"/> <genState label="State C3"/> </genDesc> </genDesc> </egXML> </figure> </p> <p>In the above example, the temporal relation of states A, B and all of C is not known, but it is known that C1 precedes C2 and C3.</p> <p>Even when the temporal order of a set of states is not fully recoverable, some arguments about relative chronology may be available. It is possible to encode these statements with the precision the editor feels comfortable with, utilizing the attributes <att>next</att> and <att>prev</att> (for immediate successors / predecessors), and <att>precedes</att> and <att>follows</att> (for relative successors / predecessors).</p> <p>Genetic states can be further described by using any combination of the <gi scheme="MEI">desc</gi>, <gi scheme="MEI">date</gi>, and <gi scheme="MEI">respStmt</gi> children of <gi scheme="MEI">genState</gi>.</p> </div> <div xml:id="geneticReferences" type="div3"> <head>Referencing Genetic States</head> <p>While the (relative) chronology of genetic states may be encoded using the <gi scheme="MEI">genDesc</gi> element (see <ptr target="#geneticStates"/>), the textual operations they manifest in are encoded using the regular <gi scheme="MEI">add</gi>, <gi scheme="MEI">del</gi>, etc. elements are used (see <ptr target="#edittransAddDelOmissions"/>). However, for a genetic edition these elements are linked to their corresponding <gi scheme="MEI">genState</gi> element using the <att>state</att> attribute.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- definition of a state within genDesc --> <genState xml:id="genetic.stateX"/> <!-- somewhere later in the musical text: --> <subst state="#genetic.stateX"> <del> <clef shape="C" line="1"/> </del> <add> <clef shape="G" line="2"/> </add> </subst> </egXML> </figure> </p> <p>In the example above, state X of the encoded work is established by the change from a C clef to a G clef. Other states preceding state X will read a C clef, while state X and succeeding states read a G clef. A genetic state of the work is constituted by performing all textual operations referencing that state, <abbr>i.e.</abbr>, by carrying out all additions, deletions and restorations.</p> <p>The <att>instant</att> attribute on <gi scheme="MEI">del</gi> etc. allows to specify that corresponding modification has been carried out immediately after writing the original text, so that no separate genetic state has been established.</p> <p>It is up to encoder to identify the appropriate level of granularity: In an ideal world, the writing or cancellation of a single note would constitute a new state. In practice, this level of detail isn't feasible, and the combination of multiple writing operations into larger logical operations seems inevitable. However, this may range from very large tasks (‘replacing the second movement of a symphony’) to very small ones (‘adding the slurs for the viola in measures 22 and 23’), depending on the intentions and scope of the encoding.</p> </div> <div xml:id="metatexts" type="div3"> <head>Encoding Metatexts</head> <p>The arguments used to establish a chronological order of genetic states are sometimes found in external sources like letters, but very often they are to be found in the witnesses holding the musical text, even though they are typically not part of the text itself. Examples for such arguments are the writing medium, spacing, marginal notes, among others.</p> <p>Some of these so-called ‘metatexts’ can be encoded using MEI, namely those that are written into the relevant sources. For this purpose, MEI offers the <gi scheme="MEI">metaMark</gi> element, as known from the TEI.</p> <p> <specList> <specDesc key="metaMark"/> </specList> </p> <p>A metaMark is provided as a ‘controlEvent’ (see <ptr target="#eventsControlevents"/>); as such, by convention, it should be encoded at the end of the <gi scheme="MEI">measure</gi> where it first occurs. It is highly recommended to specify the function of the metaMark using its <att>function</att> attribute, which may take the following values:</p> <list> <item> <hi rend="italic">confirmation</hi>: confirmation of a previous textual decision; <abbr>i.e.</abbr>, cancellation of a deleted passage in a different writing medium.</item> <item> <hi rend="italic">addition</hi>: denoted material is to be inserted in the musical text.</item> <item> <hi rend="italic">deletion</hi>: denoted material is no longer part of the musical text.</item> <item> <hi rend="italic">substitution</hi>: denoted material is replaced, either by the musical text pointed at with the <att>target</att> attribute or the musical content of the metaMark element itself.</item> <item> <hi rend="italic">clarification</hi>: attempt to clarify a potentially illegible or otherwise unclear part of the musical text.</item> <item> <hi rend="italic">question</hi>: marks a section of the musical text which is to be considered further.</item> <item> <hi rend="italic">investigation</hi>: marks a section of the musical text as an investigation of the consequences of certain compositional decisions or potential alternatives.</item> <item> <hi rend="italic">restoration</hi>: declares a formerly cancelled part of the musical text as valid again.</item> <item> <hi rend="italic">navigation</hi>: clarification of the reading order of the musical text.</item> </list> <p>Some metaMarks may have actual content, like marginal notes. This content may be transcribed inside the <gi scheme="MEI">metaMark</gi> element. It also has a <att>facs</att> attribute to refer back to the corresponding sections of a facsimile.</p> <p>It is important to keep in mind that <gi scheme="MEI">metaMark</gi> elements do not encode the textual consequences they transport – this is an encoding of the sign, not of its meaning, which can be encoded in other elements like <gi scheme="MEI">restore</gi>.</p> <p> <figure> <head>metaMarks in Beethoven’s op.59.3, p.18</head> <graphic url="../images/modules/edittrans/metamarks-Beethoven-op59.3.png"/> </figure> </p> <p>The above excerpt from a Beethoven manuscript holds a number of different metaMarks, some of which are encoded in the following examples:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><metaMark staff="1" place="below" function="restoration">gut</metaMark> </egXML> </figure> </p> <p>The metaMark above captures the word ‘gut’ (good) Beethoven wrote below the red pencil, which indicates that the formerly deleted text of the two measures shown shall be kept.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><metaMark function="clarification"> Nb: diese<lb/>Zwei Täkte<lb/>sind gut, und<lb/>bleiben </metaMark> </egXML> </figure> </p> <p>This <gi scheme="MEI">metaMark</gi> transcribes Beethoven’s marginal note explaining the same situation as above.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><metaMark staff="3" place="above" tstamp="4" function="clarification">g</metaMark> </egXML> </figure> </p> <p>This third metaMark covers one of the letters Beethoven inserted to clarify the pitch of that given note.</p> </div> <div xml:id="geneticPageChanges" type="div3"> <head>Genetic Changes at the Page Level</head> <p>In genetic editions, it may also be of interest to trace when pages are added and / or removed from manuscripts. The general information about pages can be encoded using the <gi scheme="MEI">foliaDesc</gi> element, as described in <ptr target="#foliadesc"/>. It is possible to wrap the elements used there, including <gi scheme="MEI">patch</gi> and <gi scheme="MEI">cutout</gi> with editorial markup like <gi scheme="MEI">add</gi> and <gi scheme="MEI">del</gi>. These elements can then be used to reference <gi scheme="MEI">genState</gi> as described in <ptr target="#geneticReferences"/>.</p> </div> </div> </div> <div xml:id="facsimilesrecordings" type="div1"> <head>Facsimiles and Recordings</head> <p>MEI can be used to connect an encoding of some sort – either a transcription of existing material, or the specification of some expected output in some form – with existing sources. This existing material may be in different formats – music notation in any combination of print and manuscript, or audio or video footage. The concepts for establishing such connections between encoded music and source material is described in the following chapters.</p> <div xml:id="facsimiles" type="div2"> <head>Facsimiles</head> <p>Most often, MEI is used for the preparation of a digital musical text based on an existing music document, or with the intention of rendering the encoded notation into a document or audio rendition. MEI can, however, be used to provide a different kind of digital reproduction of a source document, which relies on the description and provision of digital imagery. Both approaches may be combined, so that the encoding of the musical content and digital facsimiles may add different facets to the same MEI document.</p> <div xml:id="facsimileElements" type="div3"> <head>Elements of the Facsimile Module</head> <p>This module makes available the following elements for encoding facsimiles:</p> <p> <specList> <specDesc key="facsimile"/> <specDesc key="surface"/> <specDesc key="zone"/> </specList> </p> <p>These element are used to add a separate subtree to MEI, starting with the <gi scheme="MEI">facsimile</gi> element inside <gi scheme="MEI">music</gi>, as seen in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><mei> <meiHead> <!-- metadata header --> </meiHead> <music> <facsimile> <!-- The facsimile subtree starts here. --> </facsimile> <body> <!-- The encoding of the musical content goes here. --> </body> </music> </mei> </egXML> </figure> </p> <p>It is possible to have more than one <gi scheme="MEI">facsimile</gi> element in this location. This is especially useful when multiple sources are encoded in the same file using the mechanisms described in chapter <ptr target="#editTrans"/> of these Guidelines. In this case, the <att>decls</att> (declarations) attribute of <gi scheme="MEI">facsimile</gi> may be used to refer to a source defined in the document’s header, as seen in the following example:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><mei> <meiHead> <fileDesc> <sourceDesc> <source xml:id="facsimile.source1"> <!-- description of source --> </source> </sourceDesc> </fileDesc> </meiHead> <music> <facsimile decls="#facsimile.source1"> <!-- facsimile content --> </facsimile> </music> </mei> </egXML> </figure> </p> <p>When using the FRBR model (see <ptr target="#FRBR"/>), it is equally possible to reference a <gi scheme="MEI">manifestation</gi> element instead of <gi scheme="MEI">source</gi>.</p> <p>Within a <gi scheme="MEI">facsimile</gi> element, each page of the source is represented by a <gi scheme="MEI">surface</gi> element. Each surface may be assigned an identifying string utilizing the <att>label</att> attribute. In addition, it may encapsulate more detailed metadata about itself in a <gi scheme="MEI">figDesc</gi> element. The coordinate space of the surface may be recorded in abstract terms in the <att>ulx</att>, <att>uly</att>, <att>lrx</att>, and <att>lry</att> attributes. For navigation purposes, <gi scheme="MEI">surface</gi> has a <att>startid</att> attribute that accommodates pointing to the first object appearing on this particular writing surface.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><facsimile> <surface label="page 1" lrx="2000" lry="3000" startid="#measure1" ulx="0" uly="0"/> </facsimile> </egXML> </figure> </p> <p>Within <gi scheme="MEI">surface</gi> elements, one may nest one or more <gi scheme="MEI">graphic</gi> elements, each providing a reference to an image file that represents the writing surface. Multiple <gi scheme="MEI">graphic</gi> elements are permitted in order to accommodate alternative versions (different resolutions or formats, for instance) of the surface image. In spite of changes in resolution or format, all images must contain the same content, <abbr>i.e.</abbr>, the entire writing surface. A <gi scheme="MEI">graphic</gi> may refer to a single page within a multi-page document, which is – at least for Adobe PDF documents – available through a #page=X suffix to the <att>target</att> attribute.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><facsimile> <surface> <graphic height="2000px" target="image1.jpg" width="3000px"/> <graphic height="1000px" target="image1smaller.jpg" width="1500px"/> <graphic height="200px" target="image1smallest.png" width="300px"/> </surface> </facsimile> <facsimile> <surface> <graphic height="297mm" target="source1.pdf#page=1" width="210mm"/> </surface> <surface> <graphic height="297mm" target="source1.pdf#page=2" width="210mm"/> </surface> </facsimile> </egXML> </figure> </p> <p>The preceding markup will provide the basis for most page-turning applications. Often, however, it is desirable to focus attention on particular areas of the graphical representation of the surface. The <gi scheme="MEI">zone</gi> element fulfills this purpose:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><surface lrx="3000" lry="2000" ulx="0" uly="0"> <graphic height="2000px" target="image1.jpg" width="3000px"/> <zone lrx="370" lry="410" ulx="300" uly="200"/> <zone lrx="439" lry="410" ulx="367" uly="200"/> <zone lrx="512" lry="410" ulx="436" uly="200"/> </surface> </egXML> </figure> </p> <p>The coordinates of each zone <hi rend="italic">define a space relative to the coordinate space of its parent surface</hi>. Note that this is not necessarily the same coordinate space defined by the width and height attributes of the graphic that represents the surface. The zone coordinates in the preceding example do not represent regions within the graphic, but rather regions of the <hi rend="italic">writing surface</hi>.</p> <p>Because the coordinate space of a zone is defined relative to that of a surface, it is possible to provide multiple graphic elements <hi rend="italic">and</hi> multiple zone elements within a single surface. In the following example, two different images representing the entire surface are provided alongside specification of two zones of interest within the surface:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><surface lrx="3000" lry="2000" ulx="0" uly="0"> <graphic height="2000px" target="image1.jpg" width="3000px"/> <graphic height="1995px" target="image1cropped.jpg" width="2995px"/> <zone lrx="370" lry="410" ulx="300" uly="200"/> <zone lrx="30" lry="30" ulx="0" uly="0"/> </surface> </egXML> </figure> </p> <p>A <gi scheme="MEI">zone</gi> element may contain <gi scheme="MEI">figDesc</gi> or <gi scheme="MEI">graphic</gi> elements that provide detailed descriptive information about the zone and additional images, e.g., at a different/higher resolution, of the rectangle defined by the zone. The data objects contained within the zone may also be specified through the use of the <att>data</att> attribute, which contains ID references to one more elements in the content tree of the MEI file, such as a <gi scheme="MEI">note</gi>, <gi scheme="MEI">measure</gi>, etc.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"> <!-- In the facsimile subtree: --> <zone data="#facsimile.measure1" xml:id="facsimile.zone1"/> <!-- somewhere in the content: --> <measure xml:id="facsimile.measure1"> <!-- measure content --> </measure> </egXML> </figure> </p> <p>Conversely, an element in the content may refer to the <gi scheme="MEI">facsimile</gi> subtree using its <att>facs</att> attribute, which is made available by the <ident type="class">att.facsimile</ident> attribute class. The last example could therefore be encoded with pointers in the other direction:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"> <!-- In the facsimile subtree: --> <zone xml:id="facsimile.zone2"/> <!-- somewhere in the content: --> <measure facs="#facsimile.zone2" xml:id="facsimile.measure2"> <!-- measure content --> </measure> </egXML> </figure> </p> <p>The <gi scheme="MEI">pb</gi> element defined in the <ptr target="#shared"/> makes special use of the <att>facs</att> attribute, in that it does not point to a <gi scheme="MEI">zone</gi>, but a <gi scheme="MEI">surface</gi> element instead. A <gi scheme="MEI">pb</gi> marks the beginning of a page, so it can be concluded that all elements in the content tree which are encoded between any two <gi scheme="MEI">pb</gi> elements encode musical symbols written on the page (<gi scheme="MEI">surface</gi>) referenced by the first of these two <gi scheme="MEI">pb</gi> element’s <att>facs</att> attribute.</p> <p>The encoding of <gi scheme="MEI">facsimile</gi> elements is intended to support sequential display of page images. If an encoder wants to describe the physical setup of a source document, the <gi scheme="MEI">foliaDesc</gi> element is more appropriate. The difference of both approaches, and how to combine them, is described in chapter <ptr target="#foliadesc"/>.</p> </div> </div> <div xml:id="performances" type="div2"> <head>Performances</head> <p>This chapter describes the ‘performance’ module, which can be used for organizing audio and video files of performances of a musical work. The elements provided allow the encoder to group different recordings of the same performance, identify temporal segments within the recordings, and encode simple alignments with a music text.</p> <div xml:id="perfElements" type="div3"> <head>Overview</head> <p>The following elements are available to encode information about a recorded performance:</p> <p> <specList> <specDesc key="performance"/> <specDesc key="recording"/> <specDesc key="avFile"/> <specDesc key="clip"/> <specDesc key="when"/> </specList> </p> <p>The <gi scheme="MEI">performance</gi> element begins a subtree of the <gi scheme="MEI">music</gi> element and appears alongside with, or instead of, <gi scheme="MEI">body</gi> (described in <ptr target="#sharedMusicElement"/>) and <gi scheme="MEI">facsimile</gi> (described in <ptr target="#facsimiles"/>). A <gi scheme="MEI">performance</gi> element represents one recorded performance event. As a performance may be recorded in multiple formats or by different personnel or using different equipment, the <gi scheme="MEI">performance</gi> element may group one or more recordings of the event.</p> <p>The <att>decls</att> attribute can be used to point to performance medium metadata for the performed work. See <ptr target="#headerWorkMedium"/> and <ptr target="#FRBR"/> for more details.</p> <p>The <gi scheme="MEI">recording</gi> element identifies a single recording event taking place within an absolute temporal space. The class <ident type="class">att.mediaBounds</ident> contains attributes that can be used to define this space:</p> <p> <specList> <specDesc key="att.mediaBounds" atts="begin end betype"/> </specList> </p> <p>The <gi scheme="MEI">avFile</gi> element identifies an external file associated with a recording act. In the simplest case, the recording element will contain one <gi scheme="MEI">avFile</gi> element identifying a file that represents it. The <att>target</att> attribute contains the URI of the digital media file. Use of the <att>mimetype</att> attribute is recommended for the <gi scheme="MEI">avFile</gi> element. Its value should be a valid MIME media type defined by the Internet Engineering Task Force in RFC 2046. It is also recommended that all avFile elements have a recording or clip parent which bears the <att>begin</att>, <att>end</att>, and <att>betype</att> attributes.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" end="00:03:10.00"> <avFile mimetype="audio/wav" target="http://example.com/path/to/audio/recording"/> </recording> </performance> </egXML> </figure> </p> <p>Sometimes, multiple digital files are created in order to provide greater flexibility in redistribution and playback capabilities. In this case, multiple avFile elements may occur, each with a different mimetype. Keep in mind, however, that each file still represents the complete temporal extent of the recording act in spite of the change of file format:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" end="00:03:10.00"> <avFile mimetype="audio/wav" target="http://example.com/path/to/audio/recording/wav"/> <avFile mimetype="audio/mpeg" target="http://example.com/path/to/audio/recording/mpeg"/> </recording> </performance> </egXML> </figure> </p> <p>The <gi scheme="MEI">clip</gi> element identifies a temporal segment of a recording act. In the following example, the clip begins two minutes into the timeframe of the recording and ends 20 seconds later:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><recording begin="00:00:00.00" betype="time" end="00:03:10.00"> <clip begin="00:02:00.00" betype="time" end="00:20:20.00"/> </recording> </egXML> </figure> </p> <p>Beyond these relatively simple uses, complex situations may occur that require equally complex markup. For example, a single performance may be represented by multiple digital media files. Because they have differing durations, the media files must be the result of separate recording acts, even if these recording acts took place at the same time:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" end="00:03:10.00"> <avFile mimetype="audio/wav" target="http://example.com/path/to/audio/recording/wav"/> </recording> <recording begin="00:00:00.00" betype="time" end="00:03:15.00"> <avFile mimetype="audio/mpeg" target="http://example.com/path/to/audio/recording/mpg"/> </recording> </performance> </egXML> </figure> </p> <p>A single performance may also be represented by multiple, <hi rend="italic">sequential</hi> digital files, as when a complete work is recorded in several so-called ‘takes’. In this case, the files may be considered to be parts of a single recording act, the extent of which is the combined extent of the individual clips. For example, a series of <gi scheme="MEI">clip</gi> elements may be used to identify each movement of a piece and give start and end times for the movements in relation to the overall temporal space of the complete work:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording> <clip begin="00:00:00.00" betype="time" end="00:07:00.00" n="mov1"> <avFile mimetype="audio/aiff" target="movement01.aiff"/> </clip> <clip begin="00:07:01.00" betype="time" end="00:12:03.00" n="mov2"> <avFile mimetype="audio/aiff" target="movement02.aiff"/> </clip> </recording> </performance> </egXML> </figure> </p> <p>Similar markup is also applicable when a single file representing the entirety of a recording act is broken into segments later, as is often done for practical storage and distribution reasons. The file from which the clips are derived is indicated using an avFile element:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" end="00:12:03.00" n="completeWork"> <avFile mimetype="audio/aiff" target="completeWork.aiff"/> <clip begin="00:00:00.00" betype="time" end="00:07:00.00" n="mov1"> <avFile mimetype="audio/aiff" target="movement01.aiff"/> </clip> <clip begin="00:07:02.00" betype="time" end="00:12:03.00" n="mov2"> <avFile mimetype="audio/aiff" target="movement02.aiff"/> </clip> </recording> </performance> </egXML> </figure> </p> <p>A <gi scheme="MEI">clip</gi> may be used to define any region of interest, such as a cadenza or a modulation, a song verse, etc. The following example shows the use of <gi scheme="MEI">clip</gi> and its attributes to identify significant sections of a recording:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" end="00:05:21.00"> <!-- Exposition --> <clip begin="00:00:00.00" betype="time" end="00:01:41.00"/> <!-- Development --> <clip begin="00:01:41.00" betype="time" end="00:03:14.00"/> <!-- Recapitulation --> <clip begin="00:03:14.00" betype="time" end="00:04:28.00"/> <!-- Coda --> <clip begin="00:04:28.00" betype="time" end="00:05:21.00"/> </recording> </performance> </egXML> </figure> </p> <p>The preceding example also demonstrates that media files are not required in order to define the temporal space of a recording act or clip. This makes it possible to set the boundaries of these features, then use the content of the performance element as a rudimentary "edit decision list" to create the matching digital files.</p> <p>If an encoding of the notated text with which the media files are associated is included in the MEI file, the <att>startid</att> attribute can be used to indicate the first element in the sequence of events to which the recording corresponds:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><performance> <recording begin="00:00:00.00" betype="time" end="00:07:00.00" n="mov1" startid="#performance.m1_1"> <avFile mimetype="audio/aiff" target="fullpiece.aiff"/> </recording> </performance> <!-- ... --> <body> <mdiv> <score> <section> <measure n="1" xml:id="performance.m1_1"> <!-- ... --> </measure> </section> </score> </mdiv> </body> </egXML> </figure> </p> <p>Clips can also be aligned with components of the musical text encoded in the <gi scheme="MEI">body</gi>. The <att>startid</att> attribute can be used to specify the starting element in the sequence of events to which the clip corresponds. The following example shows the use of clip elements to identify the exposition of the first movement from Beethoven’s piano sonata Op. 14, no. 2 and its concluding ‘codetta’.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><performance> <recording begin="00:00:00.00" betype="time" end="00:05:21.00"> <avFile mimetype="audio/aiff" target="BeethovenOp14N2-Mov1.aiff"/> <!-- Exposition --> <clip begin="00:00:0.00" betype="time" end="00:01:41.00" startid="#performance.m1"/> <!-- Exposition's "codetta" --> <clip begin="00:01:31.00" betype="time" end="00:01:41.00" startid="#performance.m48"/> </recording> </performance> <!-- ... --> <body> <mdiv> <score> <section> <measure n="1" xml:id="performance.m1"> <!-- ... --> </measure> <!-- ... --> <measure n="48" xml:id="performance.m48"> <!-- ... --> </measure> </section> </score> </mdiv> </body> </egXML> </figure> </p> <p>Please note that the begin and end times of clips may overlap. In the preceding example, the extent of the codetta is contained within that of the exposition. Overlapping beginning and ending points may also be used to provide additional performance context for a segment or because there is uncertainty with regard to precise values for these points.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" end="00:03:06.54"> <!-- a section of interest --> <clip begin="00:00:00.00" betype="time" end="00:00:41.00"/> <!-- the following section starts a little before the end of the previous one to give some "adjustment" time --> <clip begin="00:00:31.00" betype="time" end="00:01:07.00"/> <!-- the boundaries of the following section are "fuzzy" --> <clip begin="00:02:18.00" betype="time" end="00:02:49.85"/> </recording> </performance> </egXML> </figure> </p> <p>A bibliographic description of a recording or metadata explaining how clip boundaries were determined may be associated with the recording and clip elements via the <att>decls</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><performance> <recording begin="00:00:00.00" betype="time" decls="#performance.recBibDesc" end="00:03:06.54"> <!-- a section of interest --> <clip begin="00:00:00.00" betype="time" end="00:00:41.00"/> <!-- the following section starts a little before the end of the previous one to give some "adjustment" time --> <clip begin="00:00:31.00" betype="time" decls="#performance.clipDesc" end="00:01:07.00"/> <!-- the boundaries of the following section are "fuzzy" --> <clip begin="00:02:18.00" betype="time" end="00:02:49.85"/> </recording> </performance> </egXML> </figure> </p> <p>Associations between a feature of the encoding, such as a note, dynamic mark, or annotation, and a time point, may be created using <gi scheme="MEI">when</gi> elements and <att>when</att> attributes.</p> <p>The <gi scheme="MEI">when</gi> element identifies a particular point in time during the playback of a media file, such as an audio recording.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><when absolute="00:00:01.915291666" abstype="time" xml:id="t1"/> </egXML> </figure> </p> <p>Time points may be identified in absolute terms as above; that is, in hours, minutes, and seconds since the beginning of the recording, or in relative terms using the <att>interval</att>, <att>inttype</att>, and <att>since</att> attributes. In the following example, the time point of interest happens 48 frames after the occurrence of the point labelled as "t1".</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><when interval="48" inttype="smpte-ndf29.97" since="#t1" xml:id="t1.1"/> </egXML> </figure> </p> <p>Having identified a point of interest, another feature of the encoding may be associated with this point using its <att>when</att> attribute:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><annot resp="#LvB" when="#t1"> <p>I like this part!</p> </annot> </egXML> </figure> </p> <p>One use of the association created between the annotation and the time point is to display the text of the annotation as the recording or clip is played.</p> <p>The <att>when</att> attributes allows only a single value, so only one-to-one relationships can be created using this mechanism. However, one-to-many relationships are accommodated in the opposite direction; that is, from a time point to other features of the markup. For example,</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><when xml:id="t1.2" absolute="00:00:01.915291666" abstype="time" data="#feature1 #feature2 #feature3"/> </egXML> </figure> </p> <p>indicates that the entities identified in <att>data</att> all occur at the same instant.</p> <p><gi scheme="MEI">extData</gi> is a container for holding non-MEI data formats, similar to <gi scheme="MEI">extMeta</gi> but available in <gi scheme="MEI">when</gi> rather than in <gi scheme="MEI">meiHead</gi>. <gi scheme="MEI">extData</gi> allows for data from audio or other sources to be linked to notes or other score events. Data should be enclosed in a CDATA tag.</p> <p>The following example shows JSON formatted performance data encoded with <gi scheme="MEI">extMeta</gi> for a single note (presumed to be defined elsewhere in the document as with the ID "note_1"). Both single-value summaries (<abbr>e.g.</abbr>, pitch) and time series values (<abbr>e.g.</abbr>, contF0) are encoded.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><when absolute="00:00:00.00" xml:id="when_1" data="#note_1"> <extData> &lt;![CDATA[ {"offset": "00:00:02.9005", "pitch": "455.98", "contF0": [454.3737606, 454.7165531, 455.2337513, 455.4622624, 456.0605954]} ]]&gt; </extData> </when></egXML> </figure> </p> </div> </div> </div> <div xml:id="linkingdata" type="div1"> <head>Linking Data</head> <p>This chapter describes the use of elements in MEI for linking and referencing. This includes the elements, models, and attributes that are part of the 'MEI.ptrref' module. This module contains declarations, techniques and approaches to establish references within a single MEI document, or to link out from one MEI document to another or to other external sources. This chapter also addresses possibilities to link into an MEI document from external sources which makes MEI highly interoperable and serviceable in the context of Linked (Open) Data approaches.</p> <div xml:id="links" type="div2"> <head>Links</head> <p>An element is a ‘link’ when it has an attribute whose value is a reference to the ID of one or more other elements (cross-reference). These link elements indicate an association between themselves (or one of their ancestors) and one or more other entities, either inside the same document or elsewhere. An association between two elements in the same document is said to be an ‘internal’ link, while an association that involves an entity outside the current document is called an ‘external’ link. However, either of the elements discussed in the following section can be used for either purpose.</p> </div> <div xml:id="linkFromMei" type="div2"> <head>Linking from MEI</head> <p>This section describes techniques and approaches to establish references within a single MEI document, or to link out from one MEI document to another or to other external sources.</p> <div xml:id="ptrRef" type="div3"> <head>Pointers and References</head> <p>The link elements discussed in this section are the <gi scheme="MEI">ptr</gi> and the <gi scheme="MEI">ref</gi> elements which are declared in the MEI.ptrref module.</p> <p> <specList> <specDesc key="ptr"/> <specDesc key="ref"/> </specList> </p> <p> The <gi scheme="MEI">ptr</gi> element is a traversible pointer to another location. It is an empty linking element that uses only attributes to describe its link destination. It cannot contain text or sub-elements to describe the referenced object. The next example shows the use of the <gi scheme="MEI">ptr</gi> element to target a certain identifier (here <abbr>e.g.</abbr>, a page number, or more precisely, page break elements, <gi scheme="MEI">pb</gi>, bearing these identifiers) from within a <gi scheme="MEI">list</gi> of item descriptions: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><list> <li> <!-- item description --> <ptr target="#p123"/> </li> <li> <!-- item description --> <ptr target="#p124"/> </li> </list> </egXML> </figure> </p> <p> The <gi scheme="MEI">ref</gi> element defines a traversible reference to another location. While <gi scheme="MEI">ptr</gi> cannot contain other markup, the <gi scheme="MEI">ref</gi> element can include text or sub-elements that further specify the link destination: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><repository> <ref target="http://path.to.target/repo1.xml"> <title>…</title> <address> <addrLine>…</addrLine> </address> <identifier>…</identifier> </ref> </repository> </egXML> </figure> </p> </div> <div xml:id="ptrrefModule" type="div3"> <head>Specifying Link Elements</head> <p> The <gi scheme="MEI">ptr</gi> and <gi scheme="MEI">ref</gi> elements share a set of common attributes that are inherited from the <ident type="class">att.pointing</ident> class (a more detailed explanation is provided below): </p> <p> <specList> <specDesc key="att.pointing" atts="target targettype xlink:actuate xlink:show xlink:role"/> </specList> </p> <p> In addition to the attributes in the <ident type="class">att.pointing</ident> class, the <att>mimetype</att> attribute from the <ident type="class">att.internetMedia</ident> class is also available on <gi scheme="MEI">ptr</gi> and <gi scheme="MEI">ref</gi> (a more detailed explanation is provided below): </p> <p> <specList> <specDesc key="att.internetMedia" atts="mimetype"/> </specList> </p> <p> The <ident type="class">att.linking</ident> class provides another set of common attributes (a more detailed explanation is provided in <ptr target="#analysisharm"/>: <ptr target="#analysisDescribingRelationships"/>): </p> <p> <specList> <specDesc key="att.linking" atts="copyof corresp follows next precedes prev sameas synch"/> </specList> </p> <p> Additionally, the following attributes are also available on <gi scheme="MEI">ptr</gi> and <gi scheme="MEI">ref</gi>: </p> <p> Via the <ident type="class">att.metadataPointing</ident> class: </p> <p> <specList> <specDesc key="att.metadataPointing" atts="decls"/> </specList> </p> <p> Via the <ident type="class">att.classed</ident> class: </p> <p> <specList> <specDesc key="att.classed" atts="class"/> </specList> </p> <p> Via the <ident type="class">att.responsibility</ident> class: </p> <p> <specList> <specDesc key="att.responsibility" atts="resp"/> </specList> </p> <div xml:id="ptrRefTarget" type="div4"> <head>Define the link element’s target (XPointer mechanism)</head> <p> The <att>target</att> attribute specifies the destination of a pointer or reference using a method standardized by the W3C consortium, known as the XPointer mechanism. The XPointer framework is described at <ref target="http://www.w3.org/TR/xptr-framework/">http://www.w3.org/TR/xptr-framework/</ref>. This mechanism permits a range of complexity, from the very simple (a reference to the value of the target element’s <att>xml:id</att> attribute) to the more complex usage of a full URI with embedded XPointers: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- element ID --> <ptr target="#SA"/> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- relative URL --> <ptr target="myFile.xml"/> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- absolute URL --> <ptr target="http://www.w3.org/TR/xptr-framework/"/> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- URL with fragment identifier --> <ptr target="http://www.w3.org/TR/xptr-xpointer/#xpointer(id('chum')/quote)"/> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><!-- URN --> <ref target="urn:isan:0000-0000-9E59-0000-O-0000-0000-2">Spider-Man</ref> </egXML> </figure> </p> <p> A <att>target</att> attribute is not required in order to mark the textual content as a cross-reference, as demonstrated in the example below; however, without this attribute the reference will not be resolvable. </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><p>See <ref>Hankinson, Roland, Fujinaga (2011)</ref>.</p> </egXML> </figure> </p> </div> <div xml:id="ptrRefTargettype" type="div4"> <head>Define the type of a link element’s target</head> <p> The <att>targettype</att> attribute allows the target resource to be characterized using any convenient classification scheme or typology. This is often useful when the target requires special processing, <abbr>e.g.</abbr>, for display purposes. The pointers in the examples below may be formatted differently, <abbr>e.g.</abbr>, the bibliographic citation may result in special typography while the pointer to the audio file may be used to embed an audio player: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr target="#cit1" targettype="biblioCitation"/> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr target="http://path.to.resource/myAudio.aiff" targettype="audioClip"/> </egXML> </figure> </p> </div> <div xml:id="ptrRefMimetype" type="div4"> <head>Define the mimetype of a link element’s target</head> <p> The function of the <att>mimetype</att> attribute is similar to that of <att>targettype</att> in that they both allow classification of the destination. Unlike <att>targettype</att>, however, <att>mimetype</att> explicitly defines the destination type using a standard taxonomy. Its value should be a valid MIME (Multimedia Internet Mail Extension) type as defined by the Internet Engineering Task Force (IETF) in RFC 2046, available at <ref target="http://www.ietf.org/rfc/rfc2046.txt">http://www.ietf.org/rfc/rfc2046.txt</ref>. The following are all valid mimetype values: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr mimetype="application/pdf" target="my.pdf"/> <ptr mimetype="text/xml" target="my.xml"/> <ptr mimetype="image/png" target="my.png"/> </egXML> </figure> </p> <p> As shown above, the <gi scheme="MEI">ptr</gi> element can be used to ‘point to’ a digital image (<code>target="my.png"</code>). However, when the intention is to <hi rend="italic">display</hi> a digital image as part of the rendering of an MEI file, the <gi scheme="MEI">graphic</gi> element provides a convenient and recommended alternative: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><graphic mimetype="image/png" target="my.png"/> </egXML> </figure> </p> <p> The <att>mimetype</att> attribute is particularly useful for documenting the nature of the destination when the value of <att>target</att> does not provide a filename extension or when the destination is a non-standard file type: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr mimetype="application/pdf" target="myFile1"/> <ptr mimetype="application/x-myApplicationSpecificFile" target="myFile2"/> </egXML> </figure> </p> </div> <div xml:id="ptrRefXlinkActuateShow" type="div4"> <head>Determine the link element’s behaviour</head> <p> The <att>xlink:actuate</att> and <att>xlink:show</att> attributes are used in conjunction to determine the link’s behavior. </p> <p> The <att>xlink:actuate</att> attribute defines whether the resolution of a link occurs automatically or must be requested by the user. </p> <p> The following values are allowed for the <att>xlink:actuate</att> attribute: </p> <p> <list type="gloss"> <label>‘onLoad’</label> <item>load the target resource(s) immediately</item> <label>‘onRequest’</label> <item>load the target resource(s) upon user request, <abbr>e.g.</abbr>, after a mouse click</item> <label>‘none’</label> <item>do not permit loading of the target resource(s); no other markup is provided to determine appropriate behavior</item> <label>‘other’</label> <item>behavior other than permitted by the other values of this attribute; application should look for other markup to determine appropriate behavior</item> </list> </p> <p> The value <val>none</val> may be used to indicate that the link is un-traversable and no other markup is provided to determine appropriate behavior; it may or may not render the link invisible to the user. When the value of <att>xlink:actuate</att> is <val>other</val>, an application must base a determination of appropriate behavior on factors other than the value of <att>xlink:actuate</att>. </p> <p> The <att>xlink:show</att> attribute defines how a remote resource is to be rendered. The following values are permitted: </p> <p> <list type="gloss"> <label>‘new’</label> <item>target of the link appears in a new window</item> <label>‘replace’</label> <item>target of the link replaces the current resource in the same window</item> <label>‘embed’</label> <item>the content of the target appears at the point of the link</item> <label>‘none’</label> <item>do not permit traversal to the target resource(s); no other markup is provided to determine appropriate behavior</item> <label>‘other’</label> <item>behavior other than permitted by the other values of this attribute; application should look for other markup to determine appropriate behavior</item> </list> </p> <p> The value <val>none</val> may be used to indicate a link that is not displayed or is not displayable and no other markup is provided to determine appropriate behavior. When the value of <att>xlink:show</att> is <val>other</val>, an application must base a determination of appropriate behavior on factors other than the value of <att>xlink:show</att>. </p> <p> The following example illustrates a pointer that results in the automatic creation of a new window with the content of the target loaded in it: </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr xmlns="http://www.tei-c.org/ns/Examples" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" mimetype="text" target="http://www.ietf.org/rfc/rfc2046.txt" xlink:actuate="onLoad" xlink:show="new"/> </egXML> </figure> </p> </div> <div xml:id="ptrRefXlinkRole" type="div4"> <head>Determine the link element’s role</head> <p> The <att>xlink:role</att> attribute describes the meaning of resources within the context of a link. It is used to label or describe a link or resource in a human- and machine-readable fashion. The value of <att>xlink:role</att> must be an absolute URI (Uniform Resource Identifier) reference as defined by the Internet Engineering Task Force (IETF) in RFC 3986, available at <ref target="http://tools.ietf.org/html/rfc3986">http://tools.ietf.org/html/rfc3986</ref>. The URI reference identifies a resource that describes the intended property. When no value is supplied, no particular role value is to be inferred. </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr xmlns="http://www.tei-c.org/ns/Examples" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" target="joe.xml" xlink:role="http://www.example.com/linkprops/student" /> </egXML> </figure> </p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><ptr xmlns="http://www.tei-c.org/ns/Examples" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rng="http://relaxng.org/ns/structure/1.0" xmlns:sch="http://purl.oclc.org/dsdl/schematron" target="joe.xml" xlink:role="http://www.example.com/linkprops/instructor" /> </egXML> </figure> </p> <p> In the preceding examples, the value of the <att>xlink:role</att> attribute may be used to specify the value of the link target’s role. </p> </div> </div> </div> <div xml:id="linkAlign" type="div2"> <head>Linking and Alignment</head> <p>The linkAlign module has been deprecated in MEI v3.</p> </div> </div> <div xml:id="integration" type="div1"> <head>Integrating MEI with other Standards and Formats</head> <p>In this chapter, the combination of MEI with other relevant formats in the field is covered. Here, the MEI Guidelines try to serve as Best Practice Recommendations; they don't claim to provide full and / or authoritative documentation for those other formats. The intention is to provide good starting points and share experience across various projects, trying to unify both tools and workflows for better efficiency. Accordingly, if the information found here provides as outdated or incomplete, please <ref target="https://music-encoding.org/community/community-contacts.html">get in touch</ref>. </p> <div xml:id="tei" type="div2"> <head>TEI</head> <p>The TEI’s Special Interest Group on Music has come up with an ODD customization for TEI, which allows to embed MEI excerpts into TEI. However, the SIG Music is officially considered <hi rend="italic">dormant</hi>, so the information provided is somewhat outdated. The most recent resources are available from <ref target="https://github.com/TEI-Music-SIG/tei-mei/">GitHub</ref>.</p> <p>As of yet, no official MEI customization to include elements from the TEI namespace into MEI has been written, even though this is definitely wanted. </p> </div> <div xml:id="iiif" type="div2"> <head>IIIF</head> <p>This chapter will explain how to use MEI in an IIIF-compatible way.</p> </div> <div xml:id="smufl" type="div2"> <head>SMuFL</head> <p>This section describes how to use MEI with the Standard Music Font Layout (SMuFL, <ref target="https://www.smufl.org/">https://www.smufl.org/</ref>) specification.</p> </div> <div xml:id="svg" type="div2"> <head>SVG</head> <p>In order to use Scalable Vector Graphics (SVG) in MEI, a new <hi rend="italic">module</hi> needs to be compiled into ODD (see <ptr target="#meiCustomization"/> for an introduction on how to do that). In order to do that, you need to enter the following <gi scheme="TEI">moduleRef</gi> into the <gi scheme="TEI">schemaSpec</gi> of your ODD file:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code noBase noLang" xml:space="preserve"><specGrp xmlns="http://www.tei-c.org/ns/1.0"> <?edit-start?> <moduleRef url="http://www.w3.org/Graphics/SVG/1.1/rng/svg11.rng"> <content> <rng:define name="mei_model.graphicLike" combine="choice"> <rng:ref name="svg"/> </rng:define> </content> </moduleRef> <?edit-end?> </specGrp></egXML> </figure> </p> <p>With this addition, which can be added to any of the provided customizations of MEI (see <ptr target="#meiProfiles"/>), the <ref target="https://www.w3.org/TR/SVG11/struct.html#SVGElement"><svg></ref> element becomes available everywhere `model.graphicLike` (<abbr>i.e.</abbr>, the <gi scheme="MEI">graphic</gi> element) is currently allowed, that is: inside of <gi scheme="MEI">fig</gi>, <gi scheme="MEI">incip</gi>, <gi scheme="MEI">surface</gi>, and <gi scheme="MEI">zone</gi>.</p> <p> In the following example, an <ref target="https://www.w3.org/TR/SVG11/paths.html#PathElement"><svg:path></ref> element is inserted into a <gi scheme="MEI">surface</gi>. It would now be possible for measures or other music features to point to the rectangular <gi scheme="MEI">zone</gi> in MEI namespace, or the fancy shaped <ref target="https://www.w3.org/TR/SVG11/paths.html#PathElement"><svg:path></ref> using their <att>facs</att> attribute (see <ptr target="#facsimileElements"/> for that mechanism). It’s equally possible to use SVG content inside figures on title pages or anywhere else.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code noBase noLang" xml:space="preserve"><music xmlns="http://www.music-encoding.org/ns/mei"> <facsimile> <?edit-start?> <surface lrx="3000" lry="2000" ulx="0" uly="0"> <graphic target="image1.jpg" width="3000px" height="2000px"/> <svg:svg xmlns:svg="http://www.w3.org/2000/svg" version="1.1" width="3000px" height="2000px" viewBox="0 0 3000 2000"> <svg:path id="fancyShape" fill="#ff0000" d="…"/> </svg:svg> <zone xml:id="rectangle" lrx="370" lry="410" ulx="300" uly="200"/> </surface> <?edit-end?> </facsimile> </music></egXML> </figure> </p> <p>Of course it’s possible to allow elements in SVG namespace in other places in MEI as well, by adjusting the model classes that the SVG namespace shall join.</p> </div> <div xml:id="midiGuidelines" type="div2"> <head>Musical Instrument Digital Interface (MIDI)</head> <p>This chapter describes the MIDI encoding functionality present in MEI. The purpose of this module is to allow for integrating MIDI data into MEI-encoded notation, to both aid software in translating MEI to MIDI, and to permit the capture of information in files that have been translated from MIDI to MEI. The MIDI model in MEI is similar to that of Mup, and the user is directed to the <ref target="http://www.arkkra.com/doc/uguide.ps">Mup User Guide</ref> for further reading.</p> <p>The MIDI module defines certain generally-accepted MIDI units that may be used outside of a MIDI context. For example, the <att>dur.ppq</att> attribute accepts MIDI <hi rend="italic">ppq</hi> (Pulses Per Quarter) as a valid measurement of duration. Similarly, the <att>pnum</att> attribute allows MIDI note numbers for specifying a pitch value.</p> <div xml:id="midi.scoreDefppq" type="div3"> <head>PPQ in scoreDef and staffDef</head> <p>To define the MIDI resolution of a score, the <att>ppq</att> attribute may be used on the <gi scheme="MEI">scoreDef</gi> element. This value can be used to interpret the values found in the <att>dur.ppq</att> attribute on elements in the <ident type="class">att.duration.ges</ident> class.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve" valid="feasible"><scoreDef keysig="1f" meter.count="4" meter.sym="common" meter.unit="4" ppq="48"> <staffGrp> <staffDef clef.line="2" clef.shape="G" keysig="1f" lines="5" n="1" xml:id="midi.P1"></staffDef> <staffDef clef.line="4" clef.shape="F" keysig="1f" lines="5" n="2" xml:id="midi.P2"></staffDef> <staffDef clef.line="4" clef.shape="F" keysig="1f" lines="5" n="3" xml:id="midi.P3"></staffDef> </staffGrp> </scoreDef> <!-- snip --> <note dur="8" dur.ges="24p" oct="5" pname="a" stem.dir="up" xml:id="midi.d1e40"></note> <!-- 8th note --> <rest dur="32" dur.ges="6p" vo="4" xml:id="midi.d1e58"></rest> <!-- 32nd note --> <!-- snip --></egXML> </figure> </p> <p>The <att>ppq</att> attribute is also available on the <gi scheme="MEI">staffDef</gi> element in order to aid in the conversion to MEI from other representations that allow a different time base for each staff. However, these independent values for <att>ppq</att> are only interpretable in terms of a common time base. Therefore, the <att>ppq</att> attribute is required on <gi scheme="MEI">scoreDef</gi> when the values of <att>ppq</att> on the staff definitions differ. In the following example, the values of the <att>ppq</att> attributes on the <gi scheme="MEI">staffDef</gi> elements are all factors of the value of <att>ppq</att> attached to <gi scheme="MEI">scoreDef</gi>.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><scoreDef keysig="1f" meter.count="4" meter.sym="common" meter.unit="4" ppq="48"> <staffGrp> <staffDef clef.line="2" clef.shape="G" keysig="1f" lines="5" n="1" ppq="2" xml:id="midi.P1"/> <staffDef clef.line="4" clef.shape="F" keysig="1f" lines="5" n="2" ppq="16" xml:id="midi.P2"/> <staffDef clef.line="4" clef.shape="F" keysig="1f" lines="5" n="3" ppq="24" xml:id="midi.P3"/> </staffGrp> </scoreDef> </egXML> </figure> </p> </div> <div xml:id="midiInstruments" type="div3"> <head>Recording General MIDI Instrumentation</head> <p>The <gi scheme="MEI">instrDef</gi> element can be used to record MIDI instrument names or numbers using the <att>midi.instrname</att> and <att>midi.instrnum</att> attributes. The <att>midi.instrname</att> attribute must contain an instrument name from the list provided by the data.MIDINAMES data type. By default, data.MIDINAMES contains General MIDI Instrument designations.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><scoreDef keysig="1f" meter.count="4" meter.sym="common" meter.unit="4" ppq="48"> <staffGrp> <staffDef clef.line="2" clef.shape="G" lines="5" n="1" xml:id="midi.P5"> <instrDef midi.instrname="Violin"/> </staffDef> <staffDef clef.line="2" clef.shape="G" lines="5" n="2" xml:id="midi.P6"> <instrDef midi.instrname="Violin"/> </staffDef> <staffDef clef.line="3" clef.shape="C" lines="5" n="3" xml:id="midi.P7"> <instrDef midi.instrname="Viola"/> </staffDef> <staffDef clef.line="4" clef.shape="F" lines="5" n="3" xml:id="midi.P8"> <instrDef midi.instrname="Cello"/> </staffDef> </staffGrp> </scoreDef> </egXML> </figure> </p> <p>The <att>midi.instrnum</att> is provided for those cases when an instrument number is needed. It must contain valid MIDI values; that is, 0-127. In these cases, a General MIDI Instrument name is redundant.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><scoreDef keysig="1f" meter.count="4" meter.sym="common" meter.unit="4" ppq="48"> <staffGrp> <staffDef clef.line="2" clef.shape="G" lines="5" n="1" xml:id="midi.P5"> <instrDef midi.instrnum="41"/> </staffDef> <staffDef clef.line="2" clef.shape="G" lines="5" n="2" xml:id="midi.P6"> <instrDef midi.instrnum="41"/> </staffDef> <staffDef clef.line="3" clef.shape="C" lines="5" n="3" xml:id="midi.P7"> <instrDef midi.instrnum="42"/> </staffDef> <staffDef clef.line="4" clef.shape="F" lines="5" n="3" xml:id="midi.P8"> <instrDef midi.instrnum="43"/> </staffDef> </staffGrp> </scoreDef> </egXML> </figure> </p> </div> <div xml:id="midiData" type="div3"> <head>Recording MIDI Event Data</head> <p>MIDI messages are encapsulated in the <gi scheme="MEI">midi</gi> element, which is typically used in contexts like <gi scheme="MEI">layer</gi> and <gi scheme="MEI">measure</gi>. In earlier versions of MEI, the <gi scheme="MEI">noteOn</gi> and <gi scheme="MEI">noteOff</gi> elements were used to record MIDI note on/off events. The use of these elements is now discouraged in favor of using the <gi scheme="MEI">note</gi> element directly. MIDI duration should be recorded using the <att>dur.ges</att> attribute, and MIDI pitch information should be recorded using the <att>pnum</att> attribute.</p> <p>MIDI control changes (<gi scheme="MEI">cc</gi>) are encoded using the <att>num</att> and <att>val</att> attributes. Control change numbers are specified in the General MIDI documentation. In the example below, the <gi scheme="MEI">cc</gi> elements encode increasing controller event 7 (volume) values, or in musical terms, a crescendo. Other MIDI event messages follow this same pattern, using the <att>num</att> and <att>val</att> attributes to record the raw MIDI data.</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><measure> <staff> <layer> <note dur.ges="8" pnum="45"/> <note dur.ges="8" pnum="42"/> <note dur.ges="8" pnum="43"/> <note dur.ges="8" pnum="44"/> </layer> </staff> <midi layer="1" staff="1"> <cc num="7" tstamp=".5" val="50"/> <cc num="7" tstamp="1.5" val="55"/> <cc num="7" tstamp="2" val="60"/> <cc num="7" tstamp="2.5" val="65"/> </midi> </measure> </egXML> </figure> </p> <p>In the preceding example, each control change is associated with a time stamp. The <att>tstamp</att> attribute is required in order to indicate when the MIDI event should take place. It is often necessary to indicate a time stamp slightly earlier than the affected notes to compensate for MIDI delay.</p> <p>For better legibility and error checking, the <gi scheme="MEI">midi</gi> element may be used, as in the following example, to group MIDI parameter changes. Even so, the <att>tstamp</att> attribute is required on all parameters in order to associate them with their point of actuation:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><midi layer="1" staff="1"> <cc num="7" tstamp=".5" val="50"/> <cc num="64" tstamp=".5" val="64"/> </midi> </egXML> </figure> </p> </div> <div xml:id="midiNonCMN" type="div3"> <head>MIDI in Mensural and Neume Notation</head> <p>In mensural, neume, and other historical or non-Western repertoires, there is often no measure-based time stamp with which to associate MIDI controller data. Therefore, in these notations MIDI controller data is assumed to be associated with the event that immediately follows in the same layer. Thus, a crescendo in mensural notation may be encoded like so:</p> <p> <figure> <head/> <egXML xmlns="http://www.tei-c.org/ns/Examples" rend="code" xml:space="preserve"><staff> <layer> <midi> <cc num="7" val="50"/> </midi> <note dur="fusa" dur.ges="8p" pnum="42"/> <midi> <cc num="7" val="55"/> </midi> <note dur="fusa" dur.ges="8p" pnum="43"/> <midi> <cc num="7" val="60"/> </midi> <note dur="fusa" dur.ges="8p" pnum="44"/> <midi> <cc num="7" val="65"/> </midi> <note dur="fusa" dur.ges="8p" pnum="45"/> </layer> </staff> </egXML> </figure> </p> </div> </div> </div> </body> <back> <div> <schemaSpec xmlns:tei="http://www.tei-c.org/ns/1.0" ident="mei" ns="http://www.music-encoding.org/ns/mei" start="mei"> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI"> <moduleSpec ident="MEI"> <desc xml:lang="en">Data type definitions.</desc> </moduleSpec> <macroSpec ident="data.ACCIDENTAL.WRITTEN" module="MEI" type="dt"> <desc xml:lang="en">Written accidental values.</desc> <content> <alternate> <macroRef key="data.ACCIDENTAL.WRITTEN.basic"/> <macroRef key="data.ACCIDENTAL.WRITTEN.extended"/> <macroRef key="data.ACCIDENTAL.aeu"/> <macroRef key="data.ACCIDENTAL.persian"/> </alternate> </content> <remarks xml:lang="en"> <p> <graphic url="../images/ExampleImages/accid-20100510.png" height="50%" width="50%"/> </p> </remarks> </macroSpec> <macroSpec ident="data.ACCIDENTAL.WRITTEN.basic" module="MEI" type="dt"> <desc xml:lang="en">Written standard accidental values.</desc> <content> <valList type="closed"> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="ss"> <desc xml:lang="en">Double sharp (written as 2 sharps).</desc> </valItem> <valItem ident="x"> <desc xml:lang="en">Double sharp (written using croix).</desc> </valItem> <valItem ident="ff"> <desc xml:lang="en">Double flat.</desc> </valItem> <valItem ident="xs"> <desc xml:lang="en">Triple sharp (written as a croix followed by a sharp).</desc> </valItem> <valItem ident="sx"> <desc xml:lang="en">Triple sharp (written as a sharp followed by a croix).</desc> </valItem> <valItem ident="ts"> <desc xml:lang="en">Triple sharp (written as 3 sharps).</desc> </valItem> <valItem ident="tf"> <desc xml:lang="en">Triple flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="nf"> <desc xml:lang="en">Natural + flat; used to cancel preceding double flat.</desc> </valItem> <valItem ident="ns"> <desc xml:lang="en">Natural + sharp; used to cancel preceding double sharp.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.ACCIDENTAL.WRITTEN.extended" module="MEI" type="dt"> <desc xml:lang="en">Written quarter-tone accidental values.</desc> <content> <valList type="closed"> <!-- su, sd, fu, fd are equivalent to usual symbols plus an arrow (Gould, p. 95)--> <valItem ident="su"> <desc xml:lang="en">Sharp note raised by quarter tone (sharp modified by arrow).</desc> </valItem> <valItem ident="sd"> <desc xml:lang="en">Sharp note lowered by quarter tone (sharp modified by arrow).</desc> </valItem> <valItem ident="fu"> <desc xml:lang="en">Flat note raised by quarter tone (flat modified by arrow).</desc> </valItem> <valItem ident="fd"> <desc xml:lang="en">Flat note lowered by quarter tone (flat modified by arrow).</desc> </valItem> <valItem ident="nu"> <desc xml:lang="en">Natural note raised by quarter tone (natural modified by arrow).</desc> </valItem> <valItem ident="nd"> <desc xml:lang="en">Natural note lowered by quarter tone (natural modified by arrow).</desc> </valItem> <valItem ident="xu"> <desc xml:lang="en">Double sharp note raised by quarter tone (double sharp modified by arrow).</desc> </valItem> <valItem ident="xd"> <desc xml:lang="en">Double sharp note lowered by quarter tone (double sharp modified by arrow).</desc> </valItem> <valItem ident="ffu"> <desc xml:lang="en">Double flat note raised by quarter tone (double flat modified by arrow).</desc> </valItem> <valItem ident="ffd"> <desc xml:lang="en">Double flat note lowered by quarter tone (double flat modified by arrow).</desc> </valItem> <!-- 1qf, 3qf, 1qs, 3qs represent fixed symbols (Gould, p. 96) --> <valItem ident="1qf"> <desc xml:lang="en">1/4-tone flat accidental.</desc> </valItem> <valItem ident="3qf"> <desc xml:lang="en">3/4-tone flat accidental.</desc> </valItem> <valItem ident="1qs"> <desc xml:lang="en">1/4-tone sharp accidental.</desc> </valItem> <valItem ident="3qs"> <desc xml:lang="en">3/4-tone sharp accidental.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.ACCIDENTAL.aeu" module="MEI" type="dt"> <desc xml:lang="en">Arel-Ezgi-Uzdilek (AEU) accidental values (written and gestural/performed).</desc> <content> <valList type="closed"> <valItem ident="bms"> <desc xml:lang="en">Büyük mücenneb (sharp).</desc> </valItem> <valItem ident="kms"> <desc xml:lang="en">Küçük mücenneb (sharp).</desc> </valItem> <valItem ident="bs"> <desc xml:lang="en">Bakiye (sharp).</desc> </valItem> <valItem ident="ks"> <desc xml:lang="en">Koma (sharp).</desc> </valItem> <valItem ident="kf"> <desc xml:lang="en">Koma (flat).</desc> </valItem> <valItem ident="bf"> <desc xml:lang="en">Bakiye (flat).</desc> </valItem> <valItem ident="kmf"> <desc xml:lang="en">Küçük mücenneb (flat).</desc> </valItem> <valItem ident="bmf"> <desc xml:lang="en">Büyük mücenneb (flat).</desc> </valItem> </valList> </content> <remarks xml:lang="en"> <p> <graphic url="../images/ExampleImages/accidAEU-overview.png" height="50%" width="50%"/> </p> </remarks> </macroSpec> <macroSpec ident="data.ACCIDENTAL.persian" module="MEI" type="dt"> <desc xml:lang="en">Persian accidental values (written and gestural/performed).</desc> <content> <valList type="closed"> <valItem ident="koron"> <desc xml:lang="en">Koron (quarter tone flat).</desc> </valItem> <valItem ident="sori"> <desc xml:lang="en">Sori (quarter tone sharp).</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.ACCIDENTAL.GESTURAL" module="MEI" type="dt"> <desc xml:lang="en">Gestural/performed standard accidental values.</desc> <content> <alternate> <macroRef key="data.ACCIDENTAL.GESTURAL.basic"/> <macroRef key="data.ACCIDENTAL.GESTURAL.extended"/> <macroRef key="data.ACCIDENTAL.aeu"/> <macroRef key="data.ACCIDENTAL.persian"/> </alternate> </content> </macroSpec> <macroSpec ident="data.ACCIDENTAL.GESTURAL.basic" module="MEI" type="dt"> <desc xml:lang="en">Gestural/performed accidental values.</desc> <content> <valList type="closed"> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="ss"> <desc xml:lang="en">Double sharp.</desc> </valItem> <valItem ident="ff"> <desc xml:lang="en">Double flat.</desc> </valItem> <valItem ident="ts"> <desc xml:lang="en">Triple sharp.</desc> </valItem> <valItem ident="tf"> <desc xml:lang="en">Triple flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.ACCIDENTAL.GESTURAL.extended" module="MEI" type="dt"> <desc xml:lang="en">Gestural/performed quarter-tone accidental values.</desc> <content> <valList type="closed"> <valItem ident="su"> <desc xml:lang="en">Three quarter-tones sharp.</desc> </valItem> <valItem ident="sd"> <desc xml:lang="en">Quarter-tone sharp.</desc> </valItem> <valItem ident="fu"> <desc xml:lang="en">Quarter-tone flat.</desc> </valItem> <valItem ident="fd"> <desc xml:lang="en">Three quarter-tones flat.</desc> </valItem> <valItem ident="xu"> <desc xml:lang="en">Five quarter-tones sharp.</desc> </valItem> <valItem ident="ffd"> <desc xml:lang="en">Five quarter-tones flat.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.ARTICULATION" module="MEI" type="dt"> <desc xml:lang="en">The following list of articulations mostly corresponds to symbols from the Western Musical Symbols portion of the Unicode Standard. The dot and stroke values may be used in cases where interpretation is difficult or undesirable.</desc> <content> <valList type="closed"> <valItem ident="acc"> <desc xml:lang="en">Accent (Unicode 1D17B).</desc> </valItem> <valItem ident="acc-inv"> <desc xml:lang="en">Inverted accent.</desc> </valItem> <valItem ident="acc-long"> <desc xml:lang="en">Long accent, used to indicate an elongated accent mark. It is the responsibility of the encoder to distinguish between accents and hairpins.</desc> </valItem> <valItem ident="acc-soft"> <desc xml:lang="en">Soft accent, see SMuFL Articulation supplement (U+ED40–U+ED4F).</desc> </valItem> <valItem ident="stacc"> <desc xml:lang="en">Staccato (Unicode 1D17C).</desc> </valItem> <valItem ident="ten"> <desc xml:lang="en">Tenuto (Unicode 1D17D).</desc> </valItem> <valItem ident="stacciss"> <desc xml:lang="en">Staccatissimo (Unicode 1D17E).</desc> </valItem> <valItem ident="marc"> <desc xml:lang="en">Marcato (Unicode 1D17F).</desc> </valItem> <valItem ident="spicc"> <desc xml:lang="en">Spiccato.</desc> </valItem> <valItem ident="stress"> <desc xml:lang="en">Stress (Unicode 00B4).</desc> </valItem> <valItem ident="unstress"> <desc xml:lang="en">Unstress (Unicode 02D8).</desc> </valItem> <valItem ident="doit"> <desc xml:lang="en">Main note followed by short slide to higher, indeterminate pitch (Unicode 1D185).</desc> </valItem> <valItem ident="scoop"> <desc xml:lang="en">Main note preceded by short slide from lower, indeterminate pitch (Unicode 1D186).</desc> </valItem> <valItem ident="rip"> <desc xml:lang="en">Main note preceded by long slide from lower, often indeterminate pitch; also known as "squeeze".</desc> </valItem> <valItem ident="plop"> <desc xml:lang="en">Main note preceded by "slide" from higher, indeterminate pitch.</desc> </valItem> <valItem ident="fall"> <desc xml:lang="en">Main note followed by short "slide" to lower, indeterminate pitch.</desc> </valItem> <valItem ident="longfall"> <desc xml:lang="en">Main note followed by long "slide" to lower, indeterminate pitch.</desc> </valItem> <valItem ident="bend"> <desc xml:lang="en">"lip slur" to lower pitch, then return to written pitch.</desc> </valItem> <valItem ident="flip"> <desc xml:lang="en">Main note followed by quick upward rise, then descent in pitch (Unicode 1D187).</desc> </valItem> <valItem ident="smear"> <desc xml:lang="en">(Unicode 1D188).</desc> </valItem> <valItem ident="shake"> <desc xml:lang="en">Alternation between written pitch and next highest overtone (brass instruments) or note minor third higher (woodwinds).</desc> </valItem> <valItem ident="dnbow"> <desc xml:lang="en">Down bow (Unicode 1D1AA).</desc> </valItem> <valItem ident="upbow"> <desc xml:lang="en">Up bow (Unicode 1D1AB).</desc> </valItem> <valItem ident="harm"> <desc xml:lang="en">Harmonic (Unicode 1D1AC).</desc> </valItem> <valItem ident="snap"> <desc xml:lang="en">Snap pizzicato (Unicode 1D1AD).</desc> </valItem> <valItem ident="fingernail"> <desc xml:lang="en">Fingernail (Unicode 1D1B3).</desc> </valItem> <valItem ident="damp"> <desc xml:lang="en">Stop harp string from sounding (Unicode 1D1B4).</desc> </valItem> <valItem ident="dampall"> <desc xml:lang="en">Stop all harp strings from sounding (Unicode 1D1B5).</desc> </valItem> <valItem ident="open"> <desc xml:lang="en">Full (as opposed to stopped) tone.</desc> </valItem> <valItem ident="stop"> <desc xml:lang="en">"muffled" tone.</desc> </valItem> <valItem ident="dbltongue"> <desc xml:lang="en">Double tongue (Unicode 1D18A).</desc> </valItem> <valItem ident="trpltongue"> <desc xml:lang="en">Triple tongue (Unicode 1D18B).</desc> </valItem> <valItem ident="heel"> <desc xml:lang="en">Use heel (organ pedal).</desc> </valItem> <valItem ident="toe"> <desc xml:lang="en">Use toe (organ pedal).</desc> </valItem> <valItem ident="tap"> <desc xml:lang="en">Percussive effect on guitar string(s).</desc> </valItem> <valItem ident="lhpizz"> <desc xml:lang="en">Left-hand pizzicato.</desc> </valItem> <valItem ident="dot"> <desc xml:lang="en">Uninterpreted dot.</desc> </valItem> <valItem ident="stroke"> <desc xml:lang="en">Uninterpreted stroke.</desc> </valItem> </valList> </content> <constraintSpec ident="warn_deprecated" scheme="schematron"> <constraint> <sch:rule context="@artic"> <sch:assert role="warning" test="not(contains(., 'marc-stacc')) and not(contains(., 'ten-stacc'))">"<sch:value-of select="."/>" contains a deprecated value.</sch:assert> </sch:rule> <sch:rule context="@artic.ges"> <sch:assert role="warning" test="not(contains(., 'marc-stacc')) and not(contains(., 'ten-stacc'))">"<sch:value-of select="."/>" contains a deprecated value.</sch:assert> </sch:rule> </constraint> </constraintSpec> </macroSpec> <macroSpec ident="data.AUGMENTDOT" module="MEI" type="dt"> <desc xml:lang="en">Dots attribute values (number of augmentation dots) (Read, 113-119, ex. 8-21).</desc> <content> <rng:data type="nonNegativeInteger"> <rng:param name="maxInclusive">4</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.BARMETHOD" module="MEI" type="dt"> <desc xml:lang="en">Records where bar lines are drawn. The value 'staff' describes the traditional placement of bar lines.</desc> <content> <valList type="closed"> <valItem ident="mensur"> <desc xml:lang="en">Between staves only.</desc> </valItem> <valItem ident="staff"> <desc xml:lang="en">Between and across staves as necessary.</desc> </valItem> <valItem ident="takt"> <desc xml:lang="en">Short bar line through a subset of staff lines.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.BARRENDITION" module="MEI" type="dt"> <desc xml:lang="en">Renderings of bar lines. Some values correspond to the Western Musical Symbols portion of the Unicode Standard.</desc> <content> <valList type="closed"> <valItem ident="dashed"> <desc xml:lang="en">Dashed line (SMuFL E036 and Unicode 1D104).</desc> </valItem> <valItem ident="dotted"> <desc xml:lang="en">Dotted line (SMuFL E037).</desc> </valItem> <valItem ident="dbl"> <desc xml:lang="en">Double bar line (SMuFL E031 and Unicode 1D101).</desc> </valItem> <valItem ident="dbldashed"> <desc xml:lang="en">Double dashed line.</desc> </valItem> <valItem ident="dbldotted"> <desc xml:lang="en">Double dotted line.</desc> </valItem> <valItem ident="dblheavy"> <desc xml:lang="en">Heavy double bar line (SMuFL E035).</desc> </valItem> <valItem ident="dblsegno"> <desc xml:lang="en">Segno serpent with vertical lines (SMuFL E04B).</desc> </valItem> <valItem ident="end"> <desc xml:lang="en">End bar line (SMuFL E032 and Unicode 1D102).</desc> </valItem> <valItem ident="heavy"> <desc xml:lang="en">Heavy bar line (SMuFL E034).</desc> </valItem> <valItem ident="invis"> <desc xml:lang="en">Bar line not rendered.</desc> </valItem> <valItem ident="rptstart"> <desc xml:lang="en">Repeat start (SMuFL E040 and Unicode 1D106).</desc> </valItem> <valItem ident="rptboth"> <desc xml:lang="en">Repeat start and end (SMuFL E042).</desc> </valItem> <valItem ident="rptend"> <desc xml:lang="en">Repeat end (SMuFL E041 and Unicode 1D107).</desc> </valItem> <valItem ident="segno"> <desc xml:lang="en">Segno serpent.</desc> </valItem> <valItem ident="single"> <desc xml:lang="en">Single bar line (SMuFL E030 and Unicode 1D100).</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.BEAM" module="MEI" type="dt"> <desc xml:lang="en">Beam attribute values: initial, medial, terminal. Nested beaming is permitted.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[i|m|t][1-6]</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.BEAMPLACE" module="MEI" type="dt"> <desc xml:lang="en">Location of a beam relative to the events it affects.</desc> <content> <valList type="closed"> <valItem ident="above"> <desc xml:lang="en">The beam is above the events it affects.</desc> </valItem> <valItem ident="below"> <desc xml:lang="en">The beam is below the events it affects.</desc> </valItem> <valItem ident="mixed"> <desc xml:lang="en">The beam is above and below the events it affects.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.BEAT" module="MEI" type="dt"> <desc xml:lang="en">A beat location, <abbr>i.e.</abbr>, [0-9]+(\.?[0-9]*)? The value must fall between 0 and the numerator of the time signature + 1, where 0 represents the left bar line and the upper boundary represents the right bar line. For example, in 12/8 the value must be in the range from 0 to 13.</desc> <content> <rng:data type="decimal"> <rng:param name="minInclusive">0</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.BEATRPT.REND" module="MEI" type="dt"> <desc xml:lang="en">Visual and performance information for a repeated beat symbol.</desc> <content> <rng:choice> <rng:data type="positiveInteger"> <rng:param name="pattern">1|2|3|4|5</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">mixed</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.BEND.AMOUNT" module="MEI" type="dt"> <desc xml:lang="en">Either an integer value, a decimal value, or a token. Fractional values are limited to .25, .5, .75, while the token value is restricted to 'full'.</desc> <content> <rng:choice> <rng:data type="decimal"> <rng:param name="pattern">\.25|\.5|\.75</rng:param> </rng:data> <rng:data type="decimal"> <rng:param name="pattern">[0-9](\.25|\.5|\.75)?</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">full</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.BOOLEAN" module="MEI" type="dt"> <desc xml:lang="en">Boolean attribute values.</desc> <content> <valList type="closed"> <valItem ident="true"> <desc xml:lang="en">True.</desc> </valItem> <valItem ident="false"> <desc xml:lang="en">False.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.CANCELACCID" module="MEI" type="dt"> <desc xml:lang="en">Indicates where cancellation accidentals are shown in a key signature.</desc> <content> <valList type="closed"> <valItem ident="none"> <desc xml:lang="en">Do not show cancellation accidentals.</desc> </valItem> <valItem ident="before"> <desc xml:lang="en">Show cancellation accidentals before the new key accidentals.</desc> </valItem> <valItem ident="after"> <desc xml:lang="en">Show cancellation accidentals after the new key accidentals ("Old style" or "French")</desc> </valItem> <valItem ident="before-bar"> <desc xml:lang="en">Show cancellation accidentals before the barline (also known as "Russian").</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.CERTAINTY" module="MEI" type="dt"> <desc xml:lang="en">Values for certainty attribute. Certainty may be expressed by one of the predefined symbolic values <val>high</val>, <val>medium</val>, or <val>low</val>. The value <val>unknown</val> should be used in cases where the encoder does not wish to assert an opinion about the matter.</desc> <content> <valList type="closed"> <valItem ident="high"> <desc xml:lang="en">High certainty.</desc> </valItem> <valItem ident="medium"> <desc xml:lang="en">Medium certainty.</desc> </valItem> <valItem ident="low"> <desc xml:lang="en">Low certainty.</desc> </valItem> <valItem ident="unknown"> <desc xml:lang="en">An unknown level of certainty.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.CLEFLINE" module="MEI" type="dt"> <desc xml:lang="en">Clef line attribute values. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.</desc> <content> <rng:data type="positiveInteger"/> </content> </macroSpec> <macroSpec ident="data.CLEFSHAPE" module="MEI" type="dt"> <desc xml:lang="en">Clef shape attribute values (Read, p.53-56). Some values correspond to the Unicode Standard.</desc> <content> <valList type="closed"> <valItem ident="G"> <desc xml:lang="en">G clef (Unicode 1D11E).</desc> </valItem> <valItem ident="GG"> <desc xml:lang="en">Double G clef. Sounds one octave lower than G clef. (See remarks on usage below.)</desc> </valItem> <valItem ident="F"> <desc xml:lang="en">F clef (Unicode 1D122).</desc> </valItem> <valItem ident="C"> <desc xml:lang="en">C clef (Unicode 1D121).</desc> </valItem> <valItem ident="perc"> <desc xml:lang="en">Drum clef (Unicode 1D125 or Unicode 1D126).</desc> </valItem> <valItem ident="TAB"> <desc xml:lang="en">Tablature "clef"; <abbr>i.e.</abbr>, usually "TAB" rendered vertically.</desc> </valItem> </valList> </content> <remarks xml:lang="en"> <p>Double-G clefs sound one octave lower, so do not combine with <att>dis</att>/ <att>dis.place</att>/<att>clef.dis</att>/<att>clef.dis.place</att>. In some cases the double G clef may be used to indicate that two voices share one staff and does not sound one octave lower. In this case the <att>oct</att> attribute may be used to clarify the sounding octave of the instruments for the clef. </p> </remarks> </macroSpec> <macroSpec ident="data.CLUSTER" module="MEI" type="dt"> <desc xml:lang="en">Tone-cluster rendition.</desc> <content> <valList type="closed"> <valItem ident="white"> <desc xml:lang="en">White keys.</desc> </valItem> <valItem ident="black"> <desc xml:lang="en">Black keys.</desc> </valItem> <valItem ident="chromatic"> <desc xml:lang="en">Mixed black and white keys.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.CONFIDENCE" module="MEI" type="dt"> <desc xml:lang="en">Confidence is expressed as a real number between 0 and 1; 0 representing certainly false and 1 representing certainly true.</desc> <content> <rng:data type="decimal"> <rng:param name="minInclusive">0</rng:param> <rng:param name="maxInclusive">1</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.COLORNAMES" module="MEI" type="dt"> <desc xml:lang="en">List of named colors from CSS Color Module Level 4.</desc> <content> <valList type="closed"> <valItem ident="aliceblue"> <desc xml:lang="en">Hex: #f0f8ff / RGB: 240,248,255</desc> </valItem> <valItem ident="antiquewhite"> <desc xml:lang="en">Hex: #faebd7 / RGB: 250,235,215</desc> </valItem> <valItem ident="aqua"> <desc xml:lang="en">Hex: #00ffff / RGB: 0,255,255</desc> </valItem> <valItem ident="aquamarine"> <desc xml:lang="en">Hex: #7fffd4 / RGB: 127,255,212</desc> </valItem> <valItem ident="azure"> <desc xml:lang="en">Hex: #f0ffff / RGB: 240,255,255</desc> </valItem> <valItem ident="beige"> <desc xml:lang="en">Hex: #f5f5dc / RGB: 245,245,220</desc> </valItem> <valItem ident="bisque"> <desc xml:lang="en">Hex: #ffe4c4 / RGB: 255,228,196</desc> </valItem> <valItem ident="black"> <desc xml:lang="en">Hex: #000000 / RGB: 0,0,0</desc> </valItem> <valItem ident="blanchedalmond"> <desc xml:lang="en">Hex: #ffebcd / RGB: 255,235,205</desc> </valItem> <valItem ident="blue"> <desc xml:lang="en">Hex: #0000ff / RGB: 0,0,255</desc> </valItem> <valItem ident="blueviolet"> <desc xml:lang="en">Hex: #8a2be2 / RGB: 138,43,226</desc> </valItem> <valItem ident="brown"> <desc xml:lang="en">Hex: #a52a2a / RGB: 165,42,42</desc> </valItem> <valItem ident="burlywood"> <desc xml:lang="en">Hex: #deb887 / RGB: 222,184,135</desc> </valItem> <valItem ident="cadetblue"> <desc xml:lang="en">Hex: #5f9ea0 / RGB: 95,158,160</desc> </valItem> <valItem ident="chartreuse"> <desc xml:lang="en">Hex: #7fff00 / RGB: 127,255,0</desc> </valItem> <valItem ident="chocolate"> <desc xml:lang="en">Hex: #d2691e / RGB: 210,105,30</desc> </valItem> <valItem ident="coral"> <desc xml:lang="en">Hex: #ff7f50 / RGB: 255,127,80</desc> </valItem> <valItem ident="cornflowerblue"> <desc xml:lang="en">Hex: #6495ed / RGB: 100,149,237</desc> </valItem> <valItem ident="cornsilk"> <desc xml:lang="en">Hex: #fff8dc / RGB: 255,248,220</desc> </valItem> <valItem ident="crimson"> <desc xml:lang="en">Hex: #dc143c / RGB: 220,20,60</desc> </valItem> <valItem ident="cyan"> <desc xml:lang="en">Hex: #00ffff / RGB: 0,255,255</desc> </valItem> <valItem ident="darkblue"> <desc xml:lang="en">Hex: #00008b / RGB: 0,0,139</desc> </valItem> <valItem ident="darkcyan"> <desc xml:lang="en">Hex: #008b8b / RGB: 0,139,139</desc> </valItem> <valItem ident="darkgoldenrod"> <desc xml:lang="en">Hex: #b8860b / RGB: 184,134,11</desc> </valItem> <valItem ident="darkgray"> <desc xml:lang="en">Hex: #a9a9a9 / RGB: 169,169,169</desc> </valItem> <valItem ident="darkgreen"> <desc xml:lang="en">Hex: #006400 / RGB: 0,100,0</desc> </valItem> <valItem ident="darkgrey"> <desc xml:lang="en">Hex: #a9a9a9 / RGB: 169,169,169</desc> </valItem> <valItem ident="darkkhaki"> <desc xml:lang="en">Hex: #bdb76b / RGB: 189,183,107</desc> </valItem> <valItem ident="darkmagenta"> <desc xml:lang="en">Hex: #8b008b / RGB: 139,0,139</desc> </valItem> <valItem ident="darkolivegreen"> <desc xml:lang="en">Hex: #556b2f / RGB: 85,107,47</desc> </valItem> <valItem ident="darkorange"> <desc xml:lang="en">Hex: #ff8c00 / RGB: 255,140,0</desc> </valItem> <valItem ident="darkorchid"> <desc xml:lang="en">Hex: #9932cc / RGB: 153,50,204</desc> </valItem> <valItem ident="darkred"> <desc xml:lang="en">Hex: #8b0000 / RGB: 139,0,0</desc> </valItem> <valItem ident="darksalmon"> <desc xml:lang="en">Hex: #e9967a / RGB: 233,150,122</desc> </valItem> <valItem ident="darkseagreen"> <desc xml:lang="en">Hex: #8fbc8f / RGB: 143,188,143</desc> </valItem> <valItem ident="darkslateblue"> <desc xml:lang="en">Hex: #483d8b / RGB: 72,61,139</desc> </valItem> <valItem ident="darkslategray"> <desc xml:lang="en">Hex: #2f4f4f / RGB: 47,79,79</desc> </valItem> <valItem ident="darkslategrey"> <desc xml:lang="en">Hex: #2f4f4f / RGB: 47,79,79</desc> </valItem> <valItem ident="darkturquoise"> <desc xml:lang="en">Hex: #00ced1 / RGB: 0,206,209</desc> </valItem> <valItem ident="darkviolet"> <desc xml:lang="en">Hex: #9400d3 / RGB: 148,0,211</desc> </valItem> <valItem ident="deeppink"> <desc xml:lang="en">Hex: #ff1493 / RGB: 255,20,147</desc> </valItem> <valItem ident="deepskyblue"> <desc xml:lang="en">Hex: #00bfff / RGB: 0,191,255</desc> </valItem> <valItem ident="dimgray"> <desc xml:lang="en">Hex: #696969 / RGB: 105,105,105</desc> </valItem> <valItem ident="dimgrey"> <desc xml:lang="en">Hex: #696969 / RGB: 105,105,105</desc> </valItem> <valItem ident="dodgerblue"> <desc xml:lang="en">Hex: #1e90ff / RGB: 30,144,255</desc> </valItem> <valItem ident="firebrick"> <desc xml:lang="en">Hex: #b22222 / RGB: 178,34,34</desc> </valItem> <valItem ident="floralwhite"> <desc xml:lang="en">Hex: #fffaf0 / RGB: 255,250,240</desc> </valItem> <valItem ident="forestgreen"> <desc xml:lang="en">Hex: #228b22 / RGB: 34,139,34</desc> </valItem> <valItem ident="fuchsia"> <desc xml:lang="en">Hex: #ff00ff / RGB: 255,0,255</desc> </valItem> <valItem ident="gainsboro"> <desc xml:lang="en">Hex: #dcdcdc / RGB: 220,220,220</desc> </valItem> <valItem ident="ghostwhite"> <desc xml:lang="en">Hex: #f8f8ff / RGB: 248,248,255</desc> </valItem> <valItem ident="gold"> <desc xml:lang="en">Hex: #ffd700 / RGB: 255,215,0</desc> </valItem> <valItem ident="goldenrod"> <desc xml:lang="en">Hex: #daa520 / RGB: 218,165,32</desc> </valItem> <valItem ident="gray"> <desc xml:lang="en">Hex: #808080 / RGB: 128,128,128</desc> </valItem> <valItem ident="green"> <desc xml:lang="en">Hex: #008000 / RGB: 0,128,0</desc> </valItem> <valItem ident="greenyellow"> <desc xml:lang="en">Hex: #adff2f / RGB: 173,255,47</desc> </valItem> <valItem ident="grey"> <desc xml:lang="en">Hex: #808080 / RGB: 128,128,128</desc> </valItem> <valItem ident="honeydew"> <desc xml:lang="en">Hex: #f0fff0 / RGB: 240,255,240</desc> </valItem> <valItem ident="hotpink"> <desc xml:lang="en">Hex: #ff69b4 / RGB: 255,105,180</desc> </valItem> <valItem ident="indianred"> <desc xml:lang="en">Hex: #cd5c5c / RGB: 205,92,92</desc> </valItem> <valItem ident="indigo"> <desc xml:lang="en">Hex: #4b0082 / RGB: 75,0,130</desc> </valItem> <valItem ident="ivory"> <desc xml:lang="en">Hex: #fffff0 / RGB: 255,255,240</desc> </valItem> <valItem ident="khaki"> <desc xml:lang="en">Hex: #f0e68c / RGB: 240,230,140</desc> </valItem> <valItem ident="lavender"> <desc xml:lang="en">Hex: #e6e6fa / RGB: 230,230,250</desc> </valItem> <valItem ident="lavenderblush"> <desc xml:lang="en">Hex: #fff0f5 / RGB: 255,240,245</desc> </valItem> <valItem ident="lawngreen"> <desc xml:lang="en">Hex: #7cfc00 / RGB: 124,252,0</desc> </valItem> <valItem ident="lemonchiffon"> <desc xml:lang="en">Hex: #fffacd / RGB: 255,250,205</desc> </valItem> <valItem ident="lightblue"> <desc xml:lang="en">Hex: #add8e6 / RGB: 173,216,230</desc> </valItem> <valItem ident="lightcoral"> <desc xml:lang="en">Hex: #f08080 / RGB: 240,128,128</desc> </valItem> <valItem ident="lightcyan"> <desc xml:lang="en">Hex: #e0ffff / RGB: 224,255,255</desc> </valItem> <valItem ident="lightgoldenrodyellow"> <desc xml:lang="en">Hex: #fafad2 / RGB: 250,250,210</desc> </valItem> <valItem ident="lightgray"> <desc xml:lang="en">Hex: #d3d3d3 / RGB: 211,211,211</desc> </valItem> <valItem ident="lightgreen"> <desc xml:lang="en">Hex: #90ee90 / RGB: 144,238,144</desc> </valItem> <valItem ident="lightgrey"> <desc xml:lang="en">Hex: #d3d3d3 / RGB: 211,211,211</desc> </valItem> <valItem ident="lightpink"> <desc xml:lang="en">Hex: #ffb6c1 / RGB: 255,182,193</desc> </valItem> <valItem ident="lightsalmon"> <desc xml:lang="en">Hex: #ffa07a / RGB: 255,160,122</desc> </valItem> <valItem ident="lightseagreen"> <desc xml:lang="en">Hex: #20b2aa / RGB: 32,178,170</desc> </valItem> <valItem ident="lightskyblue"> <desc xml:lang="en">Hex: #87cefa / RGB: 135,206,250</desc> </valItem> <valItem ident="lightslategray"> <desc xml:lang="en">Hex: #778899 / RGB: 119,136,153</desc> </valItem> <valItem ident="lightslategrey"> <desc xml:lang="en">Hex: #778899 / RGB: 119,136,153</desc> </valItem> <valItem ident="lightsteelblue"> <desc xml:lang="en">Hex: #b0c4de / RGB: 176,196,222</desc> </valItem> <valItem ident="lightyellow"> <desc xml:lang="en">Hex: #ffffe0 / RGB: 255,255,224</desc> </valItem> <valItem ident="lime"> <desc xml:lang="en">Hex: #00ff00 / RGB: 0,255,0</desc> </valItem> <valItem ident="limegreen"> <desc xml:lang="en">Hex: #32cd32 / RGB: 50,205,50</desc> </valItem> <valItem ident="linen"> <desc xml:lang="en">Hex: #faf0e6 / RGB: 250,240,230</desc> </valItem> <valItem ident="magenta"> <desc xml:lang="en">Hex: #ff00ff / RGB: 255,0,255</desc> </valItem> <valItem ident="maroon"> <desc xml:lang="en">Hex: #800000 / RGB: 128,0,0</desc> </valItem> <valItem ident="mediumaquamarine"> <desc xml:lang="en">Hex: #66cdaa / RGB: 102,205,170</desc> </valItem> <valItem ident="mediumblue"> <desc xml:lang="en">Hex: #0000cd / RGB: 0,0,205</desc> </valItem> <valItem ident="mediumorchid"> <desc xml:lang="en">Hex: #ba55d3 / RGB: 186,85,211</desc> </valItem> <valItem ident="mediumpurple"> <desc xml:lang="en">Hex: #9370db / RGB: 147,112,219</desc> </valItem> <valItem ident="mediumseagreen"> <desc xml:lang="en">Hex: #3cb371 / RGB: 60,179,113</desc> </valItem> <valItem ident="mediumslateblue"> <desc xml:lang="en">Hex: #7b68ee / RGB: 123,104,238</desc> </valItem> <valItem ident="mediumspringgreen"> <desc xml:lang="en">Hex: #00fa9a / RGB: 0,250,154</desc> </valItem> <valItem ident="mediumturquoise"> <desc xml:lang="en">Hex: #48d1cc / RGB: 72,209,204</desc> </valItem> <valItem ident="mediumvioletred"> <desc xml:lang="en">Hex: #c71585 / RGB: 199,21,133</desc> </valItem> <valItem ident="midnightblue"> <desc xml:lang="en">Hex: #191970 / RGB: 25,25,112</desc> </valItem> <valItem ident="mintcream"> <desc xml:lang="en">Hex: #f5fffa / RGB: 245,255,250</desc> </valItem> <valItem ident="mistyrose"> <desc xml:lang="en">Hex: #ffe4e1 / RGB: 255,228,225</desc> </valItem> <valItem ident="moccasin"> <desc xml:lang="en">Hex: #ffe4b5 / RGB: 255,228,181</desc> </valItem> <valItem ident="navajowhite"> <desc xml:lang="en">Hex: #ffdead / RGB: 255,222,173</desc> </valItem> <valItem ident="navy"> <desc xml:lang="en">Hex: #000080 / RGB: 0,0,128</desc> </valItem> <valItem ident="oldlace"> <desc xml:lang="en">Hex: #fdf5e6 / RGB: 253,245,230</desc> </valItem> <valItem ident="olive"> <desc xml:lang="en">Hex: #808000 / RGB: 128,128,0</desc> </valItem> <valItem ident="olivedrab"> <desc xml:lang="en">Hex: #6b8e23 / RGB: 107,142,35</desc> </valItem> <valItem ident="orange"> <desc xml:lang="en">Hex: #ffa500 / RGB: 255,165,0</desc> </valItem> <valItem ident="orangered"> <desc xml:lang="en">Hex: #ff4500 / RGB: 255,69,0</desc> </valItem> <valItem ident="orchid"> <desc xml:lang="en">Hex: #da70d6 / RGB: 218,112,214</desc> </valItem> <valItem ident="palegoldenrod"> <desc xml:lang="en">Hex: #eee8aa / RGB: 238,232,170</desc> </valItem> <valItem ident="palegreen"> <desc xml:lang="en">Hex: #98fb98 / RGB: 152,251,152</desc> </valItem> <valItem ident="paleturquoise"> <desc xml:lang="en">Hex: #afeeee / RGB: 175,238,238</desc> </valItem> <valItem ident="palevioletred"> <desc xml:lang="en">Hex: #db7093 / RGB: 219,112,147</desc> </valItem> <valItem ident="papayawhip"> <desc xml:lang="en">Hex: #ffefd5 / RGB: 255,239,213</desc> </valItem> <valItem ident="peachpuff"> <desc xml:lang="en">Hex: #ffdab9 / RGB: 255,218,185</desc> </valItem> <valItem ident="peru"> <desc xml:lang="en">Hex: #cd853f / RGB: 205,133,63</desc> </valItem> <valItem ident="pink"> <desc xml:lang="en">Hex: #ffc0cb / RGB: 255,192,203</desc> </valItem> <valItem ident="plum"> <desc xml:lang="en">Hex: #dda0dd / RGB: 221,160,221</desc> </valItem> <valItem ident="powderblue"> <desc xml:lang="en">Hex: #b0e0e6 / RGB: 176,224,230</desc> </valItem> <valItem ident="purple"> <desc xml:lang="en">Hex: #800080 / RGB: 128,0,128</desc> </valItem> <valItem ident="rebeccapurple"> <desc xml:lang="en">Hex: #663399 / RGB: 102,51,153</desc> </valItem> <valItem ident="red"> <desc xml:lang="en">Hex: #ff0000 / RGB: 255,0,0</desc> </valItem> <valItem ident="rosybrown"> <desc xml:lang="en">Hex: #bc8f8f / RGB: 188,143,143</desc> </valItem> <valItem ident="royalblue"> <desc xml:lang="en">Hex: #4169e1 / RGB: 65,105,225</desc> </valItem> <valItem ident="saddlebrown"> <desc xml:lang="en">Hex: #8b4513 / RGB: 139,69,19</desc> </valItem> <valItem ident="salmon"> <desc xml:lang="en">Hex: #fa8072 / RGB: 250,128,114</desc> </valItem> <valItem ident="sandybrown"> <desc xml:lang="en">Hex: #f4a460 / RGB: 244,164,96</desc> </valItem> <valItem ident="seagreen"> <desc xml:lang="en">Hex: #2e8b57 / RGB: 46,139,87</desc> </valItem> <valItem ident="seashell"> <desc xml:lang="en">Hex: #fff5ee / RGB: 255,245,238</desc> </valItem> <valItem ident="sienna"> <desc xml:lang="en">Hex: #a0522d / RGB: 160,82,45</desc> </valItem> <valItem ident="silver"> <desc xml:lang="en">Hex: #c0c0c0 / RGB: 192,192,192</desc> </valItem> <valItem ident="skyblue"> <desc xml:lang="en">Hex: #87ceeb / RGB: 135,206,235</desc> </valItem> <valItem ident="slateblue"> <desc xml:lang="en">Hex: #6a5acd / RGB: 106,90,205</desc> </valItem> <valItem ident="slategray"> <desc xml:lang="en">Hex: #708090 / RGB: 112,128,144</desc> </valItem> <valItem ident="slategrey"> <desc xml:lang="en">Hex: #708090 / RGB: 112,128,144</desc> </valItem> <valItem ident="snow"> <desc xml:lang="en">Hex: #fffafa / RGB: 255,250,250</desc> </valItem> <valItem ident="springgreen"> <desc xml:lang="en">Hex: #00ff7f / RGB: 0,255,127</desc> </valItem> <valItem ident="steelblue"> <desc xml:lang="en">Hex: #4682b4 / RGB: 70,130,180</desc> </valItem> <valItem ident="tan"> <desc xml:lang="en">Hex: #d2b48c / RGB: 210,180,140</desc> </valItem> <valItem ident="teal"> <desc xml:lang="en">Hex: #008080 / RGB: 0,128,128</desc> </valItem> <valItem ident="thistle"> <desc xml:lang="en">Hex: #d8bfd8 / RGB: 216,191,216</desc> </valItem> <valItem ident="tomato"> <desc xml:lang="en">Hex: #ff6347 / RGB: 255,99,71</desc> </valItem> <valItem ident="turquoise"> <desc xml:lang="en">Hex: #40e0d0 / RGB: 64,224,208</desc> </valItem> <valItem ident="violet"> <desc xml:lang="en">Hex: #ee82ee / RGB: 238,130,238</desc> </valItem> <valItem ident="wheat"> <desc xml:lang="en">Hex: #f5deb3 / RGB: 245,222,179</desc> </valItem> <valItem ident="white"> <desc xml:lang="en">Hex: #ffffff / RGB: 255,255,255</desc> </valItem> <valItem ident="whitesmoke"> <desc xml:lang="en">Hex: #f5f5f5 / RGB: 245,245,245</desc> </valItem> <valItem ident="yellow"> <desc xml:lang="en">Hex: #ffff00 / RGB: 255,255,0</desc> </valItem> <valItem ident="yellowgreen"> <desc xml:lang="en">Hex: #9acd32 / RGB: 154,205,50</desc> </valItem> </valList> </content> <remarks xml:lang="en"> <p>Color names are taken from the list at <ref target="https://www.w3.org/TR/css-color-4/">https://www.w3.org/TR/css-color-4/</ref>. </p> <p>All of these keywords are case-insensitive.</p> </remarks> </macroSpec> <macroSpec ident="data.COLORVALUES" module="MEI" type="dt"> <desc xml:lang="en">Parameterized color values</desc> <content> <rng:choice> <!-- hex values --> <rng:data type="token"> <rng:param name="pattern">#[0-9A-Fa-f]{6,6}</rng:param> </rng:data> <!-- #RRGGBBAA values --> <rng:data type="token"> <rng:param name="pattern">#[0-9A-Fa-f]{8,8}</rng:param> </rng:data> <!-- RGB values --> <rng:data type="token"> <rng:param name="pattern">rgb\((\s*(([01]?[0-9]?[0-9])|2[0-4][0-9]|25[0-5])\s*,\s*){2}([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\s*\)</rng:param> </rng:data> <!-- RGBA values --> <rng:data type="token"> <rng:param name="pattern">rgba\(\s*(([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])\s*,\s*){3}(0(\.\d+)?|1(\.0+)?)\s*\)|rgba\(\s*(((\d{1,2})?%|100%)\s*,\s*){2}(\d{1,2}%|100%)\s*,\s*(0(\.\d+)?|1(\.0+)?)\s*\)</rng:param> </rng:data> <!-- HSL values --> <rng:data type="token"> <rng:param name="pattern">hsl\(\s*((\d{1,2})|[12]\d{2}|3[0-5]\d|360)\s*,\s*(\d{1,2}%|100%)\s*,\s*(\d{1,2}%|100%)\s*\)</rng:param> </rng:data> <!-- HSLA values --> <rng:data type="token"> <rng:param name="pattern">hsla\(\s*(\d{1,2}|[12]\d{2}|3[0-5]\d|360)\s*,\s*(\d{1,2}%|100%)\s*,\s*(\d{1,2}%|100%)\s*,\s*(0(\.\d+)?|1(\.0+)?)\s*\)</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.COLOR" module="MEI" type="dt"> <desc xml:lang="en">A value in one of the following forms is expected: 1) hexadecimal RRGGBB, 2) hexadecimal RRGGBBAA, 3) CSS RGB, 4) CSS RGBA, 5) HSL, 6) HSLA, or 7) CSS color name.</desc> <content> <rng:choice> <rng:ref name="data.COLORNAMES"/> <rng:ref name="data.COLORVALUES"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.COMPASSDIRECTION" module="MEI" type="dt"> <desc xml:lang="en">Description of direction with respect to an imaginary compass.</desc> <content> <alternate> <macroRef key="data.COMPASSDIRECTION.basic"/> <macroRef key="data.COMPASSDIRECTION.extended"/> </alternate> </content> </macroSpec> <macroSpec ident="data.COMPASSDIRECTION.basic" module="MEI" type="dt"> <desc xml:lang="en">Basic compass directions.</desc> <content> <valList type="closed"> <valItem ident="n"> <desc xml:lang="en">In a northern direction.</desc> </valItem> <valItem ident="e"> <desc xml:lang="en">In an eastern direction.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">In a southern direction.</desc> </valItem> <valItem ident="w"> <desc xml:lang="en">In a western direction.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.COMPASSDIRECTION.extended" module="MEI" type="dt"> <desc xml:lang="en">Additional compass directions.</desc> <content> <valList type="closed"> <valItem ident="ne"> <desc xml:lang="en">In a north-eastern direction.</desc> </valItem> <valItem ident="nw"> <desc xml:lang="en">In a north-western direction.</desc> </valItem> <valItem ident="se"> <desc xml:lang="en">In a south-eastern direction.</desc> </valItem> <valItem ident="sw"> <desc xml:lang="en">In a south-western direction.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.DEGREES" module="MEI" type="dt"> <desc xml:lang="en">360th-unit measure of a circle’s circumference; optionally signed decimal number between -360 and 360.</desc> <content> <rng:data type="decimal"> <rng:param name="maxInclusive">360.0</rng:param> <rng:param name="minInclusive">-360.0</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.DIVISIO" module="MEI" type="dt"> <desc xml:lang="en">Divisio values.</desc> <content> <valList type="closed"> <valItem ident="ternaria"> <desc xml:lang="en">Divisio ternaria. Three semibreves in a breve.</desc> </valItem> <valItem ident="quaternaria"> <desc xml:lang="en">Divisio quaternaria. Foursemibreves in a breve.</desc> </valItem> <valItem ident="senariaimperf"> <desc xml:lang="en">Divisio senaria imperfecta. Six semibreves in a breve (breve is divided into two, then into three). Aka senaria gallica.</desc> </valItem> <valItem ident="senariaperf"> <desc xml:lang="en">Divisio senaria perfecta. Six semibreves in a breve (breve is divided into three, then into two). Aka senaria italica.</desc> </valItem> <valItem ident="octonaria"> <desc xml:lang="en">Divisio octonaria. Eight semibreves in a breve.</desc> </valItem> <valItem ident="novenaria"> <desc xml:lang="en">Divisio novenaria. Nine semibreves in a breve.</desc> </valItem> <valItem ident="duodenaria"> <desc xml:lang="en">Divisio duodenaria. Twelve semibreves in a breve.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.DURATION" module="MEI" type="dt"> <desc xml:lang="en">Logical, that is, written, duration attribute values.</desc> <content> <rng:choice> <rng:ref name="data.DURATION.cmn"/> <rng:ref name="data.DURATION.mensural"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.DURATIONRESTS" module="MEI" type="dt"> <desc xml:lang="en">Logical, that is, written, duration attribute values for rests.</desc> <content> <rng:choice> <rng:ref name="data.DURATION.cmn"/> <rng:ref name="data.DURATIONRESTS.mensural"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.DURATION.GESTURAL" module="MEI" type="dt"> <desc xml:lang="en">Performed duration attribute values.</desc> <content> <rng:choice> <rng:ref name="data.DURATION.cmn"/> <rng:ref name="data.DURATION.mensural"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.ENCLOSURE" module="MEI" type="dt"> <desc xml:lang="en">Enclosures for editorial notes, accidentals, articulations, etc.</desc> <content> <valList type="closed"> <valItem ident="paren"> <desc xml:lang="en">Parentheses: ( and ).</desc> </valItem> <valItem ident="brack"> <desc xml:lang="en">Square brackets: [ and ].</desc> </valItem> <valItem ident="box"> <desc xml:lang="en">Box.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">None.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.EVENTREL" module="MEI" type="dt"> <desc xml:lang="en">Location of musical material relative to a symbol on a staff instead of the staff.</desc> <content> <alternate> <macroRef key="data.EVENTREL.basic"/> <macroRef key="data.EVENTREL.extended"/> </alternate> </content> </macroSpec> <macroSpec ident="data.EVENTREL.basic" module="MEI" type="dt"> <desc xml:lang="en">Location of musical material relative to a symbol other than a staff.</desc> <content> <valList type="closed"> <valItem ident="above"> <desc xml:lang="en">Above.</desc> </valItem> <valItem ident="below"> <desc xml:lang="en">Below.</desc> </valItem> <valItem ident="left"> <desc xml:lang="en">Left.</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Right.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.EVENTREL.extended" module="MEI" type="dt"> <desc xml:lang="en">Location of musical material relative to a symbol other than a staff.</desc> <content> <valList type="closed"> <valItem ident="above-left"> <desc xml:lang="en">Above and left; north-west.</desc> </valItem> <valItem ident="above-right"> <desc xml:lang="en">Above and right; north-east.</desc> </valItem> <valItem ident="below-left"> <desc xml:lang="en">Below and left; south-west.</desc> </valItem> <valItem ident="below-right"> <desc xml:lang="en">Below and right; south-east.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.FILL" module="MEI" type="dt"> <desc xml:lang="en">Describes how a graphical object, such as a note head, should be filled. The relative values — top, bottom, left, and right — indicate these locations *after* rotation is applied.</desc> <content> <valList type="closed"> <valItem ident="void"> <desc xml:lang="en">Unfilled</desc> </valItem> <valItem ident="solid"> <desc xml:lang="en">Filled</desc> </valItem> <valItem ident="top"> <desc xml:lang="en">Top half filled</desc> </valItem> <valItem ident="bottom"> <desc xml:lang="en">Bottom half filled</desc> </valItem> <valItem ident="left"> <desc xml:lang="en">Left half filled</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Right half filled</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.FINGER.FRET" module="MEI" type="dt"> <desc xml:lang="en">In a guitar chord diagram, a label indicating which finger, if any, should be used to play an individual string. The index, middle, ring, and little fingers are represented by the values 1-4, while 't' is for the thumb. The values 'x' and 'o' indicate stopped and open strings, respectively.</desc> <content> <rng:choice> <rng:data type="positiveInteger"> <rng:param name="minInclusive">1</rng:param> <rng:param name="maxInclusive">4</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">x|o|t</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.FONTFAMILY" module="MEI" type="dt"> <desc xml:lang="en">Font family (for text) attribute values.</desc> <content> <rng:data type="token"/> </content> </macroSpec> <macroSpec ident="data.FONTNAME" module="MEI" type="dt"> <desc xml:lang="en">Font name (for text) attribute values.</desc> <content> <rng:data type="token"/> </content> </macroSpec> <macroSpec ident="data.FONTSIZE" module="MEI" type="dt"> <desc xml:lang="en">Font size expressions.</desc> <content> <rng:choice> <rng:ref name="data.FONTSIZENUMERIC"/> <rng:ref name="data.FONTSIZETERM"/> <rng:ref name="data.PERCENT"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.FONTSIZENUMERIC" module="MEI" type="dt"> <desc xml:lang="en">Font size expressed as numbers; <abbr>i.e.</abbr>, points or virtual units.</desc> <content> <rng:data type="token"> <rng:param name="pattern">\d*(\.\d+)?(pt|vu)</rng:param> <rng:except> <!-- disallow no-value or all-zero patterns --> <rng:choice> <rng:data type="token"> <rng:param name="pattern">(pt|vu)</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">0+(pt|vu)</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">0+(\.0+)?(pt|vu)</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">\.0+(pt|vu)</rng:param> </rng:data> </rng:choice> </rng:except> </rng:data> </content> </macroSpec> <macroSpec ident="data.FONTSIZESCALE" module="MEI" type="dt"> <desc xml:lang="en">Relative size of symbol that may begin/end a line.</desc> <content> <rng:data type="integer"> <rng:param name="minInclusive">1</rng:param> <rng:param name="maxInclusive">9</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.FONTSIZETERM" module="MEI" type="dt"> <desc xml:lang="en">Font size expressed as relative term.</desc> <content> <valList type="closed"> <valItem ident="xx-small"> <desc xml:lang="en">Smaller than x-small.</desc> </valItem> <valItem ident="x-small"> <desc xml:lang="en">Smaller than small, larger than xx-small.</desc> </valItem> <valItem ident="small"> <desc xml:lang="en">Smaller than normal, larger than x-small.</desc> </valItem> <valItem ident="normal"> <desc xml:lang="en">Smaller than large, larger than small.</desc> </valItem> <valItem ident="large"> <desc xml:lang="en">Smaller than x-large, larger than normal.</desc> </valItem> <valItem ident="x-large"> <desc xml:lang="en">Smaller than xx-large, larger than large.</desc> </valItem> <valItem ident="xx-large"> <desc xml:lang="en">Larger than x-large.</desc> </valItem> <valItem ident="smaller"> <desc xml:lang="en">One size smaller than the current size.</desc> </valItem> <valItem ident="larger"> <desc xml:lang="en">One size larger than the current size.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.FONTSTYLE" module="MEI" type="dt"> <desc xml:lang="en">Font style (for text) attribute values.</desc> <content> <valList type="closed"> <valItem ident="italic"> <desc xml:lang="en">Text slants to right.</desc> </valItem> <valItem ident="normal"> <desc xml:lang="en">Unadorned.</desc> </valItem> <valItem ident="oblique"> <desc xml:lang="en">Text slants to the left.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.FONTWEIGHT" module="MEI" type="dt"> <desc xml:lang="en">Font weight (for text) attribute values.</desc> <content> <valList type="closed"> <valItem ident="bold"> <desc xml:lang="en">Bold or heavy.</desc> </valItem> <valItem ident="normal"> <desc xml:lang="en">Not bold.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.FRETNUMBER" module="MEI" type="dt"> <desc xml:lang="en">In string tablature, the fret number. The value <val>0</val> (zero) indicates the open string.</desc> <content> <rng:data type="nonNegativeInteger"/> </content> </macroSpec> <!--<macroSpec ident="data.FRETNUMBER.limited" module="MEI" type="dt"> <desc xml:lang="en">In a guitar chord diagram, the fret where the finger should be placed. Since guitar chord diagrams are limited to the range of frets that fall under the hand, the values here are a subset of those available in data.FRETNUMBER. The pos (position) attribute on the chordDef element must be used to indicate at which fret this range begins.</desc> <content> <rng:data type="nonNegativeInteger"> <rng:param name="minInclusive">0</rng:param> <rng:param name="maxInclusive">5</rng:param> </rng:data> </content> </macroSpec>--> <macroSpec ident="data.GLISSANDO" module="MEI" type="dt"> <desc xml:lang="en">Analytical glissando attribute values.</desc> <content> <valList type="closed"> <valItem ident="i"> <desc xml:lang="en">First note/chord in glissando.</desc> </valItem> <valItem ident="m"> <desc xml:lang="en">Note/chord that’s neither first nor last in glissando.</desc> </valItem> <valItem ident="t"> <desc xml:lang="en">Last note in glissando.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.GRACE" module="MEI" type="dt"> <desc xml:lang="en">Do grace notes get time from the current (acc) or previous (unacc) one?</desc> <content> <valList type="closed"> <valItem ident="acc"> <desc xml:lang="en">Time "stolen" from following note.</desc> </valItem> <valItem ident="unacc"> <desc xml:lang="en">Time "stolen" from previous note.</desc> </valItem> <valItem ident="unknown"> <desc xml:lang="en">No interpretation regarding performed value of grace note.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.HEADSHAPE" module="MEI" type="dt"> <desc xml:lang="en">Note head shapes.</desc> <content> <rng:choice> <rng:ref name="data.HEADSHAPE.list"/> <rng:ref name="data.HEXNUM"/> <rng:ref name="data.NMTOKEN"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.HEADSHAPE.list" module="MEI" type="dt"> <desc xml:lang="en">Enumerated note head shapes.</desc> <content> <valList type="closed"> <valItem ident="quarter"> <desc xml:lang="en">Filled, rotated oval (Unicode 1D158).</desc> </valItem> <valItem ident="half"> <desc xml:lang="en">Unfilled, rotated oval (Unicode 1D157).</desc> </valItem> <valItem ident="whole"> <desc xml:lang="en">Unfilled, rotated oval (Unicode 1D15D).</desc> </valItem> <valItem ident="backslash"> <desc xml:lang="en">Unfilled backslash (~ reflection of Unicode 1D10D).</desc> </valItem> <valItem ident="circle"> <desc xml:lang="en">Unfilled circle (Unicode 25CB).</desc> </valItem> <valItem ident="+"> <desc xml:lang="en">Plus sign (Unicode 1D144).</desc> </valItem> <valItem ident="diamond"> <desc xml:lang="en">Unfilled diamond (Unicode 1D1B9).</desc> </valItem> <valItem ident="isotriangle"> <desc xml:lang="en">Unfilled isosceles triangle (Unicode 1D148).</desc> </valItem> <valItem ident="oval"> <desc xml:lang="en">Unfilled, unrotated oval (Unicode 2B2D).</desc> </valItem> <valItem ident="piewedge"> <desc xml:lang="en">Unfilled downward-pointing wedge (Unicode 1D154).</desc> </valItem> <valItem ident="rectangle"> <desc xml:lang="en">Unfilled rectangle (Unicode 25AD).</desc> </valItem> <valItem ident="rtriangle"> <desc xml:lang="en">Unfilled right triangle (Unicode 1D14A).</desc> </valItem> <valItem ident="semicircle"> <desc xml:lang="en">Unfilled semi-circle (Unicode 1D152).</desc> </valItem> <valItem ident="slash"> <desc xml:lang="en">Unfilled slash (~ Unicode 1D10D).</desc> </valItem> <valItem ident="square"> <desc xml:lang="en">Unfilled square (Unicode 1D146).</desc> </valItem> <valItem ident="x"> <desc xml:lang="en">X (Unicode 1D143).</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.HEXNUM" module="MEI" type="dt"> <desc xml:lang="en">Hexadecimal number.</desc> <content> <rng:data type="string"> <rng:param name="pattern">(#x|U\+)[A-F0-9]+</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.HORIZONTALALIGNMENT" module="MEI" type="dt"> <desc xml:lang="en">Data values for attributes that capture horizontal alignment.</desc> <content> <valList type="closed"> <valItem ident="left"> <desc xml:lang="en">Left aligned.</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Right aligned.</desc> </valItem> <valItem ident="center"> <desc xml:lang="en">Centered.</desc> </valItem> <valItem ident="justify"> <desc xml:lang="en">Left and right aligned.</desc> </valItem> </valList> </content> </macroSpec> <!--<macroSpec ident="data.INEUMEFORM" module="MEI" type="dt"> <desc xml:lang="en">Interrupted neume forms.</desc> <content> <valList type="closed"> <valItem ident="liquescent1"/> <valItem ident="liquescent2"/> <valItem ident="tied"/> <valItem ident="tiedliquescent1"/> <valItem ident="tiedliquescent2"/> </valList> </content> </macroSpec>--> <!--<macroSpec ident="data.INEUMENAME" module="MEI" type="dt"> <desc xml:lang="en">Interrupted neume, <abbr>i.e.</abbr>, neume written as 2 or more sub-neumes.</desc> <content> <valList type="closed"> <valItem ident="pessubpunctis"/> <valItem ident="climacus"/> <valItem ident="scandicus"/> <valItem ident="bistropha"/> <valItem ident="tristropha"/> <valItem ident="pressusminor"/> <valItem ident="pressusmaior"/> </valList> </content> </macroSpec>--> <macroSpec ident="data.INTERVAL.HARMONIC" module="MEI" type="dt"> <desc xml:lang="en">A token indicating diatonic interval quality and size.</desc> <content> <rng:choice> <rng:data type="token"> <rng:param name="pattern">[AdMmP][0-9]+</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.INTERVAL.MELODIC" module="MEI" type="dt"> <desc xml:lang="en">A token indicating direction of the interval but not its precise value, a diatonic interval (with optional direction and quality), or a decimal value in half steps. Decimal values are permitted to accommodate micro-tuning.</desc> <content> <rng:choice> <rng:data type="token"> <rng:param name="pattern">u|d|s|n|sd|su</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">(\+|\-)?([AdMmP])?[0-9]+</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">(\+|\-)?\d+(\.\d+)?hs</rng:param> </rng:data> </rng:choice> </content> <remarks xml:lang="en"> <p> <list> <head>Interval direction only:</head> <item>u = up/higher,</item> <item>d = down/lower,</item> <item>s = same,</item> <item>n = neutral/unknown,</item> <item>sd = same or lower (but not higher),</item> <item>su = same or higher (but not lower)</item> </list> </p> <p> <list> <head>Interval direction, quality, and size:</head> <item>optional sign,</item> <item> <list> <head>optional quality indicator:</head> <item>A = augmented,</item> <item>d = diminished,</item> <item>M = major,</item> <item>m = minor,</item> <item>P = perfect</item> </list> </item> <item>integer value</item> </list> </p> <p> <list> <head>Interval in half steps:</head> <item>optional sign,</item> <item>decimal value</item> <item>"hs"</item> </list> </p> </remarks> </macroSpec> <macroSpec ident="data.ISODATE" module="MEI" type="dt"> <desc xml:lang="en">ISO date formats.</desc> <content> <rng:choice> <rng:data type="date"/> <rng:data type="gYear"/> <rng:data type="gMonth"/> <rng:data type="gDay"/> <rng:data type="gYearMonth"/> <rng:data type="gMonthDay"/> <rng:data type="time"/> <rng:data type="dateTime"/> <rng:data type="token"> <rng:param name="pattern">[0-9.,DHMPRSTWYZ/:+\-]+</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.ISOTIME" module="MEI" type="dt"> <desc xml:lang="en">ISO 24-hour time format: HH:MM:SS.ss, <abbr>i.e.</abbr>, [0-9][0-9]:[0-9][0-9]:[0-9][0-9](\.?[0-9]*)?.</desc> <content> <rng:data type="time"/> </content> </macroSpec> <macroSpec ident="data.KEYFIFTHS" module="MEI" type="dt"> <desc xml:lang="en">Indicates the location of the tonic in the circle of fifths.</desc> <content> <rng:data type="token"> <rng:param name="pattern">mixed|0|([1-9]|1[0-2])[f|s]</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.LAYERSCHEME" module="MEI" type="dt"> <desc xml:lang="en">Indicates how stems should be drawn when more than one layer is present and stem directions are not indicated on the notes/chords themselves. '1' indicates that there is only a single layer on a staff. '2o' means there are two layers with opposing stems. '2f' indicates two 'free' layers; that is, opposing stems will be drawn unless one of the layers has 'space'. In that case, stem direction in the remaining layer will be determined as if there were only one layer. '3o' and '3f' are analogous to '2o' and '2f' with three layers allowed.</desc> <content> <valList type="closed"> <valItem ident="1"> <desc xml:lang="en">Single layer.</desc> </valItem> <valItem ident="2o"> <desc xml:lang="en">Two layers with opposing stems.</desc> </valItem> <valItem ident="2f"> <desc xml:lang="en">Two layers with 'floating' stems.</desc> </valItem> <valItem ident="3o"> <desc xml:lang="en">Three layers with opposing stems.</desc> </valItem> <valItem ident="3f"> <desc xml:lang="en">Three layers with 'floating' stems.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.LIGATUREFORM" module="MEI" type="dt"> <desc xml:lang="en">Ligature forms.</desc> <content> <valList type="closed"> <valItem ident="recta"> <desc xml:lang="en">Notes are "squeezed" together.</desc> </valItem> <valItem ident="obliqua"> <desc xml:lang="en">Individual notes are replaced by an oblique figure.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.LINEFORM" module="MEI" type="dt"> <desc xml:lang="en">Visual form of a line.</desc> <content> <valList type="closed"> <valItem ident="dashed"> <desc xml:lang="en">Dashed line.</desc> </valItem> <valItem ident="dotted"> <desc xml:lang="en">Dotted line.</desc> </valItem> <valItem ident="solid"> <desc xml:lang="en">Straight, uninterrupted line.</desc> </valItem> <valItem ident="wavy"> <desc xml:lang="en">Undulating line.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.LINESTARTENDSYMBOL" module="MEI" type="dt"> <desc xml:lang="en">Symbol that may begin/end a line.</desc> <content> <valList type="closed"> <valItem ident="angledown"> <desc xml:lang="en">90 degree turn down (similar to Unicode 231D at end of line, 231C at start).</desc> </valItem> <valItem ident="angleup"> <desc xml:lang="en">90 degree turn up (similar to Unicode 231F at end of line, 231E at start).</desc> </valItem> <valItem ident="angleright"> <desc xml:lang="en">90 degree turn right (syntactic sugar for "angledown" for vertical or angled lines).</desc> </valItem> <valItem ident="angleleft"> <desc xml:lang="en">90 degree turn left (syntactic sugar for "angleup" for vertical or angled lines).</desc> </valItem> <valItem ident="arrow"> <desc xml:lang="en">Filled, triangular arrowhead (similar to Unicode U+25C0 or SMuFL U+EB78).</desc> </valItem> <valItem ident="arrowopen"> <desc xml:lang="en">Open triangular arrowhead (similar to Unicode U+02C3 or SMuFL U+EB8A).</desc> </valItem> <valItem ident="arrowwhite"> <desc xml:lang="en">Unfilled, triangular arrowhead (similar to Unicode U+25C1 or SMuFL U+EB82).</desc> </valItem> <valItem ident="harpoonleft"> <desc xml:lang="en">Harpoon-shaped arrowhead left of line (similar to arrowhead of Unicode U+21BD).</desc> </valItem> <valItem ident="harpoonright"> <desc xml:lang="en">Harpoon-shaped arrowhead right of line (similar to arrowhead of Unicode U+21BC).</desc> </valItem> <valItem ident="H"> <desc xml:lang="en">Hauptstimme (Unicode U+1D1A6 or SMuFL U+E860).</desc> </valItem> <valItem ident="N"> <desc xml:lang="en">Nebenstimme (Unicode U+1D1A7 or SMuFL U+E861).</desc> </valItem> <valItem ident="Th"> <desc xml:lang="en">Theme (SMuFL U+E864).</desc> </valItem> <valItem ident="ThRetro"> <desc xml:lang="en">Theme, retrograde (SMuFL U+E865).</desc> </valItem> <valItem ident="ThRetroInv"> <desc xml:lang="en">Theme, retrograde inversion (SMuFL U+E866).</desc> </valItem> <valItem ident="ThInv"> <desc xml:lang="en">Theme, inverted (SMuFL U+E867).</desc> </valItem> <valItem ident="T"> <desc xml:lang="en">Theme (SMuFL U+E868).</desc> </valItem> <valItem ident="TInv"> <desc xml:lang="en">Theme, inverted (SMuFL U+E869).</desc> </valItem> <valItem ident="CH"> <desc xml:lang="en">Choralemelodie (SMuFL U+E86A).</desc> </valItem> <valItem ident="RH"> <desc xml:lang="en">Hauptrhythmus (SMuFL U+E86B).</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">No start/end symbol.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.LINEWIDTH" module="MEI" type="dt"> <desc xml:lang="en">Datatype of line width measurements.</desc> <content> <rng:choice> <rng:ref name="data.LINEWIDTHTERM"/> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.LINEWIDTHTERM" module="MEI" type="dt"> <desc xml:lang="en">Relative width of a line.</desc> <content> <valList type="closed"> <valItem ident="narrow"> <desc xml:lang="en">Default line width.</desc> </valItem> <valItem ident="medium"> <desc xml:lang="en">Twice as wide as narrow.</desc> </valItem> <valItem ident="wide"> <desc xml:lang="en">Twice as wide as medium.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MEASUREBEAT" module="MEI" type="dt"> <desc xml:lang="en">A count of measures plus a beat location, <abbr>i.e.</abbr>, [0-9]+m *\+ *[0-9]+(\.?[0-9]*)?. The measure count is the number of bar lines crossed by the event, while the beat location is a timestamp expressed as a beat with an optional fractional part. For example, "1m+3.5" indicates a point in the next measure on the second half of beat 3. The measure number must be in the range of 0 to the number of remaining measures, while the beat number must be in the range from 0 to the numerator of the time signature plus 1. For example, in 6/8 the beat number must be within the range from 0 (the left bar line) to 7 (the right bar line). A value with a measure number of "0", such as "0m+2", indicates a point within the current measure.</desc> <content> <rng:data type="token"> <rng:param name="pattern">([0-9]+m\s*\+\s*)?[0-9]+(\.?[0-9]*)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MEASUREBEATOFFSET" module="MEI" type="dt"> <desc xml:lang="en">A count of measures plus a beat location, <abbr>i.e.</abbr>, (\+|-)?[0-9]+m\+[0-9]+(\.?[0-9]*)?. The measure count is the number of bar lines crossed by the event, while the beat location is a timestamp expressed as a beat with an optional fractional part. The measure number must be in the range of preceding measures to the number of remaining measures. A value with a positive measure number, such as "1m+3", indicates a point in the following measure, while a value with a negative measure number, such as "-1m+3", marks a point in the preceding measure. The beat number must be in the range from 0 to the numerator of the time signature plus 1. For example, in 6/8 the beat number must be within the range from 0 (the left bar line) to 7 (the right bar line). A value with a measure number of "0", such as "0m+2", indicates a point within the current measure.</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\+|-)?[0-9]+m\+[0-9]+(\.[0-9]*)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MEASUREMENTUNSIGNED" module="MEI" type="dt"> <desc xml:lang="en">Measurement expressed in real-world (<abbr>e.g.</abbr>, centimeters, millimeters, inches, points, picas, or pixels) or virtual units (vu). 'vu' is the default value. Unlike data.MEASUREMENTSIGNED, only positive values are allowed.</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\+)?\d+(\.\d+)?(cm|mm|in|pt|pc|px|vu)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MEASUREMENTSIGNED" module="MEI" type="dt"> <desc xml:lang="en">Measurement expressed in real-world (<abbr>e.g.</abbr>, centimeters, millimeters, inches, points, picas, or pixels) or virtual units (vu). 'vu' is the default value. Unlike data.MEASUREMENTUNSIGNED, in which only positive values are allowed, both positive and negative values are permitted.</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\+|-)?\d+(\.\d+)?(cm|mm|in|pt|pc|px|vu)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MEASUREMENTFONTUNSIGNED" module="MEI" type="dt"> <desc xml:lang="en">Measurement expressed relative to properties of the current font, in analogy to the respective CSS length units. Unlike data.MEASUREMENTFONTUNSIGNED, only positive values are allowed.</desc> <content> <rng:data type="token"> <rng:param name="pattern">\d+(\.\d+)?(ch|em|ex)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MEASUREMENTFONTSIGNED" module="MEI" type="dt"> <desc xml:lang="en">Measurement expressed relative to properties of the current font, in analogy to the respective CSS length units. Unlike data.MEASUREMENTFONTUNSIGNED, both positive and negative values are allowed.</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\+|-)?\d+(\.\d+)?(ch|em|ex)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MEASUREMENTTYPOGRAPHYUNSIGNED" module="MEI" type="dt"> <desc xml:lang="en">Measurements used for typographical features. Unlike data.MEASUREMENTTYPOGRAPHYSIGNED, only positive values are allowed.</desc> <content> <rng:choice> <rng:ref name="data.MEASUREMENTFONTUNSIGNED"/> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.MEASUREMENTTYPOGRAPHYSIGNED" module="MEI" type="dt"> <desc xml:lang="en">Measurements used for typographical features. Unlike data.MEASUREMENTTYPOGRAPHYSIGNED, both positive and negative values are allowed.</desc> <content> <rng:choice> <rng:ref name="data.MEASUREMENTFONTSIGNED"/> <rng:ref name="data.MEASUREMENTSIGNED"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.MELODICFUNCTION" module="MEI" type="dt"> <desc xml:lang="en">Indication of melodic function, <abbr>i.e.</abbr>, anticipation, lower neighbor, escape tone, etc.</desc> <content> <valList type="closed"> <valItem ident="aln"> <desc xml:lang="en">Accented lower neighbor.</desc> </valItem> <valItem ident="ant"> <desc xml:lang="en">Anticipation.</desc> </valItem> <valItem ident="app"> <desc xml:lang="en">Appogiatura.</desc> </valItem> <valItem ident="apt"> <desc xml:lang="en">Accented passing tone.</desc> </valItem> <valItem ident="arp"> <desc xml:lang="en">Arpeggio tone (chordal tone).</desc> </valItem> <valItem ident="arp7"> <desc xml:lang="en">Arpeggio tone (7th added to the chord).</desc> </valItem> <valItem ident="aun"> <desc xml:lang="en">Accented upper neighbor.</desc> </valItem> <valItem ident="chg"> <desc xml:lang="en">Changing tone.</desc> </valItem> <valItem ident="cln"> <desc xml:lang="en">Chromatic lower neighbor.</desc> </valItem> <valItem ident="ct"> <desc xml:lang="en">Chord tone (<abbr>i.e.</abbr>, not an embellishment).</desc> </valItem> <valItem ident="ct7"> <desc xml:lang="en">Chord tone (7th added to the chord).</desc> </valItem> <valItem ident="cun"> <desc xml:lang="en">Chromatic upper neighbor.</desc> </valItem> <valItem ident="cup"> <desc xml:lang="en">Chromatic unaccented passing tone.</desc> </valItem> <valItem ident="et"> <desc xml:lang="en">Escape tone.</desc> </valItem> <valItem ident="ln"> <desc xml:lang="en">Lower neighbor.</desc> </valItem> <valItem ident="ped"> <desc xml:lang="en">Pedal tone.</desc> </valItem> <valItem ident="rep"> <desc xml:lang="en">Repeated tone.</desc> </valItem> <valItem ident="ret"> <desc xml:lang="en">Retardation.</desc> </valItem> <valItem ident="23ret"> <desc xml:lang="en">2-3 retardation.</desc> </valItem> <valItem ident="78ret"> <desc xml:lang="en">7-8 retardation.</desc> </valItem> <valItem ident="sus"> <desc xml:lang="en">Suspension.</desc> </valItem> <valItem ident="43sus"> <desc xml:lang="en">4-3 suspension.</desc> </valItem> <valItem ident="98sus"> <desc xml:lang="en">9-8 suspension.</desc> </valItem> <valItem ident="76sus"> <desc xml:lang="en">7-6 suspension.</desc> </valItem> <valItem ident="un"> <desc xml:lang="en">Upper neighbor.</desc> </valItem> <valItem ident="un7"> <desc xml:lang="en">Upper neighbor (7th added to the chord).</desc> </valItem> <valItem ident="upt"> <desc xml:lang="en">Unaccented passing tone.</desc> </valItem> <valItem ident="upt7"> <desc xml:lang="en">Unaccented passing tone (7th added to the chord).</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MENSURATIONSIGN" module="MEI" type="dt"> <desc xml:lang="en">Mensuration signs attribute values.</desc> <content> <valList type="closed"> <valItem ident="C"> <desc xml:lang="en">Sign for tempus imperfectum.</desc> </valItem> <valItem ident="O"> <desc xml:lang="en">Sign for tempus perfectum.</desc> </valItem> <valItem ident="t"> <desc xml:lang="en">Sign for divisio ternaria.</desc> </valItem> <valItem ident="q"> <desc xml:lang="en">Sign for divisio quaternaria.</desc> </valItem> <valItem ident="si"> <desc xml:lang="en">Sign for divisio senaria imperfecta.</desc> </valItem> <valItem ident="i"> <desc xml:lang="en">Sign for divisio senaria imperfecta.</desc> </valItem> <valItem ident="sg"> <desc xml:lang="en">Sign for divisio senaria gallica.</desc> </valItem> <valItem ident="g"> <desc xml:lang="en">Sign for divisio senaria gallica.</desc> </valItem> <valItem ident="sp"> <desc xml:lang="en">Sign for divisio senaria perfecta.</desc> </valItem> <valItem ident="p"> <desc xml:lang="en">Sign for divisio senaria perfecta.</desc> </valItem> <valItem ident="sy"> <desc xml:lang="en">Sign for divisio senaria ytalica.</desc> </valItem> <valItem ident="y"> <desc xml:lang="en">Sign for divisio senaria ytalica.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Sign for divisio novenaria.</desc> </valItem> <valItem ident="oc"> <desc xml:lang="en">Sign for divisio octonaria.</desc> </valItem> <valItem ident="d"> <desc xml:lang="en">Sign for divisio duodenaria.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.METERFORM" module="MEI" type="dt"> <desc xml:lang="en">Contains an indication of how a meter signature should be rendered.</desc> <content> <valList type="closed"> <valItem ident="num"> <desc xml:lang="en">Show only the number of beats.</desc> </valItem> <valItem ident="denomsym"> <desc xml:lang="en">The lower number in the meter signature is replaced by a note symbol.</desc> </valItem> <valItem ident="norm"> <desc xml:lang="en">Meter signature rendered using traditional numeric values.</desc> </valItem> <valItem ident="sym+norm"> <desc xml:lang="en">Meter signature rendered using both the symbol and the traditional numeric values.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.METERSIGN" module="MEI" type="dt"> <desc xml:lang="en">Meter.sym attribute values for CMN.</desc> <content> <valList type="closed"> <valItem ident="common"> <desc xml:lang="en">Common time; <abbr>i.e.</abbr>, 4/4.</desc> </valItem> <valItem ident="cut"> <desc xml:lang="en">Cut time; <abbr>i.e.</abbr>, 2/2.</desc> </valItem> <valItem ident="open"> <desc xml:lang="en">Open time signature, <abbr>i.e.</abbr>, Senza misura. See Gould pp. 611–615.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MIDICHANNEL" module="MEI" type="dt"> <desc xml:lang="en">MIDI channel number. One-based values must be followed by a lower-case letter "o".</desc> <content> <rng:data type="token"> <rng:param name="pattern">0|([1-9]|1[0-5])o?|16o</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MIDIBPM" module="MEI" type="dt"> <desc xml:lang="en">Tempo expressed as "beats" per minute, where "beat" is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*.</desc> <content> <rng:data type="decimal"> <rng:param name="minExclusive">0</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MIDIMSPB" module="MEI" type="dt"> <desc xml:lang="en">Tempo expressed as microseconds per "beat", where "beat" is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*.</desc> <content> <rng:data type="positiveInteger"/> </content> </macroSpec> <macroSpec ident="data.MIDINAMES" module="MEI" type="dt"> <desc xml:lang="en">General MIDI instrument names.</desc> <content> <valList type="closed"> <valItem ident="Acoustic_Grand_Piano"> <desc xml:lang="en">Acoustic Grand Piano, Program #0.</desc> </valItem> <valItem ident="Bright_Acoustic_Piano"> <desc xml:lang="en">Bright Acoustic Piano, Program #1.</desc> </valItem> <valItem ident="Electric_Grand_Piano"> <desc xml:lang="en">Electric Grand Piano, Program #2.</desc> </valItem> <valItem ident="Honky-tonk_Piano"> <desc xml:lang="en">Honky-tonk Piano, Program #3.</desc> </valItem> <valItem ident="Electric_Piano_1"> <desc xml:lang="en">Electric Piano 1, Program #4.</desc> </valItem> <valItem ident="Electric_Piano_2"> <desc xml:lang="en">Electric Piano 2, Program #5.</desc> </valItem> <valItem ident="Harpsichord"> <desc xml:lang="en">Harpsichord, Program #6.</desc> </valItem> <valItem ident="Clavi"> <desc xml:lang="en">Clavi, Program #7.</desc> </valItem> <valItem ident="Celesta"> <desc xml:lang="en">Celesta, Program #8.</desc> </valItem> <valItem ident="Glockenspiel"> <desc xml:lang="en">Glockenspiel, Program #9.</desc> </valItem> <valItem ident="Music_Box"> <desc xml:lang="en">Music Box, Program #10.</desc> </valItem> <valItem ident="Vibraphone"> <desc xml:lang="en">Vibraphone, Program #11.</desc> </valItem> <valItem ident="Marimba"> <desc xml:lang="en">Marimba, Program #12.</desc> </valItem> <valItem ident="Xylophone"> <desc xml:lang="en">Xylophone, Program #13.</desc> </valItem> <valItem ident="Tubular_Bells"> <desc xml:lang="en">Tubular Bells, Program #14.</desc> </valItem> <valItem ident="Dulcimer"> <desc xml:lang="en">Dulcimer, Program #15.</desc> </valItem> <valItem ident="Drawbar_Organ"> <desc xml:lang="en">Drawbar Organ, Program #16.</desc> </valItem> <valItem ident="Percussive_Organ"> <desc xml:lang="en">Percussive Organ, Program #17.</desc> </valItem> <valItem ident="Rock_Organ"> <desc xml:lang="en">Rock Organ, Program #18.</desc> </valItem> <valItem ident="Church_Organ"> <desc xml:lang="en">Church Organ, Program #19.</desc> </valItem> <valItem ident="Reed_Organ"> <desc xml:lang="en">Reed Organ, Program #20.</desc> </valItem> <valItem ident="Accordion"> <desc xml:lang="en">Accordion, Program #21.</desc> </valItem> <valItem ident="Harmonica"> <desc xml:lang="en">Harmonica, Program #22.</desc> </valItem> <valItem ident="Tango_Accordion"> <desc xml:lang="en">Tango Accordion, Program #23.</desc> </valItem> <valItem ident="Acoustic_Guitar_nylon"> <desc xml:lang="en">Acoustic Guitar (nylon), Program #24.</desc> </valItem> <valItem ident="Acoustic_Guitar_steel"> <desc xml:lang="en">Acoustic Guitar (steel), Program #25.</desc> </valItem> <valItem ident="Electric_Guitar_jazz"> <desc xml:lang="en">Electric Guitar (jazz), Program #26.</desc> </valItem> <valItem ident="Electric_Guitar_clean"> <desc xml:lang="en">Electric Guitar (clean), Program #27.</desc> </valItem> <valItem ident="Electric_Guitar_muted"> <desc xml:lang="en">Electric Guitar (muted), Program #28.</desc> </valItem> <valItem ident="Overdriven_Guitar"> <desc xml:lang="en">Overdriven Guitar, Program #29.</desc> </valItem> <valItem ident="Distortion_Guitar"> <desc xml:lang="en">Distortion Guitar, Program #30.</desc> </valItem> <valItem ident="Guitar_harmonics"> <desc xml:lang="en">Guitar harmonics, Program #31.</desc> </valItem> <valItem ident="Acoustic_Bass"> <desc xml:lang="en">Acoustic Bass, Program #32.</desc> </valItem> <valItem ident="Electric_Bass_finger"> <desc xml:lang="en">Electric Bass (finger), Program #33.</desc> </valItem> <valItem ident="Electric_Bass_pick"> <desc xml:lang="en">Electric Bass (pick), Program #34.</desc> </valItem> <valItem ident="Fretless_Bass"> <desc xml:lang="en">Fretless Bass, Program #35.</desc> </valItem> <valItem ident="Slap_Bass_1"> <desc xml:lang="en">Slap Bass 1, Program #36.</desc> </valItem> <valItem ident="Slap_Bass_2"> <desc xml:lang="en">Slap Bass 2, Program #37.</desc> </valItem> <valItem ident="Synth_Bass_1"> <desc xml:lang="en">Synth Bass 1, Program #38.</desc> </valItem> <valItem ident="Synth_Bass_2"> <desc xml:lang="en">Synth Bass 2, Program #39.</desc> </valItem> <valItem ident="Violin"> <desc xml:lang="en">Violin, Program #40.</desc> </valItem> <valItem ident="Viola"> <desc xml:lang="en">Viola, Program #41.</desc> </valItem> <valItem ident="Cello"> <desc xml:lang="en">Cello, Program #42.</desc> </valItem> <valItem ident="Contrabass"> <desc xml:lang="en">Contrabass, Program #43.</desc> </valItem> <valItem ident="Tremolo_Strings"> <desc xml:lang="en">Tremolo Strings, Program #44.</desc> </valItem> <valItem ident="Pizzicato_Strings"> <desc xml:lang="en">Pizzicato Strings, Program #45.</desc> </valItem> <valItem ident="Orchestral_Harp"> <desc xml:lang="en">Orchestral Harp, Program #46.</desc> </valItem> <valItem ident="Timpani"> <desc xml:lang="en">Timpani, Program #47.</desc> </valItem> <valItem ident="String_Ensemble_1"> <desc xml:lang="en">String Ensemble 1, Program #48.</desc> </valItem> <valItem ident="String_Ensemble_2"> <desc xml:lang="en">String Ensemble 2, Program #49.</desc> </valItem> <valItem ident="SynthStrings_1"> <desc xml:lang="en">SynthStrings 1, Program #50.</desc> </valItem> <valItem ident="SynthStrings_2"> <desc xml:lang="en">SynthStrings 2, Program #51.</desc> </valItem> <valItem ident="Choir_Aahs"> <desc xml:lang="en">Choir Aahs, Program #52.</desc> </valItem> <valItem ident="Voice_Oohs"> <desc xml:lang="en">Voice Oohs, Program #53.</desc> </valItem> <valItem ident="Synth_Voice"> <desc xml:lang="en">Synth Voice, Program #54.</desc> </valItem> <valItem ident="Orchestra_Hit"> <desc xml:lang="en">Orchestra Hit, Program #55.</desc> </valItem> <valItem ident="Trumpet"> <desc xml:lang="en">Trumpet, Program #56.</desc> </valItem> <valItem ident="Trombone"> <desc xml:lang="en">Trombone, Program #57.</desc> </valItem> <valItem ident="Tuba"> <desc xml:lang="en">Tuba, Program #58.</desc> </valItem> <valItem ident="Muted_Trumpet"> <desc xml:lang="en">Muted Trumpet, Program #59.</desc> </valItem> <valItem ident="French_Horn"> <desc xml:lang="en">French Horn, Program #60.</desc> </valItem> <valItem ident="Brass_Section"> <desc xml:lang="en">Brass Section, Program #61.</desc> </valItem> <valItem ident="SynthBrass_1"> <desc xml:lang="en">SynthBrass 1, Program #62.</desc> </valItem> <valItem ident="SynthBrass_2"> <desc xml:lang="en">SynthBrass 2, Program #63.</desc> </valItem> <valItem ident="Soprano_Sax"> <desc xml:lang="en">Soprano Sax, Program #64.</desc> </valItem> <valItem ident="Alto_Sax"> <desc xml:lang="en">Alto Sax, Program #65.</desc> </valItem> <valItem ident="Tenor_Sax"> <desc xml:lang="en">Tenor Sax, Program #66.</desc> </valItem> <valItem ident="Baritone_Sax"> <desc xml:lang="en">Baritone Sax, Program #67.</desc> </valItem> <valItem ident="Oboe"> <desc xml:lang="en">Oboe, Program #68.</desc> </valItem> <valItem ident="English_Horn"> <desc xml:lang="en">English Horn, Program #69.</desc> </valItem> <valItem ident="Bassoon"> <desc xml:lang="en">Bassoon, Program #70.</desc> </valItem> <valItem ident="Clarinet"> <desc xml:lang="en">Clarinet, Program #71.</desc> </valItem> <valItem ident="Piccolo"> <desc xml:lang="en">Piccolo, Program #72.</desc> </valItem> <valItem ident="Flute"> <desc xml:lang="en">Flute, Program #73.</desc> </valItem> <valItem ident="Recorder"> <desc xml:lang="en">Recorder, Program #74.</desc> </valItem> <valItem ident="Pan_Flute"> <desc xml:lang="en">Pan Flute, Program #75.</desc> </valItem> <valItem ident="Blown_Bottle"> <desc xml:lang="en">Blown Bottle, Program #76.</desc> </valItem> <valItem ident="Shakuhachi"> <desc xml:lang="en">Shakuhachi, Program #77.</desc> </valItem> <valItem ident="Whistle"> <desc xml:lang="en">Whistle, Program #78.</desc> </valItem> <valItem ident="Ocarina"> <desc xml:lang="en">Ocarina, Program #79.</desc> </valItem> <valItem ident="Lead_1_square"> <desc xml:lang="en">Lead 1 (square), Program #80.</desc> </valItem> <valItem ident="Lead_2_sawtooth"> <desc xml:lang="en">Lead 2 (sawtooth), Program #81.</desc> </valItem> <valItem ident="Lead_3_calliope"> <desc xml:lang="en">Lead 3 (calliope), Program #82.</desc> </valItem> <valItem ident="Lead_4_chiff"> <desc xml:lang="en">Lead 4 (chiff), Program #83.</desc> </valItem> <valItem ident="Lead_5_charang"> <desc xml:lang="en">Lead 5 (charang), Program #84.</desc> </valItem> <valItem ident="Lead_6_voice"> <desc xml:lang="en">Lead 6 (voice), Program #85.</desc> </valItem> <valItem ident="Lead_7_fifths"> <desc xml:lang="en">Lead 7 (fifths), Program #86.</desc> </valItem> <valItem ident="Lead_8_bass_and_lead"> <desc xml:lang="en">Lead 8 (bass + lead), Program #87.</desc> </valItem> <valItem ident="Pad_1_new_age"> <desc xml:lang="en">Pad 1 (new age), Program #88.</desc> </valItem> <valItem ident="Pad_2_warm"> <desc xml:lang="en">Pad 2 (warm), Program #89.</desc> </valItem> <valItem ident="Pad_3_polysynth"> <desc xml:lang="en">Pad 3 (polysynth), Program #90.</desc> </valItem> <valItem ident="Pad_4_choir"> <desc xml:lang="en">Pad 4 (choir), Program #91.</desc> </valItem> <valItem ident="Pad_5_bowed"> <desc xml:lang="en">Pad 5 (bowed), Program #92.</desc> </valItem> <valItem ident="Pad_6_metallic"> <desc xml:lang="en">Pad 6 (metallic), Program #93.</desc> </valItem> <valItem ident="Pad_7_halo"> <desc xml:lang="en">Pad 7 (halo), Program #94.</desc> </valItem> <valItem ident="Pad_8_sweep"> <desc xml:lang="en">Pad 8 (sweep), Program #95.</desc> </valItem> <valItem ident="FX_1_rain"> <desc xml:lang="en">FX 1 (rain), Program #96.</desc> </valItem> <valItem ident="FX_2_soundtrack"> <desc xml:lang="en">FX 2 (soundtrack), Program #97.</desc> </valItem> <valItem ident="FX_3_crystal"> <desc xml:lang="en">FX 3 (crystal), Program #98.</desc> </valItem> <valItem ident="FX_4_atmosphere"> <desc xml:lang="en">FX 4 (atmosphere), Program #99.</desc> </valItem> <valItem ident="FX_5_brightness"> <desc xml:lang="en">FX 5 (brightness), Program #100.</desc> </valItem> <valItem ident="FX_6_goblins"> <desc xml:lang="en">FX 6 (goblins), Program #101.</desc> </valItem> <valItem ident="FX_7_echoes"> <desc xml:lang="en">FX 7 (echoes), Program #102.</desc> </valItem> <valItem ident="FX_8_sci-fi"> <desc xml:lang="en">FX 8 (sci-fi), Program #103.</desc> </valItem> <valItem ident="Sitar"> <desc xml:lang="en">Sitar, Program #104.</desc> </valItem> <valItem ident="Banjo"> <desc xml:lang="en">Banjo, Program #105.</desc> </valItem> <valItem ident="Shamisen"> <desc xml:lang="en">Shamisen, Program #106.</desc> </valItem> <valItem ident="Koto"> <desc xml:lang="en">Koto, Program #107.</desc> </valItem> <valItem ident="Kalimba"> <desc xml:lang="en">Kalimba, Program #108.</desc> </valItem> <valItem ident="Bag_pipe"> <desc xml:lang="en">Bag pipe, Program #109.</desc> </valItem> <valItem ident="Fiddle"> <desc xml:lang="en">Fiddle, Program #110.</desc> </valItem> <valItem ident="Shanai"> <desc xml:lang="en">Shanai, Program #111.</desc> </valItem> <valItem ident="Tinkle_Bell"> <desc xml:lang="en">Tinkle Bell, Program #112.</desc> </valItem> <valItem ident="Agogo"> <desc xml:lang="en">Agogo, Program #113.</desc> </valItem> <valItem ident="Steel_Drums"> <desc xml:lang="en">Steel Drums, Program #114.</desc> </valItem> <valItem ident="Woodblock"> <desc xml:lang="en">Woodblock, Program #115.</desc> </valItem> <valItem ident="Taiko_Drum"> <desc xml:lang="en">Taiko Drum, Program #116.</desc> </valItem> <valItem ident="Melodic_Tom"> <desc xml:lang="en">Melodic Tom, Program #117.</desc> </valItem> <valItem ident="Synth_Drum"> <desc xml:lang="en">Synth Drum, Program #118.</desc> </valItem> <valItem ident="Reverse_Cymbal"> <desc xml:lang="en">Reverse Cymbal, Program #119.</desc> </valItem> <valItem ident="Guitar_Fret_Noise"> <desc xml:lang="en">Guitar Fret Noise, Program #120.</desc> </valItem> <valItem ident="Breath_Noise"> <desc xml:lang="en">Breath Noise, Program #121.</desc> </valItem> <valItem ident="Seashore"> <desc xml:lang="en">Seashore, Program #122.</desc> </valItem> <valItem ident="Bird_Tweet"> <desc xml:lang="en">Bird Tweet, Program #123.</desc> </valItem> <valItem ident="Telephone_Ring"> <desc xml:lang="en">Telephone Ring, Program #124.</desc> </valItem> <valItem ident="Helicopter"> <desc xml:lang="en">Helicopter, Program #125.</desc> </valItem> <valItem ident="Applause"> <desc xml:lang="en">Applause, Program #126.</desc> </valItem> <valItem ident="Gunshot"> <desc xml:lang="en">Gunshot, Program #127.</desc> </valItem> <valItem ident="Acoustic_Bass_Drum"> <desc xml:lang="en">Acoustic Bass Drum, Key #35.</desc> </valItem> <valItem ident="Bass_Drum_1"> <desc xml:lang="en">Bass Drum 1, Key #36.</desc> </valItem> <valItem ident="Side_Stick"> <desc xml:lang="en">Side Stick, Key #37.</desc> </valItem> <valItem ident="Acoustic_Snare"> <desc xml:lang="en">Acoustic Snare, Key #38.</desc> </valItem> <valItem ident="Hand_Clap"> <desc xml:lang="en">Hand Clap, Key #39.</desc> </valItem> <valItem ident="Electric_Snare"> <desc xml:lang="en">Electric Snare, Key #40.</desc> </valItem> <valItem ident="Low_Floor_Tom"> <desc xml:lang="en">Low Floor Tom, Key #41.</desc> </valItem> <valItem ident="Closed_Hi_Hat"> <desc xml:lang="en">Closed Hi Hat, Key #42.</desc> </valItem> <valItem ident="High_Floor_Tom"> <desc xml:lang="en">High Floor Tom, Key #43.</desc> </valItem> <valItem ident="Pedal_Hi-Hat"> <desc xml:lang="en">Pedal Hi-Hat, Key #44.</desc> </valItem> <valItem ident="Low_Tom"> <desc xml:lang="en">Low Tom, Key #45.</desc> </valItem> <valItem ident="Open_Hi-Hat"> <desc xml:lang="en">Open Hi-Hat, Key #46.</desc> </valItem> <valItem ident="Low-Mid_Tom"> <desc xml:lang="en">Low-Mid Tom, Key #47.</desc> </valItem> <valItem ident="Hi-Mid_Tom"> <desc xml:lang="en">Hi-Mid Tom, Key #48.</desc> </valItem> <valItem ident="Crash_Cymbal_1"> <desc xml:lang="en">Crash Cymbal 1, Key #49.</desc> </valItem> <valItem ident="High_Tom"> <desc xml:lang="en">High Tom, Key #50.</desc> </valItem> <valItem ident="Ride_Cymbal_1"> <desc xml:lang="en">Ride Cymbal 1, Key #51.</desc> </valItem> <valItem ident="Chinese_Cymbal"> <desc xml:lang="en">Chinese Cymbal, Key #52.</desc> </valItem> <valItem ident="Ride_Bell"> <desc xml:lang="en">Ride Bell, Key #53.</desc> </valItem> <valItem ident="Tambourine"> <desc xml:lang="en">Tambourine, Key #54.</desc> </valItem> <valItem ident="Splash_Cymbal"> <desc xml:lang="en">Splash Cymbal, Key #55.</desc> </valItem> <valItem ident="Cowbell"> <desc xml:lang="en">Cowbell, Key #56.</desc> </valItem> <valItem ident="Crash_Cymbal_2"> <desc xml:lang="en">Crash Cymbal 2, Key #57.</desc> </valItem> <valItem ident="Vibraslap"> <desc xml:lang="en">Vibraslap, Key #58.</desc> </valItem> <valItem ident="Ride_Cymbal_2"> <desc xml:lang="en">Ride Cymbal 2, Key #59.</desc> </valItem> <valItem ident="Hi_Bongo"> <desc xml:lang="en">Hi Bongo, Key #60.</desc> </valItem> <valItem ident="Low_Bongo"> <desc xml:lang="en">Low Bongo, Key #61.</desc> </valItem> <valItem ident="Mute_Hi_Conga"> <desc xml:lang="en">Mute Hi Conga, Key #62.</desc> </valItem> <valItem ident="Open_Hi_Conga"> <desc xml:lang="en">Open Hi Conga, Key #63.</desc> </valItem> <valItem ident="Low_Conga"> <desc xml:lang="en">Low Conga, Key #64.</desc> </valItem> <valItem ident="High_Timbale"> <desc xml:lang="en">High Timbale, Key #65.</desc> </valItem> <valItem ident="Low_Timbale"> <desc xml:lang="en">Low Timbale, Key #66.</desc> </valItem> <valItem ident="High_Agogo"> <desc xml:lang="en">High Agogo, Key #67.</desc> </valItem> <valItem ident="Low_Agogo"> <desc xml:lang="en">Low Agogo, Key #68.</desc> </valItem> <valItem ident="Cabasa"> <desc xml:lang="en">Cabasa, Key #69.</desc> </valItem> <valItem ident="Maracas"> <desc xml:lang="en">Maracas, Key #70.</desc> </valItem> <valItem ident="Short_Whistle"> <desc xml:lang="en">Short Whistle, Key #71.</desc> </valItem> <valItem ident="Long_Whistle"> <desc xml:lang="en">Long Whistle, Key #72.</desc> </valItem> <valItem ident="Short_Guiro"> <desc xml:lang="en">Short Guiro, Key #73.</desc> </valItem> <valItem ident="Long_Guiro"> <desc xml:lang="en">Long Guiro, Key #74.</desc> </valItem> <valItem ident="Claves"> <desc xml:lang="en">Claves, Key #75.</desc> </valItem> <valItem ident="Hi_Wood_Block"> <desc xml:lang="en">Hi Wood Block, Key #76.</desc> </valItem> <valItem ident="Low_Wood_Block"> <desc xml:lang="en">Low Wood Block, Key #77.</desc> </valItem> <valItem ident="Mute_Cuica"> <desc xml:lang="en">Mute Cuica, Key #78.</desc> </valItem> <valItem ident="Open_Cuica"> <desc xml:lang="en">Open Cuica, Key #79.</desc> </valItem> <valItem ident="Mute_Triangle"> <desc xml:lang="en">Mute Triangle, Key #80.</desc> </valItem> <valItem ident="Open_Triangle"> <desc xml:lang="en">Open Triangle, Key #81.</desc> </valItem> </valList> </content> <remarks xml:lang="en"> <p>Instrument names are based on the official list in the <ref target="https://www.midi.org/specifications-old/item/gm-level-1-sound-set">General MIDI Specifications</ref>.</p> <p>MEI uses 0-based program numbers.</p> <p>Percussion sounds are available when the MIDI channel is set to "10".</p> </remarks> </macroSpec> <macroSpec ident="data.MIDIVALUE" module="MEI" type="dt"> <desc xml:lang="en">Generic MIDI value. One-based values must be followed by a lower-case letter "o".</desc> <content> <rng:data type="token"> <rng:param name="pattern">0|([1-9]|[1-9][0-9]|1([0-1][0-9]|2[0-7]))o?|128o</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MIDIVALUE_NAME" module="MEI" type="dt"> <desc xml:lang="en">data.MIDIVALUE or data.NCName values.</desc> <content> <rng:choice> <rng:ref name="data.MIDIVALUE"/> <rng:ref name="data.NCNAME"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.MIDIVALUE_PAN" module="MEI" type="dt"> <desc xml:lang="en">data.MIDIVALUE or data.PERCENT.LIMITED.SIGNED values.</desc> <content> <rng:choice> <rng:ref name="data.MIDIVALUE"/> <rng:ref name="data.PERCENT.LIMITED.SIGNED"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.MIDIVALUE_PERCENT" module="MEI" type="dt"> <desc xml:lang="en">data.MIDIVALUE or data.PERCENT.LIMITED values.</desc> <content> <rng:choice> <rng:ref name="data.MIDIVALUE"/> <rng:ref name="data.PERCENT.LIMITED"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.MODE" module="MEI" type="dt"> <desc xml:lang="en">Modes.</desc> <content> <rng:choice> <rng:ref name="data.MODE.cmn"/> <rng:ref name="data.MODE.gregorian"/> <rng:ref name="data.MODE.extended"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.MODE.cmn" module="MEI" type="dt"> <desc xml:lang="en">Common modes.</desc> <content> <valList type="closed"> <valItem ident="major"> <desc xml:lang="en">Major mode.</desc> </valItem> <valItem ident="minor"> <desc xml:lang="en">Minor mode.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MODE.gregorian" module="MEI" type="dt"> <desc xml:lang="en">Gregorian modes.</desc> <content> <valList type="closed"> <valItem ident="dorian"> <desc xml:lang="en">Dorian mode (the first mode).</desc> </valItem> <valItem ident="hypodorian"> <desc xml:lang="en">Hypodorian mode (the second mode).</desc> </valItem> <valItem ident="phrygian"> <desc xml:lang="en">Phrygian mode (the third mode).</desc> </valItem> <valItem ident="hypophrygian"> <desc xml:lang="en">Hypophrygian mode (the fourth mode).</desc> </valItem> <valItem ident="lydian"> <desc xml:lang="en">Hypolydian mode (the fifth mode).</desc> </valItem> <valItem ident="hypolydian"> <desc xml:lang="en">Lydian mode (the sixth mode).</desc> </valItem> <valItem ident="mixolydian"> <desc xml:lang="en">Mixolydian mode (the seventh mode).</desc> </valItem> <valItem ident="hypomixolydian"> <desc xml:lang="en">Hypomixolydian mode (the eighth mode).</desc> </valItem> <valItem ident="peregrinus"> <desc xml:lang="en">Tonus peregrinus (the ninth mode).</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MODE.extended" module="MEI" type="dt"> <desc xml:lang="en">Modern modes.</desc> <content> <valList type="semi"> <valItem ident="ionian"> <desc xml:lang="en">Ionian mode.</desc> </valItem> <valItem ident="hypoionian"> <desc xml:lang="en">Hypoionian mode.</desc> </valItem> <valItem ident="aeolian"> <desc xml:lang="en">Aeolian mode.</desc> </valItem> <valItem ident="hypoaeolian"> <desc xml:lang="en">Hypoaeolian mode.</desc> </valItem> <valItem ident="locrian"> <desc xml:lang="en">Locrian mode.</desc> </valItem> <valItem ident="hypolocrian"> <desc xml:lang="en">Hypolocrian mode.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MODSRELATIONSHIP" module="MEI" type="dt"> <desc xml:lang="en">Bibliographic relationship values based on MODS version 3.4.</desc> <content> <valList type="closed"> <valItem ident="preceding"> <desc xml:lang="en">Temporal predecessor of the resource.</desc> </valItem> <valItem ident="succeeding"> <desc xml:lang="en">Temporal successor to the resource.</desc> </valItem> <valItem ident="original"> <desc xml:lang="en">Original form of the resource.</desc> </valItem> <valItem ident="host"> <desc xml:lang="en">Parent containing the resource.</desc> </valItem> <valItem ident="constituent"> <desc xml:lang="en">Intellectual or physical component of the resource.</desc> </valItem> <valItem ident="otherVersion"> <desc xml:lang="en">Version of the resource’s intellectual content not changed enough to be a different work.</desc> </valItem> <valItem ident="otherFormat"> <desc xml:lang="en">Version of the resource in a different physical format.</desc> </valItem> <valItem ident="isReferencedBy"> <desc xml:lang="en">Published bibliographic description, review, abstract, or index of the resource's content.</desc> </valItem> <valItem ident="references"> <desc xml:lang="en">Cited or referred to in the resource.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MODUSMAIOR" module="MEI" type="dt"> <desc xml:lang="en">Maxima-long relationship values.</desc> <content> <rng:data type="positiveInteger"> <rng:param name="minInclusive">2</rng:param> <rng:param name="maxInclusive">3</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MODUSMINOR" module="MEI" type="dt"> <desc xml:lang="en">Long-breve relationship values.</desc> <content> <rng:data type="positiveInteger"> <rng:param name="minInclusive">2</rng:param> <rng:param name="maxInclusive">3</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.MUSICFONT" module="MEI" type="dt"> <desc xml:lang="en">Music font family.</desc> <content> <rng:data type="token"/> </content> </macroSpec> <macroSpec ident="data.NCNAME" module="MEI" type="dt"> <desc xml:lang="en">"Convenience" datatype that permits combining enumerated values with a user-supplied name.</desc> <content> <rng:data type="NCName"/> </content> </macroSpec> <macroSpec ident="data.NMTOKEN" module="MEI" type="dt"> <desc xml:lang="en">"Convenience" datatype that permits combining enumerated values with user-supplied values.</desc> <content> <rng:data type="NMTOKEN"/> </content> </macroSpec> <macroSpec ident="data.NONSTAFFPLACE" module="MEI" type="dt"> <desc xml:lang="en">Non-staff location.</desc> <content> <valList type="closed"> <valItem ident="botmar"> <desc xml:lang="en">At the foot of the page.</desc> </valItem> <valItem ident="topmar"> <desc xml:lang="en">At the top of the page.</desc> </valItem> <valItem ident="leftmar"> <desc xml:lang="en">At the left of the page.</desc> </valItem> <valItem ident="rightmar"> <desc xml:lang="en">At the right of the page.</desc> </valItem> <valItem ident="facing"> <desc xml:lang="en">On the opposite, <abbr>i.e.</abbr>, facing, page.</desc> </valItem> <valItem ident="overleaf"> <desc xml:lang="en">On the other side of the leaf.</desc> </valItem> <valItem ident="end"> <desc xml:lang="en">At the end of this division; <abbr>e.g.</abbr>, chapter, volume, etc.</desc> </valItem> <valItem ident="inter"> <desc xml:lang="en">Within a line text; <abbr>i.e.</abbr>, an insertion.</desc> </valItem> <valItem ident="intra"> <desc xml:lang="en">Between the lines of text, less exact than "sub" or "super".</desc> </valItem> <valItem ident="super"> <desc xml:lang="en">Above a line of text, more exact than "intra(linear)". Do not confuse with superscript rendition.</desc> </valItem> <valItem ident="sub"> <desc xml:lang="en">Below a line of text, more exact than "intra(linear)". Do not confuse with subscript rendition.</desc> </valItem> <valItem ident="inspace"> <desc xml:lang="en">In a predefined space; <abbr>i.e.</abbr>, that left by an earlier scribe.</desc> </valItem> <valItem ident="superimposed"> <desc xml:lang="en">Obscures original text; <abbr>e.g.</abbr>, via overstrike, addition of new writing surface material, etc.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.NOTATIONTYPE" module="MEI" type="dt"> <desc xml:lang="en">Notation type and subtype</desc> <content> <valList type="closed"> <valItem ident="cmn"> <desc xml:lang="en">Common Music Notation.</desc> </valItem> <valItem ident="mensural"> <desc xml:lang="en">Mensural notation.</desc> </valItem> <valItem ident="mensural.black"> <desc xml:lang="en">Black mensural notation.</desc> </valItem> <valItem ident="mensural.white"> <desc xml:lang="en">White mensural notation.</desc> </valItem> <valItem ident="neume"> <desc xml:lang="en">Neumatic notation.</desc> </valItem> <!-- <valItem ident="neume.heighted"> <desc xml:lang="en">Heighted neumatic notation</desc> </valItem> <valItem ident="neume.unheighted"> <desc xml:lang="en">Unheighted neumatic notation</desc> </valItem> --> <valItem ident="tab"> <desc xml:lang="en">Tablature notation.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.NOTEHEADMODIFIER" module="MEI" type="dt"> <desc xml:lang="en">Captures any notehead "modifiers"; that is, symbols added to the notehead, such as slashes, lines, text, and enclosures, etc.</desc> <content> <rng:choice> <rng:ref name="data.NOTEHEADMODIFIER.list"/> <rng:ref name="data.NOTEHEADMODIFIER.pat"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.NOTEHEADMODIFIER.list" module="MEI" type="dt"> <desc xml:lang="en">Enumerated note head modifier values.</desc> <content> <valList type="closed"> <valItem ident="slash"> <desc xml:lang="en">Slash (upper right to lower left).</desc> </valItem> <valItem ident="backslash"> <desc xml:lang="en">Backslash (upper left to lower right).</desc> </valItem> <valItem ident="vline"> <desc xml:lang="en">Vertical line.</desc> </valItem> <valItem ident="hline"> <desc xml:lang="en">Horizontal line.</desc> </valItem> <valItem ident="centerdot"> <desc xml:lang="en">Center dot.</desc> </valItem> <valItem ident="paren"> <desc xml:lang="en">Enclosing parentheses.</desc> </valItem> <valItem ident="brack"> <desc xml:lang="en">Enclosing square brackets.</desc> </valItem> <valItem ident="box"> <desc xml:lang="en">Enclosing box.</desc> </valItem> <valItem ident="circle"> <desc xml:lang="en">Enclosing circle.</desc> </valItem> <valItem ident="fences"> <desc xml:lang="en">Enclosing "fences".</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.NOTEHEADMODIFIER.pat" module="MEI" type="dt"> <desc xml:lang="en">Captures text rendered in the center of the notehead.</desc> <content> <rng:choice> <rng:data type="string"> <rng:param name="pattern">centertext\((A|B|C|D|E|F|G)(f|♭|n|♮|s|♯)?\)</rng:param> </rng:data> <rng:data type="string"> <rng:param name="pattern">centertext\(H(s|♯)?\)</rng:param> </rng:data> </rng:choice> </content> </macroSpec> <macroSpec ident="data.OCTAVE" module="MEI" type="dt"> <desc xml:lang="en">Octave number. The default values conform to the Scientific Pitch Notation (SPN).</desc> <content> <rng:data type="nonNegativeInteger"> <rng:param name="maxInclusive">9</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.OCTAVE.DIS" module="MEI" type="dt"> <desc xml:lang="en">The amount of octave displacement; that is, '8' (as in '8va' for 1 octave), '15' (for 2 octaves), or rarely '22' (for 3 octaves).</desc> <content> <rng:data type="positiveInteger"> <rng:param name="pattern">8|15|22</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.ORIENTATION" module="MEI" type="dt"> <desc xml:lang="en">Rotation or reflection of base symbol values.</desc> <content> <rng:data type="token"> <rng:param name="pattern">reversed|90CW|90CCW</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.NEIGHBORINGLAYER" module="MEI" type="dt"> <desc xml:lang="en">For musical material designated to appear on an adjacent layer or staff, the location of the layer relative to the current one; <abbr>i.e.</abbr>, the layer above or the layer below.</desc> <content> <valList type="closed"> <valItem ident="above"> <desc xml:lang="en">The layer immediately above.</desc> </valItem> <valItem ident="below"> <desc xml:lang="en">The layer immediately below.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.PAGE.PANELS" module="MEI" type="dt"> <desc xml:lang="en">The number of panels per page.</desc> <content> <rng:data type="positiveInteger"> <rng:param name="minInclusive">1</rng:param> <rng:param name="maxInclusive">2</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PEDALSTYLE" module="MEI" type="dt"> <desc xml:lang="en">Styling of piano pedal marks.</desc> <content> <valList type="closed"> <valItem ident="line"> <desc xml:lang="en">Continuous line with start and end positions rendered by vertical bars and bounces shown by upward-pointing "blips".</desc> </valItem> <valItem ident="pedline"> <desc xml:lang="en">Pedal down and half pedal rendered with "Ped." followed by a line with end position rendered by vertical bars and bounces shown by upward-pointing "blips".</desc> </valItem> <valItem ident="pedstar"> <desc xml:lang="en">Pedal down and half pedal rendered with "Ped.", pedal up rendered by "*", pedal "bounce" rendered with "* Ped.".</desc> </valItem> <valItem ident="altpedstar"> <desc xml:lang="en">Pedal up and down indications same as with "pedstar", but bounce is rendered with "Ped." only.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.PERCENT" module="MEI" type="dt"> <desc xml:lang="en">Positive decimal number plus '%', <abbr>i.e.</abbr>, [0-9]+(\.[0-9]*)?%.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[0-9]+(\.[0-9]*)?%</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PERCENT.LIMITED" module="MEI" type="dt"> <desc xml:lang="en">Decimal number between 0 and 100, followed by a percent sign "%".</desc> <content> <rng:data type="token"> <rng:param name="pattern">(([0-9]|[1-9][0-9])(\.[0-9]*)?|100(\.0*)?)%</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PERCENT.LIMITED.SIGNED" module="MEI" type="dt"> <desc xml:lang="en">Decimal number between -100 and 100, followed by a percent sign "%".</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\+|-)?(([0-9]|[1-9][0-9])(\.[0-9]*)?|100(\.0*)?)%</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PGFUNC" module="MEI" type="dt"> <desc xml:lang="en">Page header and footer function; a value that defines the function (i.e., the placement) of the header or the footer.</desc> <content> <valList type="closed"> <valItem ident="all"> <desc xml:lang="en">Header or footer for all pages, including the first and the last page, unless a page header or footer for the first or the last page is provided.</desc> </valItem> <valItem ident="first"> <desc xml:lang="en">Header or footer for the first page only.</desc> </valItem> <valItem ident="last"> <desc xml:lang="en">Header or footer for the last page only.</desc> </valItem> <valItem ident="alt1"> <desc xml:lang="en">The first of an alternating pattern of headers or footers.</desc> </valItem> <valItem ident="alt2"> <desc xml:lang="en">The second of an alternating pattern of headers or footers.</desc> </valItem> </valList> </content> <remarks xml:lang="en"> <p>An alternating pattern with "alt1" and "alt2" starts from the first page. However, if header or footer with a func="first" is also defined, it will shift the pattern by one page. A header or footer with func="last" will interupt the pattern.</p> </remarks> </macroSpec> <macroSpec ident="data.PGSCALE" module="MEI" type="dt"> <desc xml:lang="en">Page scale factor; a percentage of the values in page.height and page.width.</desc> <content> <rng:choice> <rng:ref name="data.PERCENT"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.PITCHCLASS" module="MEI" type="dt"> <desc xml:lang="en">Pclass (pitch class) attribute values.</desc> <content> <rng:data type="nonNegativeInteger"> <rng:param name="maxInclusive">11</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PITCHNAME" module="MEI" type="dt"> <desc xml:lang="en">The pitch names (gamut) used within a single octave. The default values conform to Acoustical Society of America representation.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[a-g]</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PITCHNAME.GESTURAL" module="MEI" type="dt"> <desc xml:lang="en">Gestural pitch names need an additional value for when the notated pitch is not to be sounded.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[a-g]|none</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.PITCHNUMBER" module="MEI" type="dt"> <desc xml:lang="en">Pnum (pitch number, <abbr>e.g.</abbr>, MIDI) attribute values.</desc> <content> <rng:data type="nonNegativeInteger"/> </content> </macroSpec> <macroSpec ident="data.PLACEMENT" module="MEI" type="dt"> <desc xml:lang="en">Location information.</desc> <content> <rng:choice> <rng:ref name="data.STAFFREL"/> <rng:ref name="data.NONSTAFFPLACE"/> <rng:ref name="data.NMTOKEN"/> </rng:choice> </content> <constraintSpec ident="constrain_place" scheme="schematron"> <constraint> <sch:rule context="@place"> <sch:assert test="not((some $token in tokenize(normalize-space(.),' ') satisfies $token =('below','above','between','within')) and count(tokenize(normalize-space(.),' ')) gt 1)">Other values not permitted when 'above', 'below', 'between' or 'within' is present.</sch:assert> </sch:rule> </constraint> </constraintSpec> </macroSpec> <macroSpec ident="data.PROLATIO" module="MEI" type="dt"> <desc xml:lang="en">Semibreve-minim relationship values.</desc> <content> <rng:data type="positiveInteger"> <rng:param name="minInclusive">2</rng:param> <rng:param name="maxInclusive">3</rng:param> </rng:data> </content> </macroSpec> <!--<macroSpec ident="data.RATIO" module="MEI" type="dt"> <desc xml:lang="en">A ratio, <abbr>i.e.</abbr>, [0-9]+(\.?[0-9]*)?:[0-9]+(\.?[0-9]*)? For example, "40:7.2319".</desc> <content> <rng:data type="token"> <rng:param name="pattern">[0-9]+(\.?[0-9]*)?:[0-9]+(\.?[0-9]*)?</rng:param> </rng:data> </content> </macroSpec>--> <macroSpec ident="data.RELATIONSHIP" module="MEI" type="dt"> <desc xml:lang="en">General-purpose relationships</desc> <content> <rng:choice> <rng:ref name="data.FRBRRELATIONSHIP"/> <rng:ref name="data.MODSRELATIONSHIP"/> <rng:ref name="data.NMTOKEN"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.ROTATION" module="MEI" type="dt"> <desc xml:lang="en">Rotation.</desc> <content> <rng:choice> <rng:ref name="data.DEGREES"/> <rng:ref name="data.ROTATIONDIRECTION"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.ROTATIONDIRECTION" module="MEI" type="dt"> <desc xml:lang="en">Rotation term.</desc> <content> <valList type="closed"> <valItem ident="none"> <desc xml:lang="en">No rotation.</desc> </valItem> <valItem ident="down"> <desc xml:lang="en">Rotated 180 degrees.</desc> </valItem> <valItem ident="left"> <desc xml:lang="en">Rotated 270 degrees clockwise.</desc> </valItem> <valItem ident="ne"> <desc xml:lang="en">Rotated 45 degrees clockwise.</desc> </valItem> <valItem ident="nw"> <desc xml:lang="en">Rotated 315 degrees clockwise.</desc> </valItem> <valItem ident="se"> <desc xml:lang="en">Rotated 135 degrees clockwise.</desc> </valItem> <valItem ident="sw"> <desc xml:lang="en">Rotated 225 degrees clockwise.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.SCALEDEGREE" module="MEI" type="dt"> <desc xml:lang="en">Scale degree values.</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\^|v)?[1-7](\+|\-)?</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.SLASH" module="MEI" type="dt"> <desc xml:lang="en">The number of slashes to be rendered for tremolandi.</desc> <content> <rng:data type="positiveInteger"> <rng:param name="minInclusive">1</rng:param> <rng:param name="maxInclusive">6</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.SLUR" module="MEI" type="dt"> <desc xml:lang="en">i=initial, m=medial, t=terminal. Number is used to match endpoints of the slur when slurs are nested or overlap.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[i|m|t][1-6]</rng:param> </rng:data> </content> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:space="preserve" valid="feasible"> <note slur="i1 i2"/> <note slur="t1"/> <note slur="t2"/> </egXML> </exemplum> </macroSpec> <macroSpec ident="data.STAFFITEM" module="MEI" type="dt"> <desc xml:lang="en">Items that may be printed above, below, or between staves.</desc> <content> <rng:choice> <rng:ref name="data.STAFFITEM.basic"/> <rng:ref name="data.STAFFITEM.cmn"/> <rng:ref name="data.STAFFITEM.mensural"/> <rng:ref name="data.STAFFITEM.neumes"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.STAFFITEM.basic" module="MEI" type="dt"> <desc xml:lang="en">Items in all repertoires that may be printed near a staff.</desc> <content> <valList type="closed"> <valItem ident="accid"> <desc xml:lang="en">Accidentals.</desc> </valItem> <valItem ident="annot"> <desc xml:lang="en">Annotations.</desc> </valItem> <valItem ident="artic"> <desc xml:lang="en">Articulations.</desc> </valItem> <valItem ident="dir"> <desc xml:lang="en">Directives.</desc> </valItem> <valItem ident="dynam"> <desc xml:lang="en">Dynamics.</desc> </valItem> <valItem ident="harm"> <desc xml:lang="en">Harmony indications.</desc> </valItem> <valItem ident="ornam"> <desc xml:lang="en">Ornaments.</desc> </valItem> <!-- phrase more note-attached than staff-attached? --> <!--<valItem ident="phrase"/>--> <valItem ident="sp"> <desc xml:lang="en">Spoken text.</desc> </valItem> <valItem ident="stageDir"> <desc xml:lang="en">Stage directions.</desc> </valItem> <valItem ident="tempo"> <desc xml:lang="en">Tempo markings.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STAFFLOC" module="MEI" type="dt"> <desc xml:lang="en">Staff location. The value <val>0</val> indicates the bottom line of the current staff; positive values are used for positions above the bottom line and negative values for the positions below. For example, in treble clef, 1 = F4, 2 = G4, 3 = A4, etc. and -1 = D4, -2 = C4, and so on.</desc> <content> <rng:data type="integer"/> </content> </macroSpec> <macroSpec ident="data.STAFFREL" module="MEI" type="dt"> <desc xml:lang="en">Location of musical material relative to a staff.</desc> <content> <rng:choice> <rng:ref name="data.STAFFREL.basic"/> <rng:ref name="data.STAFFREL.extended"/> </rng:choice> </content> <constraintSpec ident="between_requires_adjacent_staves" scheme="schematron"> <constraint> <sch:rule context="mei:*[@place eq 'between']"> <sch:assert test="count(tokenize(normalize-space(string(@staff)), '\s+')) = 2">The @staff attribute must contain 2 numerically-adjacent integer values.</sch:assert> <sch:let name="tokenizedStaff" value="tokenize(normalize-space(string(@staff)), '\s+')"/> <sch:let name="maxValue" value="max((number($tokenizedStaff[1]), number($tokenizedStaff[2])))"/> <sch:let name="minValue" value="min((number($tokenizedStaff[1]), number($tokenizedStaff[2])))"/> <sch:assert test="$maxValue - $minValue = 1">Staves <sch:value-of select="$minValue"/> and <sch:value-of select="$maxValue"/> are not adjacent.</sch:assert> </sch:rule> </constraint> </constraintSpec> </macroSpec> <macroSpec ident="data.STAFFREL.basic" module="MEI" type="dt"> <desc xml:lang="en">Location of symbol relative to a staff.</desc> <content> <valList type="closed"> <valItem ident="above"> <desc xml:lang="en">Above the staff.</desc> </valItem> <valItem ident="below"> <desc xml:lang="en">Below the staff.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STAFFREL.extended" module="MEI" type="dt"> <desc xml:lang="en">Location of symbol relative to a staff.</desc> <content> <valList type="closed"> <valItem ident="between"> <desc xml:lang="en">Between staves.</desc> </valItem> <valItem ident="within"> <desc xml:lang="en">Within/on the staff.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STEMDIRECTION" module="MEI" type="dt"> <desc xml:lang="en">Stem direction.</desc> <content> <rng:choice> <rng:ref name="data.STEMDIRECTION.basic"/> <rng:ref name="data.STEMDIRECTION.extended"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.STEMDIRECTION.basic" module="MEI" type="dt"> <desc xml:lang="en">Common stem directions.</desc> <content> <valList type="closed"> <valItem ident="up"> <desc xml:lang="en">Stem points upwards.</desc> </valItem> <valItem ident="down"> <desc xml:lang="en">Stem points downwards.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STEMDIRECTION.extended" module="MEI" type="dt"> <desc xml:lang="en">Additional stem directions.</desc> <content> <valList type="closed"> <valItem ident="left"> <desc xml:lang="en">Stem points left.</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Stem points right.</desc> </valItem> <valItem ident="ne"> <desc xml:lang="en">Stem points up and right.</desc> </valItem> <valItem ident="se"> <desc xml:lang="en">Stem points down and right.</desc> </valItem> <valItem ident="nw"> <desc xml:lang="en">Stem points up and left.</desc> </valItem> <valItem ident="sw"> <desc xml:lang="en">Stem points down and left.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STEMMODIFIER" module="MEI" type="dt"> <desc xml:lang="en">Stem modification.</desc> <content> <valList type="closed"> <valItem ident="none"> <desc xml:lang="en">No modifications to stem.</desc> </valItem> <valItem ident="1slash"> <desc xml:lang="en">1 slash through stem.</desc> </valItem> <valItem ident="2slash"> <desc xml:lang="en">2 slashes through stem.</desc> </valItem> <valItem ident="3slash"> <desc xml:lang="en">3 slashes through stem.</desc> </valItem> <valItem ident="4slash"> <desc xml:lang="en">4 slashes through stem.</desc> </valItem> <valItem ident="5slash"> <desc xml:lang="en">5 slashes through stem.</desc> </valItem> <valItem ident="6slash"> <desc xml:lang="en">6 slashes through stem.</desc> </valItem> <valItem ident="sprech"> <desc xml:lang="en">X placed on stem.</desc> </valItem> <valItem ident="z"> <desc xml:lang="en">Z placed on stem.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STEMPOSITION" module="MEI" type="dt"> <desc xml:lang="en">Position of a note’s stem relative to the head of the note.</desc> <content> <valList type="closed"> <valItem ident="left"> <desc xml:lang="en">Stem attached to left side of note head.</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Stem attached to right side of note head.</desc> </valItem> <valItem ident="center"> <desc xml:lang="en">Stem is originates from center of note head.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STRINGNUMBER" module="MEI" type="dt"> <desc xml:lang="en">In string tablature, the number of the string to be played, <abbr>i.e.</abbr>, [1-9]+.</desc> <content> <rng:data type="positiveInteger"/> </content> </macroSpec> <macroSpec ident="data.TEMPERAMENT" module="MEI" type="dt"> <desc xml:lang="en">Temperament or tuning system.</desc> <content> <valList type="closed"> <valItem ident="equal"> <desc xml:lang="en">Equal or 12-tone temperament.</desc> </valItem> <valItem ident="just"> <desc xml:lang="en">Just intonation.</desc> </valItem> <valItem ident="mean"> <desc xml:lang="en">Meantone intonation.</desc> </valItem> <valItem ident="pythagorean"> <desc xml:lang="en">Pythagorean tuning.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.TEMPOVALUE" module="MEI" type="dt"> <desc xml:lang="en">Beats (meter signature denominator) per minute, <abbr>e.g.</abbr>, 120.</desc> <content> <rng:data type="decimal"/> </content> </macroSpec> <macroSpec ident="data.TEMPUS" module="MEI" type="dt"> <desc xml:lang="en">Breve-semibreve relationship values.</desc> <content> <rng:data type="positiveInteger"> <rng:param name="minInclusive">2</rng:param> <rng:param name="maxInclusive">3</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.TEXTRENDITIONLIST" module="MEI" type="dt"> <desc xml:lang="en">Closed list of text rendition values.</desc> <content> <valList type="closed"> <valItem ident="quote"> <desc xml:lang="en">Surrounded by single quotes.</desc> </valItem> <valItem ident="quotedbl"> <desc xml:lang="en">Surrounded by double quotes.</desc> </valItem> <valItem ident="italic"> <desc xml:lang="en">Italicized (slanted to right).</desc> </valItem> <valItem ident="oblique"> <desc xml:lang="en">Oblique (slanted to left).</desc> </valItem> <valItem ident="smcaps"> <desc xml:lang="en">Small capitals.</desc> </valItem> <valItem ident="bold"> <desc xml:lang="en">Relative font weight.</desc> </valItem> <valItem ident="bolder"> <desc xml:lang="en">Relative font weight.</desc> </valItem> <valItem ident="lighter"> <desc xml:lang="en">Relative font weight.</desc> </valItem> <valItem ident="box"> <desc xml:lang="en">Enclosed in box.</desc> </valItem> <valItem ident="circle"> <desc xml:lang="en">Enclosed in ellipse/circle.</desc> </valItem> <valItem ident="dbox"> <desc xml:lang="en">Enclosed in diamond.</desc> </valItem> <valItem ident="tbox"> <desc xml:lang="en">Enclosed in triangle.</desc> </valItem> <valItem ident="bslash"> <desc xml:lang="en">Struck through by '\' (back slash).</desc> </valItem> <valItem ident="fslash"> <desc xml:lang="en">Struck through by '/' (forward slash).</desc> </valItem> <valItem ident="line-through"> <desc xml:lang="en">Struck through by '-'; may be qualified to indicate multiple parallel lines, <abbr>e.g.</abbr>, line-through(2).</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">Not rendered, invisible.</desc> </valItem> <valItem ident="overline"> <desc xml:lang="en">Line above the text; may be qualified to indicate multiple parallel lines, <abbr>e.g.</abbr>, overline(3).</desc> </valItem> <valItem ident="overstrike"> <desc xml:lang="en">Use for deleted text fully or partially obscured by other text (such as 'XXXXX') or musical symbols (such as notes, rests, etc.).</desc> </valItem> <valItem ident="strike"> <desc xml:lang="en">Struck through by '-'; equivalent to line-through; may be qualified to indicate multiple parallel lines, <abbr>e.g.</abbr>, strike(3).</desc> </valItem> <valItem ident="sub"> <desc xml:lang="en">Subscript.</desc> </valItem> <valItem ident="sup"> <desc xml:lang="en">Superscript.</desc> </valItem> <valItem ident="superimpose"> <desc xml:lang="en">Use for added text or musical symbols that fully or partially obscure text from an earlier writing stage.</desc> </valItem> <valItem ident="underline"> <desc xml:lang="en">Underlined; may be qualified to indicate multiple parallel lines, <abbr>e.g.</abbr>, underline(2).</desc> </valItem> <valItem ident="x-through"> <desc xml:lang="en">Crossed-out; equivalent to 'bslash' (\) plus 'fslash' (/); that is, a hand-written 'X'; may be qualified to indicate multiple parallel lines, <abbr>e.g.</abbr>, x-through(2).</desc> </valItem> <valItem ident="ltr"> <desc xml:lang="en">Left-to-right (BIDI embed).</desc> </valItem> <valItem ident="rtl"> <desc xml:lang="en">Right-to-left (BIDI embed).</desc> </valItem> <valItem ident="lro"> <desc xml:lang="en">Left-to-right (BIDI override).</desc> </valItem> <valItem ident="rlo"> <desc xml:lang="en">Right-to-left (BIDI override).</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.TEXTRENDITIONPAR" module="MEI" type="dt"> <desc xml:lang="en">Parameterized text rendition values.</desc> <content> <rng:data type="string"> <rng:param name="pattern">(underline|overline|line-through|strike|x-through)\(\d+\)</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.TEXTRENDITION" module="MEI" type="dt"> <desc xml:lang="en">Text rendition values.</desc> <content> <rng:choice> <rng:ref name="data.TEXTRENDITIONLIST"/> <rng:ref name="data.TEXTRENDITIONPAR"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.TIE" module="MEI" type="dt"> <desc xml:lang="en">Tie attribute values: initial, medial, terminal.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[i|m|t]</rng:param> </rng:data> </content> </macroSpec> <macroSpec ident="data.TSTAMPOFFSET" module="MEI" type="dt"> <desc xml:lang="en">A positive or negative offset from the value given in the tstamp attribute in terms of musical time, <abbr>i.e.</abbr>, beats[.fractional beat part].</desc> <content> <rng:data type="decimal"/> </content> </macroSpec> <macroSpec ident="data.TUPLET" module="MEI" type="dt"> <desc xml:lang="en">Tuplet attribute values: initial, medial, terminal.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[i|m|t][1-6]</rng:param> </rng:data> </content> </macroSpec> <!--<macroSpec ident="data.UNEUMEFORM" module="MEI" type="dt"> <desc xml:lang="en">Basic, <abbr>i.e.</abbr>, single, uninterrupted, neume forms.</desc> <content> <valList type="closed"> <valItem ident="liquescent1"/> <valItem ident="liquescent2"/> <valItem ident="liquescent3"/> <valItem ident="quilismatic"/> <valItem ident="rectangular"/> <valItem ident="rhombic"/> <valItem ident="tied"/> </valList> </content> </macroSpec>--> <!--<macroSpec ident="data.UNEUMENAME" module="MEI" type="dt"> <desc xml:lang="en">Basic, <abbr>i.e.</abbr>, single, uninterrupted, neume names.</desc> <content> <valList type="closed"> <valItem ident="punctum"/> <valItem ident="virga"/> <valItem ident="pes"/> <valItem ident="clivis"/> <valItem ident="torculus"/> <valItem ident="torculusresupinus"/> <valItem ident="porrectus"/> <valItem ident="porrectusflexus"/> <valItem ident="apostropha"/> <valItem ident="oriscus"/> <valItem ident="pressusmaior"/> <valItem ident="pressusminor"/> <valItem ident="virgastrata"/> </valList> </content> </macroSpec>--> <macroSpec ident="data.URI" module="MEI" type="dt"> <desc xml:lang="en">A Uniform Resource Identifier, see [RFC2396].</desc> <content> <rng:data type="anyURI"/> </content> </macroSpec> <macroSpec ident="data.VERTICALALIGNMENT" module="MEI" type="dt"> <desc xml:lang="en">Data values for attributes that capture vertical alignment.</desc> <content> <valList type="closed"> <valItem ident="top"> <desc xml:lang="en">Top aligned.</desc> </valItem> <valItem ident="middle"> <desc xml:lang="en">Middle aligned.</desc> </valItem> <valItem ident="bottom"> <desc xml:lang="en">Bottom aligned.</desc> </valItem> <valItem ident="baseline"> <desc xml:lang="en">Baseline aligned.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.WORD" module="MEI" type="dt"> <desc xml:lang="en">A single "word" that contains only letters, digits, punctuation characters, or symbols. It cannot contain whitespace.</desc> <content> <rng:data type="token"> <rng:param name="pattern">(\p{L}|\p{N}|\p{P}|\p{S})*</rng:param> </rng:data> </content> </macroSpec> <classSpec ident="att.notationType" module="MEI" type="atts"> <desc xml:lang="en">Attributes that provide for classification of notation.</desc> <attList> <attDef ident="notationtype" usage="opt"> <desc xml:lang="en">Contains classification of the notation contained or described by the element bearing this attribute.</desc> <datatype> <rng:ref name="data.NOTATIONTYPE"/> </datatype> </attDef> <attDef ident="notationsubtype" usage="opt"> <desc xml:lang="en">Provides any sub-classification of the notation contained or described by the element, additional to that given by its notationtype attribute.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <constraintSpec ident="When_notationsubtype" scheme="schematron"> <constraint> <sch:rule context="mei:*[@notationsubtype]"> <sch:assert test="@notationtype">An element with a notationsubtype attribute must have a notationtype attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.analytical"> <moduleSpec ident="MEI.analytical"> <desc xml:lang="en">Analytical component declarations.</desc> </moduleSpec> <classSpec ident="att.accid.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.ambitus.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.intervalHarmonic"/> </classes> </classSpec> <classSpec ident="att.ambNote.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.anchoredText.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.annot.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.arpeg.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.artic.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.attacca.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.barLine.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.beam.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.beamSpan.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.beatRpt.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.bend.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.bracketSpan.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.breath.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.bTrem.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.caesura.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.chord.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.chord.anl.cmn"/> </classes> </classSpec> <classSpec ident="att.chordDef.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.chordMember.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.intervalHarmonic"/> </classes> </classSpec> <classSpec ident="att.clef.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.clefGrp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.cpMark.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.curve.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.custos.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.mdiv.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.dir.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.dot.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.dynam.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.ending.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.episema.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.f.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.fermata.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.fing.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.fingGrp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.fTrem.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.gliss.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.grpSym.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.hairpin.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.halfmRpt.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.harm.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.intervalHarmonic"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Indicates to what degree the harmonic label is supported by the notation.</desc> <valList type="closed"> <valItem ident="explicit"> <desc xml:lang="en">The notation contains all the notes necessary for the harmonic label, <abbr>e.g.</abbr>, the notes "D F♯ A" for the harmonic label "D".</desc> </valItem> <valItem ident="implied"> <desc xml:lang="en">The harmonic label relies on notes implied, but not actually present, in the notation, <abbr>e.g.</abbr>, the notes "D F♯ C" for the harmonic label "D7". The note "A" is missing from the notation, but can be implied.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.graceGrp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.harmonicFunction" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes describing the harmonic function of a single pitch.</desc> <attList> <attDef ident="deg" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">degree</gloss> <desc xml:lang="en">Captures scale degree information using <ref target="https://www.humdrum.org/rep/deg/">Humdrum **deg syntax</ref> -- an optional indicator of melodic approach (^ = ascending approach, v = descending approach), a scale degree value (1 = tonic ... 7 = leading tone), and an optional indication of chromatic alteration, <val>1</val>, <val>v7</val>, <val>^1</val>, or <val>v5+</val>, for example. The amount of chromatic alternation is not indicated.</desc> <datatype> <rng:ref name="data.SCALEDEGREE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.harpPedal.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.hispanTick.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.instrDef.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.intervalHarmonic" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes that describe harmonic intervals.</desc> <attList> <attDef ident="inth" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">interval harmonic</gloss> <desc xml:lang="en">Encodes the harmonic interval between pitches occurring at the same time.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.INTERVAL.HARMONIC"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.intervalMelodic" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes that provide for description of intervallic content.</desc> <attList> <attDef ident="intm" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">interval melodic</gloss> <desc xml:lang="en">Encodes the melodic interval from the previous pitch. The value may be a general directional indication (u, d, s, etc.), an indication of diatonic interval direction, quality, and size, or a precise numeric value in half steps.</desc> <datatype> <rng:ref name="data.INTERVAL.MELODIC"/> </datatype> </attDef> </attList> </classSpec> <!--<classSpec ident="att.intervallicDesc" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes that provide for description of intervallic content.</desc> <classes> <memberOf key="att.intervalHarmonic"/> <memberOf key="att.intervalMelodic"/> </classes> </classSpec>--> <classSpec ident="att.keyAccid.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.keySig.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.accidental"/> <memberOf key="att.keyMode"/> <memberOf key="att.pitch"/> </classes> </classSpec> <classSpec ident="att.keySigDefault.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the analytical domain that are related to key signatures.</desc> <attList> <attDef ident="key.accid" usage="opt"> <desc xml:lang="en">Contains an accidental for the tonic key, if one is required, <abbr>e.g.</abbr>, if <att>key.pname</att> equals <val>c</val> and <att>key.accid</att> equals <val>s</val>, then a tonic of C# is indicated.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.GESTURAL"/> </datatype> </attDef> <attDef ident="key.mode" usage="opt"> <desc xml:lang="en">Indicates major, minor, or other tonality.</desc> <datatype> <rng:ref name="data.MODE"/> </datatype> </attDef> <attDef ident="key.pname" usage="opt"> <desc xml:lang="en">Holds the pitch name of the tonic key, <abbr>e.g.</abbr>, <val>c</val> for the key of C.</desc> <datatype> <rng:ref name="data.PITCHNAME"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.layer.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.layerDef.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.ligature.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.line.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.liquescent.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.lv.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.lyrics.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.measure.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.joined"/> </classes> </classSpec> <classSpec ident="att.melodicFunction" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes describing melodic function.</desc> <attList> <attDef ident="mfunc" usage="opt"> <desc xml:lang="en">Describes melodic function using <ref target="https://www.humdrum.org/rep/embel/">Humdrum **embel syntax</ref>.</desc> <datatype> <rng:ref name="data.MELODICFUNCTION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.mensur.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.metaMark.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.meterSig.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.meterSigGrp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.midi.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.mNum.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.mordent.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.mRest.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.fermataPresent"/> </classes> </classSpec> <classSpec ident="att.mRpt.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.mRpt2.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.mSpace.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes in the CMN repertoire. Use the n attribute to explicitly encode this measure’s position in a string of measures containing only <gi scheme="MEI">mRest</gi> elements.</desc> <classes> <memberOf key="att.fermataPresent"/> </classes> </classSpec> <classSpec ident="att.multiRest.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.multiRpt.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.nc.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.harmonicFunction"/> <memberOf key="att.intervalMelodic"/> <memberOf key="att.melodicFunction"/> <memberOf key="att.neumeType"/> <memberOf key="att.pitchClass"/> <memberOf key="att.solfa"/> </classes> </classSpec> <classSpec ident="att.ncGrp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.neume.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.neumeType"/> </classes> </classSpec> <classSpec ident="att.note.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.accidental"/> <memberOf key="att.articulation"/> <memberOf key="att.harmonicFunction"/> <memberOf key="att.intervalMelodic"/> <memberOf key="att.melodicFunction"/> <memberOf key="att.note.anl.cmn"/> <memberOf key="att.note.anl.mensural"/> <memberOf key="att.fermataPresent"/> <memberOf key="att.pitchClass"/> <memberOf key="att.solfa"/> </classes> </classSpec> <classSpec ident="att.octave.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.ornam.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.oriscus.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.ossia.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.pad.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.part.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.parts.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.pb.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.pedal.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.phrase.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.joined"/> </classes> </classSpec> <classSpec ident="att.pitchClass" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes that describe pitch class.</desc> <attList> <attDef ident="pclass" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">pitch class</gloss> <desc xml:lang="en">Holds pitch class information.</desc> <datatype> <rng:ref name="data.PITCHCLASS"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.plica.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes that describe the properties of a plica in the mensural repertoire.</desc> </classSpec> <classSpec ident="att.proport.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.quilisma.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.rdg.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.refrain.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.reh.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.repeatMark.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.rest.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.rest.anl.cmn"/> </classes> </classSpec> <classSpec ident="att.sb.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.score.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.scoreDef.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.keySigDefault.anl"/> </classes> </classSpec> <classSpec ident="att.section.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.slur.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.joined"/> </classes> </classSpec> <classSpec ident="att.signifLet.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.solfa" module="MEI.analytical" type="atts"> <desc xml:lang="en">Attributes that specify pitch using sol-fa.</desc> <attList> <attDef ident="psolfa" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">pitch sol-fa</gloss> <desc xml:lang="en">Contains sol-fa designation, <abbr>e.g.</abbr>, do, re, mi, etc., in either a fixed or movable Do system.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.sp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.space.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.space.anl.cmn"/> </classes> </classSpec> <classSpec ident="att.staff.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.staffDef.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.keySigDefault.anl"/> </classes> </classSpec> <classSpec ident="att.staffGrp.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.stageDir.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.stem.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes that describe the properties of a stem in the mensural repertoire.</desc> </classSpec> <classSpec ident="att.strophicus.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.syl.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.syllable.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.symbol.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.tempo.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.tie.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.trill.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.tuplet.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.tupletSpan.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> <classes> <memberOf key="att.tuplet.anl"/> </classes> </classSpec> <classSpec ident="att.turn.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.verse.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> <classSpec ident="att.volta.anl" module="MEI.analytical" type="atts"> <desc xml:lang="en">Analytical domain attributes.</desc> </classSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.cmn"> <moduleSpec ident="MEI.cmn"> <desc xml:lang="en">Common Music Notation (CMN) repertoire component declarations.</desc> </moduleSpec> <macroSpec ident="data.DURATION.cmn" module="MEI.cmn" type="dt"> <desc xml:lang="en">Logical, that is, written, duration attribute values for the CMN repertoire.</desc> <content> <valList type="closed"> <valItem ident="long"> <desc xml:lang="en">Quadruple whole note.</desc> </valItem> <valItem ident="breve"> <desc xml:lang="en">Double whole note.</desc> </valItem> <valItem ident="1"> <desc xml:lang="en">Whole note.</desc> </valItem> <valItem ident="2"> <desc xml:lang="en">Half note.</desc> </valItem> <valItem ident="4"> <desc xml:lang="en">Quarter note.</desc> </valItem> <valItem ident="8"> <desc xml:lang="en">8th note.</desc> </valItem> <valItem ident="16"> <desc xml:lang="en">16th note.</desc> </valItem> <valItem ident="32"> <desc xml:lang="en">32nd note.</desc> </valItem> <valItem ident="64"> <desc xml:lang="en">64th note.</desc> </valItem> <valItem ident="128"> <desc xml:lang="en">128th note.</desc> </valItem> <valItem ident="256"> <desc xml:lang="en">256th note.</desc> </valItem> <valItem ident="512"> <desc xml:lang="en">512th note.</desc> </valItem> <valItem ident="1024"> <desc xml:lang="en">1024th note.</desc> </valItem> <valItem ident="2048"> <desc xml:lang="en">2048th note.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STAFFITEM.cmn" module="MEI.cmn" type="dt"> <desc xml:lang="en">Items in the CMN repertoire that may be printed near a staff.</desc> <content> <valList type="closed"> <valItem ident="beam"> <desc xml:lang="en">Beams.</desc> </valItem> <!-- beamSpan is subsumed within "beam" --> <!--<valItem ident="beamSpan"/>--> <valItem ident="bend"> <desc xml:lang="en">Bend indications.</desc> </valItem> <valItem ident="bracketSpan"> <desc xml:lang="en">Brackets, <abbr>e.g.</abbr>, for transcribed ligatures.</desc> </valItem> <valItem ident="breath"> <desc xml:lang="en">Breath marks.</desc> </valItem> <valItem ident="cpMark"> <desc xml:lang="en">Copy marks.</desc> </valItem> <valItem ident="fermata"> <desc xml:lang="en">Fermatas.</desc> </valItem> <valItem ident="fing"> <desc xml:lang="en">Fingerings.</desc> </valItem> <!-- fingGrp is subsumed within "fing" --> <!--<valItem ident="fingGrp"/>--> <valItem ident="hairpin"> <desc xml:lang="en">Hairpin dynamics.</desc> </valItem> <valItem ident="harpPedal"> <desc xml:lang="en">Harp pedals.</desc> </valItem> <valItem ident="lv"> <desc xml:lang="en">Laissez vibrer indications, sometimes called "open ties".</desc> </valItem> <valItem ident="mordent"> <desc xml:lang="en">Mordents.</desc> </valItem> <valItem ident="octave"> <desc xml:lang="en">Octaviation marks.</desc> </valItem> <valItem ident="pedal"> <desc xml:lang="en">Piano pedal marks.</desc> </valItem> <valItem ident="reh"> <desc xml:lang="en">Rehearsal marks.</desc> </valItem> <!-- more note-attached than staff-attached? --> <!--<valItem ident="slur"/>--> <valItem ident="tie"> <desc xml:lang="en">Ties.</desc> </valItem> <valItem ident="trill"> <desc xml:lang="en">Trills.</desc> </valItem> <valItem ident="tuplet"> <desc xml:lang="en">Tuplets.</desc> </valItem> <!-- tupletSpan is subsumed within "tuplet" --> <!--<valItem ident="tupletSpan"/>--> <valItem ident="turn"> <desc xml:lang="en">Turns.</desc> </valItem> </valList> </content> </macroSpec> <classSpec ident="att.arpeg.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startId"/> </classes> <attList> <attDef ident="order" usage="opt"> <desc xml:lang="en">Describes the direction in which an arpeggio is to be performed.</desc> <valList type="closed"> <valItem ident="up"> <desc xml:lang="en">Lowest to highest pitch.</desc> </valItem> <valItem ident="down"> <desc xml:lang="en">Highest to lowest pitch.</desc> </valItem> <valItem ident="nonarp"> <desc xml:lang="en">Non-arpeggiated style (usually rendered with a preceding bracket instead of a wavy line).</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.beam.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.beamedWith"/> </classes> </classSpec> <classSpec ident="att.beamedWith" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes indicating cross-staff beaming.</desc> <attList> <attDef ident="beam.with" usage="opt"> <desc xml:lang="en">In the case of cross-staff beams, the beam.with attribute is used to indicate which staff the beam is connected to; that is, the staff above or the staff below.</desc> <datatype> <rng:ref name="data.NEIGHBORINGLAYER"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.beaming.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Used by layerDef, staffDef, and scoreDef to provide default values for attributes in the logical domain related to beaming.</desc> <attList> <attDef ident="beam.group" usage="opt"> <desc xml:lang="en">Provides an example of how automated beaming (including secondary beams) is to be performed.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> <attDef ident="beam.rests" usage="opt"> <desc xml:lang="en">Indicates whether automatically-drawn beams should include rests shorter than a quarter note duration.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>beam.group</att> attribute can be used to set a default beaming pattern to be used when no beaming is indicated at the event level. <att>beam.group</att> must contain a comma-separated list of time values that add up to a measure, <abbr>e.g.</abbr>, in 4/4 time '4,4,4,4' indicates each quarter note worth of shorter notes would be beamed together. Parentheses can be used to indicate sub-groupings of secondary beams. For example, '(4.,4.,4.)' in 9/8 meter indicates one outer beam per measure with secondary beams broken at each dotted quarter duration, while a measure of 16th notes in 4/4 with <att>beam.group</att> equal to '(4,4),(4,4)' will result in a primary beam covering all the notes and secondary beams for each group of 4 notes. This beaming "directive" can be overridden by using <gi scheme="MEI">beam</gi> elements. If neither <gi scheme="MEI">beam</gi> elements or the <att>beam.group</att> attribute is used, then no beaming is rendered. Beaming can be explicitly 'turned off' by setting <att>beam.group</att> to an empty string.</p> </remarks> </classSpec> <classSpec ident="att.beamPresent" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that indicate whether an event lies under a beam.</desc> <attList> <attDef ident="beam" usage="opt"> <desc xml:lang="en">Indicates that this event is "under a beam".</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.BEAM"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.beamRend" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that record the visual rendition of beams.</desc> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Captures whether a beam is "feathered" and in which direction.</desc> <valList type="closed"> <valItem ident="acc"> <gloss versionDate="2022-05-18" xml:lang="en">accelerando</gloss> <desc xml:lang="en">means that the secondary beams become progressively more distant toward the end of the beam.</desc> </valItem> <valItem ident="mixed"> <gloss versionDate="2022-05-18" xml:lang="en">mixed acc and rit</gloss> <desc xml:lang="en">for beams that are "feathered" in both directions.</desc> </valItem> <valItem ident="rit"> <gloss versionDate="2022-05-18" xml:lang="en">ritardando</gloss> <desc xml:lang="en">indicates that the secondary beams get progressively closer together toward the end of the beam.</desc> </valItem> <valItem ident="norm"> <gloss versionDate="2022-05-18" xml:lang="en">normal</gloss> <desc xml:lang="en">indicates that the secondary beams are equidistant along the course of the beam.</desc> </valItem> </valList> </attDef> <attDef ident="place" usage="opt"> <desc xml:lang="en">Records the placement of the beam relative to the events it affects.</desc> <datatype> <rng:ref name="data.BEAMPLACE"/> </datatype> <constraintSpec ident="check_beam_place" scheme="schematron"> <constraint> <sch:rule context="mei:beam[@place eq 'mixed' and not(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ./@staff] or descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ancestor::mei:staff/@n])]"> <sch:assert test="count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@stem.dir]) = count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'])">Stem direction must be specified for all notes and chords under the beam.</sch:assert> <sch:assert test="count(distinct-values(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord']/@stem.dir)) > 1">Opposing stem directions are required for a beam with @place="mixed".</sch:assert> </sch:rule> <sch:rule context="mei:beam[@place eq 'mixed' and (descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ./@staff] or descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@staff != ancestor::mei:staff/@n]) and count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'][@stem.dir]) = count(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord'])]"> <sch:assert test="count(distinct-values(descendant::mei:*[local-name() eq 'note' or local-name() eq 'chord']/@stem.dir)) > 1">Opposing stem directions are required for a beam with @place="mixed".</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="slash" usage="opt"> <desc xml:lang="en">Indicates presence of slash through the beam.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="slope" usage="opt"> <desc xml:lang="en">Records the slope of the beam.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.beamSecondary" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that capture information about secondary beaming.</desc> <attList> <attDef ident="breaksec" usage="opt"> <desc xml:lang="en">Presence of this attribute indicates that the secondary beam should be broken following this note/chord. The value of the attribute records the number of beams which should remain unbroken.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.beamSpan.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.beamedWith"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.beatRpt.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> </classes> <attList> <attDef ident="beatdef" usage="opt"> <desc xml:lang="en">Indicates the performed duration represented by the beatRpt symbol; expressed in time signature denominator units.</desc> <datatype> <rng:data type="decimal"> <rng:param name="pattern">\d+(\.\d+)?</rng:param> </rng:data> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.bend.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.bracketSpan.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="func" usage="req"> <gloss versionDate="2022-10-18" xml:lang="en">function</gloss> <desc xml:lang="en">Describes the function of the bracketed event sequence.</desc> <datatype> <rng:data type="NMTOKENS"/> </datatype> <valList type="semi"> <valItem ident="coloration"> <desc xml:lang="en">Represents coloration in the mensural notation source material.</desc> </valItem> <valItem ident="cross-rhythm"> <desc xml:lang="en">Marks a sequence which does not match the current meter.</desc> </valItem> <valItem ident="ligature"> <desc xml:lang="en">Represents a ligature in the mensural notation source material.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.breath.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.startId"/> <memberOf key="att.timestamp.log"/> </classes> </classSpec> <classSpec ident="att.bTrem.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.augmentDots"/> <memberOf key="att.duration.log"/> <memberOf key="att.numbered"/> <memberOf key="att.tremForm"/> </classes> </classSpec> <classSpec ident="att.chord.anl.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Analytical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.beamPresent"/> <memberOf key="att.fermataPresent"/> <memberOf key="att.lvPresent"/> <memberOf key="att.ornamPresent"/> <memberOf key="att.slurPresent"/> <memberOf key="att.tiePresent"/> <memberOf key="att.tupletPresent"/> </classes> </classSpec> <classSpec ident="att.chord.ges.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Gestural domain attributes for CMN features.</desc> </classSpec> <classSpec ident="att.chord.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.graced"/> </classes> </classSpec> <classSpec ident="att.chord.vis.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Visual domain attributes for chord. The slur, slur.dir, slur.rend, tie, tie.dir, and tie.rend attributes here are "syntactic sugar" for these attributes on each of the chord's individual notes. The values here apply to all the notes in the chord. If some notes are slurred or tied while others aren't, then the individual note attributes must be used.</desc> <classes> <memberOf key="att.beamSecondary"/> </classes> </classSpec> <classSpec ident="att.cutout" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that indicate how to render the staff lines of the measure containing an element belonging to this attribute class.</desc> <attList> <attDef ident="cutout" usage="opt"> <desc xml:lang="en">"Cut-out" style.</desc> <valList type="closed"> <valItem ident="cutout"> <desc xml:lang="en">The staff lines should not be drawn.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.mNum.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.expandable" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that indicate whether to render a repeat symbol or the source material to which it refers.</desc> <attList> <attDef ident="expand" usage="opt"> <desc xml:lang="en">Indicates whether to render a repeat symbol or the source material to which it refers. A value of 'true' renders the source material, while 'false' displays the repeat symbol.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.fermata.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> </classes> </classSpec> <classSpec ident="att.fTrem.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.augmentDots"/> <memberOf key="att.duration.log"/> <memberOf key="att.tremForm"/> </classes> </classSpec> <classSpec ident="att.glissPresent" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that indicate whether an event participates in a glissando.</desc> <attList> <attDef ident="gliss" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">glissando</gloss> <desc xml:lang="en">Indicates that this element participates in a glissando. If visual information about the glissando needs to be recorded, then a <gi scheme="MEI">gliss</gi> element should be employed instead.</desc> <datatype> <rng:ref name="data.GLISSANDO"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.gliss.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.graced" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that mark a note or chord as a "grace", how it should "steal" time, and how much time should be allotted to the grace note/chord.</desc> <attList> <attDef ident="grace" usage="opt"> <desc xml:lang="en">Marks a note or chord as a "grace" (without a definite performed duration) and records from which other note/chord it should "steal" time.</desc> <datatype> <rng:ref name="data.GRACE"/> </datatype> </attDef> <attDef ident="grace.time" usage="opt"> <desc xml:lang="en">Records the amount of time to be "stolen" from a non-grace note/chord.</desc> <datatype> <rng:ref name="data.PERCENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.graceGrp.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.graced"/> </classes> <attList> <attDef ident="attach" usage="opt"> <desc xml:lang="en">Records whether the grace note group is attached to the following event or to the preceding one. The usual name for the latter is "Nachschlag".</desc> <valList type="closed"> <valItem ident="pre"> <desc xml:lang="en">Attached to the preceding event.</desc> </valItem> <valItem ident="post"> <desc xml:lang="en">Attached to the following event.</desc> </valItem> <valItem ident="unknown"> <desc xml:lang="en">Attachment is ambiguous.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.hairpin.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="form" usage="req"> <desc xml:lang="en">Captures the visual rendition and function of the hairpin; that is, whether it indicates an increase or a decrease in volume.</desc> <valList type="closed"> <valItem ident="cres"> <desc xml:lang="en">Crescendo; <abbr>i.e.</abbr>, louder.</desc> </valItem> <valItem ident="dim"> <desc xml:lang="en">Diminuendo; <abbr>i.e.</abbr>, softer.</desc> </valItem> </valList> </attDef> <attDef ident="niente" usage="opt"> <desc xml:lang="en">Indicates that the hairpin starts from or ends in silence. Often rendered as a small circle attached to the closed end of the hairpin. See Gould, p. 108.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.halfmRpt.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.duration.log"/> </classes> </classSpec> <classSpec ident="att.harpPedal.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes. The pedal setting, <abbr>i.e.</abbr>, flat, natural, or sharp, for each diatonic pitch name is indicated by the seven letter-named attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> </classes> <attList> <attDef ident="c" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s C strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> <attDef ident="d" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s D strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> <attDef ident="e" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s E strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> <attDef ident="f" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s F strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> <attDef ident="g" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s G strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> <attDef ident="a" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s A strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> <attDef ident="b" usage="opt"> <desc xml:lang="en">Indicates the pedal setting for the harp’s B strings.</desc> <defaultVal>n</defaultVal> <valList type="closed"> <valItem ident="f"> <desc xml:lang="en">Flat.</desc> </valItem> <valItem ident="n"> <desc xml:lang="en">Natural.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Sharp.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.layerDef.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.beaming.log"/> </classes> </classSpec> <classSpec ident="att.lv.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.lvPresent" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that indicate the presence of an l.v. (laissez vibrer) marking attached to a feature. If visual information about the lv sign needs to be recorded, then an <gi scheme="MEI">lv</gi> element should be employed.</desc> <attList> <attDef ident="lv" usage="opt"> <desc xml:lang="en">Indicates the attachment of an l.v. (laissez vibrer) sign to this element.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.measure.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes. The n attribute contains a name or number associated with the measure (Read, p. 445). Often, this is an integer, but not always. For example, some measures, especially incomplete measures or those under an ending mark, may have labels that contain an integer plus a suffix, such as '12a'. Measures may even have labels, especially in editorial or analytical uses of MEI, that are entirely non-numeric strings. Measure numbers may be machine-generated instead of encoding them in the markup. However, an explicit measure number should restart numbering with the given value. The join attribute may be used to indicate another measure which metrically completes the current, incomplete one.</desc> <classes> <memberOf key="att.alignment"/> <memberOf key="att.meterConformance.bar"/> </classes> <attList> <attDef ident="left" usage="opt"> <desc xml:lang="en">Indicates the visual rendition of the left bar line. It is present here only for facilitation of translation from legacy encodings which use it. Usually, it can be safely ignored.</desc> <datatype> <rng:ref name="data.BARRENDITION"/> </datatype> </attDef> <attDef ident="right" usage="opt"> <desc xml:lang="en">Indicates the function of the right bar line and is structurally important.</desc> <datatype> <rng:ref name="data.BARRENDITION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meterSigGrp.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <attList> <attDef ident="func" usage="req"> <gloss versionDate="2022-10-18" xml:lang="en">function</gloss> <desc xml:lang="en">Function of the meter signature group.</desc> <valList type="closed"> <valItem ident="alternating"> <desc xml:lang="en">Meter signatures apply to alternating measures.</desc> </valItem> <valItem ident="interchanging"> <desc xml:lang="en">Meter signatures are interchangeable, <abbr>e.g.</abbr>, 3/4 and 6/8.</desc> </valItem> <valItem ident="mixed"> <desc xml:lang="en">Meter signatures with different unit values are used to express a complex metrical pattern that is not expressible using traditional means, such as 2/4+1/8.</desc> </valItem> <valItem ident="other"> <desc xml:lang="en">Meter signatures in a relationship not covered by the values alternating, interchanging or mixed.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.mRest.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.cue"/> <memberOf key="att.duration.additive"/> <memberOf key="att.event"/> </classes> </classSpec> <classSpec ident="att.mRpt.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.numbered"/> </classes> </classSpec> <classSpec ident="att.mRpt2.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> </classes> </classSpec> <classSpec ident="att.mSpace.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.duration.additive"/> <memberOf key="att.event"/> </classes> </classSpec> <classSpec ident="att.multiRest.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.numbered"/> </classes> </classSpec> <classSpec ident="att.multiRpt.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.numbered"/> </classes> </classSpec> <classSpec ident="att.note.anl.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Analytical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.beamPresent"/> <memberOf key="att.glissPresent"/> <memberOf key="att.lvPresent"/> <memberOf key="att.ornamPresent"/> <memberOf key="att.slurPresent"/> <memberOf key="att.sylText"/> <memberOf key="att.tiePresent"/> <memberOf key="att.tupletPresent"/> </classes> </classSpec> <classSpec ident="att.note.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.graced"/> </classes> </classSpec> <classSpec ident="att.note.vis.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.beamSecondary"/> </classes> </classSpec> <classSpec ident="att.numbered" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that record numbers to be displayed with a feature.</desc> <attList> <attDef ident="num" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">number</gloss> <desc xml:lang="en">Records a number or count accompanying a notational feature.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.numberPlacement" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that record the placement and visibility of numbers that accompany a bowed tremolo or tuplet.</desc> <attList> <attDef ident="num.place" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">number placement</gloss> <desc xml:lang="en">States where the tuplet number will be placed in relation to the note heads.</desc> <datatype> <rng:ref name="data.STAFFREL.basic"/> </datatype> </attDef> <attDef ident="num.visible" usage="opt"> <desc xml:lang="en">Determines if the tuplet number is visible.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.octave.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.octaveDisplacement"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="coll" usage="opt"> <desc xml:lang="en">Indicates whether the octave displacement should be performed simultaneously with the written notes, <abbr>i.e.</abbr>, "coll' ottava". Unlike other octave signs which are indicated by broken lines, coll' ottava typically uses an unbroken line or a series of longer broken lines, ending with a short vertical stroke. See Read, p. 47-48.</desc> <valList type="closed"> <valItem ident="coll"> <desc xml:lang="en">Coll' ottava (with the octave).</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.ossia.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.pedal.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="dir" usage="req"> <gloss versionDate="2022-10-30" xml:lang="en">direction</gloss> <desc xml:lang="en">Records the position of the piano damper pedal.</desc> <valList type="closed"> <valItem ident="down"> <desc xml:lang="en">Depress the pedal.</desc> </valItem> <valItem ident="up"> <desc xml:lang="en">Release the pedal.</desc> </valItem> <valItem ident="half"> <desc xml:lang="en">Half pedal.</desc> </valItem> <valItem ident="bounce"> <desc xml:lang="en">Release then immediately depress the pedal.</desc> </valItem> </valList> </attDef> <attDef ident="func" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">function</gloss> <desc xml:lang="en">Indicates the function of the depressed pedal, but not necessarily the text associated with its use. Use the <gi>dir</gi> element for such text.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="sustain"> <desc xml:lang="en">The sustain pedal, also referred to as the "damper" pedal, allows the piano strings to vibrate sympathetically with the struck strings. It is the right-most and the most frequently used pedal on modern pianos.</desc> </valItem> <valItem ident="soft"> <desc xml:lang="en">The soft pedal, sometimes called the "una corda", "piano", or "half-blow" pedal, reduces the volume and modifies the timbre of the piano. On the modern piano, it is the left-most pedal.</desc> </valItem> <valItem ident="sostenuto"> <desc xml:lang="en">The sostenuto or tone-sustaining pedal allows notes already undamped to continue to ring while other notes are damped normally; that is, on their release by the fingers. This is usually the center pedal of the modern piano.</desc> </valItem> <valItem ident="silent"> <desc xml:lang="en">The silent or practice pedal mutes the volume of the piano so that one may practice quietly. It is sometimes a replacement for the sostenuto pedal, especially on an upright or vertical instrument.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.phrase.vis.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.curvature"/> <memberOf key="att.lineRend.base"/> </classes> </classSpec> <classSpec ident="att.pianoPedals" module="MEI.cmn" type="atts"> <desc xml:lang="en">Used by scoreDef and staffDef to provide default description of piano pedal rendition.</desc> <attList> <attDef ident="pedal.style" usage="opt"> <desc xml:lang="en">Determines whether piano pedal marks should be rendered as lines or as terms.</desc> <datatype> <rng:ref name="data.PEDALSTYLE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.reh.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.startId"/> <memberOf key="att.timestamp.log"/> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.rehearsal" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes used by scoreDef and staffDef to provide default information about rehearsal numbers/letters.</desc> <attList> <attDef ident="reh.enclose" usage="opt"> <desc xml:lang="en">Describes the enclosing shape for rehearsal marks.</desc> <valList type="closed"> <valItem ident="box"> <desc xml:lang="en">Enclosed by box.</desc> </valItem> <valItem ident="circle"> <desc xml:lang="en">Enclosed by circle.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">No enclosing shape.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.rest.anl.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Analytical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.beamPresent"/> <memberOf key="att.fermataPresent"/> <memberOf key="att.tupletPresent"/> </classes> </classSpec> <classSpec ident="att.rest.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes in the CMN repertoire.</desc> </classSpec> <classSpec ident="att.rest.vis.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.beamSecondary"/> </classes> </classSpec> <classSpec ident="att.scoreDef.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.beaming.log"/> </classes> </classSpec> <classSpec ident="att.scoreDef.vis.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.beaming.vis"/> <memberOf key="att.guitarGrid.vis"/> <memberOf key="att.pianoPedals"/> <memberOf key="att.rehearsal"/> <memberOf key="att.slurRend"/> <memberOf key="att.tieRend"/> </classes> </classSpec> <classSpec ident="att.slur.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.slurRend" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that describe the rendition of slurs.</desc> <attList> <attDef ident="slur.lform"> <datatype> <rng:ref name="data.LINEFORM"/> </datatype> </attDef> <attDef ident="slur.lwidth"> <datatype> <rng:ref name="data.LINEWIDTH"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.space.anl.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Analytical domain attributes in the CMN repertoire.</desc> <classes> <memberOf key="att.beamPresent"/> <memberOf key="att.fermataPresent"/> <memberOf key="att.tupletPresent"/> </classes> </classSpec> <classSpec ident="att.space.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes in the CMN repertoire.</desc> </classSpec> <classSpec ident="att.staffDef.log.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes for staffDef in the CMN repertoire.</desc> <classes> <memberOf key="att.beaming.log"/> </classes> </classSpec> <classSpec ident="att.staffDef.vis.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Visual domain attributes for staffDef in the CMN repertoire.</desc> <classes> <memberOf key="att.beaming.vis"/> <memberOf key="att.pianoPedals"/> <memberOf key="att.rehearsal"/> <memberOf key="att.slurRend"/> <memberOf key="att.tieRend"/> </classes> </classSpec> <classSpec ident="att.stems.cmn" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that describe the properties of stemmed features; that is, chords and notes.</desc> <attList> <attDef ident="stem.with" usage="opt"> <desc xml:lang="en">Contains an indication of which staff a note or chord that logically belongs to the current staff should be visually placed on; that is, the one above or the one below.</desc> <datatype> <rng:ref name="data.NEIGHBORINGLAYER"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.tie.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.tieRend" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that describe the rendition of ties.</desc> <attList> <attDef ident="tie.lform"> <datatype> <rng:ref name="data.LINEFORM"/> </datatype> </attDef> <attDef ident="tie.lwidth"> <datatype> <rng:ref name="data.LINEWIDTH"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.tremForm" module="MEI.cmn" type="atts"> <desc>Attributes describing the form of a tremolo.</desc> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Describes the style of the tremolo.</desc> <valList type="closed"> <valItem ident="meas"> <desc xml:lang="en">Measured tremolo.</desc> </valItem> <valItem ident="unmeas"> <desc xml:lang="en">Unmeasured tremolo.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.tremMeasured" module="MEI.cmn" type="atts"> <desc xml:lang="en">Attributes that describe measured tremolandi.</desc> <attList> <attDef ident="unitdur" usage="opt"> <desc xml:lang="en">The performed duration of an individual note in a measured tremolo.</desc> <datatype> <rng:ref name="data.DURATION.cmn"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.tuplet.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.beamedWith"/> <memberOf key="att.duration.additive"/> <memberOf key="att.duration.ratio"/> <memberOf key="att.event"/> <memberOf key="att.startEndId"/> </classes> </classSpec> <classSpec ident="att.tupletSpan.log" module="MEI.cmn" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.beamedWith"/> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.duration.ratio"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="model.controlEventLike.cmn" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups control events that appear in CMN.</desc> <classes> <memberOf key="model.measurePart"/> <memberOf key="model.rdgPart.music"/> <memberOf key="model.editTransPart.music"/> </classes> </classSpec> <classSpec ident="model.eventLike.cmn" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups events that appear in CMN.</desc> <classes> <memberOf key="model.layerPart.cmn"/> </classes> </classSpec> <classSpec ident="model.eventLike.measureFilling" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups events that completely fill a CMN measure.</desc> <classes> <memberOf key="model.layerPart.cmn"/> </classes> </classSpec> <classSpec ident="model.layerPart.cmn" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups notated events that may appear at the layer level in CMN.</desc> <classes> <memberOf key="model.layerPart"/> </classes> </classSpec> <classSpec ident="model.measureLike" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups CMN measure-like elements.</desc> <classes> <memberOf key="model.sectionPart.cmn"/> </classes> </classSpec> <classSpec ident="model.measurePart" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups elements that may appear within a CMN measure.</desc> </classSpec> <classSpec ident="model.ossiaLike" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups elements that function like ossia.</desc> <classes> <memberOf key="model.measurePart"/> <memberOf key="model.staffPart"/> </classes> </classSpec> <classSpec ident="model.sectionPart.cmn" module="MEI.cmn" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a section.</desc> <classes> <memberOf key="model.sectionPart"/> </classes> </classSpec> <elementSpec ident="arpeg" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">arpeggiation</gloss> <desc xml:lang="en">Indicates that the notes of a chord are to be performed successively rather than simultaneously, usually from lowest to highest. Sometimes called a "roll".</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.arpeg.log"/> <memberOf key="att.arpeg.vis"/> <memberOf key="att.arpeg.ges"/> <memberOf key="att.arpeg.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The modern arpeggiation symbol is a vertical wavy line preceding the chord. When the notes of the chord are to be performed from highest to lowest, an arrowhead may be added to the lower end of the line. Even though it is redundant, an arrowhead is sometimes added to the upper end of the line for the sake of consistency or when the direction of successive arpeggios alternates. In music for keyboard instruments, sometimes a distinction is made between a single arpeggio in which both hands play successively and simultaneous arpeggios in two hands. In the case of the former, multiple values may be required in the <att>staff</att> and <att>layer</att> attributes. Arpeggios that do not cross staves, but still involve more than one layer require multiple values for the <att>layer</att> attribute.</p> </remarks> </elementSpec> <elementSpec ident="attacca" module="MEI.cmn"> <desc xml:lang="en">An instruction to begin the next section or movement of a composition without pause.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.attacca.log"/> <memberOf key="att.attacca.vis"/> <memberOf key="att.attacca.ges"/> <memberOf key="att.attacca.anl"/> <memberOf key="model.controlEventLike.cmn"/> <!--<memberOf key="model.controlEventLike"/>--> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="attacca_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:attacca[not(ancestor::mei:syllable)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>As a specialized directive, <gi scheme="MEI">attacca</gi> is a control element. That is, it can be linked via its attributes to other events. The starting point of the attacca directive may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify a starting point attribute.</p> </remarks> </elementSpec> <elementSpec ident="beam" module="MEI.cmn"> <desc xml:lang="en">A container for a series of explicitly beamed events that begins and ends entirely within a measure.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.beam.log"/> <memberOf key="att.beam.vis"/> <memberOf key="att.beam.ges"/> <memberOf key="att.beam.anl"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.eventLike"/> <rng:ref name="model.eventLike.cmn"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="When_not_copyof_beam_content" scheme="schematron"> <constraint> <sch:rule context="mei:beam[not(@copyof or @sameas)]"> <sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord' or local-name()='space']) > 1">A beam that contains neither a copyof nor sameas attribute must have at least 2 note, rest, chord, or space descendants.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>For beams that cross the bar line, use the <gi scheme="MEI">beamSpan</gi> element. Secondary beams may be broken explicitly using the <att>breaksec</att> attribute on the notes or chords under the beam. Automated beaming, as opposed to explicitly marked beams, may be indicated for an entire score, part or section by using the <att>beam.group</att> and <att>beam.rests</att> attributes on these elements.</p> </remarks> </elementSpec> <elementSpec ident="beamSpan" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">beam span</gloss> <desc xml:lang="en">Alternative element for explicitly encoding beams, particularly those which extend across bar lines.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.beamSpan.log"/> <memberOf key="att.beamSpan.vis"/> <memberOf key="att.beamSpan.ges"/> <memberOf key="att.beamSpan.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="beamspan_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:beamSpan"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the beam may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute.</p> </remarks> </elementSpec> <elementSpec ident="beatRpt" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">beat repeat</gloss> <desc xml:lang="en">An indication that material on a preceding beat should be repeated.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.beatRpt.log"/> <memberOf key="att.beatRpt.vis"/> <memberOf key="att.beatRpt.ges"/> <memberOf key="att.beatRpt.anl"/> <memberOf key="att.plist"/> <memberOf key="att.targetEval"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p> <gi scheme="MEI">beatRpt</gi> may also be used in guitar or rhythm parts to indicate where chord changes occur. When these parts require durations longer or shorter than a beat; however, <gi scheme="MEI">note</gi> elements with appropriately-shaped note heads should be employed.</p> </remarks> </elementSpec> <elementSpec ident="bend" module="MEI.cmn"> <desc xml:lang="en">A variation in pitch (often micro-tonal) upwards or downwards during the course of a note.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.bend.log"/> <memberOf key="att.bend.vis"/> <memberOf key="att.bend.ges"/> <memberOf key="att.bend.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="bend_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:bend"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="bracketSpan" module="MEI.cmn"> <desc xml:lang="en">Marks a sequence of notational events grouped by a bracket.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bracketSpan.log"/> <memberOf key="att.bracketSpan.vis"/> <memberOf key="att.bracketSpan.ges"/> <memberOf key="att.bracketSpan.anl"/> <memberOf key="att.facsimile"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="bracketSpan_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:bracketSpan"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Text that interrupts the bracket used to mark the event group may be captured as the content of <gi scheme="MEI">bracketSpan</gi>. The starting point of the group/bracket may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute.</p> </remarks> </elementSpec> <elementSpec ident="breath" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">breath mark</gloss> <desc xml:lang="en">An indication of a point at which the performer on an instrument requiring breath (including the voice) may breathe.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.breath.log"/> <memberOf key="att.breath.vis"/> <memberOf key="att.breath.ges"/> <memberOf key="att.breath.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="breath_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:breath"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element may also indicate a short pause or break for instruments *not* requiring breath. In such cases, it functions as a guide to phrasing. The starting point of the breath mark may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute. It is a semantic error not to specify a starting point attribute.</p> <p>Since the breath mark does not disrupt the normal tempo of a performance, it has no directly encode-able duration.</p> <p>The default value for <att>place</att> for a breath mark is "above". Unless indicated by other attributes, a breath mark will be rendered as a comma-like symbol above the top line of the staff.</p> </remarks> </elementSpec> <elementSpec ident="bTrem" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">bowed tremolo</gloss> <desc xml:lang="en">A rapid alternation on a single pitch or chord.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.bTrem.log"/> <memberOf key="att.bTrem.vis"/> <memberOf key="att.bTrem.ges"/> <memberOf key="att.bTrem.anl"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:choice> <rng:ref name="chord"/> <rng:ref name="note"/> </rng:choice> </content> </elementSpec> <elementSpec ident="fermata" module="MEI.cmn"> <desc xml:lang="en">An indication placed over a note or rest to indicate that it should be held longer than its written value. May also occur over a bar line to indicate the end of a phrase or section. Sometimes called a 'hold' or 'pause'.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.fermata.log"/> <memberOf key="att.fermata.vis"/> <memberOf key="att.fermata.ges"/> <memberOf key="att.fermata.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="fermata_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:fermata"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <att>shape</att> attribute may be used to record whether the fermata is curved, square, or triangular, while <att>form</att> may be used to capture whether the fermata is "upright", <abbr>i.e.</abbr>, has the curve or bracket above the dot, or inverted, <abbr>i.e.</abbr>, has the curve or bracket below the dot. Other visual forms of a fermata may be indicated via the <att>altsym</att> attribute. The starting point of the fermata may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute. It is a semantic error not to specify a starting point attribute.</p> </remarks> </elementSpec> <elementSpec ident="fTrem" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">fingered tremolo</gloss> <desc xml:lang="en">A rapid alternation between a pair of notes (or chords or perhaps between a note and a chord) that are (usually) farther apart than a major second.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.fTrem.log"/> <memberOf key="att.fTrem.vis"/> <memberOf key="att.fTrem.ges"/> <memberOf key="att.fTrem.anl"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:choice> <rng:group> <rng:ref name="chord"/> <rng:optional> <rng:ref name="clef"/> </rng:optional> <rng:choice> <rng:ref name="chord"/> <rng:ref name="note"/> </rng:choice> </rng:group> <rng:group> <rng:ref name="note"/> <rng:optional> <rng:ref name="clef"/> </rng:optional> <rng:choice> <rng:ref name="chord"/> <rng:ref name="note"/> </rng:choice> </rng:group> </rng:choice> </content> </elementSpec> <elementSpec ident="gliss" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">glissando</gloss> <desc xml:lang="en">A continuous or sliding movement from one pitch to another, usually indicated by a straight or wavy line.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.gliss.log"/> <memberOf key="att.gliss.vis"/> <memberOf key="att.gliss.ges"/> <memberOf key="att.gliss.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="gliss_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:gliss"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Commonly also called a 'slide'. The term 'glissando' is frequently used to indicate both the case where distinct intermediate pitches are produced (as on the piano) and the case where they are not (as on the trombone), though the latter is sometimes referred to as 'portamento'. The visual appearance of the indicating line may be recorded in the <att>lform</att> and <att>lwidth</att> attributes. The starting point of the glissando may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute.</p> </remarks> </elementSpec> <elementSpec ident="graceGrp" module="MEI.cmn"> <gloss versionDate="2023-06-16" xml:lang="en">grace group</gloss> <desc xml:lang="en">A container for a sequence of grace notes.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.graceGrp.log"/> <memberOf key="att.graceGrp.vis"/> <memberOf key="att.graceGrp.ges"/> <memberOf key="att.graceGrp.anl"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.eventLike"/> <rng:ref name="model.eventLike.cmn"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="When_not_copyof_graceGrp_content" scheme="schematron"> <constraint> <sch:rule context="mei:graceGrp[not(@copyof)]"> <sch:assert test="count(descendant::*[local-name()='note' or local-name()='rest' or local-name()='chord' or local-name()='space']) > 0">A graceGrp without a copyof attribute must have at least 1 note, rest, chord, or space descendants.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="When_graced" scheme="schematron"> <constraint> <sch:rule context="mei:graceGrp[@grace]"> <sch:assert test="not(descendant::mei:*[@grace])">The grace attribute is not allowed on descendants of a graceGrp with a grace attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="hairpin" module="MEI.cmn"> <desc xml:lang="en">Indicates continuous dynamics expressed on the score as wedge-shaped graphics, <abbr>e.g.</abbr>, < and >.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.hairpin.log"/> <memberOf key="att.hairpin.vis"/> <memberOf key="att.hairpin.ges"/> <memberOf key="att.hairpin.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="hairpin_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:hairpin"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <gi scheme="MEI">hairpin</gi> element is used for <emph>graphical</emph>, <abbr>i.e.</abbr>, crescendo and diminuendo, dynamic markings. For instantaneous or continuous <emph>textual</emph> dynamics, such as 'p', 'mf', or 'cres. poco a poco', the <gi scheme="MEI">dynam</gi> element should be used. The starting point of the hairpin marking may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute. MIDI values associated with the graphical dynamic sign may be recorded in the <att>val</att> and <att>val2</att> attributes.</p> </remarks> </elementSpec> <elementSpec ident="halfmRpt" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">half-measure repeat</gloss> <desc xml:lang="en">A half-measure repeat in any meter.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.halfmRpt.log"/> <memberOf key="att.halfmRpt.vis"/> <memberOf key="att.halfmRpt.ges"/> <memberOf key="att.halfmRpt.anl"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="harpPedal" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">harp pedal</gloss> <desc xml:lang="en">Harp pedal diagram.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.harpPedal.log"/> <memberOf key="att.harpPedal.vis"/> <memberOf key="att.harpPedal.ges"/> <memberOf key="att.harpPedal.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="harpPedal_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:harpPedal"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the harp pedal diagram may be indicated by either a <att>tstamp</att>, <att>tstamp.ges</att>, <att>tstamp.real</att> or <att>startid</att> attribute. It is a semantic error not to specify a starting point attribute.</p> </remarks> </elementSpec> <elementSpec ident="lv" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">laissez vibrer</gloss> <desc xml:lang="en">A "tie-like" indication that a note should ring beyond its written duration.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lv.log"/> <memberOf key="att.lv.vis"/> <memberOf key="att.lv.ges"/> <memberOf key="att.lv.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="curve"/> </rng:zeroOrMore> </content> <constraintSpec ident="lv_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:lv"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="lv_containing_curve" scheme="schematron"> <constraint> <sch:rule context="mei:lv[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the lv element (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The lv element captures the graphical, "tie-like" symbol. Any associated text, such as "l.v.", must be captured using a <gi scheme="MEI">dir</gi> element.</p> </remarks> </elementSpec> <elementSpec ident="measure" module="MEI.cmn"> <desc xml:lang="en">Unit of musical time consisting of a fixed number of note values of a given type, as determined by the prevailing meter, and delimited in musical notation by bar lines.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.measure.anl"/> <memberOf key="att.measure.ges"/> <memberOf key="att.measure.log"/> <memberOf key="att.measure.vis"/> <memberOf key="att.targetEval"/> <memberOf key="model.measureLike"/> </classes> <content> <rng:optional> <rng:ref name="mNum"/> </rng:optional> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.measurePart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.relationLike"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>In MEI, the <gi scheme="MEI">measure</gi> element is a grouping mechanism for events and control events. Pointing attributes make it possible to connect this element to other internal or external entities, such as media objects or annotations. The <att>width</att> attribute may be used to capture the width of the measure for interchange with music printing systems that utilize this information for printing.</p> </remarks> </elementSpec> <elementSpec ident="meterSig" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">meter signature</gloss> <desc xml:lang="en">Written meter signature.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.meterSig.anl"/> <memberOf key="att.meterSig.ges"/> <memberOf key="att.meterSig.log"/> <memberOf key="att.meterSig.vis"/> <memberOf key="model.meterSigLike"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="meterSigGrp" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">meter signature group</gloss> <desc xml:lang="en">Used to capture alternating, interchanging, mixed or other non-standard meter signatures.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.meterSigGrp.anl"/> <memberOf key="att.meterSigGrp.ges"/> <memberOf key="att.meterSigGrp.log"/> <memberOf key="att.meterSigGrp.vis"/> <memberOf key="model.meterSigLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="meterSig"/> </rng:zeroOrMore> </content> <constraintSpec ident="check_meterSigGrpContent" scheme="schematron"> <constraint> <sch:rule context="mei:meterSigGrp[not(@copyof)]"> <sch:assert test="count(mei:meterSig) > 1">meterSigGrp must have at least 2 child meterSig elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="mNum" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">measure number</gloss> <desc xml:lang="en">Designation, name, or label for a measure, often but not always consisting of digits. Use this element when the <att>n</att> attribute on <gi scheme="MEI">measure</gi> does not adequately capture the appearance or placement of the measure number/label.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.mNum.log"/> <memberOf key="att.mNum.vis"/> <memberOf key="att.mNum.ges"/> <memberOf key="att.mNum.anl"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.lbLike"/> <rng:ref name="model.rendLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p> <gi scheme="MEI">mNum</gi> uses a subset of model.textPhraseLike.limited.</p> </remarks> </elementSpec> <elementSpec ident="mRest" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">measure rest</gloss> <desc xml:lang="en">Complete measure rest in any meter. <!-- (Read, p. 97-98). --> </desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.mRest.log"/> <memberOf key="att.mRest.vis"/> <memberOf key="att.mRest.ges"/> <memberOf key="att.mRest.anl"/> <memberOf key="model.eventLike.measureFilling"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>Automatically-generated numbering of consecutive measures of rest may be controlled via the <att>multi.number</att> attribute on the <gi scheme="MEI">scoreDef</gi> or <gi scheme="MEI">staffDef</gi> elements.</p> </remarks> </elementSpec> <elementSpec ident="mRpt" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">measure repeat</gloss> <desc xml:lang="en">An indication that the previous measure should be repeated.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.mRpt.log"/> <memberOf key="att.mRpt.vis"/> <memberOf key="att.mRpt.ges"/> <memberOf key="att.mRpt.anl"/> <memberOf key="model.eventLike.measureFilling"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The automated numbering of consecutive measures of rest may be controlled via the <att>multi.number</att> attribute on the <gi scheme="MEI">scoreDef</gi> or <gi scheme="MEI">staffDef</gi> elements.</p> </remarks> </elementSpec> <elementSpec ident="mRpt2" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">2-measure repeat</gloss> <desc xml:lang="en">An indication that the previous two measures should be repeated.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.mRpt2.log"/> <memberOf key="att.mRpt2.vis"/> <memberOf key="att.mRpt2.ges"/> <memberOf key="att.mRpt2.anl"/> <memberOf key="model.eventLike.measureFilling"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="mSpace" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">measure space</gloss> <desc xml:lang="en">A measure containing only empty space in any meter.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.mSpace.log"/> <memberOf key="att.mSpace.vis"/> <memberOf key="att.mSpace.ges"/> <memberOf key="att.mSpace.anl"/> <memberOf key="model.eventLike.measureFilling"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The automated numbering of consecutive measures of space may be controlled via the <att>multi.number</att> attribute on the <gi scheme="MEI">scoreDef</gi> or <gi scheme="MEI">staffDef</gi> elements.</p> </remarks> </elementSpec> <elementSpec ident="multiRest" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">multiple rest</gloss> <desc xml:lang="en">Multiple measures of rest compressed into a single symbol, frequently found in performer parts.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.multiRest.log"/> <memberOf key="att.multiRest.vis"/> <memberOf key="att.multiRest.ges"/> <memberOf key="att.multiRest.anl"/> <memberOf key="model.eventLike.measureFilling"/> </classes> <content> <rng:empty/> </content> <!--<remarks xml:lang="en"><p>The num attribute can used to store a number to be rendered along with the note. See Read, p. 102-105.</p></remarks>--> </elementSpec> <elementSpec ident="multiRpt" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">multiple repeat</gloss> <desc xml:lang="en">Multiple repeated measures.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.multiRpt.log"/> <memberOf key="att.multiRpt.vis"/> <memberOf key="att.multiRpt.ges"/> <memberOf key="att.multiRpt.anl"/> <memberOf key="model.eventLike.measureFilling"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>In modern publishing practice, repeats of more than two measures should be written out using repeat signs. This element, however, is provided for handling non-standard practices often found in manuscript. The <att>num</att> attribute records the number of measures to be repeated.</p> </remarks> </elementSpec> <elementSpec ident="octave" module="MEI.cmn"> <desc xml:lang="en">An indication that a passage should be performed one or more octaves above or below its written pitch.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.octave.log"/> <memberOf key="att.octave.vis"/> <memberOf key="att.octave.ges"/> <memberOf key="att.octave.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="octave_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:octave"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <att>dis</att> and <att>dis.place</att> attributes record the amount and direction of displacement, respectively. The <att>lform</att> and <att>lwidth</att> attributes capture the appearance of the continuation line associated with the octave displacement. The starting point of the octave displacement may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute. Also, note that the <att>dur</att> attribute is not required because the octave displacement can be visually instantaneous.</p> </remarks> </elementSpec> <elementSpec ident="oLayer" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">ossia layer</gloss> <desc xml:lang="en">A layer that contains an alternative to material in another layer.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.layer.log"/> <memberOf key="att.layer.vis"/> <memberOf key="att.layer.ges"/> <memberOf key="att.layer.anl"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="ossia" module="MEI.cmn"> <desc xml:lang="en">Captures original notation and a differently notated version <hi rend="bold">*present in the source being transcribed*</hi>.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.ossia.log"/> <memberOf key="att.ossia.vis"/> <memberOf key="att.ossia.ges"/> <memberOf key="att.ossia.anl"/> <memberOf key="model.ossiaLike"/> </classes> <content> <rng:choice> <rng:interleave> <rng:oneOrMore> <rng:ref name="oStaff"/> </rng:oneOrMore> <rng:oneOrMore> <rng:ref name="model.staffLike"/> </rng:oneOrMore> </rng:interleave> <rng:interleave> <rng:oneOrMore> <rng:ref name="oLayer"/> </rng:oneOrMore> <rng:oneOrMore> <rng:ref name="model.layerLike"/> </rng:oneOrMore> </rng:interleave> </rng:choice> </content> <constraintSpec ident="Check_ossia" scheme="schematron"> <constraint> <sch:pattern> <sch:rule context="mei:measure/mei:ossia"> <sch:assert test="count(mei:*) = count(mei:staff)+count(mei:oStaff)">In a measure, ossia may only contain staff and oStaff elements.</sch:assert> </sch:rule> <sch:rule context="mei:staff/mei:ossia"> <sch:assert test="count(mei:*) = count(mei:layer)+count(mei:oLayer)">In a staff, ossia may only contain layer and oLayer elements.</sch:assert> </sch:rule> </sch:pattern> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The alternative material in an ossia often provides a simpler, easier-to-perform option, while at other times the alternate material provides indications of performance practice, such as ornamentation. Often an ossia is rendered above the main staff on a reduced-size staff. Sometimes the alternate material occurs on the same staff as the primary text, but in a separate layer. In this case, the alternative material is often rendered in small-sized notation.</p> </remarks> </elementSpec> <elementSpec ident="oStaff" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">ossia staff</gloss> <desc xml:lang="en">A staff that holds an alternative passage which may be played instead of the original material.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.staff.log"/> <memberOf key="att.staff.vis"/> <memberOf key="att.staff.ges"/> <memberOf key="att.staff.anl"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.relationLike"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.staffPart"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="pedal" module="MEI.cmn"> <desc xml:lang="en">Piano pedal mark.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.pedal.log"/> <memberOf key="att.pedal.vis"/> <memberOf key="att.pedal.ges"/> <memberOf key="att.pedal.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="pedal_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:pedal"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the pedal mark may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute. It is a semantic error not to specify one of these attributes.</p> </remarks> </elementSpec> <elementSpec ident="reh" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">rehearsal mark</gloss> <desc xml:lang="en">In an orchestral score and its corresponding parts, a mark indicating a convenient point from which to resume rehearsal after a break.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.reh.log"/> <memberOf key="att.reh.vis"/> <memberOf key="att.reh.ges"/> <memberOf key="att.reh.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.lbLike"/> <rng:ref name="model.rendLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>It may also be called a "rehearsal figure", or when numbers are used instead of letters, a "rehearsal number". See Read, p. 443. <gi scheme="MEI">reh</gi> uses a subset of model.textPhraseLike.limited.</p> </remarks> </elementSpec> <elementSpec ident="repeatMark" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">repetition mark</gloss> <desc xml:lang="en"> An instruction expressed as a combination of text and symbols – segno and coda – typically above, below, or between staves, but not on the staff.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.repeatMark.log"/> <memberOf key="att.repeatMark.vis"/> <memberOf key="att.repeatMark.ges"/> <memberOf key="att.repeatMark.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="repeatMark_start-type_attributes_required" scheme="isoschematron"> <constraint> <sch:rule context="mei:repeatMark"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="repeatMark_with_glyph_has_to_be_empty" scheme="isoschematron"> <constraint> <sch:rule context="mei:repeatMark[@glyph.num or @glyph.name]"> <sch:assert test="not(element()) and not(text())">When @glyph.name or @glyph.num is present, repeatMark must not have content.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>When only <att>func</att> is provided to describe the function of the repeat mark (<abbr>i.e.</abbr>, without glyph information and no textual content), then a renderer can rely on it to display the appropriate symbol. When textual content is provided, it will take precedence over the symbol implied by the function. Generic repeat marks where no function can be determined, then generic <gi scheme="MEI">dir</gi> elements should be used. </p> </remarks> </elementSpec> <elementSpec ident="slur" module="MEI.cmn"> <desc xml:lang="en">Indication of 1) a "unified melodic idea" or 2) performance technique.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.slur.log"/> <memberOf key="att.slur.vis"/> <memberOf key="att.slur.ges"/> <memberOf key="att.slur.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="curve"/> </rng:zeroOrMore> </content> <constraintSpec ident="slur_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:slur"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="slur_containing_curve" scheme="schematron"> <constraint> <sch:rule context="mei:slur[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the slur (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Historically, the term "slur" indicated two notes performed legato, while the term "phrase" was used for a "unified melodic idea". Nowadays, however, "slur" often has the same meaning as "phrase" (See Read, p. 265-266), since the visual rendition of the two concepts is the same. MEI provides two distinct elements so that those users wishing to maintain a distinction for historical reasons may do so. If the user does not want to maintain the distinction, then the more generic <gi scheme="MEI">slur</gi> element should be employed. The starting point of the phrase/slur may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute. Either <att>place</att>, <att>bulge</att>, or <att>bezier</att> attributes may be used to record the curvature of the phrase/slur. The <gi scheme="MEI">slur</gi> and <gi scheme="MEI">tie</gi> elements may be used instead of the slur.* and tie.* attributes provided on <gi scheme="MEI">chord</gi> and <gi scheme="MEI">note</gi> elements when 1) they are required by software, or 2) multiple, alternative slurs are needed.</p> </remarks> </elementSpec> <elementSpec ident="tie" module="MEI.cmn"> <desc xml:lang="en">An indication that two notes of the same pitch form a single note with their combined rhythmic values.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.tie.log"/> <memberOf key="att.tie.vis"/> <memberOf key="att.tie.ges"/> <memberOf key="att.tie.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="curve"/> </rng:zeroOrMore> </content> <constraintSpec ident="tie_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:tie"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="tie_containing_curve" scheme="schematron"> <constraint> <sch:rule context="mei:tie[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the tie (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Most often, a tie is rendered as a curved line connecting the two notes. See Read, p. 110-111, 122.</p> </remarks> </elementSpec> <elementSpec ident="tuplet" module="MEI.cmn"> <desc xml:lang="en">A group of notes with "irregular" (sometimes called "irrational") rhythmic values, for example, three notes in the time normally occupied by two or nine in the time of five.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.tuplet.log"/> <memberOf key="att.tuplet.vis"/> <memberOf key="att.tuplet.ges"/> <memberOf key="att.tuplet.anl"/> <memberOf key="model.eventLike.cmn"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.eventLike"/> <rng:ref name="model.eventLike.cmn"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">beam</gi> sub-element is allowed so that custom beaming may be indicated, <abbr>e.g.</abbr>, a septuplet may be divided into a group of three plus a group of four notes. See Read, p. 187-215. The <gi scheme="MEI">tuplet</gi> element may also used for bowed tremolo (Read, p. 394) and double, triple, or flutter tonguing (Read, p. 348-349); that is, for repetition of the same pitch. In the case of irrational durations, such as such as two quarter notes in the time of five 8th notes in a measure of 5/8 time, decimal values may be used in the <att>dur.ges</att> attribute. For example, the <att>dur.ges</att> attribute would take the value <val>2.5</val> if the <att>midi.div</att> attribute’s value was <val>1</val>. The <att>num</att> and <att>numbase</att> attributes may be used for explicit labelling of a tuplet, such as, '3' with an 8th-note triplet, '3:2' over a quarter-note triplet, etc. The rendering of the ratio, however, is dependent on the <att>num.format</att> attribute found in the att.vis.tuplet attribute class.</p> </remarks> </elementSpec> <elementSpec ident="tupletSpan" module="MEI.cmn"> <gloss versionDate="2022-05-18" xml:lang="en">tuplet span</gloss> <desc xml:lang="en">Alternative element for encoding tuplets, especially useful for tuplets that extend across bar lines.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.tupletSpan.log"/> <memberOf key="att.tupletSpan.vis"/> <memberOf key="att.tupletSpan.ges"/> <memberOf key="att.tupletSpan.anl"/> <memberOf key="model.controlEventLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="tupletSpan_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:tupletSpan"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the tuplet may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.cmnOrnaments"> <moduleSpec ident="MEI.cmnOrnaments"> <desc xml:lang="en">CMN ornament component declarations.</desc> </moduleSpec> <macroSpec ident="data.ORNAM.cmn" module="MEI.cmnOrnaments" type="dt"> <desc xml:lang="en">CMN ornam attribute values: A = appogiatura (upper neighbor); a = acciaccatura (lower neighbor); b = bebung; I = ascending slide; i = descending slide; k = delayed turn; K = 5-note turn; m = mordent (alternation with lower neighbor); M = inverted mordent (alternation with upper neighbor); N = Nachschlag (upper neighbor); n = Nachschlag (lower neighbor); S = turn; s = inverted turn; t = trill commencing on auxiliary note; T = trill commencing on principal note; O = generic / unspecified ornament.</desc> <content> <rng:data type="token"> <rng:param name="pattern">[A|a|b|I|i|K|k|M|m|N|n|S|s|T|t|O]|(A|a|S|s|K|k)?(T|t|M|m)(I|i|S|s)?</rng:param> </rng:data> </content> </macroSpec> <classSpec ident="att.mordent.log" module="MEI.cmnOrnaments" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.ornamentAccid"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Records semantic meaning, <abbr>i.e.</abbr>, intended performance, of the mordent. The <att>altsym</att>, <att>glyph.name</att>, or <att>glyph.num</att> attributes may be used to specify the appropriate symbol.</desc> <valList type="closed"> <valItem ident="lower"> <desc xml:lang="en">Starts with the written note, followed by its lower neighbor, with a return to the written note. In modern practice, this is called an "inverted mordent" and indicated by a short wavy line with a vertical line through it.</desc> </valItem> <valItem ident="upper"> <desc xml:lang="en">Starts with the written note, followed by its upper neighbor, with a return to the principal note. In modern practice, the symbol lacks the vertical line used for the inverted form.</desc> </valItem> </valList> </attDef> <attDef ident="long" usage="opt"> <desc xml:lang="en">When set to 'true', a double or long mordent, sometimes called a "pincé double", consisting of 5 notes, is indicated.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ornamentAccid" module="MEI.cmnOrnaments" type="atts"> <desc xml:lang="en">Accidentals associated with ornaments.</desc> <classes> <memberOf key="att.ornamentAccid.ges"/> </classes> <attList> <attDef ident="accidupper" usage="opt"> <desc xml:lang="en">Records the written accidental associated with an upper neighboring note.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.WRITTEN"/> </datatype> </attDef> <attDef ident="accidlower" usage="opt"> <desc xml:lang="en">Records the written accidental associated with a lower neighboring note.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.WRITTEN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ornamPresent" module="MEI.cmnOrnaments" type="atts"> <desc xml:lang="en">Attributes for marking the presence of an ornament.</desc> <attList> <attDef ident="ornam" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">ornament</gloss> <desc xml:lang="en">Indicates that this element has an attached ornament. If visual information about the ornament is needed, then one of the elements that represents an ornament (mordent, trill, or turn) should be employed.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.ORNAM.cmn"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.trill.log" module="MEI.cmnOrnaments" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.ornamentAccid"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.turn.log" module="MEI.cmnOrnaments" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.ornamentAccid"/> <memberOf key="att.startId"/> </classes> <attList> <attDef ident="delayed" usage="opt"> <desc xml:lang="en">When set to 'true', the turn begins on the second half of the beat.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="form" usage="opt"> <desc xml:lang="en">Records meaning; <abbr>i.e.</abbr>, intended performance, of the turn. The <att>altsym</att>, <att>glyph.name</att>, or <att>glyph.num</att> attributes may be used to specify the appropriate symbol.</desc> <valList type="closed"> <valItem ident="lower"> <desc xml:lang="en">Begins on the note below the written note.</desc> </valItem> <valItem ident="upper"> <desc xml:lang="en">Begins on the note above the written note.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="model.ornamentLike.cmn" module="MEI.cmnOrnaments" type="model"> <desc xml:lang="en">Groups CMN ornament elements.</desc> <classes> <memberOf key="model.controlEventLike.cmn"/> </classes> </classSpec> <elementSpec ident="mordent" module="MEI.cmnOrnaments"> <desc xml:lang="en">An ornament indicating rapid alternation of the main note with a secondary note, usually a step below, but sometimes a step above. <!--See Read, p. 245-246.--> </desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.mordent.log"/> <memberOf key="att.mordent.vis"/> <memberOf key="att.mordent.ges"/> <memberOf key="att.mordent.anl"/> <memberOf key="model.ornamentLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="mordent_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:mordent"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the mordent may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute. It is a semantic error not to specify one of these attributes.</p> </remarks> </elementSpec> <elementSpec ident="trill" module="MEI.cmnOrnaments"> <desc xml:lang="en">Rapid alternation of a note with another (usually at the interval of a second above).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.trill.log"/> <memberOf key="att.trill.vis"/> <memberOf key="att.trill.ges"/> <memberOf key="att.trill.anl"/> <memberOf key="model.ornamentLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="trill_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:trill"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The interval between the main and auxiliary notes is usually understood to be diatonic unless altered by an accidental. The starting note of the trill; <abbr>i.e.</abbr>, the written one or the ornamenting one, and the speed of alternation depends on performance practice. The starting point of the trill may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify a starting point attribute.</p> </remarks> </elementSpec> <elementSpec ident="turn" module="MEI.cmnOrnaments"> <desc xml:lang="en">An ornament consisting of four notes — the upper neighbor of the written note, the written note, the lower neighbor, and the written note.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.turn.log"/> <memberOf key="att.turn.vis"/> <memberOf key="att.turn.ges"/> <memberOf key="att.turn.anl"/> <memberOf key="model.ornamentLike.cmn"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="turn_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:turn"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>See Read, p. 246-247. Whether the turn is accented or unaccented may be inferred from the timestamp — accented turns occur directly on the affected beat, unaccented ones do not.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.corpus"> <moduleSpec ident="MEI.corpus"> <desc xml:lang="en">Corpus component declarations.</desc> </moduleSpec> <classSpec ident="model.startLike.corpus" module="MEI.corpus" type="model"> <desc xml:lang="en">Groups elements that may be document elements when the corpus module is invoked.</desc> </classSpec> <elementSpec ident="meiCorpus" module="MEI.corpus"> <gloss versionDate="2022-05-18" xml:lang="en">MEI corpus</gloss> <desc xml:lang="en">A group of related MEI documents, consisting of a header for the group, and one or more <gi scheme="MEI">mei</gi> elements, each with its own complete header.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.meiVersion"/> <memberOf key="model.startLike.corpus"/> </classes> <content> <rng:ref name="meiHead"/> <rng:zeroOrMore> <rng:ref name="mei"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-teiCorpus.html">teiCorpus</ref> element of the Text Encoding Initiative (TEI). The MEI instances making up the corpus may be related in a number of ways, for example, by composer, by similar instrumentation, by holding institution, etc. This element’s name should not be changed in order to assure an absolute minimum level of MEI compliance.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.critapp"> <moduleSpec ident="MEI.critapp"> <desc xml:lang="en">Critical apparatus component declarations.</desc> </moduleSpec> <classSpec ident="att.crit" module="MEI.critapp" type="atts"> <desc xml:lang="en">Attributes common to all elements representing variant readings.</desc> <classes> <memberOf key="att.handIdent"/> <memberOf key="att.sequence"/> <memberOf key="att.source"/> </classes> <attList> <attDef ident="cause" usage="opt"> <desc xml:lang="en">Classifies the cause for the variant reading, according to any appropriate typology of possible origins.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.rdg.log" module="MEI.critapp" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="model.appLike" module="MEI.critapp" type="model"> <desc xml:lang="en">Groups elements that contain a critical apparatus entry.</desc> </classSpec> <classSpec ident="model.rdgPart" module="MEI.critapp" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a textual or musical variant.</desc> </classSpec> <classSpec ident="model.rdgPart.music" module="MEI.critapp" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a musical variant.</desc> <classes> <memberOf key="model.rdgPart"/> </classes> </classSpec> <classSpec ident="model.rdgPart.text" module="MEI.critapp" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a textual variant.</desc> <classes> <memberOf key="model.rdgPart"/> </classes> </classSpec> <elementSpec ident="app" module="MEI.critapp"> <gloss versionDate="2023-06-16" xml:lang="en">apparatus</gloss> <desc xml:lang="en">Contains one or more alternative encodings.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.appLike"/> </classes> <content> <rng:optional> <rng:ref name="lem"/> </rng:optional> <rng:ref name="rdg"/> <rng:zeroOrMore> <rng:ref name="rdg"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The alternatives provided in <gi scheme="MEI">lem</gi> and/or <gi scheme="MEI">rdg</gi> sub-elements may be thought of as exclusive or as parallel. The <att>type</att> attribute may contain any convenient descriptive word, describing the extent of the variation (<abbr>e.g.</abbr>, note, phrase, measure, etc.), its text-critical significance (<abbr>e.g.</abbr>, significant, accidental, unclear), or the nature of the variation or the principles required to understand it (<abbr>e.g.</abbr>, lectio difficilior, usus auctoris, etc.).</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-app.html">app</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="lem" module="MEI.critapp"> <gloss versionDate="2023-06-16" xml:lang="en">lemma</gloss> <desc xml:lang="en">Contains the lemma, or base text, of a textual variation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.crit"/> <memberOf key="att.pointing"/> <memberOf key="att.rdg.anl"/> <memberOf key="att.rdg.ges"/> <memberOf key="att.rdg.log"/> <memberOf key="att.rdg.vis"/> <memberOf key="att.targetEval"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.appLike"/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.rdgPart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="expansion"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">lem</gi> element may also be used, under some circumstances, to record the base text of the source edition, to mark the readings of a base witness, to indicate the preference of an editor or encoder for a particular reading, or to make clear, in cases of ambiguity, precisely which portion of the main text the variation applies to. Those who prefer to work without the notion of a base text may prefer not to use it at all. An integer indicating the position of this reading in a sequence, when there is reason to presume a sequence of the variant readings, may be captured in the <att>seq</att> attribute.</p> <p>In no case should <gi scheme="MEI">lem</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">lem</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-lem.html">lem</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="rdg" module="MEI.critapp"> <gloss versionDate="2023-06-16" xml:lang="en">reading</gloss> <desc xml:lang="en">Contains a single reading within a textual variation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.crit"/> <memberOf key="att.pointing"/> <memberOf key="att.rdg.anl"/> <memberOf key="att.rdg.ges"/> <memberOf key="att.rdg.log"/> <memberOf key="att.rdg.vis"/> <memberOf key="att.targetEval"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.appLike"/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.rdgPart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="expansion"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Since a reading can be a multi-measure section, the <gi scheme="MEI">scoreDef</gi> element is allowed so that a reading may have its own meta-data without incurring the overhead of child <gi scheme="MEI">section</gi> elements. The <gi scheme="MEI">app</gi> sub-element is permitted in order to allow nested sub-variants.</p> </remarks> <remarks xml:lang="en"> <p>In no case should <gi scheme="MEI">rdg</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">rdg</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-rdg.html">rdg</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.drama"> <moduleSpec ident="MEI.drama"> <desc xml:lang="en">Dramatic text component declarations.</desc> </moduleSpec> <classSpec ident="att.sp.log" module="MEI.drama" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.stageDir.log" module="MEI.drama" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="model.stageDirLike" module="MEI.drama" type="model"> <desc xml:lang="en">Groups elements containing stage directions in performance texts.</desc> <classes> <memberOf key="model.controlEventLike"/> <memberOf key="model.paracontentPart"/> </classes> </classSpec> <elementSpec ident="sp" module="MEI.drama"> <gloss versionDate="2022-05-18" xml:lang="en">speech</gloss> <desc xml:lang="en">Contains an individual speech in a performance text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.sp.anl"/> <memberOf key="att.sp.ges"/> <memberOf key="att.sp.log"/> <memberOf key="att.sp.vis"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.figureLike"/> <rng:ref name="model.milestoneLike.text"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="speaker"/> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.figureLike"/> <rng:ref name="model.milestoneLike.text"/> </rng:choice> </rng:zeroOrMore> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="model.lgLike"/> <rng:ref name="model.lLike"/> <rng:ref name="model.pLike"/> <rng:ref name="model.quoteLike"/> <rng:ref name="model.stageDirLike"/> <rng:ref name="list"/> </rng:choice> </rng:oneOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.figureLike"/> <rng:ref name="model.milestoneLike.text"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="sp_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:sp[ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff][not(ancestor::mei:sp)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="sp_start-type_attributes_forbidden" scheme="schematron"> <constraint> <sch:rule context="mei:sp[not(ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff)]"> <sch:assert test="not(@startid or @endid or @tstamp or @tstamp2 or @tstamp.ges or @tstamp.real or @startho or @endho or @to or @startto or @endto or @staff or @layer or @place or @plist)">Must not have any of the attributes: startid, endid, tstamp, tstamp2, tstamp.ges, tstamp.real, startho, endho, to, startto, endto, staff, layer, place, or plist.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>In a musical context <gi scheme="MEI">sp</gi> must have a start-type attribute when it's not a descendant of <gi scheme="MEI">sp</gi>. In a textual content <gi scheme="MEI">sp</gi> must NOT have any musical attributes.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-sp.html">sp</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="stageDir" module="MEI.drama"> <gloss versionDate="2022-05-18" xml:lang="en">stage direction</gloss> <desc xml:lang="en">Contains any kind of stage direction within a dramatic text or fragment.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.stageDir.anl"/> <memberOf key="att.stageDir.ges"/> <memberOf key="att.stageDir.log"/> <memberOf key="att.stageDir.vis"/> <memberOf key="model.stageDirLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="stageDir_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:stageDir[ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff][not(ancestor::mei:sp)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="stageDir_start-type_attributes_forbidden" scheme="schematron"> <constraint> <sch:rule context="mei:stageDir[not(ancestor::mei:layer or ancestor::mei:measure or ancestor::mei:staff) or ancestor::mei:sp]"> <sch:assert test="not(@startid or @endid or @tstamp or @tstamp2 or @tstamp.ges or @tstamp.real or @startho or @endho or @to or @startto or @endto or @staff or @layer or @place or @plist)">Must not have any of the attributes: startid, endid, tstamp, tstamp2, tstamp.ges, tstamp.real, startho, endho, to, startto, endto, staff, layer, place, or plist.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>In a musical context <gi scheme="MEI">stageDir</gi> must have a start-type attribute when it’s not a descendant of <gi scheme="MEI">sp</gi>. In a textual content <gi scheme="MEI">stageDir</gi> must NOT have any musical attributes.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-stage.html">stage</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.edittrans"> <moduleSpec ident="MEI.edittrans"> <desc xml:lang="en">Editorial and transcriptional component declarations.</desc> </moduleSpec> <classSpec ident="att.agentIdent" module="MEI.edittrans" type="atts"> <desc xml:lang="en">Attributes for the identification of a causative agent.</desc> <attList> <attDef ident="agent" usage="opt"> <desc xml:lang="en">Signifies the causative agent of damage, illegibility, or other loss of original text.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.cpMark.log" module="MEI.edittrans" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.origin.timestamp.log"/> <memberOf key="att.origin.staffIdent"/> <memberOf key="att.origin.layerIdent"/> <memberOf key="att.origin.startEndId"/> <memberOf key="att.octaveDisplacement"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.edit" module="MEI.edittrans" type="atts"> <desc xml:lang="en">Attributes describing the nature of an encoded scholarly intervention or interpretation.</desc> <classes> <memberOf key="att.source"/> <memberOf key="att.evidence"/> </classes> </classSpec> <classSpec ident="att.metaMark.log" module="MEI.edittrans" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> <memberOf key="att.edit"/> <memberOf key="att.trans"/> </classes> </classSpec> <classSpec ident="att.reasonIdent" module="MEI.edittrans" type="atts"> <desc xml:lang="en">Attributes that identify the reason why an editorial feature is used.</desc> <attList> <attDef ident="reason" usage="opt"> <desc xml:lang="en">Holds a short phrase describing the reason for missing textual material (gap), why material is supplied (supplied), or why transcription is difficult (unclear).</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.trans" module="MEI.edittrans" type="atts"> <desc xml:lang="en">Attributes for elements encoding authorial or scribal intervention when transcribing manuscript or similar sources.</desc> <classes> <memberOf key="att.geneticState"/> <memberOf key="att.handIdent"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.sequence"/> </classes> </classSpec> <classSpec ident="model.choicePart" module="MEI.edittrans" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the content of a choice element.</desc> </classSpec> <classSpec ident="model.editLike" module="MEI.edittrans" type="model"> <desc xml:lang="en">Groups elements for editorial interventions that may be useful both in transcribing and in authoring processes.</desc> <classes> <memberOf key="model.paracontentPart"/> <memberOf key="model.choicePart"/> </classes> </classSpec> <classSpec ident="model.editTransPart" module="MEI.edittrans" type="model"> <desc xml:lang="en">Groups elements that may appear as part of editorial and transcription elements.</desc> </classSpec> <classSpec ident="model.editTransPart.music" module="MEI.edittrans" type="model"> <desc xml:lang="en">Groups elements that may appear as part of editorial and transcription elements in music notation.</desc> <classes> <memberOf key="model.editTransPart"/> </classes> </classSpec> <classSpec ident="model.editTransPart.text" module="MEI.edittrans" type="model"> <desc xml:lang="en">Groups elements that may appear as part of editorial and transcription elements in prose.</desc> <classes> <memberOf key="model.editTransPart"/> </classes> </classSpec> <classSpec ident="model.transcriptionLike" module="MEI.edittrans" type="model"> <desc xml:lang="en">Groups elements used for editorial transcription of pre-existing source materials.</desc> <classes> <memberOf key="model.paracontentPart"/> </classes> </classSpec> <elementSpec ident="abbr" module="MEI.edittrans" ns="http://www.music-encoding.org/ns/mei"> <gloss versionDate="2022-05-18" xml:lang="en">abbreviation</gloss> <desc xml:lang="en">A generic element for 1) a shortened form of a word, including an acronym or 2) a shorthand notation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.trans"/> <memberOf key="model.editorialLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="expan" usage="opt"> <desc xml:lang="en">Records the expansion of a text abbreviation.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>In no case should <gi scheme="MEI">abbr</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">abbr</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-abbr.html">abbr</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-abbr">abbr</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="add" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">addition</gloss> <desc xml:lang="en">Marks an addition to the text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.lang"/> <memberOf key="att.trans"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="place"> <desc xml:lang="en">Location of the addition.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.PLACEMENT"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The <gi scheme="MEI">add</gi> element contains material inserted by an author, scribe, annotator, or corrector. The agent responsible for the addition may be encoded using the <att>hand</att> attribute, while the <att>resp</att> attribute records the editor or transcriber responsible for identifying the hand of the addition. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the hand of the addition. The editor(s) responsible for asserting this particular reading may be recorded in the <att>resp</att> attribute. The value of resp must point to one or more identifiers declared in the document header.</p> <p>In no case should <gi scheme="MEI">add</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">add</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-add.html">add</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="choice" module="MEI.edittrans"> <desc xml:lang="en">Groups a number of alternative encodings for the same point in a text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.editLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.choicePart"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Because the children of a <gi scheme="MEI">choice</gi> element all represent alternative ways of encoding the same sequence, it is natural to think of them as mutually exclusive. However, there may be cases where a full representation of a text requires the alternative encodings to be considered as parallel. Note also that <gi scheme="MEI">choice</gi> elements may be recursively nested.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-choice.html">choice</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="corr" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">correction</gloss> <desc xml:lang="en">Contains the correct form of an apparent erroneous passage.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.lang"/> <memberOf key="att.trans"/> <memberOf key="model.choicePart"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <att>cert</att> attribute signifies the degree of certainty ascribed to correction. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for suggesting the correction held as the content of the <gi scheme="MEI">corr</gi> element. If the correction was made in the source, resp should be used to identify the hand of the corrector. The value of resp must point to one or more identifiers declared in the document header.</p> <p>In no case should <gi scheme="MEI">corr</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">corr</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-corr.html">corr</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="cpMark" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">copy/colla parte mark</gloss> <desc xml:lang="en">A verbal or graphical indication to copy musical material written elsewhere.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.cpMark.log"/> <memberOf key="att.cpMark.vis"/> <memberOf key="att.cpMark.ges"/> <memberOf key="att.cpMark.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="cpMark_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:cpMark"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2</sch:assert> </sch:rule> </constraint> </constraintSpec> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:space="preserve"> <cpMark tstamp="1" tstamp2="5m+4" staff="8" origin.tstamp="-6m+1">a. b. c. d. e. f. g.</cpMark> </egXML> </exemplum> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:space="preserve"> <cpMark tstamp="1.5" tstamp2="1m+3.5" staff="9" origin.staff="8">unis:</cpMark> </egXML> </exemplum> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:space="preserve"> <cpMark tstamp="2" tstamp2="2m+3.5" staff="9" origin.staff="8" dis="8" dis.place="below">in 8va</cpMark> </egXML> </exemplum> <remarks xml:lang="en"> <p>Typical examples are <foreign>colla parte</foreign> instructions (such as "col Basso") or other indications intended to result in filling gaps in the score with material written elsewhere. It is recommended to capture the position of the indication itself with the attributes <att>tstamp</att> and <att>staff</att>. The area to be filled should contain <gi scheme="MEI">space</gi> or <gi scheme="MEI">mSpace</gi> elements. The material to be used to fill the gap can be identified by the attributes <att>origin.tstamp</att>, <att>origin.tstamp2</att>, <att>origin.staff</att>, and <att>origin.layer</att>. If <att>origin.tstamp2</att> is not provided, a duration similar to that of the local omission (as encoded in the combination of <att>tstamp</att> and <att>tstamp2</att>) is assumed. Any missing @origin.* attributes are assumed to take the same values as information associated with the cpMark. For example, when only the <att>origin.staff</att> attribute is provided, it is assumed that the referenced part comes from a different staff in the same measure. If a different measure is provided by <att>origin.tstamp</att>, but no <att>origin.staff</att> is given, then it is assumed that the material is to be taken from the same staff.</p> <p>Textual instructions are encoded as text content of the cpMark, while graphical instructions may use the <att>altsym</att>, <att>facs</att>, or <att>extsym</att> attributes.</p> </remarks> </elementSpec> <elementSpec ident="damage" module="MEI.edittrans"> <desc xml:lang="en">Contains an area of damage to the physical medium.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.agentIdent"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.handIdent"/> <memberOf key="att.lang"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="degree" usage="opt"> <desc xml:lang="en">Records the degree of damage.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>In no case should <gi scheme="MEI">damage</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">damage</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-damage.html">damage</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="del" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">deletion</gloss> <desc xml:lang="en">Contains information deleted, marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, annotator, or corrector.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.textRendition"/> <memberOf key="att.trans"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for identifying the hand of the deletion. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the hand of the deletion. The hand of the agent which made the deletion should be pointed to using the <att>hand</att> attribute. The <att>rend</att> attribute may be used to record the method used to make the deletion (overstrike, strike[through], etc.).</p> <p>In no case should <gi scheme="MEI">del</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">del</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-del.html">del</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="expan" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">expansion</gloss> <desc xml:lang="en">Contains the expansion of an abbreviation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.trans"/> <memberOf key="model.editorialLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="abbr" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">abbreviation</gloss> <desc xml:lang="en">Captures the abbreviated form of the text.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>In no case should <gi scheme="MEI">expan</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">expan</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-expan.html">expan</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-expan">expan</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="gap" module="MEI.edittrans"> <desc xml:lang="en">Indicates a point where material has been omitted in a transcription, whether as part of sampling practice or for editorial reasons described in the MEI header.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.handIdent"/> <memberOf key="att.reasonIdent"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>When material is omitted because it is illegible or inaudible, <gi scheme="MEI">unclear</gi> should be used instead. Similarly, use <gi scheme="MEI">damage</gi> if the omission is due to damage and <gi scheme="MEI">del</gi> if the omission is because the material is marked as deleted, or otherwise indicated as superfluous or spurious in the copy text by an author, scribe, annotator, or corrector. An indication of how much material has been omitted from the transcription may be recorded in the <att>extent</att> attribute. The <att>unit</att> attribute names the unit used for describing the extent of the gap. The <att>reason</att> attribute gives the reason for omission. Sample values include <val>sampling</val>, <val>irrelevant</val>, <val>cancelled</val>. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor, transcriber or encoder responsible for the decision not to provide any transcription of the material and hence the application of the <gi scheme="MEI">gap</gi> tag. The <att>hand</att> attribute signifies the hand which made the deletion in the case of text omitted from the transcription because of deliberate deletion by an identifiable hand. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the extent of the missing material.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-gap.html">gap</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="handShift" module="MEI.edittrans"> <desc xml:lang="en">Marks the beginning of a passage written in a new hand, or of a change in the scribe, writing style, ink or character of the document hand.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.medium"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="character" usage="opt"> <desc xml:lang="en">Describes the character of the new hand.</desc> <datatype> <rng:text/> </datatype> </attDef> <attDef ident="new" usage="opt"> <desc xml:lang="en">Identifies the new hand. The value must contain the ID of a hand element given elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_newTarget" scheme="schematron"> <constraint> <sch:rule context="@new"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@new attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:hand/@xml:id">The value in @new should correspond to the @xml:id attribute of a hand element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="old" usage="opt"> <desc xml:lang="en">Identifies the old hand. The value must contain the ID of a hand element given elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_oldTarget" scheme="schematron"> <constraint> <sch:rule context="@old"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@old attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:hand/@xml:id">The value in @old should correspond to the @xml:id attribute of a hand element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>character</att> attribute describes characteristics of the hand, particularly those related to the quality of the writing, <abbr>e.g.</abbr>, <val>shaky</val>, <val>thick</val>, <val>regular</val>. A description of the tint or type of ink, <abbr>e.g.</abbr>, <val>brown</val> or the writing medium, <abbr>e.g.</abbr>, <val>pencil</val>, may be placed in the <att>medium</att> attribute. The new hand may be identified using the <att>new</att> attribute, while the previous hand may be recorded in the <att>old</att> attribute. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for identifying the change of hand. The <att>cert</att> attribute signifies the degree of certainty ascribed to the identification of the new hand.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-handShift.html">handShift</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="metaMark" module="MEI.edittrans"> <desc xml:lang="en">A graphical or textual statement with additional / explanatory information about the musical text. The textual consequences of this intervention are encoded independently via other means; that is, with elements such as <gi scheme="MEI">add</gi>, <gi scheme="MEI">del</gi>, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metaMark.log"/> <memberOf key="att.metaMark.vis"/> <memberOf key="att.metaMark.ges"/> <memberOf key="att.metaMark.anl"/> <memberOf key="att.pointing"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.editLike"/> <rng:ref name="model.sectionLike"/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="metaMark_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:metaMark"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="function"> <desc xml:lang="en">Describes the purpose of the metaMark.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="confirmation"> <desc xml:lang="en">confirmation of a previous textual decision; <abbr>i.e.</abbr>, cancellation of a deleted passage in a different writing medium.</desc> </valItem> <valItem ident="addition"> <desc xml:lang="en">denoted material is to be inserted in the musical text.</desc> </valItem> <valItem ident="deletion"> <desc xml:lang="en">denoted material is no longer part of the musical text.</desc> </valItem> <valItem ident="substitution"> <desc xml:lang="en">denoted material is replaced, either by the musical text pointed at with the @target attribute or the musical content of the metaMark element itself.</desc> </valItem> <valItem ident="clarification"> <desc xml:lang="en">attempt to clarify a potentially illegible or otherwise unclear part of the musical text.</desc> </valItem> <valItem ident="question"> <desc xml:lang="en">marks a section of the musical text which is to be considered further.</desc> </valItem> <valItem ident="investigation"> <desc xml:lang="en">marks a section of the musical text as an investigation of the consequences of certain compositional decisions or potential alternatives.</desc> </valItem> <valItem ident="restoration"> <desc xml:lang="en">declares a formerly cancelled part of the musical text as valid again.</desc> </valItem> <valItem ident="navigation"> <desc xml:lang="en">clarification of the reading order of the musical text.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>This element is used to encode <ref target="http://beethovens-werkstatt.de/glossary/metatext/">explicit metatexts</ref> as defined by the Beethovens Werkstatt project.</p> </remarks> </elementSpec> <elementSpec ident="orig" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">original</gloss> <desc xml:lang="en">Contains material which is marked as following the original, rather than being normalized or corrected.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.choicePart"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>This element will often be combined with a regularized form within a choice element. The editor(s) responsible for asserting that the material is original may be recorded in the <att>resp</att> attribute. The value of resp must point to one or more identifiers declared in the document header. The <att>cert</att> attribute signifies the degree of certainty ascribed to the transcription of the original text.</p> <p>In no case should <gi scheme="MEI">orig</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">orig</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-orig.html">orig</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="reg" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">regularization</gloss> <desc xml:lang="en">Contains material which has been regularized or normalized in some sense.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.lang"/> <memberOf key="model.choicePart"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>It is possible to identify the individual responsible for the regularization, and, using the <gi scheme="MEI">choice</gi> and <gi scheme="MEI">orig</gi> elements, to provide both original and regularized readings. The editor(s) responsible for asserting the regularized material may be recorded in the <att>resp</att> attribute. The value of <att>resp</att> must point to one or more identifiers declared in the document header. The <att>cert</att> attribute signifies the degree of certainty ascribed to the regularized reading.</p> <p>In no case should <gi scheme="MEI">reg</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">reg</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-reg.html">reg</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="restore" module="MEI.edittrans"> <desc xml:lang="en">Indicates restoration of material to an earlier state by cancellation of an editorial or authorial marking or instruction.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.trans"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="desc" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">description</gloss> <desc xml:lang="en">Provides a description of the means of restoration, <val>stet</val> or <val>strike-down</val>, for example.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>In no case should <gi scheme="MEI">restore</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">restore</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-restore.html">restore</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="sic" module="MEI.edittrans"> <desc xml:lang="en">Contains apparently incorrect or inaccurate material.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.choicePart"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>A correction for the apparent error may be given in an accompanying child or sibling <gi scheme="MEI">corr</gi> element.</p> <p>In no case should <gi scheme="MEI">sic</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">sic</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-sic.html">sic</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="subst" module="MEI.edittrans"> <gloss versionDate="2022-05-18" xml:lang="en">substitution</gloss> <desc xml:lang="en">Groups transcriptional elements when the combination is to be regarded as a single intervention in the text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.edit"/> <memberOf key="att.trans"/> <memberOf key="model.editLike"/> </classes> <content> <rng:ref name="model.transcriptionLike"/> <rng:oneOrMore> <rng:ref name="model.transcriptionLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-subst.html">subst</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="supplied" module="MEI.edittrans"> <desc xml:lang="en">Contains material supplied by the transcriber or editor for any reason.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.agentIdent"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.reasonIdent"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>When the presumed loss of text arises from an identifiable cause, agent signifies the causative agent. When the presumed loss of text arises from action (partial deletion, etc.) assignable to an identifiable hand, the <att>hand</att> attribute signifies the hand responsible for the action. The <att>reason</att> attribute indicates why the text has to be supplied, <abbr>e.g.</abbr>, <val>overbinding</val>, <val>faded ink</val>, <val>lost folio</val>, <val>omitted in original</val>, etc. The <att>source</att> attribute contains the source of the supplied text. The editor(s) responsible for supplied material may be recorded in the <att>resp</att> attribute. The value of resp must point to one or more identifiers declared in the document header. The <att>cert</att> attribute signifies the degree of certainty ascribed to the supplied material.</p> <p>In no case should <gi scheme="MEI">supplied</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">supplied</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-supplied.html">supplied</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="unclear" module="MEI.edittrans"> <desc xml:lang="en">Contains material that cannot be transcribed with certainty because it is illegible or inaudible in the source.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.agentIdent"/> <memberOf key="att.edit"/> <memberOf key="att.extent"/> <memberOf key="att.facsimile"/> <memberOf key="att.handIdent"/> <memberOf key="att.lang"/> <memberOf key="att.reasonIdent"/> <memberOf key="model.choicePart"/> <memberOf key="model.transcriptionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.editTransPart"/> <rng:ref name="model.fLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Where the difficulty in transcription arises from an identifiable cause, the <att>agent</att> attribute signifies the causative agent. The <att>cert</att> attribute signifies the degree of certainty ascribed to the transcription of the text contained within the <gi scheme="MEI">unclear</gi> element. Where the difficulty in transcription arises from action (partial deletion, etc.) assignable to an identifiable hand, the <att>hand</att> attribute signifies the hand responsible for the action. The <att>reason</att> attribute indicates why the material is difficult to transcribe. The <att>resp</att> attribute indicates the individual responsible for the transcription of the word, phrase, or passage contained with the <gi scheme="MEI">unclear</gi> element. The value of <att>resp</att> must point to one or more identifiers declared in the document header.</p> <p>In no case should <gi scheme="MEI">unclear</gi> contain elements that would not otherwise be permitted to occur within the parent of its own <gi scheme="MEI">app</gi> ancestor. For example, when used as a descendent of <gi scheme="MEI">verse</gi>, <gi scheme="MEI">unclear</gi> should only contain those elements allowed within <gi scheme="MEI">verse</gi>.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-unclear.html">unclear</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.externalsymbols"> <moduleSpec ident="MEI.externalsymbols"> <desc xml:lang="en">External symbols component declarations.</desc> </moduleSpec> <classSpec ident="att.extSym.auth" module="MEI.externalsymbols" type="atts"> <desc xml:lang="en">Attributes that point to an external symbol authority.</desc> <attList> <attDef ident="glyph.auth" usage="opt"> <desc xml:lang="en">A name or label associated with the controlled vocabulary from which the value of <att>glyph.name</att> or <att>glyph.num</att> is taken, or the textual content of the element.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="smufl"> <desc xml:lang="en">Standard Music Font Layout.</desc> </valItem> </valList> </attDef> <attDef ident="glyph.uri" usage="opt"> <desc xml:lang="en">The web-accessible location of the controlled vocabulary from which the value of <att>glyph.name</att> or <att>glyph.num</att> is taken, or the textual content of the element.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.extSym.names" module="MEI.externalsymbols" type="atts"> <desc xml:lang="en">Attributes that specify names or values taken from an external symbol authority.</desc> <attList> <attDef ident="glyph.name" usage="opt"> <desc xml:lang="en">Glyph name.</desc> <datatype> <rng:data type="string"/> </datatype> <constraintSpec ident="check_glyph.name" scheme="schematron"> <constraint> <sch:rule context="@glyph.name"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@glyph.name attribute should have content.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="glyph.num" usage="opt"> <desc xml:lang="en">Numeric glyph reference in hexadecimal notation, <abbr>e.g.</abbr>, "#xE000" or "U+E000". N.B. SMuFL version 1.18 uses the range U+E000 - U+ECBF.</desc> <datatype> <rng:ref name="data.HEXNUM"/> </datatype> <constraintSpec ident="check_glyph.num" scheme="schematron"> <constraint> <sch:rule context="mei:*[@glyph.num and (lower-case(@glyph.auth) eq 'smufl' or @glyph.uri eq 'http://www.smufl.org/')]"> <sch:assert role="warning" test="matches(normalize-space(@glyph.num), '^(#x|U\+)E([0-9AB][0-9A-F][0-9A-F]|C[0-9A][0-9A-F]|CB[0-9A-F])$')">SMuFL version 1.18 uses the range U+E000 - U+ECBF.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.extSym" module="MEI.externalsymbols" type="atts"> <desc xml:lang="en">Attributes used to associate MEI features with corresponding glyphs in an externally-defined standard such as SMuFL.</desc> <classes> <memberOf key="att.extSym.auth"/> <memberOf key="att.extSym.names"/> </classes> </classSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.facsimile"> <moduleSpec ident="MEI.facsimile"> <desc xml:lang="en">Facsimile component declarations.</desc> </moduleSpec> <classSpec ident="att.facsimile" module="MEI.facsimile" type="atts"> <desc xml:lang="en">Attributes that associate a feature corresponding with all or part of an image.</desc> <attList> <attDef ident="facs" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">facsimile</gloss> <desc versionDate="2022-10-18" xml:lang="en">Points to one or more images, portions of an image, or surfaces which correspond to the current element.</desc> <datatype minOccurs="1" maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_facsTarget" scheme="schematron"> <constraint> <sch:rule context="@facs"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@facs attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'surface' or local-name() eq 'zone']/@xml:id">Each value in @facs should correspond to the @xml:id attribute of a surface or zone element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <elementSpec ident="facsimile" module="MEI.facsimile"> <desc xml:lang="en">Contains a representation of a written source in the form of a set of images rather than as transcribed or encoded text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.resourceLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="graphic"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="surface"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">graphic</gi> element is provided within facsimile for association of the facsimile with graphic files capable of representing multiple pages, such as TIFF or PDF formats. When more than one graphic element is used, each must represent the same material. When each page is represented by a different graphic, use a <gi scheme="MEI">surface</gi> element for each page.</p> <p>The <att>decls</att> attribute may be used to link the collection of images with a particular source described in the header.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-facsimile.html">facsimile</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="surface" module="MEI.facsimile"> <desc xml:lang="en">Defines a writing surface in terms of a rectangular coordinate space, optionally grouping one or more graphic representations of that space, and rectangular zones of interest within it.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.coordinated"/> <memberOf key="att.dataPointing"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.startId"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.figDescLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.graphicLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="zone"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Scalable Vector Graphics (SVG) markup may be used when allowed by the graphicLike model.</p> <p>The <att>startid</att> attribute may be used to hold a reference to the first feature occurring on this surface.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-surface.html">surface</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="zone" module="MEI.facsimile"> <desc xml:lang="en">Defines an area of interest within a <gi scheme="MEI">surface</gi> or graphic file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.coordinated"/> <memberOf key="att.dataPointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.figDescLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.graphicLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Scalable Vector Graphics (SVG) markup may be used when allowed by the graphicLike model.</p> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-zone.html">zone</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.figtable"> <moduleSpec ident="MEI.figtable"> <desc xml:lang="en">Figures and tables component declarations.</desc> </moduleSpec> <classSpec ident="att.tabular" module="MEI.figtable" type="atts"> <desc xml:lang="en">Attributes shared by table cells.</desc> <attList> <attDef ident="colspan" usage="opt"> <desc xml:lang="en">The number of columns spanned by this cell.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> <attDef ident="rowspan" usage="opt"> <desc xml:lang="en">The number of rows spanned by this cell.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="model.figDescLike" module="MEI.figtable" type="model"> <desc xml:lang="en">Groups elements that provide a brief prose description of the appearance or content of a graphic figure.</desc> </classSpec> <classSpec ident="model.figureLike" module="MEI.figtable" type="model"> <desc xml:lang="en">Groups elements representing or containing graphic information such as an illustration or figure.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.graphicLike" module="MEI.figtable" type="model"> <desc xml:lang="en">Groups elements that indicate the location of an inline graphic, illustration, or figure.</desc> </classSpec> <classSpec ident="model.tableLike" module="MEI.figtable" type="model"> <desc xml:lang="en">Groups table-like elements.</desc> <classes> <memberOf key="model.paracontentPart"/> <memberOf key="model.textComponentLike"/> </classes> </classSpec> <elementSpec ident="fig" module="MEI.figtable"> <gloss versionDate="2022-05-18" xml:lang="en">figure</gloss> <desc xml:lang="en">Groups elements representing or containing graphic information such as an illustration or figure.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.horizontalAlign"/> <memberOf key="att.verticalAlign"/> <memberOf key="att.xy"/> <memberOf key="model.figureLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="figDesc"/> <rng:ref name="model.captionLike"/> <rng:ref name="model.graphicLike"/> <rng:ref name="model.scoreLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-figure.html">figure</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="figDesc" module="MEI.figtable"> <gloss versionDate="2022-05-18" xml:lang="en">figure description</gloss> <desc xml:lang="en">Contains a brief prose description of the appearance or content of a graphic figure, for use when documenting an image without displaying it.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.lang"/> <memberOf key="model.figDescLike"/> </classes> <content> <rng:choice> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.textComponentLike"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>Best practice suggests the use of controlled vocabulary for figure descriptions. Don't confuse this entity with a figure caption. A caption is text primarily intended for display with an illustration. It may or may not function as a description of the illustration.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-figDesc.html">figDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="graphic" module="MEI.figtable"> <desc xml:lang="en">Indicates the location of an inline graphic.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.coordinated.ul"/> <memberOf key="att.dimensions"/> <memberOf key="att.internetMedia"/> <memberOf key="att.facsimile"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.startId"/> <memberOf key="att.visualOffset"/> <memberOf key="model.graphicLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="zone"/> </rng:zeroOrMore> </content> <constraintSpec ident="graphic_attributes" scheme="schematron"> <constraint> <sch:rule context="mei:zone/mei:graphic"> <sch:assert role="warning" test="count(mei:*) = 0">Graphic child of zone should not have children.</sch:assert> </sch:rule> <sch:rule context="mei:symbolDef/mei:graphic"> <sch:assert role="warning" test="@startid or (@ulx and @uly)">Graphic should have either a startid attribute or ulx and uly attributes.</sch:assert> </sch:rule> <sch:rule context="mei:graphic[not(ancestor::mei:symbolDef or ancestor::mei:zone)]"> <sch:assert role="warning" test="not(@ulx or @uly)">Graphic should not have @ulx or @uly attributes.</sch:assert> <sch:assert role="warning" test="not(@ho or @vo)">Graphic should not have @ho or @vo attributes.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-graphic.html">graphic</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="table" module="MEI.figtable"> <desc xml:lang="en">Contains text displayed in tabular form.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.xy"/> <memberOf key="model.tableLike"/> </classes> <content> <rng:optional> <rng:ref name="model.captionLike"/> </rng:optional> <rng:oneOrMore> <rng:ref name="tr"/> </rng:oneOrMore> <rng:optional> <rng:ref name="model.captionLike"/> </rng:optional> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-table">table</ref> element of the Encoded Archival Description (EAD), the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-table.html">table</ref> element of the Text Encoding Initiative (TEI), and the <ref target="https://html.spec.whatwg.org/#the-table-element">table</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="td" module="MEI.figtable"> <gloss versionDate="2022-05-18" xml:lang="en">table data</gloss> <desc xml:lang="en">Designates a table cell that contains data as opposed to a cell that contains column or row heading information.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.xy"/> <memberOf key="att.tabular"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <att>colspan</att> and <att>rowspan</att> attributes record tabular display rendering information.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://html.spec.whatwg.org/#the-td-element">td</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="th" module="MEI.figtable"> <gloss versionDate="2022-05-18" xml:lang="en">table header</gloss> <desc xml:lang="en">Designates a table cell containing column or row heading information as opposed to one containing data.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.xy"/> <memberOf key="att.tabular"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <att>colspan</att> and <att>rowspan</att> attributes record tabular display rendering information.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://html.spec.whatwg.org/#the-th-element">th</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="tr" module="MEI.figtable"> <gloss versionDate="2022-05-18" xml:lang="en">table row</gloss> <desc xml:lang="en">A formatting element that contains one or more cells (intersection of a row and a column) in a <gi scheme="MEI">table</gi>.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.xy"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="th"/> <rng:ref name="td"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>More precise rendition of the table and its cells can be specified in a style sheet.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://html.spec.whatwg.org/#the-tr-element">tr</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.fingering"> <moduleSpec ident="MEI.fingering"> <desc xml:lang="en">Fingering component declarations.</desc> </moduleSpec> <classSpec ident="att.fing.log" module="MEI.fingering" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.fingGrp.log" module="MEI.fingering" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="form" usage="opt"> <valList type="closed"> <valItem ident="alter"> <desc xml:lang="en">alternation of fingers.</desc> </valItem> <valItem ident="combi"> <desc xml:lang="en">combination of fingers.</desc> </valItem> <valItem ident="subst"> <desc xml:lang="en">substitution of fingers.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="model.fingeringLike" module="MEI.fingering" type="model"> <desc xml:lang="en">Groups elements that capture performance instructions regarding the use of the fingers of the hand (or a subset of them).</desc> <classes> <memberOf key="model.controlEventLike"/> </classes> </classSpec> <elementSpec ident="fing" module="MEI.fingering"> <gloss versionDate="2023-06-16" xml:lang="en">finger</gloss> <desc xml:lang="en">An individual finger in a fingering indication.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.fing.anl"/> <memberOf key="att.fing.ges"/> <memberOf key="att.fing.log"/> <memberOf key="att.fing.vis"/> <memberOf key="model.fingeringLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="fing_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:fing[not(ancestor::mei:fingGrp)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="stack_exclusion" scheme="schematron"> <!-- Exclusion implemented using Schematron --> <constraint> <sch:rule context="mei:fing"> <sch:assert test="not(descendant::mei:stack)">The stack element is not allowed as a descendant of fing.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="fingGrp" module="MEI.fingering"> <gloss versionDate="2023-06-16" xml:lang="en">finger group</gloss> <desc xml:lang="en">A group of individual fingers in a fingering indication.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.fingGrp.anl"/> <memberOf key="att.fingGrp.ges"/> <memberOf key="att.fingGrp.log"/> <memberOf key="att.fingGrp.vis"/> <memberOf key="model.fingeringLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.fingeringLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="require_fingeringLike_children" scheme="schematron"> <constraint> <sch:rule context="mei:fingGrp"> <sch:assert test="count(mei:fing) + count(mei:fingGrp) > 1">At least 2 fing or fingGrp elements are required.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_fingGrp_start-type_attributes" scheme="schematron"> <constraint> <sch:pattern> <sch:rule context="mei:fingGrp[not(ancestor::mei:fingGrp)][@tstamp or @startid]"> <sch:assert test="not(child::mei:*[@tstamp or @startid])">When @tstamp or @startid is present on fingGrp, its child elements cannot have a @tstamp or @startid attribute.</sch:assert> </sch:rule> <sch:rule context="mei:fingGrp[not(ancestor::mei:fingGrp)][not(@tstamp or @startid)]"> <sch:assert test="count(descendant::mei:*[@tstamp or @startid]) = count(child::mei:*[local-name()='fing' or local-name()='fingGrp'])">When @tstamp or @startid is not present on fingGrp, each of its child elements must have a @tstamp or @startid attribute.</sch:assert> </sch:rule> </sch:pattern> </constraint> </constraintSpec> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.frbr"> <moduleSpec ident="MEI.frbr"> <desc xml:lang="en">FRBR (Functional Requirements for Bibliographic Records) declarations.</desc> </moduleSpec> <macroSpec ident="data.FRBRRELATIONSHIP" module="MEI.frbr" type="dt"> <desc xml:lang="en">Relationships between FRBR entities.</desc> <content> <valList type="closed"> <valItem ident="hasAbridgement"> <desc xml:lang="en">Target is an abridgement, condensation, or expurgation of the current entity.</desc> </valItem> <valItem ident="isAbridgementOf"> <desc xml:lang="en">Reciprocal relationship of hasAbridgement.</desc> </valItem> <valItem ident="hasAdaptation"> <desc xml:lang="en">Target is an adaptation, paraphrase, free translation, variation (music), harmonization (music), or fantasy (music) of the current entity.</desc> </valItem> <valItem ident="isAdaptationOf"> <desc xml:lang="en">Reciprocal relationship of hasAdaptation.</desc> </valItem> <valItem ident="hasAlternate"> <desc xml:lang="en">Target is an alternate format or simultaneously released edition of the current entity.</desc> </valItem> <valItem ident="isAlternateOf"> <desc xml:lang="en">Reciprocal relationship of hasAlternate.</desc> </valItem> <valItem ident="hasArrangement"> <desc xml:lang="en">Target is an arrangement (music) of the current entity.</desc> </valItem> <valItem ident="isArrangementOf"> <desc xml:lang="en">Reciprocal relationship of hasArrangement.</desc> </valItem> <valItem ident="hasComplement"> <desc xml:lang="en">Target is a cadenza, libretto, choreography, ending for unfinished work, incidental music, or musical setting of a text of the current entity.</desc> </valItem> <valItem ident="isComplementOf"> <desc xml:lang="en">Reciprocal relationship of hasComplement.</desc> </valItem> <valItem ident="hasEmbodiment"> <desc xml:lang="en">Target is a physical embodiment of the current abstract entity; describes the expression-to-manifestation relationship.</desc> </valItem> <valItem ident="isEmbodimentOf"> <desc xml:lang="en">Reciprocal relationship of hasEmbodiment.</desc> </valItem> <valItem ident="hasExemplar"> <desc xml:lang="en">Target is an exemplar of the class of things represented by the current entity; describes the manifestation-to-item relationship.</desc> </valItem> <valItem ident="isExemplarOf"> <desc xml:lang="en">Reciprocal relationship of hasExamplar.</desc> </valItem> <valItem ident="hasImitation"> <desc xml:lang="en">Target is a parody, imitation, or travesty of the current entity.</desc> </valItem> <valItem ident="isImitationOf"> <desc xml:lang="en">Reciprocal relationship of hasImitation.</desc> </valItem> <valItem ident="hasPart"> <desc xml:lang="en">Target is a chapter, section, part, etc.; volume of a multivolume manifestation; volume/issue of serial; intellectual part of a multi-part work; illustration for a text; sound aspect of a film; soundtrack for a film on separate medium; soundtrack for a film embedded in film; monograph in a series; physical component of a particular copy; the binding of a book of the current entity.</desc> </valItem> <valItem ident="isPartOf"> <desc xml:lang="en">Reciprocal relationship of hasPart.</desc> </valItem> <valItem ident="hasRealization"> <desc xml:lang="en">Target is a realization of the current entity; describes the work-to-expression relationship.</desc> </valItem> <valItem ident="isRealizationOf"> <desc xml:lang="en">Reciprocal relationship of hasRealization.</desc> </valItem> <valItem ident="hasReconfiguration"> <desc xml:lang="en">Target has been reconfigured: bound with, split into, extracted from the current entity.</desc> </valItem> <valItem ident="isReconfigurationOf"> <desc xml:lang="en">Reciprocal relationship of hasReconfiguration.</desc> </valItem> <valItem ident="hasReproduction"> <desc xml:lang="en">Target is a reproduction, microreproduction, macroreproduction, reprint, photo-offset reprint, or facsimile of the current entity.</desc> </valItem> <valItem ident="isReproductionOf"> <desc xml:lang="en">Reciprocal relationship of hasReproduction.</desc> </valItem> <valItem ident="hasRevision"> <desc xml:lang="en">Target is a revised edition, enlarged edition, or new state (graphic) of the current entity.</desc> </valItem> <valItem ident="isRevisionOf"> <desc xml:lang="en">Reciprocal relationship of hasRevision.</desc> </valItem> <valItem ident="hasSuccessor"> <desc xml:lang="en">Target is a sequel or succeeding work of the current entity.</desc> </valItem> <valItem ident="isSuccessorOf"> <desc xml:lang="en">Reciprocal relationship of hasSuccessor.</desc> </valItem> <valItem ident="hasSummarization"> <desc xml:lang="en">Target is a digest or abstract of the current entity.</desc> </valItem> <valItem ident="isSummarizationOf"> <desc xml:lang="en">Reciprocal relationship of hasSummarization.</desc> </valItem> <valItem ident="hasSupplement"> <desc xml:lang="en">Target is an index, concordance, teacher’s guide, gloss, supplement, or appendix of the current entity.</desc> </valItem> <valItem ident="isSupplementOf"> <desc xml:lang="en">Reciprocal relationship of hasSupplement.</desc> </valItem> <valItem ident="hasTransformation"> <desc xml:lang="en">Target is a dramatization, novelization, versification, or screenplay of the current entity.</desc> </valItem> <valItem ident="isTransformationOf"> <desc xml:lang="en">Reciprocal relationship of hasTransformation.</desc> </valItem> <valItem ident="hasTranslation"> <desc xml:lang="en">Target is a literal translation or transcription (music) of the current entity.</desc> </valItem> <valItem ident="isTranslationOf"> <desc xml:lang="en">Reciprocal relationship of hasTranslation.</desc> </valItem> </valList> </content> </macroSpec> <classSpec ident="model.expressionLike" type="model" module="MEI.frbr"> <desc xml:lang="en">Collects FRBR expression-like elements.</desc> </classSpec> <classSpec ident="model.itemLike" type="model" module="MEI.frbr"> <desc xml:lang="en">Collects FRBR item-like elements.</desc> </classSpec> <classSpec ident="model.manifestationLike" type="model" module="MEI.frbr"> <desc xml:lang="en">Collects FRBR manifestation-like elements.</desc> </classSpec> <elementSpec ident="expression" module="MEI.frbr"> <desc xml:lang="en">Intellectual or artistic realization of a work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="model.expressionLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.identifierLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.titleLike"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="model.respLikePart"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.workIdent"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="otherChar"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="creation"/> </rng:optional> <rng:optional> <rng:ref name="history"/> </rng:optional> <rng:optional> <rng:ref name="langUsage"/> </rng:optional> <rng:optional> <rng:ref name="perfMedium"/> </rng:optional> <rng:optional> <rng:ref name="perfDuration"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="extent"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="scoreFormat"/> </rng:optional> <rng:optional> <rng:ref name="contents"/> </rng:optional> <rng:optional> <rng:ref name="context"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="biblList"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="notesStmt"/> </rng:optional> <rng:optional> <rng:ref name="classification"/> </rng:optional> <rng:optional> <rng:ref name="componentList"/> </rng:optional> <rng:optional> <rng:ref name="relationList"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="extMeta"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">perfDuration</gi> element captures the <emph>intended duration</emph> of the expression, while <gi scheme="MEI">extent</gi> records scope of the expression in other terms, such as number of pages, measures, etc.</p> </remarks> </elementSpec> <elementSpec ident="expressionList" module="MEI.frbr"> <desc xml:lang="en">Gathers bibliographic expression entities.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.expressionLike"/> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="item" module="MEI.frbr"> <desc xml:lang="en">Single instance or exemplar of a source/manifestation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.itemLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.identifierLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="availability"/> </rng:optional> <rng:optional> <rng:ref name="physDesc"/> </rng:optional> <rng:optional> <rng:ref name="physLoc"/> </rng:optional> <rng:optional> <rng:ref name="history"/> </rng:optional> <rng:optional> <rng:ref name="notesStmt"/> </rng:optional> <rng:optional> <rng:ref name="classification"/> </rng:optional> <rng:optional> <rng:ref name="componentList"/> </rng:optional> <rng:optional> <rng:ref name="relationList"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="extMeta"/> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="itemList" module="MEI.frbr"> <desc xml:lang="en">Gathers bibliographic item entities.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.itemLike"/> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="manifestation" module="MEI.frbr"> <desc xml:lang="en">A bibliographic description of a physical embodiment of an expression of a work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.componentType"/> <memberOf key="att.dataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.recordType"/> <memberOf key="att.targetEval"/> <memberOf key="model.manifestationLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="locus"/> <rng:ref name="locusGrp"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.identifierLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="titleStmt"/> </rng:optional> <rng:ref name="macro.bibldescPart"/> <rng:optional> <rng:ref name="creation"/> </rng:optional> <rng:optional> <rng:ref name="history"/> </rng:optional> <rng:optional> <rng:ref name="langUsage"/> </rng:optional> <rng:optional> <rng:ref name="contents"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="biblList"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="notesStmt"/> </rng:optional> <rng:optional> <rng:ref name="classification"/> </rng:optional> <rng:optional> <rng:ref name="itemList"/> </rng:optional> <rng:optional> <rng:ref name="componentList"/> </rng:optional> <rng:optional> <rng:ref name="relationList"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="extMeta"/> </rng:zeroOrMore> </content> <constraintSpec ident="check_singleton" scheme="schematron"> <constraint> <sch:rule context="mei:manifestation[@singleton eq 'true']"> <sch:assert test="not(mei:itemList)">Item children are not permitted when @singleton equals "true".</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_singleton_availability" scheme="schematron"> <constraint> <sch:rule context="mei:manifestation[@singleton eq 'false'] | mei:manifestation[not(@singleton)]"> <sch:assert test="not(mei:availability)">Availability is only permitted when @singleton equals "true".</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="singleton"> <desc xml:lang="en">Indicates the manifestation is a unique physical object.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> <remarks xml:lang="en"><p>This attribute is inspired by the <ref target="https://repository.ifla.org/handle/123456789/659">FRBRoo</ref> concept of manifestation singleton.</p></remarks> <remarks xml:lang="en"><p>Manifestation singleton encompasses: manuscripts, preperatory sketches, and final clean drafts.</p></remarks> </attDef> </attList> </elementSpec> <elementSpec ident="manifestationList" module="MEI.frbr"> <desc xml:lang="en">A container for the descriptions of physical embodiments of an expression of a work.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.manifestationLike"/> </rng:oneOrMore> </content> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.genetic"> <moduleSpec ident="MEI.genetic"> <desc xml:lang="en">Genetic encoding component declarations.</desc> </moduleSpec> <classSpec ident="att.geneticState" module="MEI.genetic" type="atts"> <desc xml:lang="en">Attributes that pertain to a genetic state.</desc> <constraintSpec ident="check_changeState.targets" scheme="schematron"> <constraint> <sch:rule context="@state"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@state attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:genState/@xml:id">The value in @state should correspond to the @xml:id attribute of a genState (genetic state) element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="instant"> <desc xml:lang="en">The @instant attribute is syntactic sugar for classifying a scribal intervention as an ad-hoc modification; that is, one which does not interrupt the writing process.</desc> <datatype> <rng:choice> <rng:ref name="data.BOOLEAN"/> <rng:value>unknown</rng:value> </rng:choice> </datatype> </attDef> <attDef ident="state"> <desc xml:lang="en">Points to the genetic state that results from this modification.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <elementSpec ident="genDesc" module="MEI.genetic"> <gloss versionDate="2023-06-16" xml:lang="en">genetic description</gloss> <desc xml:lang="en">Bundles information about the textual development of a work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.resourceLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="genDesc"/> <rng:ref name="genState"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="ordered"> <desc xml:lang="en">When set to "true" the child elements are known to be in chronological order. When set to "false" or when not provided, the order of child elements is unknown.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The development of a work can be traced in one or more sources.</p> <p>When the <gi scheme="MEI">genDesc</gi> element is nested, the inner element describes a group of processes with unknown chronological order inside a larger set of processes with known order, or vice versa.</p> <p>The <att>decls</att> attribute may be used to link the genetic description with a particular work described in the header.</p> </remarks> </elementSpec> <elementSpec ident="genState" module="MEI.genetic"> <desc xml:lang="en">Describes a distinctive state in the textual development of a work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.dataPointing"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="desc"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="respStmt"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="model.dateLike"/> </rng:optional> </content> <remarks xml:lang="en"> <p>Any scribal modifications encoded with elements, such as <gi scheme="MEI">add</gi>, <gi scheme="MEI">del</gi>, etc., which refer to a genState element, are regarded as the operations that need to be implemented to reach this state; that is, they precede this state.</p> <p>When nested inside a <gi scheme="MEI">genDesc</gi> element with <att>ordered</att> set to "false", information regarding the chronological order of states may be provided using the <att>next</att>, <att>prev</att>, <att>follows</att> and <att>precedes</att> attributes.</p> <p>The <gi scheme="MEI">date</gi> can be used to identify when the current state was achieved.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.gestural"> <moduleSpec ident="MEI.gestural"> <desc xml:lang="en">Gestural component declarations.</desc> </moduleSpec> <classSpec ident="att.accid.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.accidental.ges"/> </classes> </classSpec> <classSpec ident="att.accidental.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes for capturing momentary pitch inflection in the gestural domain.</desc> <attList> <attDef ident="accid.ges" usage="opt"> <desc xml:lang="en">Records the performed pitch inflection.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.GESTURAL"/> </datatype> <constraintSpec ident="check_accid_duplication" scheme="schematron"> <constraint> <sch:rule context="@accid.ges"> <sch:assert role="warning" test="not(. eq ../@accid)">The value of @accid.ges should not duplicate the value of @accid.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.ambitus.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.ambNote.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.anchoredText.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.annot.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.arpeg.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.artic.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.articulation.ges"/> </classes> </classSpec> <classSpec ident="att.articulation.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes describing the method of performance.</desc> <attList> <attDef ident="artic.ges" usage="opt"> <desc xml:lang="en">Records performed articulation that differs from the written value.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.ARTICULATION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.attacca.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.attacking" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes whether an element is performed "attacca".</desc> <attList> <attDef ident="attacca"> <desc xml:lang="en">Indicates that the performance of the next musical division should begin immediately following this one.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.barLine.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.beam.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.beamSpan.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.beatRpt.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.bend.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> <attList> <attDef ident="amount" usage="opt"> <desc xml:lang="en">Records the amount of detuning. The decimal values should be rendered as a fraction (or an integer plus a fraction) along with the bend symbol.</desc> <datatype> <rng:ref name="data.BEND.AMOUNT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.bracketSpan.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.breath.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.bTrem.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.tremMeasured"/> </classes> </classSpec> <classSpec ident="att.caesura.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.chord.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.articulation.ges"/> <memberOf key="att.duration.ges"/> <memberOf key="att.instrumentIdent"/> <memberOf key="att.chord.ges.cmn"/> </classes> </classSpec> <classSpec ident="att.chordDef.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.chordMember.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.accidental.ges"/> </classes> </classSpec> <classSpec ident="att.clef.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.clefGrp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.cpMark.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.curve.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.custos.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.mdiv.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.attacking"/> </classes> </classSpec> <classSpec ident="att.dir.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.dot.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.duration.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes that record performed duration that differs from a feature’s written duration.</desc> <attList> <attDef ident="dur.ges" usage="opt"> <desc xml:lang="en">Records performed duration information that differs from the written duration.</desc> <datatype> <rng:ref name="data.DURATION.GESTURAL"/> </datatype> </attDef> <attDef ident="dots.ges" usage="opt"> <desc xml:lang="en">Number of dots required for a gestural duration when different from that of the written duration.</desc> <datatype> <rng:ref name="data.AUGMENTDOT"/> </datatype> </attDef> <attDef ident="dur.metrical" usage="opt"> <desc xml:lang="en">Duration as a count of units provided in the time signature denominator.</desc> <datatype> <rng:data type="decimal"> <rng:param name="pattern">\d+(\.\d+)?</rng:param> </rng:data> </datatype> </attDef> <attDef ident="dur.ppq" usage="opt"> <desc xml:lang="en">Duration recorded as pulses-per-quarter note, <abbr>e.g.</abbr>, MIDI clicks or MusicXML divisions.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> <attDef ident="dur.real" usage="opt"> <desc xml:lang="en">Duration in seconds, <abbr>e.g.</abbr>, <val>1.732</val>.</desc> <datatype> <rng:data type="decimal"> <rng:param name="pattern">\d+(\.\d+)?</rng:param> </rng:data> </datatype> </attDef> <attDef ident="dur.recip" usage="opt"> <desc xml:lang="en">Duration as an optionally dotted <ref target="https://www.humdrum.org/rep/recip/">Humdrum **recip value</ref>.</desc> <datatype> <rng:data type="token"> <rng:param name="pattern">[0-9]+(%[0-9]+)?\.*q?</rng:param> </rng:data> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.dynam.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.midiValue"/> <memberOf key="att.midiValue2"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.ending.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.episema.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.articulation.ges"/> </classes> </classSpec> <classSpec ident="att.f.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.fermata.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.fing.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.fingGrp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.fTrem.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.tremMeasured"/> </classes> </classSpec> <classSpec ident="att.gliss.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.graceGrp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.grpSym.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.hairpin.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.midiValue"/> <memberOf key="att.midiValue2"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.halfmRpt.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.harm.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.harpPedal.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.hispanTick.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.instrDef.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.channelized"/> <memberOf key="att.midiInstrument"/> <memberOf key="att.soundLocation"/> </classes> </classSpec> <classSpec ident="att.keyAccid.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.keySig.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.layer.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.layerDef.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.instrumentIdent"/> <memberOf key="att.tuning"/> </classes> </classSpec> <classSpec ident="att.ligature.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.line.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes for describing the performed components of a line.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.liquescent.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.lv.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.lyrics.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.measure.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes. The tstamp.ges and tstamp.real attributes encode the onset time of the measure. In reality, this is usually the same as the onset time of the first event in the measure.</desc> <classes> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.mensur.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.metaMark.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.meterSig.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.meterSigGrp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.midi.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.mNum.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.mordent.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.mRest.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.mRpt.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.mRpt2.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.mSpace.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.multiRest.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.multiRpt.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.nc.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <!-- most of the same attributes as note element! --> <memberOf key="att.accidental.ges"/> <memberOf key="att.articulation.ges"/> <memberOf key="att.duration.ges"/> <memberOf key="att.instrumentIdent"/> <memberOf key="att.midiVelocity"/> <memberOf key="att.pitch.ges"/> </classes> </classSpec> <classSpec ident="att.ncGrp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.neume.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.note.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.accidental.ges"/> <memberOf key="att.articulation.ges"/> <memberOf key="att.duration.ges"/> <memberOf key="att.instrumentIdent"/> <memberOf key="att.midiVelocity"/> <memberOf key="att.note.ges.mensural"/> <memberOf key="att.pitch.ges"/> <memberOf key="att.stringtab"/> </classes> <constraintSpec ident="extremis_disallows_gestural_pitch" scheme="schematron"> <constraint> <sch:rule context="mei:note[@extremis]"> <sch:assert test="not(@pname.ges) and not(@oct.ges)">When the @extremis attribute is used, the @pname.ges and @oct.ges attributes are not allowed.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="extremis" usage="opt"> <desc xml:lang="en">Indicates an extreme, indefinite performed pitch.</desc> <valList type="closed"> <valItem ident="highest"> <desc xml:lang="en">Highest note the performer can play.</desc> </valItem> <valItem ident="lowest"> <desc xml:lang="en">Lowest note the performer can play.</desc> </valItem> </valList> <remarks xml:lang="en"> <p>On a wind instrument, the "highest note possible" depends on the player’s abilities. On a string instrument, the "lowest note possible" depends on how much a string is de-tuned; that is, loosened using the tuning peg. Use of the <att>pname</att> and <att>oct</att> or <att>ploc</att> and <att>oloc</att> or <att>loc</att> attributes is necessary to record the written pitch and octave of the symbol for this note.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.octave.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.oriscus.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.ornam.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.ornamentAccid.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural accidentals associated with ornaments.</desc> <attList> <attDef ident="accidupper.ges" usage="opt"> <desc xml:lang="en">Records the sounding accidental associated with an upper neighboring note.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.GESTURAL"/> </datatype> </attDef> <attDef ident="accidlower.ges" usage="opt"> <desc xml:lang="en">Records the sounding accidental associated with a lower neighboring note.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.GESTURAL"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ossia.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.pad.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.part.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.parts.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.pb.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.pedal.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.phrase.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.pitch.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural attributes about pitch.</desc> <attList> <attDef ident="oct.ges" usage="opt"> <desc xml:lang="en">Records performed octave information that differs from the written value.</desc> <datatype> <rng:ref name="data.OCTAVE"/> </datatype> </attDef> <attDef ident="pname.ges" usage="opt"> <desc xml:lang="en">Contains a performed pitch name that differs from the written value.</desc> <datatype> <rng:ref name="data.PITCHNAME.GESTURAL"/> </datatype> </attDef> <attDef ident="pnum" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">pitch number</gloss> <desc xml:lang="en">Holds a pitch-to-number mapping, a base-40 or MIDI note number, for example.</desc> <datatype> <rng:ref name="data.PITCHNUMBER"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.plica.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes that describe the properties of a plica in the mensural repertoire.</desc> </classSpec> <classSpec ident="att.proport.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.quilisma.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.rdg.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.refrain.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.reh.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.repeatMark.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.rest.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.rest.ges.mensural"/> </classes> </classSpec> <classSpec ident="att.sb.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.score.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.scoreDef.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes for scoreDef. The values set in these attributes act as score-wide defaults for attributes that are not set in descendant elements. For example, the grace attribute value here applies to all the grace attribute values in the score (or, more accurately, until the next <gi scheme="MEI">scoreDef</gi> element) without having to individually set each note’s grace attribute value. The midi.* attributes function as default values when creating sounding output. The tune.* attributes provide the capability of recording a tuning reference pitch.</desc> <classes> <memberOf key="att.channelized"/> <memberOf key="att.timeBase"/> <memberOf key="att.tuning"/> <memberOf key="att.midiTempo"/> <memberOf key="att.mmTempo"/> </classes> </classSpec> <classSpec ident="att.section.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.attacking"/> </classes> </classSpec> <classSpec ident="att.signifLet.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.slur.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.soundLocation" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes that locate a sound source within 3-D space.</desc> <attList> <attDef ident="azimuth" usage="opt"> <desc xml:lang="en">The lateral or left-to-right plane.</desc> <datatype> <rng:ref name="data.DEGREES"/> </datatype> <remarks xml:lang="en"> <p>A value of 0, 360, or -360 is directly in front of the listener, while a value of 180 or -180 is directly behind.</p> </remarks> </attDef> <attDef ident="elevation" usage="opt"> <desc xml:lang="en">The above-to-below axis.</desc> <datatype> <rng:ref name="data.DEGREES"/> </datatype> <remarks xml:lang="en"> <p>A value of 0, 360, or -360 is directly above the listener, while a value of 180 or -180 is directly below.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.sp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.space.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.staff.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.staffDef.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes for staffDef in the CMN repertoire.</desc> <classes> <memberOf key="att.instrumentIdent"/> <memberOf key="att.stringtab.tuning"/> <memberOf key="att.timeBase"/> <memberOf key="att.tuning"/> </classes> </classSpec> <classSpec ident="att.staffGrp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.instrumentIdent"/> </classes> </classSpec> <classSpec ident="att.stageDir.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.stem.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes that describe the properties of a stem in the mensural repertoire.</desc> </classSpec> <classSpec ident="att.strophicus.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.syl.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.syllable.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.symbol.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.tempo.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.midiTempo"/> </classes> </classSpec> <classSpec ident="att.tie.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.timestamp.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes that record a performed (as opposed to notated) time stamp.</desc> <attList> <attDef ident="tstamp.ges" usage="opt"> <desc xml:lang="en">Encodes the onset time in terms of musical time, <abbr>i.e.</abbr>, beats[.fractional beat part], as expressed in the written time signature.</desc> <datatype> <rng:ref name="data.BEAT"/> </datatype> </attDef> <attDef ident="tstamp.real" usage="opt"> <desc xml:lang="en">Records the onset time in terms of ISO time.</desc> <datatype> <rng:ref name="data.ISOTIME"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.timestamp2.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Attributes that record a performed (as opposed to notated) time stamp for the end of an event.</desc> <attList> <attDef ident="tstamp2.ges" usage="opt"> <desc xml:lang="en">Encodes the ending point of an event, <abbr>i.e.</abbr>, a count of measures plus a beat location in the ending measure.</desc> <datatype> <rng:ref name="data.MEASUREBEAT"/> </datatype> </attDef> <attDef ident="tstamp2.real" usage="opt"> <desc xml:lang="en">Records the ending point of an event in terms of ISO time.</desc> <datatype> <rng:ref name="data.ISOTIME"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.trill.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> <memberOf key="att.timestamp2.ges"/> </classes> </classSpec> <classSpec ident="att.tuplet.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ges"/> </classes> </classSpec> <classSpec ident="att.tupletSpan.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.timestamp2.ges"/> <memberOf key="att.tuplet.ges"/> </classes> </classSpec> <classSpec ident="att.turn.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.verse.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> <classSpec ident="att.volta.ges" module="MEI.gestural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> </classSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.harmony"> <moduleSpec ident="MEI.harmony"> <desc xml:lang="en">Harmony component declarations.</desc> </moduleSpec> <classSpec ident="att.chordDef.log" module="MEI.harmony" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.stringtab.position"/> <memberOf key="att.stringtab.tuning"/> </classes> </classSpec> <classSpec ident="att.chordMember.log" module="MEI.harmony" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.pitched"/> <memberOf key="att.stringtab"/> </classes> </classSpec> <classSpec ident="att.f.log" module="MEI.harmony" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.harm.log" module="MEI.harmony" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="chordref" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">chord reference</gloss> <desc xml:lang="en">Contains a reference to a <gi scheme="MEI">chordDef</gi> element elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_chordrefTarget" scheme="schematron"> <constraint> <sch:rule context="@chordref"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@chordref attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:chordDef/@xml:id">The value in @chordref should correspond to the @xml:id attribute of a chordDef element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="model.chordTableLike" module="MEI.harmony" type="model"> <desc xml:lang="en">Groups elements that group playable chord definitions.</desc> </classSpec> <classSpec ident="model.controlEventLike.harmony" module="MEI.harmony" type="model"> <desc xml:lang="en">Groups harmonic elements that function as control events; that is, those events that modify or otherwise depend on the existence of notated events.</desc> <classes> <memberOf key="model.controlEventLike"/> </classes> </classSpec> <classSpec ident="model.figbassLike" module="MEI.harmony" type="model"> <desc xml:lang="en">Groups elements that record figured bass.</desc> </classSpec> <classSpec ident="model.fLike" module="MEI.harmony" type="model"> <desc xml:lang="en">Groups elements that represent single figured bass elements.</desc> </classSpec> <classSpec ident="model.harmLike" module="MEI.harmony" type="model"> <desc xml:lang="en">Groups elements that record indications of harmony.</desc> <classes> <memberOf key="model.controlEventLike.harmony"/> </classes> </classSpec> <elementSpec ident="chordDef" module="MEI.harmony"> <gloss versionDate="2022-05-18" xml:lang="en">chord definition</gloss> <desc xml:lang="en">Chord tablature definition.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.chordDef.anl"/> <memberOf key="att.chordDef.ges"/> <memberOf key="att.chordDef.log"/> <memberOf key="att.chordDef.vis"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="chordMember"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="barre"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>An <att>xml:id</att> attribute, while not required by the schema, is needed so that <gi scheme="MEI">harm</gi> elements can reference a particular chord definition. The <att>pos</att> (position) attribute is provided in order to create displayable chord tablature grids. <gi scheme="MEI">chordMember</gi> sub-elements record the individual pitches of the chord. <gi scheme="MEI">barre</gi> sub-elements may be used when a single finger is used to stop multiple strings.</p> </remarks> </elementSpec> <elementSpec ident="chordMember" module="MEI.harmony"> <desc xml:lang="en">An individual pitch in a chord defined by a <gi scheme="MEI">chordDef</gi> element.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.chordMember.anl"/> <memberOf key="att.chordMember.ges"/> <memberOf key="att.chordMember.log"/> <memberOf key="att.chordMember.vis"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The <att>string</att>, <att>fret</att>, and <att>fing</att> attributes are provided in order to create displayable chord tablature grids. The <att>inth</att> (harmonic interval) attribute may be used to facilitate automated performance of a chord. It gives the number of 1/2 steps above the bass. Of course, for the bass note itself, <att>inth</att> should be set to <val>0</val>.</p> </remarks> </elementSpec> <elementSpec ident="chordTable" module="MEI.harmony"> <desc xml:lang="en">Chord/tablature look-up table.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.chordTableLike"/> </classes> <content> <rng:oneOrMore> <rng:ref name="chordDef"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>A chordTable may be shared between MEI instances through the use of an external parsed entity containing the look-up table to be shared.</p> </remarks> </elementSpec> <elementSpec ident="f" module="MEI.harmony"> <gloss versionDate="2022-05-18" xml:lang="en">figure</gloss> <desc xml:lang="en">Single element of a figured bass indication.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.f.anl"/> <memberOf key="att.f.ges"/> <memberOf key="att.f.log"/> <memberOf key="att.f.vis"/> <memberOf key="model.fLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="fb" module="MEI.harmony"> <gloss versionDate="2022-05-18" xml:lang="en">figured bass</gloss> <desc xml:lang="en">Symbols added to a bass line that indicate harmony. Used to improvise a chordal accompaniment. Sometimes called Generalbass, thoroughbass, or basso continuo.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="model.figbassLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.fLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="harm" module="MEI.harmony"> <gloss versionDate="2022-05-18" xml:lang="en">harmony</gloss> <desc xml:lang="en">An indication of harmony, <abbr>e.g.</abbr>, chord names, tablature grids, harmonic analysis, figured bass.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.harm.log"/> <memberOf key="att.harm.vis"/> <memberOf key="att.harm.ges"/> <memberOf key="att.harm.anl"/> <memberOf key="model.harmLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="model.figbassLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="harm_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:harm"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.header"> <moduleSpec ident="MEI.header"> <desc xml:lang="en">Metadata header component declarations.</desc> </moduleSpec> <macroSpec ident="macro.availabilityPart" module="MEI.header" type="pe"> <desc xml:lang="en">Groups elements that may appear as part of a description of the availability of and access to a bibliographic item.</desc> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="accessRestrict"/> <rng:ref name="distributor"/> <rng:ref name="price"/> <rng:ref name="sysReq"/> <rng:ref name="useRestrict"/> <rng:ref name="model.addressLike"/> <rng:ref name="model.dateLike"/> <rng:ref name="model.identifierLike"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:text/> </rng:choice> </content> </macroSpec> <macroSpec ident="macro.bibldescPart" module="MEI.header" type="pe"> <desc xml:lang="en">Groups manifestation- and item-specific elements that may appear as part of a bibliographic description.</desc> <content> <rng:optional> <rng:ref name="editionStmt"/> </rng:optional> <rng:optional> <rng:ref name="pubStmt"/> </rng:optional> <rng:optional> <rng:ref name="availability"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="physDesc"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="physLoc"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="seriesStmt"/> </rng:zeroOrMore> </content> </macroSpec> <classSpec ident="att.bifoliumSurfaces" module="MEI.header" type="atts"> <desc xml:lang="en">Attributes that link a bifolium element with a <gi scheme="MEI">surface</gi> element.</desc> <attList> <attDef ident="outer.recto" usage="opt"> <desc xml:lang="en">A reference to a <gi scheme="MEI">surface</gi> element positioned on the outer recto side of a (folded) sheet.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="inner.verso" usage="opt"> <desc xml:lang="en">A reference to a <gi scheme="MEI">surface</gi> element positioned on the inner verso side of a (folded) sheet.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="inner.recto" usage="opt"> <desc xml:lang="en">A reference to a <gi scheme="MEI">surface</gi> element positioned on the inner recto side of a (folded) sheet.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="outer.verso" usage="opt"> <desc xml:lang="en">A reference to a <gi scheme="MEI">surface</gi> element positioned on the outer verso side of a (folded) sheet.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.foliumSurfaces" module="MEI.header" type="atts"> <desc xml:lang="en">Attributes that link a folium element with a <gi scheme="MEI">surface</gi> element.</desc> <attList> <attDef ident="recto" usage="opt"> <desc xml:lang="en">A reference to a <gi scheme="MEI">surface</gi> element positioned on the recto side of the sheet.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="verso" usage="opt"> <desc xml:lang="en">A reference to a <gi scheme="MEI">surface</gi> element positioned on the verso side of the sheet.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.perfRes" module="MEI.header" type="atts"> <desc xml:lang="en">Attributes that define the characteristics and components of the performance resource.</desc> <classes> <memberOf key="att.perfRes.basic"/> <memberOf key="att.transposition"/> </classes> <attList> <attDef ident="solo" usage="opt"> <desc xml:lang="en">Use this attribute to identify the performance resource as a soloist especially in an accompanied work, such as a concerto or vocal solo.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.perfRes.basic" module="MEI.header" type="atts"> <desc xml:lang="en">Attributes that define the characteristics and components of the performance resource or a performance resource list.</desc> <classes> <memberOf key="att.adlibitum"/> </classes> <attList> <attDef ident="count" usage="opt"> <desc xml:lang="en">Indicates the number of performers.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.adlibitum" module="MEI.header" type="atts"> <desc xml:lang="en">Attributes that describe a performance resource as ad libitum (optional).</desc> <attList> <attDef ident="adlib" usage="opt"> <desc xml:lang="en">Marks a performance resource as ad libitum (optional).</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The technical term “ad libitum” has several meanings depending on the context in which it occurs:</p> <p> <list type="gloss"> <head>Meanings of ad libitum</head> <label>1</label> <item>indicates an optional performance resource (instrumental or vocal part or group),</item> <label>2</label> <item>marks a passage to be played freely or free in time,</item> <label>3</label> <item>requests or invites to improvise a passage of music,</item> <label>4</label> <item>indicates that the number repetitions can be set individually or spontaneously.</item> </list> </p> <p>Currently only the use within a performance resource (case 1) is supported.</p> </remarks> </classSpec> <classSpec ident="att.recordType" type="atts" module="MEI.header"> <desc xml:lang="en">Attributes that define the characteristics and components of the bibliographic description.</desc> <attList> <attDef ident="recordtype"> <valList type="closed"> <valItem ident="a"> <desc xml:lang="en">Language material.</desc> </valItem> <valItem ident="c"> <desc xml:lang="en">Notated music.</desc> </valItem> <valItem ident="d"> <desc xml:lang="en">Manuscript notated music.</desc> </valItem> <valItem ident="e"> <desc xml:lang="en">Non-manuscript cartographic material.</desc> </valItem> <valItem ident="f"> <desc xml:lang="en">Manuscript cartographic material.</desc> </valItem> <valItem ident="g"> <desc xml:lang="en">Projected medium.</desc> </valItem> <valItem ident="i"> <desc xml:lang="en">Nonmusical sound recording.</desc> </valItem> <valItem ident="j"> <desc xml:lang="en">Musical sound recording.</desc> </valItem> <valItem ident="k"> <desc xml:lang="en">Two-dimensional nonprojectable graphic.</desc> </valItem> <valItem ident="m"> <desc xml:lang="en">Computer file.</desc> </valItem> <valItem ident="o"> <desc xml:lang="en">Kit.</desc> </valItem> <valItem ident="p"> <desc xml:lang="en">Mixed materials.</desc> </valItem> <valItem ident="r"> <desc xml:lang="en">Three-dimensional artifact or naturally occurring object.</desc> </valItem> <valItem ident="t"> <desc xml:lang="en">Manuscript language material. </desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>recordtype</att> attribute may be used to determine the appropriateness and validity of certain data elements in the description.</p> <p> <list type="gloss"> <head>Code Descriptions</head> <label>a</label> <item>Use for non-manuscript language material, including microforms and electronic resources that are basically textual in nature, whether they are reproductions from print or originally produced.</item> <label>c</label> <item>Use for printed, microform, or electronic notated music.</item> <label>d</label> <item>Use for manuscript notated music or a microform of manuscript music.</item> <label>e</label> <item>Use for non-manuscript cartographic material or a microform of non-manuscript cartographic material.</item> <label>f</label> <item>Use for manuscript cartographic material or a microform of manuscript cartographic material.</item> <label>g</label> <item>Use for motion pictures, videorecordings (including digital video), filmstrips, slide, transparencies or material specifically designed for projection.</item> <label>i</label> <item>Use for recordings of nonmusical sounds (<abbr>e.g.</abbr>, speech).</item> <label>j</label> <item>Use for musical sound recording (<abbr>e.g.</abbr>, phonodiscs, compact discs, or cassette tapes.</item> <label>k</label> <item>Use for two-dimensional nonprojectable graphics such as, activity cards, charts, collages, computer graphics, digital pictures, drawings, duplication masters, flash cards, paintings, photo CDs, photomechanical reproductions, photonegatives, photoprints, pictures, postcards, posters, prints, spirit masters, study prints, technical drawings, transparency masters, and reproductions of any of these.</item> <label>m</label> <item>Use for computer software (including programs, games, fonts), numeric data, computer-oriented multimedia, online systems or services. Other classes of electronic resources are coded for their most significant aspect (<abbr>e.g.</abbr>, language material, graphic, cartographic material, sound, music, moving image). In case of doubt or if the most significant aspect cannot be determined, consider the item a computer file.</item> <label>o</label> <item>Use for a mixture of various components issued as a unit and intended primarily for instructional purposes where no one item is the predominant component of the kit. Examples are packages of assorted materials, such as a set of school social studies curriculum material (books, workbooks, guides, activities, etc.), or packages of educational test materials (tests, answer sheets, scoring guides, score charts, interpretative manuals, etc.).</item> <label>p</label> <item>Use for materials in two or more forms that are usually related by virtue of their having been accumulated by or about a person or body. Includes archival fonds and manuscript collections of mixed forms of materials, such as text, photographs, and sound recordings. Intended primary purpose is other than for instructional purposes (<abbr>i.e.</abbr>, materials coded as "o").</item> <label>r</label> <item>Includes man-made objects such as models, dioramas, games, puzzles, simulations, sculptures and other three-dimensional art works, exhibits, machines, clothing, toys, and stitchery. Also includes naturally occurring objects such as, microscope specimens (or representations of them) and other specimens mounted for viewing. </item> <label>t</label> <item>This category is applied to items for language material in handwriting, typescript, or computer printout including printed materials completed by hand or by keyboard or a microform of these categories. At the time it is created, this material is usually intended, either implicitly or explicitly, to exist as a single instance. Examples include marked or corrected galley and page proofs, manuscript books, legal papers, and unpublished theses and dissertations.</item> </list> </p> </remarks> </classSpec> <classSpec ident="att.regularMethod" module="MEI.header" type="atts"> <desc xml:lang="en">Attributes that describe correction and normalization methods.</desc> <attList> <attDef ident="method" usage="opt"> <desc xml:lang="en">Indicates the method employed to mark corrections and normalizations.</desc> <valList type="closed"> <valItem ident="silent"> <desc xml:lang="en">Corrections and normalizations made silently.</desc> </valItem> <valItem ident="tags"> <desc xml:lang="en">Corrections and normalizations indicated using elements.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="model.bifoliumLike" type="model" module="MEI.header"> <desc xml:lang="en">Collects bifoliumlike elements.</desc> </classSpec> <classSpec ident="model.editorialDeclPart" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a description of the editorial process applied to the encoding of notation.</desc> </classSpec> <classSpec ident="model.encodingPart" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the description of the encoding process.</desc> </classSpec> <classSpec ident="model.eventPart" type="model" module="MEI.header"> <desc xml:lang="en">Groups elements that may be used to provide a structured description of an event.</desc> </classSpec> <classSpec ident="model.foliumLike" type="model" module="MEI.header"> <desc xml:lang="en">Collects foliumlike elements.</desc> </classSpec> <classSpec ident="model.frontAndBackPart" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may appear as part of auxiliary material preceding or following the text proper.</desc> </classSpec> <classSpec ident="model.headerPart" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the MEI metadata header.</desc> </classSpec> <classSpec ident="model.paperModLike" type="model" module="MEI.header"> <desc xml:lang="en">Groups elements dealing with modifications of document pages.</desc> </classSpec> <classSpec ident="model.physDescPart" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the physical description of a bibliographic item.</desc> </classSpec> <classSpec ident="model.pubStmtPart" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the publication statement for a bibliographic item.</desc> </classSpec> <classSpec ident="model.startLike.header" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that may be document elements when the header module is invoked.</desc> </classSpec> <classSpec ident="model.workIdent" module="MEI.header" type="model"> <desc xml:lang="en">Groups elements that assist in the identification of a work.</desc> </classSpec> <classSpec ident="model.workLike" type="model" module="MEI.header"> <desc xml:lang="en">Collects work-like elements.</desc> </classSpec> <elementSpec ident="accessRestrict" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">access restriction</gloss> <desc xml:lang="en">Describes the conditions that affect the accessibility of material.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>May indicate the nature of restrictions or the lack of restrictions. Do not confuse this element with <gi scheme="MEI">useRestrict</gi> (usage restrictions), which captures information about limitations on the <hi rend="bold">use</hi> of material, such as those afforded by copyright.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-accessrestrict">accessrestrict</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="acquisition" module="MEI.header"> <desc xml:lang="en">Records information concerning the process by which an item was acquired by the holding institution.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="eventList"/> <rng:ref name="model.pLike"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-acquisition.html">acquisition</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="altId" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">alternative identifier</gloss> <desc xml:lang="en">May contain a bibliographic identifier that does not fit within the meiHead element’s id attribute, for example because the identifier does not fit the definition of an XML id or because multiple identifiers are needed.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.lbLike"/> <rng:ref name="model.rendLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>One or the other of <gi scheme="MEI">altId</gi> or the <att>xml:id</att> attribute on <gi scheme="MEI">mei</gi> is required when applicable.</p> </remarks> </elementSpec> <elementSpec ident="appInfo" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">application information</gloss> <desc xml:lang="en">Groups information about applications which have acted upon the MEI file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.encodingPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="application"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-appInfo.html">appInfo</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="application" module="MEI.header"> <desc xml:lang="en">Provides information about an application which has acted upon the current document.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.datable"/> </classes> <content> <rng:oneOrMore> <rng:ref name="name"/> </rng:oneOrMore> <rng:choice> <rng:zeroOrMore> <rng:ref name="model.locrefLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.pLike"/> </rng:zeroOrMore> </rng:choice> </content> <attList> <attDef ident="version" usage="opt"> <desc xml:lang="en">Supplies a version number for an application, independent of its identifier or display name.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-application.html">application</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="attUsage" module="MEI.header"> <desc xml:lang="en">Documents the usage of a specific attribute of the element.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:optional> <rng:ref name="desc"/> </rng:optional> </content> <constraintSpec ident="context_attribute_requires_content" scheme="schematron"> <constraint> <sch:rule context="@context"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@context attribute should contain an XPath expression.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="name" usage="req"> <desc xml:lang="en">Name of the attribute.</desc> <datatype> <rng:ref name="data.NMTOKEN"/> </datatype> </attDef> <attDef ident="context" usage="opt"> <desc xml:lang="en">Circumstances in which the attribute appears, an XPath expression.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="audience" module="MEI.header"> <desc xml:lang="en">Defines the class of user for which the work is intended, as defined by age group (<abbr>e.g.</abbr>, children, young adults, adults, etc.), educational level (<abbr>e.g.</abbr>, primary, secondary, etc.), or other categorization.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="availability" module="MEI.header"> <desc xml:lang="en">Groups elements that describe the availability of and access to a bibliographic item, including an MEI-encoded document.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="model.pubStmtPart"/> <memberOf key="model.imprintPart"/> </classes> <content> <rng:ref name="macro.availabilityPart"/> </content> <remarks xml:lang="en"> <p>When used within the <gi scheme="MEI">fileDesc</gi> element, <gi scheme="MEI">availability</gi> indicates access to the MEI-encoded document itself.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-availability.html">availability</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="bifolium" module="MEI.header"> <desc xml:lang="en">Describes a folded sheet of paper.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dimensions"/> <memberOf key="att.measurement"/> <memberOf key="att.bifoliumSurfaces"/> <memberOf key="model.bifoliumLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.foliumLike"/> <rng:ref name="model.bifoliumLike"/> <rng:ref name="model.paperModLike"/> <rng:ref name="del"/> <rng:ref name="add"/> <rng:ref name="damage"/> <rng:ref name="gap"/> <rng:ref name="restore"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="byline" module="MEI.header"> <desc xml:lang="en">Contains the primary statement of responsibility given for a work on its title page.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.respLikePart"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="captureMode" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">capture mode</gloss> <desc xml:lang="en">The means used to record notation, sound, or images in the production of a source/manifestation (<abbr>e.g.</abbr>, analogue, acoustic, electric, digital, optical etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="carrierForm" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">carrier form</gloss> <desc xml:lang="en">The specific class of material to which the physical carrier of the source/manifestation belongs (<abbr>e.g.</abbr>, sound cassette, videodisc, microfilm cartridge, transparency, etc.). The carrier for a manifestation comprising multiple physical components may include more than one form (<abbr>e.g.</abbr>, a filmstrip with an accompanying booklet, a separate sound disc carrying the sound track for a film, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="category" module="MEI.header"> <desc xml:lang="en">Contains an individual descriptive category in a user-defined taxonomy, possibly nested within a superordinate category.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="altId"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="label"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="desc"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="catRel"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="category"/> </rng:zeroOrMore> </content> <constraintSpec ident="category_id" scheme="schematron"> <constraint> <sch:rule context="mei:category"> <sch:assert test="@xml:id" role="warning">To be addressable, the category element must have an xml:id attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="catRel" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">category relationship</gloss> <desc xml:lang="en">Contains the name of a related category.</desc> <classes> <memberOf key="att.authorized"/> <memberOf key="att.basic"/> <memberOf key="att.bibl"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="label"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="desc"/> </rng:zeroOrMore> </content> <attList> <attDef ident="type" usage="req"> <desc xml:lang="en">Provides a description of the relationship between the current and the target categories.</desc> <valList type="closed"> <valItem ident="broader"> <desc xml:lang="en">Category to which the current category is hierarchically subordinate.</desc> </valItem> <valItem ident="narrower"> <desc xml:lang="en">Category which is hierarchically subordinate to the current category.</desc> </valItem> <valItem ident="related"> <desc xml:lang="en">Category that is associatively but not hierarchically linked to the current category.</desc> </valItem> <valItem ident="usefor"> <desc xml:lang="en">Non-preferred category; often a synonym or near-synonym for the preferred category label.</desc> </valItem> </valList> </attDef> </attList> </elementSpec> <elementSpec ident="change" module="MEI.header"> <desc xml:lang="en">Individual change within the revision description.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> </classes> <content> <rng:optional> <rng:ref name="respStmt"/> </rng:optional> <rng:ref name="changeDesc"/> <rng:optional> <rng:ref name="model.dateLike"/> </rng:optional> </content> <constraintSpec ident="check_change" scheme="schematron"> <constraint> <sch:rule context="mei:change"> <sch:assert test="@isodate or mei:date">The date of the change must be recorded in an isodate attribute or date element.</sch:assert> <sch:assert test="@resp or mei:respStmt[mei:name or mei:corpName or mei:persName]" role="warning">It is recommended that the agent responsible for the change be recorded in a resp attribute or in a name, corpName, or persName element in the respStmt element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Additions, deletions, and significant recoding should be noted, but not correction of minor typographical errors. It is recommended that revisions should be entered in reverse chronological order, with the most recent <gi scheme="MEI">change</gi> first. The <att>resp</att> attribute contains a pointer to an element containing info about the person/entity responsible for change. The <gi scheme="MEI">edition</gi> element can be used to designate an MEI encoding that has been so substantively changed that it constitutes a new version that supersedes earlier versions.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the respective element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="changeDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">change description</gloss> <desc xml:lang="en">Description of a revision of the MEI file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> </elementSpec> <elementSpec ident="classDecls" module="MEI.header"> <desc xml:lang="en">Groups information which describes the nature or topic of an entity.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="taxonomy"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Although the use of names and terms from locally controlled vocabularies is possible, best practice suggests that terms should come from standard national or international vocabularies whenever they are available in order to enable searches in systems that include multiple MEI documents, or MEI documents and bibliographic records from many institutions.</p> </remarks> </elementSpec> <elementSpec ident="classification" module="MEI.header"> <desc xml:lang="en">Groups information which describes the nature or topic of an entity.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="termList"/> </rng:choice> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>Although the use of names and terms from locally controlled vocabularies is possible, best practice suggests that terms should come from standard national or international vocabularies whenever they are available in order to enable searches in systems that include multiple MEI documents, or MEI documents and bibliographic records from many institutions.</p> </remarks> </elementSpec> <elementSpec ident="componentList" module="MEI.header"> <desc xml:lang="en">Container for intellectual or physical component parts of a bibliographic entity.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:choice> <rng:choice> <rng:zeroOrMore> <rng:ref name="model.workLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.expressionLike"/> </rng:zeroOrMore> </rng:choice> <rng:choice> <rng:zeroOrMore> <rng:ref name="model.manifestationLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.itemLike"/> </rng:zeroOrMore> </rng:choice> </rng:choice> </content> <constraintSpec ident="checkComponentList" scheme="schematron"> <constraint> <sch:rule context="mei:componentList"> <sch:assert test="every $i in ./child::mei:*[not(local-name()='head')] satisfies $i/local-name() eq ./parent::mei:*/local-name()">Only child elements of the same name as the parent of the componentList are allowed.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="checkComponents" scheme="schematron"> <constraint> <sch:rule context="mei:componentList[mei:*[@comptype]]"> <sch:assert role="warning" test="count(mei:*[@comptype]) = count(mei:*[local-name() ne 'head'])">When any child element has a comptype attribute, it is recommended that comptype appear on all child elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The child elements of this element are treated as components of the bibliographic entity containing the <gi scheme="MEI">componentList</gi>. Although this is an implicit way of expressing FRBR’s hasPart and isPartOf relationships, it avoids this terminology in order to prevent confusion with musical terminology. Work, expression, and item components must be the same type as the parent of componentList: <gi scheme="MEI">work</gi> children are allowed within <gi scheme="MEI">work</gi>, etc. Manifestations; <abbr>i.e.</abbr>, sources, may have either <gi scheme="MEI">source</gi> or <gi scheme="MEI">item</gi>components as required to accommodate composite sources (those containing multiple sources) or multi-part sources (those made up of several physical items.</p> </remarks> </elementSpec> <elementSpec ident="condition" module="MEI.header"> <desc xml:lang="en">The physical condition of an item, particularly any variances between the physical make-up of the item and that of other copies of the same item (<abbr>e.g.</abbr>, missing pages or plates, brittleness, faded images, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the respective element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="contentItem" module="MEI.header"> <desc xml:lang="en">Contains a single entry within a content description element.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <!-- <rng:ref name="model.textComponentLike"/> --> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="contents" module="MEI.header"> <desc xml:lang="en">List of the material contained within a resource.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.pointing"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:choice> <rng:optional> <rng:ref name="model.pLike"/> </rng:optional> <rng:oneOrMore> <rng:optional> <rng:ref name="label"/> </rng:optional> <rng:ref name="contentItem"/> </rng:oneOrMore> </rng:choice> </content> <constraintSpec ident="checkContentsLabels" scheme="schematron"> <constraint> <sch:rule context="mei:contents[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:contentItem)">When labels are used, usually each content item has one.</sch:assert> </sch:rule> </constraint> </constraintSpec> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:space="preserve"> <contents> <p>A suitable tone ; Left hand coloring ; Rhythm and accent ; Tempo ; Flexibility ; Ornaments</p> </contents> </egXML> </exemplum> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xml:space="preserve"> <contents> <head>Contents</head> <label>1.</label><contentItem>Sonata in D major, op. V, no. 1 / Corelli</contentItem> <label>2.</label><contentItem>Sonata in G minor / Purcell (with Robert Donington, gamba)</contentItem> <label>3.</label><contentItem>Forlane from Concert royal no. 3 / Couperin</contentItem> </contents> </egXML> </exemplum> <exemplum> <egXML xmlns="http://www.tei-c.org/ns/Examples" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"> <contents target="http://www.contentProvider.org/toc/toc01.html"/> </egXML> </exemplum> <remarks xml:lang="en"> <p>Use this element to provide an enumeration of the contents of a bibliographic entity, like that often found in a table of contents. When a detailed bibliographic description of included material is desired, use the <gi scheme="MEI">componentList</gi> element instead.</p> </remarks> </elementSpec> <elementSpec ident="context" module="MEI.header"> <desc xml:lang="en">The historical, social, intellectual, artistic, or other context within which the work was originally conceived (<abbr>e.g.</abbr>, the 17th century restoration of the monarchy in England, the aesthetic movement of the late 19th century, etc.) or the historical, social, intellectual, artistic, or other context within which the expression was realized.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="correction" module="MEI.header"> <desc xml:lang="en">States how and under what circumstances corrections have been made in the text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="att.regularMethod"/> <memberOf key="model.editorialDeclPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <attList> <attDef ident="corrlevel" usage="opt"> <desc xml:lang="en">Indicates the degree of correction applied to the text.</desc> <valList type="closed"> <valItem ident="high"> <desc xml:lang="en">The text has been thoroughly checked and proofread.</desc> </valItem> <valItem ident="medium"> <desc xml:lang="en">The text has been checked at least once.</desc> </valItem> <valItem ident="low"> <desc xml:lang="en">The text has not been checked.</desc> </valItem> <valItem ident="unknown"> <desc xml:lang="en">The correction status of the text is unknown.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-correction.html">correction</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="cutout" module="MEI.header"> <desc xml:lang="en">A cutout is a section of a document sheet that has been removed and is now missing.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dimensions"/> <memberOf key="att.evidence"/> <memberOf key="att.measurement"/> <memberOf key="att.trans"/> <memberOf key="att.xy"/> <memberOf key="model.paperModLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.foliumLike"/> <rng:ref name="model.bifoliumLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="removed.from" usage="req"> <desc xml:lang="en">Describes the position of the cutout on the parent folium / bifolium.</desc> <valList type="closed"> <valItem ident="outer.recto"> <desc xml:lang="en">removed from outer recto side of bifolium.</desc> </valItem> <valItem ident="inner.verso"> <desc xml:lang="en">removed from inner verso side of bifolium.</desc> </valItem> <valItem ident="inner.recto"> <desc xml:lang="en">removed from inner recto side of bifolium.</desc> </valItem> <valItem ident="outer.verso"> <desc xml:lang="en">removed from outer verso side of bifolium.</desc> </valItem> <valItem ident="recto"> <desc xml:lang="en">removed from recto side of folium.</desc> </valItem> <valItem ident="verso"> <desc xml:lang="en">removed from verso side of folium.</desc> </valItem> </valList> </attDef> <attDef ident="removed.by" usage="opt"> <desc xml:lang="en">Describes the method of removing the cutout.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="cut"> <desc xml:lang="en">section is cleanly cut by a knife, scissor or other sharp blade.</desc> </valItem> <valItem ident="rip"> <desc xml:lang="en">section is ripped off the page, leaving a rough edge.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The dimensions (@width, @height) of the parent element (<abbr>e.g.</abbr>, <gi scheme="MEI">folium</gi>) indicate the size of the bounding box of the remaining part of the page. That is, if the complete lower half of a page has been cut, the @width and @height attributes describe the remaining upper half. If, in contrast, only the lower right quarter of the page has been cut, these attributes still indicate the size of the full page (assuming that the removed section was a regular rectangle).</p> </remarks> <remarks xml:lang="en"> <p>The dimensions (@width, @height) on <gi scheme="MEI">cutout</gi> itself are only to be used when there is a "gap" in the manuscript that allows to specify the dimensions of that missing part. In this case, the bounding box dimensions are given, together with @x and @y to indicate the upper left point on the original page. If, however, the removed section is available by itself, then a corresponding <gi scheme="MEI">folium</gi> (or <gi scheme="MEI">bifolium</gi>) should be placed inside the <gi scheme="MEI">cutout</gi> element, and should provide it’s own dimensions using @width and @height there. In this case, @width and @height on <gi scheme="MEI">cutout</gi> is expendable.</p> </remarks> </elementSpec> <elementSpec ident="dedication" module="MEI.header"> <desc xml:lang="en">Contains a dedicatory statement.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.textComponentLike"/> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>This element uses a variant of the content model provided by macro.struc-unstrucContent.</p> </remarks> </elementSpec> <elementSpec ident="domainsDecl" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">domains declaration</gloss> <desc xml:lang="en">Indicates which domains are included in the encoding.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <attList> <attDef ident="anl" usage="req"> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="ges" usage="req"> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="vis" usage="req"> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="editionStmt" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">edition statement</gloss> <desc xml:lang="en">Container for meta-data pertaining to a particular edition of the material being described.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.editionLike"/> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.respLikePart"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-editionStmt.html">editionStmt</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-editionstmt">editionstmt</ref> Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="editorialDecl" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">editorial declaration</gloss> <desc xml:lang="en">Used to provide details of editorial principles and practices applied during the encoding of musical text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.encodingPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:choice> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> <rng:group> <rng:oneOrMore> <rng:ref name="model.editorialDeclPart"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="model.pLike"/> </rng:zeroOrMore> </rng:group> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-editorialDecl.html">editorialDecl</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="encodingDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">encoding description</gloss> <desc xml:lang="en">Documents the relationship between an electronic file and the source or sources from which it was derived as well as applications used in the encoding/editing process.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="model.headerPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="appInfo"/> </rng:optional> <rng:optional> <rng:ref name="editorialDecl"/> </rng:optional> <rng:optional> <rng:ref name="projectDesc"/> </rng:optional> <rng:optional> <rng:ref name="samplingDecl"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="domainsDecl"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="tagsDecl"/> </rng:optional> <rng:optional> <rng:ref name="classDecls"/> </rng:optional> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-encodingDesc.html">encodingDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="exhibHist" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">exhibition history</gloss> <desc xml:lang="en">A record of public exhibitions, including dates, venues, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="eventList"/> <rng:ref name="model.pLike"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <abbr>MARC</abbr> <ref target="https://www.loc.gov/marc/bibliographic/bd585.html">585</ref> field.</p> </remarks> </elementSpec> <elementSpec ident="extMeta" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">extended metadata</gloss> <desc xml:lang="en">Provides a container element for non-MEI metadata formats.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.whitespace"/> </classes> <content> <rng:zeroOrMore> <rng:group> <rng:choice> <rng:text/> <rng:ref name="macro.anyXML"/> </rng:choice> </rng:group> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="fileChar" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">file characteristics</gloss> <desc xml:lang="en">Standards or schemes used to encode the file (<abbr>e.g.</abbr>, ASCII, SGML, etc.), physical characteristics of the file (<abbr>e.g.</abbr>, recording density, parity, blocking, etc.), and other characteristics that have a bearing on how the file can be processed.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="fileDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">file description</gloss> <desc xml:lang="en">Contains a full bibliographic description of the MEI file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:ref name="titleStmt"/> <rng:optional> <rng:ref name="editionStmt"/> </rng:optional> <rng:optional> <rng:ref name="extent"/> </rng:optional> <rng:ref name="pubStmt"/> <rng:optional> <rng:ref name="seriesStmt"/> </rng:optional> <rng:optional> <rng:ref name="notesStmt"/> </rng:optional> <rng:optional> <rng:ref name="sourceDesc"/> </rng:optional> </content> <remarks xml:lang="en"> <p>Extent in this context represents file size.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-fileDesc.html">fileDesc</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-filedesc">filedesc</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="foliaDesc" module="MEI.header"> <desc xml:lang="en">Describes the order of folia and bifolia making up the text block of a manuscript or print.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.foliumLike"/> <rng:ref name="model.bifoliumLike"/> <rng:ref name="del"/> <rng:ref name="add"/> <rng:ref name="damage"/> <rng:ref name="gap"/> <rng:ref name="restore"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The purpose of <gi scheme="MEI">foliaDesc</gi> is to transcribe the addition and removal of pages as part of physical modifications to a document. Missing pages may be indicated using the <gi scheme="MEI">gap</gi> element. The <gi scheme="MEI">folium</gi> and <gi scheme="MEI">bifolium</gi> children describe the physical order of <gi scheme="MEI">surface</gi> elements provided elsewhere.</p> </remarks> </elementSpec> <elementSpec ident="folium" module="MEI.header"> <desc xml:lang="en">Describes a single leaf of paper.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dimensions"/> <memberOf key="att.measurement"/> <memberOf key="att.foliumSurfaces"/> <memberOf key="model.foliumLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.paperModLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>When the exact folium setup can't be identified, it is advised to use <gi scheme="MEI">folium</gi> elements only (and not guess about the presence of <gi scheme="MEI">bifolium</gi>s in the document).</p> </remarks> </elementSpec> <elementSpec ident="hand" module="MEI.header"> <desc xml:lang="en">Defines a distinct scribe or handwriting style.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.lang"/> <memberOf key="att.medium"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="initial" usage="opt"> <desc xml:lang="en">Marks this hand as the first one of the document.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>initial</att> attribute indicates whether this is the first or main hand of the document. The <att>medium</att> attribute describes the writing medium, <abbr>e.g.</abbr>, <val>pencil</val>, or the tint or type of ink, <abbr>e.g.</abbr>, <val>brown</val>. The <att>resp</att> attribute contains an ID reference to an element containing the name of the editor or transcriber responsible for identifying the hand. The characteristics of the hand, particularly those related to the quality of the writing, such as <val>shaky</val>, <val>thick</val>, etc. may be described within the content of the <gi scheme="MEI">hand</gi> element.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-handNote.html">handNote</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="handList" module="MEI.header"> <desc xml:lang="en">Container for one or more hand elements.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:optional> <rng:ref name="label"/> </rng:optional> <rng:ref name="hand"/> </rng:zeroOrMore> </content> <constraintSpec ident="checkHandListLabels" scheme="schematron"> <constraint> <sch:rule context="mei:handList[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:hand)">When labels are used, usually each hand has one.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-handNotes.html">handNotes</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="history" module="MEI.header"> <desc xml:lang="en">Provides a container for information about the history of a resource other than the circumstances of its creation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="acquisition"/> <rng:ref name="exhibHist"/> <rng:ref name="provenance"/> <rng:ref name="treatHist"/> <rng:ref name="treatSched"/> <rng:ref name="model.divLike"/> <rng:ref name="model.textComponentLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="history_restriction" scheme="schematron"> <constraint> <sch:rule context="mei:history[parent::mei:work or parent::mei:expression or parent::mei:manifestation[not(@singleton='true')]]"> <sch:assert test="not(mei:acquisition or mei:provenance or mei:exhibHist or mei:treatHist or mei:treatSched)">The elements acquisition, provenance, exhibHist, treatHist and treatSched are not permitted at the work or expression level and are only permitted at the manifestation level, if the manifestation is a manifestation singleton.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>To facilitate efficient data interchange, basic information about the circumstances surrounding the creation of bibliographic resources should be recorded within the <gi scheme="MEI">creation</gi> element, while the record of ownership and custody should be captured within the history element.</p> </remarks> </elementSpec> <elementSpec ident="incipCode" module="MEI.header"> <desc xml:lang="en">Incipit coded in a non-XML, plain text format, such as Plaine & Easie Code.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.internetMedia"/> <memberOf key="att.pointing"/> <memberOf key="att.whitespace"/> </classes> <content> <rng:text/> </content> <constraintSpec ident="Check_incipCode_form_mimetype" scheme="schematron"> <constraint> <sch:rule context="mei:incipCode"> <sch:assert test="@form or @mimetype">incipCode must have a form or mimetype attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Form of the encoded incipit.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="plaineAndEasie"> <desc xml:lang="en">Plaine & Easie Code.</desc> </valItem> <valItem ident="humdrumKern"> <desc xml:lang="en">**kern representation of the Humdrum format.</desc> </valItem> <valItem ident="parsons"> <desc xml:lang="en">Parsons code.</desc> </valItem> </valList> </attDef> </attList> </elementSpec> <elementSpec ident="incipText" module="MEI.header"> <desc xml:lang="en">Opening words of a musical composition.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.pointing"/> <memberOf key="att.internetMedia"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.pLike"/> <rng:ref name="model.lgLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="inscription" module="MEI.header"> <desc xml:lang="en">An inscription added to an item, such as a bookplate, a note designating the item as a gift, and/or the author’s signature.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="interpretation" module="MEI.header"> <desc xml:lang="en">Describes the scope of any analytic or interpretive information added to the transcription of the music.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.editorialDeclPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-interpretation.html">interpretation</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="key" module="MEI.header"> <desc xml:lang="en">Key captures information about tonal center and mode.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.accidental"/> <memberOf key="att.bibl"/> <memberOf key="att.keyMode"/> <memberOf key="att.pitch"/> <memberOf key="model.workIdent"/> </classes> <content> <rng:text/> </content> <remarks xml:lang="en"> <p>This element is used exclusively within bibliographic descriptions. Do not confuse this element with <gi scheme="MEI">keySig</gi>, which is used within the body of an MEI file to record this data.</p> </remarks> </elementSpec> <elementSpec ident="language" module="MEI.header"> <desc xml:lang="en">Description of a language used in the document.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>A textual element may be related to this element by setting its <att>xml:lang</att> attribute, which normally takes the form of a code drawn from a coded list, such as ISO639-2b, to the same value as this element’s codedval attribute. The name and web location of the authorizing list may be encoded in the <att>auth</att> attribute and the <att>auth.uri</att> attribute, respectively.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-language.html">language</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-language">language</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="langUsage" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">language usage</gloss> <desc xml:lang="en">Groups elements describing the languages, sub-languages, dialects, etc., represented within the encoded resource.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="language"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-langUsage.html">langUsage</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="meiHead" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">MEI header</gloss> <desc xml:lang="en">Supplies the descriptive and declarative metadata prefixed to every MEI-conformant text.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.bibl"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.meiVersion"/> <memberOf key="att.responsibility"/> <memberOf key="model.startLike.header"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="altId"/> </rng:zeroOrMore> <rng:ref name="fileDesc"/> <rng:optional> <rng:ref name="encodingDesc"/> </rng:optional> <rng:optional> <rng:ref name="workList"/> </rng:optional> <rng:optional> <rng:ref name="manifestationList"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="extMeta"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="revisionDesc"/> </rng:optional> </content> <constraintSpec ident="check_meiHead_type" scheme="schematron"> <constraint> <sch:rule context="mei:meiHead[@type eq 'music']"> <sch:assert test="ancestor::mei:mei">The meiHead type attribute can have the value 'music' only when the document element is "mei".</sch:assert> </sch:rule> <sch:rule context="mei:meiHead[@type eq 'corpus']"> <sch:assert test="ancestor::mei:meiCorpus">The meiHead type attribute can have the value 'corpus' only when the document element is "meiCorpus".</sch:assert> </sch:rule> <sch:rule context="mei:meiHead[@type eq 'independent']"> <sch:assert test="not(ancestor::mei:*)">The meiHead type attribute can have the value 'independent' only when the document element is "meiHead".</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="type" usage="opt"> <desc xml:lang="en">Specifies the kind of document to which the header is attached, for example whether it is a corpus or individual text.</desc> <valList type="closed"> <valItem ident="music"> <desc xml:lang="en">Header is attached to a music document.</desc> </valItem> <valItem ident="corpus"> <desc xml:lang="en">Header is attached to a corpus.</desc> </valItem> <valItem ident="independent"> <desc xml:lang="en">Header is independent; <abbr>i.e.</abbr>, not attached to either a music or a corpus document.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>In order to encourage uniformity in the provision of metadata across document types, this element is modelled on an element in the Text Encoding Initiative (TEI) standard. This information is often essential in a machine-readable environment. Five sub-elements must be encoded in the following order: <gi scheme="MEI">altId</gi>(optional), <gi scheme="MEI">fileDesc</gi>(required), <gi scheme="MEI">encodingDesc</gi>(optional), <gi scheme="MEI">workList</gi>(optional), and <gi scheme="MEI">revisionDesc</gi>(optional). These elements and their sub-elements provide: a unique identifier for the MEI file, bibliographic information about the MEI file and its sources, information about the encoding process, information about the creation of the work being encoded, and statements regarding significant revisions of the file. The <att>xml:lang</att> attribute may be used to indicate the language in which the metadata content of the header is provided.</p> </remarks> </elementSpec> <elementSpec ident="mensuration" module="MEI.header"> <desc xml:lang="en">Captures information about mensuration within bibliographic descriptions.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.mensur.log"/> <memberOf key="att.mensur.vis"/> <memberOf key="model.workIdent"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="meter" module="MEI.header"> <desc xml:lang="en">Captures information about the time signature within bibliographic descriptions.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.meterSig.log"/> <memberOf key="model.workIdent"/> </classes> <content> <rng:text/> </content> <remarks xml:lang="en"> <p>This element is used exclusively within bibliographic descriptions. Do not confuse <gi scheme="MEI">meter</gi> with the <gi scheme="MEI">meterSig</gi> or <gi scheme="MEI">meterSigGrp</gi> or attributes used by staffDef and scoreDef to record this data within the body of an MEI file.</p> </remarks> </elementSpec> <elementSpec ident="namespace" module="MEI.header"> <desc xml:lang="en">Supplies the formal name of the namespace to which the elements documented by its children belong.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:optional> <rng:ref name="desc"/> </rng:optional> <rng:choice> <rng:oneOrMore> <rng:ref name="tagUsage"/> </rng:oneOrMore> <rng:oneOrMore> <rng:ref name="attUsage"/> </rng:oneOrMore> </rng:choice> </content> <attList> <attDef ident="name" usage="req"> <desc xml:lang="en">Formal namespace identifier; that is, a uniform resource identifier (URI).</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="prefix" usage="opt"> <desc xml:lang="en">Prefix associated with the formal identifier.</desc> <datatype> <rng:ref name="data.NMTOKEN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-namespace.html">namespace</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="normalization" module="MEI.header"> <desc xml:lang="en">Indicates the extent of normalization or regularization of the original source carried out in converting it to electronic form.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="att.regularMethod"/> <memberOf key="model.editorialDeclPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-normalization.html">normalization</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="notesStmt" module="MEI.header"> <gloss versionDate="2023-06-16" xml:lang="en">notes statement</gloss> <desc xml:lang="en">Collects any notes providing information about a text additional to that recorded in other parts of the bibliographic description.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.annotLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-notesStmt.html">notesStmt</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="otherChar" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">other distinguishing characteristic</gloss> <desc xml:lang="en">Any characteristic that serves to differentiate a work or expression from another.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="patch" module="MEI.header"> <desc xml:lang="en">Describes a physical writing surface attached to the original document.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.evidence"/> <memberOf key="att.measurement"/> <memberOf key="att.trans"/> <memberOf key="att.xy"/> <memberOf key="model.paperModLike"/> </classes> <content> <rng:choice> <rng:ref name="model.foliumLike"/> <rng:ref name="model.bifoliumLike"/> </rng:choice> </content> <constraintSpec ident="check_attached_position" scheme="schematron"> <constraint> <sch:rule context="mei:patch"> <sch:assert test="(parent::mei:folium and @attached.to = ('recto','verso')) or (parent::mei:bifolium and @attached.to = ('outer.recto','inner.verso','inner.recto','outer.verso'))">The allowed positions of a patch depend on its parent element.</sch:assert> <sch:assert test="count(child::node()) gt 0">A patch element must contain either a folium or a bifolium element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="attached.to" usage="req"> <desc xml:lang="en">Describes the position of the patch on the parent folium / bifolium.</desc> <valList type="closed"> <valItem ident="outer.recto"> <desc xml:lang="en">patch attached to outer recto side of bifolium.</desc> </valItem> <valItem ident="inner.verso"> <desc xml:lang="en">patch attached to inner verso side of bifolium.</desc> </valItem> <valItem ident="inner.recto"> <desc xml:lang="en">patch attached to inner recto side of bifolium.</desc> </valItem> <valItem ident="outer.verso"> <desc xml:lang="en">patch attached to outer verso side of bifolium.</desc> </valItem> <valItem ident="recto"> <desc xml:lang="en">patch attached to recto side of folium.</desc> </valItem> <valItem ident="verso"> <desc xml:lang="en">patch attached to verso side of folium.</desc> </valItem> </valList> </attDef> <attDef ident="attached.by" usage="opt"> <desc xml:lang="en">Describes the method of attachment of the patch.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="glue"> <desc xml:lang="en">patch is glued on surface beneath.</desc> </valItem> <valItem ident="thread"> <desc xml:lang="en">patch is sewn on surface beneath.</desc> </valItem> <valItem ident="needle"> <desc xml:lang="en">patch is pinned to the surface beneath.</desc> </valItem> <valItem ident="tape"> <desc xml:lang="en">patch is taped on surface beneath using an adhesive strip.</desc> </valItem> <valItem ident="staple"> <desc xml:lang="en">patch is attached on surface beneath using a staple.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>A patch must always contain a <gi scheme="MEI">folium</gi> or <gi scheme="MEI">bifolium</gi> element. The @x and @y attributes are used to position the patch on its parent surface by indicating the upper left corner of the patch. The size of the patch is encoded using the @height and @width attributes on the child folium (or bifolium).</p> </remarks> <!--<remarks xml:lang="en"> <p>TODO: It remains unclear how to specify which part of the patch is attached to the underlying surface. Right now, the assumption is that it is always attached with the patch’s verso (or outer.verso) side, but what about patches that can be folded up or down?</p> </remarks>--> </elementSpec> <elementSpec ident="perfDuration" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">performance duration</gloss> <desc xml:lang="en">Used to express the duration of performance of printed or manuscript music or the playing time for a sound recording, videorecording, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> <memberOf key="model.physDescPart"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <attList> <attDef ident="isodur" usage="opt"> <desc xml:lang="en">Holds a W3C duration value, <abbr>e.g.</abbr>, "PT2H34M45.67S".</desc> <datatype> <rng:data type="duration"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p/> </remarks> </elementSpec> <elementSpec ident="perfMedium" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">performance medium</gloss> <desc xml:lang="en">Indicates the number and character of the performing forces used in a musical composition.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="castList"/> </rng:optional> <rng:optional> <rng:ref name="perfResList"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="model.annotLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p> Arrangements are coded for the medium of the work being described, not for the original medium.</p> </remarks> </elementSpec> <elementSpec ident="perfRes" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">performance resource</gloss> <desc xml:lang="en">Name of an instrument on which a performer plays, a performer's voice range, or a standard performing ensemble designation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.lang"/> <memberOf key="att.perfRes"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="perfRes"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>In the context of a performance resource the attribute <att>adlib</att> marks a resource as optional.</p> </remarks> <remarks xml:lang="en"> <p>To indicate the tuning of an instrument, the attribute <att>trans.diat</att> can be used.</p> </remarks> </elementSpec> <elementSpec ident="perfResList" module="MEI.header"> <gloss versionDate="2023-06-16" xml:lang="en">performance resources list</gloss> <desc xml:lang="en">Several instrumental or vocal resources treated as a group.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.lang"/> <memberOf key="att.perfRes.basic"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="annot"/> <rng:ref name="perfRes"/> <rng:ref name="perfResList"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The function of instrumentalists or vocalists is represented by the choice of <gi scheme="MEI">perfRes</gi> and <gi scheme="MEI">perfResList</gi> child elements. Arrangements are coded for the medium of the work being described, not for the original medium.</p> </remarks> </elementSpec> <elementSpec ident="physDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">physical description</gloss> <desc xml:lang="en">Container for information about the appearance, construction, or handling of physical materials, such as their dimension, quantity, color, style, and technique of creation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.pLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.physDescPart"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Dedicatory text and title page features may also be encoded here when they are not transcribed as part of the front or back matter; <abbr>i.e.</abbr>, when they are considered to be meta-data rather than a transcription.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-physdesc">physdesc</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="physMedium" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">physical medium</gloss> <desc xml:lang="en">Records the physical materials used in the source, such as ink and paper.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>All materials may be described in a single <gi scheme="MEI">physMedium</gi> element or multiple elements may be used, one for each medium.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on respective elements of the Encoded Archival Description (EAD). It has the same function as the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-material.html">material</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="plateNum" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">plate number</gloss> <desc xml:lang="en">Designation assigned to a resource by a music publisher, usually printed at the bottom of each page, and sometimes appearing also on the title page.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>While it is often called a "plate number", it does not always contain numbers. The <att>facs</att> attribute may be used to record the location of the plate number in a facsimile image.</p> </remarks> </elementSpec> <elementSpec ident="playingSpeed" module="MEI.header"> <desc xml:lang="en">Playing speed for a sound recording is the speed at which the carrier must be operated to produce the sound intended (<abbr>e.g.</abbr>, 33 1/3 rpm, 19 cm/s, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="price" module="MEI.header"> <desc xml:lang="en">The cost of access to a bibliographic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="amount" usage="opt"> <desc xml:lang="en">Numeric value capturing a cost. Can only be interpreted in combination with the currency attribute.</desc> <datatype> <rng:data type="decimal"> <rng:param name="pattern">[0-9]+\.[0-9]{2}</rng:param> </rng:data> </datatype> </attDef> <attDef ident="currency" usage="opt"> <desc xml:lang="en">Monetary unit.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Best practice suggests the use of controlled vocabulary for the currency attribute, such as the ISO 4217 list of currency designators.</p> </remarks> </elementSpec> <elementSpec ident="projectDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">project description</gloss> <desc xml:lang="en">Project-level meta-data describing the aim or purpose for which the electronic file was encoded, funding agencies, etc. together with any other relevant information concerning the process by which it was assembled or collected.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.encodingPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-projectDesc.html">projectDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="provenance" module="MEI.header"> <desc xml:lang="en">The record of ownership or custodianship of an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="eventList"/> <rng:ref name="model.pLike"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the respective element of the Encoded Archival Description (EAD) and the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-provenance.html">provenance</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="pubStmt" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">publication statement</gloss> <desc xml:lang="en">Container for information regarding the publication or distribution of a bibliographic item, including the publisher’s name and address, the date of publication, and other relevant details.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:choice> <rng:optional> <rng:ref name="unpub"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="model.pubStmtPart"/> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>When an item is unpublished, use only the <gi scheme="MEI">unpub</gi> sub-element.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-publicationStmt.html">publicationStmt</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="revisionDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">revision description</gloss> <desc xml:lang="en">Container for information about alterations that have been made to an MEI file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="change"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>It is recommended that changes be recorded in reverse chronological order, with the most recent alteration first.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-revisionDesc.html">revisionDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="samplingDecl" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">sampling declaration</gloss> <desc xml:lang="en">Contains a prose description of the rationale and methods used in sampling texts in the creation of a corpus or collection.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.encodingPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-samplingDecl.html">samplingDecl</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="scoreFormat" module="MEI.header"> <desc xml:lang="en">Describes the type of score used to represent a musical composition (<abbr>e.g.</abbr>, short score, full score, condensed score, close score, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="segmentation" module="MEI.header"> <desc xml:lang="en">Describes the principles according to which the musical text has been segmented, for example into movements, sections, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.editorialDeclPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-segmentation.html">segmentation</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="seriesStmt" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">series statement</gloss> <desc xml:lang="en">Groups information about the series, if any, to which a publication belongs.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.titleLike"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.respLikePart"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.identifierLike"/> <rng:ref name="biblScope"/> <rng:ref name="contents"/> <rng:ref name="seriesStmt"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">title</gi> sub-element records the series title, the <gi scheme="MEI">respStmt</gi> element records the person or group responsible for the series, and the <gi scheme="MEI">identifier</gi> element contains a series identifier. The <gi scheme="MEI">contents</gi> element should be used when it is necessary to enumerate the content of the series, but not describe each component. The <gi scheme="MEI">seriesStmt</gi> element is provided within seriesStmt for the description of a sub-series.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-seriesStmt.html">seriesStmt</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="soundChan" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">sound channels</gloss> <desc xml:lang="en">Reflects the number of apparent sound channels in the playback of a recording (monaural, stereophonic, quadraphonic, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="num" usage="opt"> <desc xml:lang="en">Records the channel configuration in numeric form.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The number of apparent playback channels can differ from the number of physical channels of the recording medium, <abbr>i.e.</abbr>, 2-track monophonic recordings. In this example, the soundChan element should record the fact that there is a single output channel, while the <gi scheme="MEI">trackConfig</gi> element should capture the existence of two physical tracks. This element is analogous to <abbr>MARC</abbr> field 344 subfield g.</p> </remarks> </elementSpec> <elementSpec ident="source" module="MEI.header"> <desc xml:lang="en">A bibliographic description of a source used in the creation of the electronic file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.componentType"/> <memberOf key="att.dataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.recordType"/> <memberOf key="att.targetEval"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="locus"/> <rng:ref name="locusGrp"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.biblLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="check_source_target" scheme="schematron"> <constraint> <sch:rule context="mei:source/@target"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'source' or local-name() eq 'manifestation']/@xml:id or matches($i, '^([a-z]+://|\.{1,2}/)')">Each value in @target should correspond to the @xml:id attribute of a source or manifestation element or be an external URI.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element contains, or references via its <att>target</att> attribute, a description of a source used in the creation of the electronic file. For description of a physical embodiment of an expression of a work use the <gi scheme="MEI">manifestation</gi> element.</p> <p>The <att>data</att> attribute may be used to reference one or more musical features found in the content of this particular source.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-source.html">source</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-source">source</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="sourceDesc" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">source description</gloss> <desc xml:lang="en">A container for the descriptions of the source(s) used in the creation of the electronic file.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="source"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>This element is recommended where the MEI file is a transcription of existing music, but is not required when the data is originally created in MEI form.</p> </remarks> </elementSpec> <elementSpec ident="specRepro" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">special reproduction characteristic</gloss> <desc xml:lang="en">The equalization system, noise reduction system, etc. used in making the recording (<abbr>e.g.</abbr>, NAB, DBX, Dolby, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="stdVals" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">standard values</gloss> <desc xml:lang="en">Specifies the format used when standardized date or number values are supplied.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.editorialDeclPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.pLike"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-stdVals.html">stdVals</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="sysReq" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">system requirements</gloss> <desc xml:lang="en">System requirements for using the electronic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> </elementSpec> <elementSpec ident="tagsDecl" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">tagging declaration</gloss> <desc xml:lang="en">Provides detailed information about the tagging applied to a document.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="desc"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="namespace"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-tagsDecl.html">tagsDecl</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="tagUsage" module="MEI.header"> <desc xml:lang="en">Documents the usage of a specific element within the document.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:optional> <rng:ref name="desc"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="attUsage"/> </rng:zeroOrMore> </content> <constraintSpec ident="context_attribute_requires_content" scheme="schematron"> <constraint> <sch:rule context="@context"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@context attribute should contain an XPath expression.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="name" usage="req"> <desc xml:lang="en">Name of the element.</desc> <datatype> <rng:ref name="data.NMTOKEN"/> </datatype> </attDef> <attDef ident="context" usage="opt"> <desc xml:lang="en">Circumstances in which the element appears, an XPath expression.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> <attDef ident="occurs" usage="opt"> <desc xml:lang="en">Number of occurrences in the defined context.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> <attDef ident="withid" usage="opt"> <desc xml:lang="en">Number of occurrences in the defined context that have an <att>xml:id</att> attribute.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-tagUsage.html">tagUsage</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="taxonomy" module="MEI.header"> <desc xml:lang="en">Defines a typology either implicitly, by means of a bibliographic citation, or explicitly by a structured taxonomy.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="model.biblLike"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="desc"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="category"/> <rng:ref name="taxonomy"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="termList" module="MEI.header"> <desc xml:lang="en">Collection of text phrases which describe a resource.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.pointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:optional> <rng:ref name="label"/> </rng:optional> <rng:ref name="term"/> </rng:zeroOrMore> </content> <constraintSpec ident="checkTermListLabels" scheme="schematron"> <constraint> <sch:rule context="mei:termList[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:term)">When labels are used, usually each term has one.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>An external taxonomy from which all the descendant <gi scheme="MEI">term</gi> elements are drawn may be referred to using the <att>target</att> attribute.</p> </remarks> </elementSpec> <elementSpec ident="titleStmt" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">title statement</gloss> <desc xml:lang="en">Container for title and responsibility meta-data.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.titleLike"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.respLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-titleStmt.html">titleStmt</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="trackConfig" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">track configuration</gloss> <desc xml:lang="en">Number of physical/input tracks on a sound medium (<abbr>e.g.</abbr>, eight track, twelve track).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <attList> <attDef ident="num" usage="opt"> <desc xml:lang="en">Records the track configuration in numeric form.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The number of apparent playback channels can differ from the number of physical channels of the recording medium, <abbr>i.e.</abbr>, 2-track monophonic recordings. In this example, the trackConfig element should record the fact that there are two physical tracks on the sound medium, while the <gi scheme="MEI">soundChan</gi> element should be used to state that there is a single output channel. This element may be mapped to <abbr>MARC</abbr> field 344 subfield e or subfield f as appropriate.</p> </remarks> </elementSpec> <elementSpec ident="treatHist" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">treatment history</gloss> <desc xml:lang="en">A record of the treatment the item has undergone (<abbr>e.g.</abbr>, de-acidification, restoration, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="eventList"/> <rng:ref name="model.pLike"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>Treatment history may also comprise details of the treatment process (<abbr>e.g.</abbr>, chemical solutions used, techniques applied, etc.), the date the treatment was applied, etc.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the respective element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="treatSched" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">treatment scheduled</gloss> <desc xml:lang="en">Scheduled treatment, <abbr>e.g.</abbr>, de-acidification, restoration, etc., for an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="eventList"/> <rng:ref name="model.pLike"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the respective element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="unpub" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">unpublished</gloss> <desc xml:lang="en">Used to explicitly indicate that a bibliographic resource is unpublished.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.imprintPart"/> </classes> <content> <rng:text/> </content> <remarks xml:lang="en"> <p>A short phrase indicating the nature of or the reason for the unpublished status may be given as the element’s content.</p> </remarks> </elementSpec> <elementSpec ident="useRestrict" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">usage restrictions</gloss> <desc xml:lang="en">Container for information about the conditions that affect use of a bibliographic item after access has been granted.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p> <gi scheme="MEI">useRestrict</gi> may indicate limitations imposed by an owner, repository, or legal statute (for example, copyright law) regarding the reproduction, publication, or quotation of the item. It may also indicate the absence of restrictions, such as when rights have been ceded to the public domain. Do not confuse this element with the <gi scheme="MEI">accessRestrict</gi> element, which holds information about conditions affecting the availability of the material.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-userestrict">userestrict</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="watermark" module="MEI.header"> <desc xml:lang="en">Contains a description of a watermark or similar device.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The <att>facs</att> attribute may be used to record the location of the watermark in a facsimile image.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-watermark.html">watermark</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="work" module="MEI.header"> <desc xml:lang="en">Provides a detailed description of a work — a distinct intellectual or artistic creation — specifically its history, language use, and high-level musical attributes (<abbr>e.g.</abbr>, key, tempo, meter, medium of performance, and intended duration).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.workLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.identifierLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.titleLike"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="model.respLikePart"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.workIdent"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="otherChar"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="creation"/> </rng:optional> <rng:optional> <rng:ref name="history"/> </rng:optional> <rng:optional> <rng:ref name="langUsage"/> </rng:optional> <rng:optional> <rng:ref name="perfMedium"/> </rng:optional> <rng:optional> <rng:ref name="perfDuration"/> </rng:optional> <rng:optional> <rng:ref name="audience"/> </rng:optional> <rng:optional> <rng:ref name="contents"/> </rng:optional> <rng:optional> <rng:ref name="context"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="biblList"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="notesStmt"/> </rng:optional> <rng:optional> <rng:ref name="classification"/> </rng:optional> <rng:optional> <rng:ref name="expressionList"/> </rng:optional> <rng:optional> <rng:ref name="componentList"/> </rng:optional> <rng:optional> <rng:ref name="relationList"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="extMeta"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">perfDuration</gi> element captures the <emph>intended duration</emph> of the work.</p> </remarks> </elementSpec> <elementSpec ident="workList" module="MEI.header"> <gloss versionDate="2022-05-18" xml:lang="en">work list</gloss> <desc xml:lang="en">Grouping mechanism for information describing non-bibliographic aspects of a text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.headerPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="work"/> </rng:oneOrMore> </content> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.lyrics"> <moduleSpec ident="MEI.lyrics"> <desc xml:lang="en">Lyrics component declarations.</desc> </moduleSpec> <classSpec ident="att.lyrics.log" module="MEI.lyrics" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> </classes> </classSpec> <classSpec ident="att.refrain.log" module="MEI.lyrics" type="atts"> <desc xml:lang="en">Logical domain attributes. The n attribute should be used for verse numbers. Numbers need not be consecutive; they may also be expressed as ranges, <abbr>e.g.</abbr>, 2-3,6.</desc> </classSpec> <classSpec ident="att.verse.log" module="MEI.lyrics" type="atts"> <desc xml:lang="en">Logical domain attributes. The n attribute should be used for verse numbers. Numbers need not be consecutive; they may also be expressed as ranges, <abbr>e.g.</abbr>, 2-3,6.</desc> </classSpec> <classSpec ident="att.volta.log" module="MEI.lyrics" type="atts"> <desc xml:lang="en">Logical domain attributes. The n attribute should be used for repetition numbers. Numbers need not be consecutive; they may also be expressed as ranges, <abbr>e.g.</abbr>, 2-3,6.</desc> </classSpec> <classSpec ident="model.verseLike" module="MEI.lyrics" type="model"> <desc xml:lang="en">Groups elements that contain a lyric verse.</desc> <classes> <memberOf key="model.syllablePart"/> <memberOf key="model.rdgPart.music"/> <memberOf key="model.editTransPart.music"/> </classes> </classSpec> <elementSpec ident="refrain" module="MEI.lyrics"> <desc xml:lang="en">Recurring lyrics, especially at the end of each verse or stanza of a poem or song lyrics; a chorus.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.refrain.log"/> <memberOf key="att.refrain.vis"/> <memberOf key="att.refrain.ges"/> <memberOf key="att.refrain.anl"/> <memberOf key="model.verseLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="dir"/> <rng:ref name="dynam"/> <rng:ref name="tempo"/> <rng:ref name="space"/> </rng:choice> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="volta"/> <rng:ref name="model.sylLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> </rng:choice> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="model.lbLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">lb</gi> element is allowed here in order to facilitate karaoke applications. The <att>func</att> attribute on <gi scheme="MEI">lb</gi> may be used to distinguish true line endings from those of line groups for these applications.</p> </remarks> </elementSpec> <elementSpec ident="verse" module="MEI.lyrics"> <desc xml:lang="en">Division of a poem or song lyrics, sometimes having a fixed length, meter or rhyme scheme; a stanza.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.verse.log"/> <memberOf key="att.verse.vis"/> <memberOf key="att.verse.ges"/> <memberOf key="att.verse.anl"/> <memberOf key="model.verseLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="label"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="labelAbbr"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="dir"/> <rng:ref name="dynam"/> <rng:ref name="tempo"/> <rng:ref name="space"/> </rng:choice> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="volta"/> <rng:ref name="model.sylLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> </rng:choice> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="model.lbLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">lb</gi> element is allowed here in order to facilitate karaoke applications. The <att>func</att> attribute on <gi scheme="MEI">lb</gi> may be used to distinguish true line endings from those of line groups for these applications.</p> </remarks> </elementSpec> <elementSpec ident="volta" module="MEI.lyrics"> <desc xml:lang="en">Sung text for a specific iteration of a repeated section of music.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.volta.log"/> <memberOf key="att.volta.vis"/> <memberOf key="att.volta.ges"/> <memberOf key="att.volta.anl"/> <memberOf key="model.rdgPart.music"/> <memberOf key="model.editTransPart.music"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="dir"/> <rng:ref name="dynam"/> <rng:ref name="tempo"/> <rng:ref name="space"/> </rng:choice> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="model.sylLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> </rng:choice> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="model.lbLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The volta element is intended for those cases where the musical notation is repeated, but the accompanying lyrics are not.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.mensural"> <moduleSpec ident="MEI.mensural"> <desc xml:lang="en">Mensural repertoire component declarations.</desc> </moduleSpec> <macroSpec ident="data.DURATION.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Logical, that is, written, note-shape (or note symbol) attribute values for the mensural repertoire.</desc> <content> <valList type="closed"> <valItem ident="maxima"> <desc xml:lang="en">Two or three times as long as a longa.</desc> </valItem> <valItem ident="longa"> <desc xml:lang="en">Two or three times as long as a brevis.</desc> </valItem> <valItem ident="brevis"> <desc xml:lang="en">Two or three times as long as a semibreve.</desc> </valItem> <valItem ident="semibrevis"> <desc xml:lang="en">Half or one-third as long as a breve/brevis.</desc> </valItem> <valItem ident="minima"> <desc xml:lang="en">Half or one-third as long as a semibreve/semibrevis.</desc> </valItem> <valItem ident="semiminima"> <desc xml:lang="en">Half as long as a minima.</desc> </valItem> <valItem ident="fusa"> <desc xml:lang="en">Half as long as a semiminima.</desc> </valItem> <valItem ident="semifusa"> <desc xml:lang="en">Half as long as a fusa.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.MULTIBREVERESTS.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Logical, that is, written, duration attribute values for multi-breve rests in the mensural repertoire.</desc> <content> <valList type="closed"> <valItem ident="2B"> <desc xml:lang="en">A two-breve rest.</desc> </valItem> <valItem ident="3B"> <desc xml:lang="en">A three-breve rest.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.DURATIONRESTS.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Logical, that is, written, duration attribute values for mensural rests.</desc> <content> <rng:choice> <rng:ref name="data.MULTIBREVERESTS.mensural"/> <rng:ref name="data.DURATION.mensural"/> </rng:choice> </content> </macroSpec> <macroSpec ident="data.DURQUALITY.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Duration attribute values of a given note symbol for the mensural repertoire.</desc> <content> <valList type="closed"> <valItem ident="perfecta"> <desc xml:lang="en">Three times the duration of the note in the next smaller degree.</desc> </valItem> <valItem ident="imperfecta"> <desc xml:lang="en">Two times the duration of the note in the next smaller degree.</desc> </valItem> <valItem ident="altera"> <desc xml:lang="en">Twice the original duration of the note (only usable in perfect mensurations).</desc> </valItem> <valItem ident="minor"> <desc xml:lang="en">Category of a regular semibrevis in Ars antiqua, equivalent to a third of a brevis.</desc> </valItem> <valItem ident="maior"> <desc xml:lang="en">Category of an altered semibrevis in Ars antiqua, equivalent to two minor semibrevis.</desc> </valItem> <valItem ident="duplex"> <desc xml:lang="en">One of the three categories of a longa in Ars antiqua ('duplex', 'perfecta', and 'imperfecta'). A duplex longa is twice as long as a regular longa.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.FLAGFORM.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Form of the flag.</desc> <content> <valList type="closed"> <valItem ident="straight"> <desc xml:lang="en">Flag is a straight horizontal line.</desc> </valItem> <valItem ident="angled"> <desc xml:lang="en">Flag is a straight line at an angle.</desc> </valItem> <valItem ident="curled"> <desc xml:lang="en">Flag is curled.</desc> </valItem> <valItem ident="flared"> <desc xml:lang="en">Flag is flared.</desc> </valItem> <valItem ident="extended"> <desc xml:lang="en">Flag looks extended.</desc> </valItem> <valItem ident="hooked"> <desc xml:lang="en">Flag is hooked-form.</desc> </valItem> </valList> </content> <remarks xml:lang="en"> <p> <!-- TODO: Add samples for all values here --> <!--<graphic url="ExampleImages/accid-20100510.png" height="50%" width="50%"/>--> </p> </remarks> </macroSpec> <macroSpec ident="data.FLAGPOS.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Position of the flag relative to the stem.</desc> <content> <valList type="closed"> <valItem ident="left"> <desc xml:lang="en">Flag lies at the left side of the stem.</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Flag lies at the right side of the stem.</desc> </valItem> <valItem ident="center"> <desc xml:lang="en">Flag is centered in the stem.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STAFFITEM.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Items in the Mensural repertoire that may be printed near a staff.</desc> <content> <valList type="closed"> <valItem ident="ligature"> <desc xml:lang="en">Ligatures.</desc> </valItem> </valList> </content> </macroSpec> <macroSpec ident="data.STEMFORM.mensural" module="MEI.mensural" type="dt"> <desc xml:lang="en">Form of the stem attached to the note.</desc> <content> <valList type="closed"> <valItem ident="circle"> <desc xml:lang="en">Stem has a circular form.</desc> </valItem> <valItem ident="oblique"> <desc xml:lang="en">Stem has an oblique form.</desc> </valItem> <valItem ident="swallowtail"> <desc xml:lang="en">Stem has a swallowtail form.</desc> </valItem> <valItem ident="virgula"> <desc xml:lang="en">Stem has a virgula-like form.</desc> </valItem> </valList> </content> </macroSpec> <classSpec ident="att.duration.quality" module="MEI.mensural" type="atts"> <desc xml:lang="en">Attribute that expresses duration for a given mensural note symbol.</desc> <constraintSpec ident="check_duplex_quality" scheme="schematron"> <constraint> <sch:rule context="(mei:note|mei:space)[@dur.quality='duplex']"> <sch:assert test="@dur='longa'"> Duplex quality can only be used with longas (in Ars antiqua). </sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_maiorminor_quality" scheme="schematron"> <constraint> <sch:rule context="(mei:note|mei:space)[@dur.quality='maior' or @dur.quality='minor']"> <sch:assert test="@dur='semibrevis'"> Maior / minor quality can only be used with semibreves (in Ars antiqua). </sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="dur.quality" usage="rec"> <desc xml:lang="en">Encodes the durational quality of a mensural note using the values provided by the data.DURQUALITY.mensural datatype (<abbr>i.e.</abbr>, the perfect / imperfect / altered / major / minor / duplex quality of a note).</desc> <datatype> <rng:ref name="data.DURQUALITY.mensural"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ligature.log" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.mensural.log" module="MEI.mensural" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the logical domain related to mensuration. The tempus, prolatio, modusmaior, and modusminor attributes (from the att.mensural.shared class) specify the relationship between the four principle levels of note value, <abbr>i.e.</abbr>, the long, breve, semibreve and minim, in mensural notation. Modusminor describes the long-breve relationship, while tempus describes the breve-semibreve, and prolatio the semibreve-minim relationship, respectively. Modusmaior is for the maxima-long relationship. The proport.* attributes describe augmentation or diminution of the normal value of the notes in mensural notation.</desc> <classes> <memberOf key="att.mensural.shared"/> </classes> <attList> <attDef ident="proport.num" usage="opt"> <desc xml:lang="en">Together, proport.num and proport.numbase specify a proportional change as a ratio, <abbr>e.g.</abbr>, 1:3. Proport.num is for the first value in the ratio.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> <attDef ident="proport.numbase" usage="opt"> <desc xml:lang="en">Together, proport.num and proport.numbase specify a proportional change as a ratio, <abbr>e.g.</abbr>, 1:3. Proport.numbase is for the second value in the ratio.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.mensural.shared" module="MEI.mensural" type="atts"> <desc xml:lang="en">Shared attributes in the mensural repertoire.</desc> <constraintSpec ident="mensuration_conflicting_attributes" scheme="schematron"> <constraint> <sch:rule context="mei:mensur[@divisio]"> <sch:assert test="not(@tempus) and not(@prolatio)"> When the @divisio attribute is used, the @tempus and @prolatio attributes are not allowed. </sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="modusmaior" usage="opt"> <desc xml:lang="en">Describes the maxima-long relationship.</desc> <datatype> <rng:ref name="data.MODUSMAIOR"/> </datatype> </attDef> <attDef ident="modusminor" usage="opt"> <desc xml:lang="en">Describes the long-breve relationship.</desc> <datatype> <rng:ref name="data.MODUSMINOR"/> </datatype> </attDef> <attDef ident="prolatio" usage="opt"> <desc xml:lang="en">Describes the semibreve-minim relationship.</desc> <datatype> <rng:ref name="data.PROLATIO"/> </datatype> </attDef> <attDef ident="tempus" usage="opt"> <desc xml:lang="en">Describes the breve-semibreve relationship.</desc> <datatype> <rng:ref name="data.TEMPUS"/> </datatype> </attDef> <attDef ident="divisio" usage="opt"> <desc xml:lang="en">Describes the divisions of the breve in use in 14th-century Italy.</desc> <datatype> <rng:ref name="data.DIVISIO"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.note.anl.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Analytical domain attributes in the Mensural repertoire.</desc> </classSpec> <classSpec ident="att.note.ges.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Gestural domain attributes in the Mensural repertoire.</desc> <classes> <memberOf key="att.duration.ratio"/> </classes> </classSpec> <classSpec ident="att.note.log.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes in the Mensural repertoire.</desc> </classSpec> <classSpec ident="att.note.vis.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Visual domain attributes in the Mensural repertoire.</desc> <attList> <attDef ident="lig" usage="opt"> <desc xml:lang="en">Indicates this element’s participation in a ligature.</desc> <datatype> <rng:ref name="data.LIGATUREFORM"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.plica.log" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes that describe the properties of a plica in the mensural repertoire.</desc> </classSpec> <classSpec ident="att.proport.log" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes. These attributes describe augmentation or diminution of the normal value of the notes in mensural notation as a ratio.</desc> <classes> <memberOf key="att.duration.ratio"/> </classes> </classSpec> <classSpec ident="att.rest.ges.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Gestural domain attributes.</desc> <classes> <memberOf key="att.duration.ratio"/> </classes> </classSpec> <classSpec ident="att.rest.vis.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <attList> <attDef ident="spaces" usage="opt"> <desc xml:lang="en">States how many spaces are covered by the rest.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.scoreDef.log.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes for a score in the mensural repertoire. The values set in these attributes act as score-wide defaults for attributes that are not set in descendant elements.</desc> <classes> <memberOf key="att.mensural.log"/> </classes> </classSpec> <classSpec ident="att.scoreDef.vis.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Visual domain attributes for scoreDef in the mensural repertoire.</desc> <classes> <memberOf key="att.mensural.vis"/> </classes> </classSpec> <classSpec ident="att.staffDef.log.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes for staffDef in the mensural repertoire.</desc> <classes> <memberOf key="att.mensural.log"/> </classes> </classSpec> <classSpec ident="att.staffDef.vis.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Visual domain attributes for the mensural repertoire.</desc> <classes> <memberOf key="att.mensural.vis"/> </classes> </classSpec> <classSpec ident="att.stem.log" module="MEI.mensural" type="atts"> <desc xml:lang="en">Logical domain attributes that describe the properties of a stem in the mensural repertoire.</desc> </classSpec> <classSpec ident="att.stems.mensural" module="MEI.mensural" type="atts"> <desc xml:lang="en">Attributes that describe the properties of stemmed features specific to mensural repertoires.</desc> <attList> <attDef ident="stem.form" usage="opt"> <desc xml:lang="en">Records the form of the stem.</desc> <datatype maxOccurs="1" minOccurs="1"> <rng:ref name="data.STEMFORM.mensural"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="model.eventLike.mensural" module="MEI.mensural" type="model"> <desc xml:lang="en">Groups event elements that occur in the mensural repertoire.</desc> <classes> <memberOf key="model.layerPart.mensural"/> </classes> </classSpec> <classSpec ident="model.layerPart.mensural" module="MEI.mensural" type="model"> <desc xml:lang="en">Groups notated events that may appear at the layer level in the mensural repertoire.</desc> <classes> <memberOf key="model.layerPart.mensuralAndNeumes"/> </classes> </classSpec> <!--<classSpec ident="model.scorePart.mensural" module="MEI.mensural" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a score in the mensural repertoire.</desc> </classSpec>--> <!--<classSpec ident="model.sectionPart.mensural" module="MEI.mensural" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a section in the mensural repertoire.</desc> <classes> <memberOf key="model.sectionPart.mensuralAndNeumes"/> </classes> </classSpec>--> <classSpec ident="model.staffDefPart.mensural" module="MEI.mensural" type="model"> <desc xml:lang="en">Groups elements that may appear in the declaration of staff features.</desc> <classes> <memberOf key="model.staffDefPart"/> </classes> </classSpec> <classSpec ident="model.staffPart.mensural" module="MEI.mensural" type="model"> <desc xml:lang="en">Groups elements that are components of a staff in the mensural repertoire.</desc> <classes> <memberOf key="model.staffPart.mensuralAndNeumes"/> </classes> </classSpec> <elementSpec ident="ligature" module="MEI.mensural"> <desc xml:lang="en">A mensural notation symbol that combines two or more notes into a single sign.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.ligature.log"/> <memberOf key="att.ligature.vis"/> <memberOf key="att.ligature.ges"/> <memberOf key="att.ligature.anl"/> <memberOf key="model.eventLike.mensural"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.eventLike"/> <rng:ref name="model.eventLike.mensural"/> <rng:ref name="model.eventLike.neumes"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The rhythmic meaning of the components of a ligature is typically contextual, not absolute; therefore, an interpretative duration may be encoded on each of the components using either the <att>dur.ges</att> attribute or the <att>num</att> and <att>numbase</att> attribute pair. The <gi scheme="MEI">ligature</gi> element should <hi rend="bold">not</hi> be used for brackets in modern notation that indicate notes that were part of a ligature in the original source.</p> </remarks> </elementSpec> <elementSpec ident="mensur" module="MEI.mensural"> <gloss versionDate="2022-05-18" xml:lang="en">mensuration</gloss> <desc xml:lang="en">Collects information about the metrical relationship between a note value and the next smaller value; that is, either triple or duple.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.mensur.log"/> <memberOf key="att.mensur.vis"/> <memberOf key="att.mensur.ges"/> <memberOf key="att.mensur.anl"/> <memberOf key="model.eventLike.mensural"/> <memberOf key="model.staffDefPart.mensural"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">mensur</gi> element is provided for the encoding of mensural notation. The <att>slash</att> attribute indicates the number lines added to the mensuration sign. For example, one slash is added for what we now call 'alla breve'.</p> </remarks> </elementSpec> <elementSpec ident="plica" module="MEI.mensural"> <desc xml:lang="en">Plica</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.plica.log"/> <memberOf key="att.plica.vis"/> <memberOf key="att.plica.ges"/> <memberOf key="att.plica.anl"/> </classes> <constraintSpec ident="Check_plica" scheme="schematron"> <constraint> <sch:rule context="mei:plica"> <sch:assert test="count(../mei:plica) <= 1">Only one plica is allowed.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="proport" module="MEI.mensural"> <gloss versionDate="2022-05-18" xml:lang="en">proportion</gloss> <desc xml:lang="en">Description of note duration as arithmetic ratio.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.proport.log"/> <memberOf key="att.proport.vis"/> <memberOf key="att.proport.ges"/> <memberOf key="att.proport.anl"/> <memberOf key="model.eventLike.mensural"/> <memberOf key="model.staffDefPart.mensural"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The proport element is provided for the encoding of mensural notation. It allows the description of note durations as arithmetic ratios. While mensuration refers to the normal relationships between note durations, proportion affects the relations of the note durations to the tactus.</p> </remarks> </elementSpec> <elementSpec ident="stem" module="MEI.mensural"> <desc xml:lang="en">A stem element.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.stem.log"/> <memberOf key="att.stem.vis"/> <memberOf key="att.stem.ges"/> <memberOf key="att.stem.anl"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="Check_stem" scheme="schematron"> <constraint> <sch:rule context="mei:stem"> <sch:assert test="not(ancestor::mei:note/@*[starts-with(local-name(),'stem.')])">A note with nested stem elements must not have @stem.* attributes.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Mensural notes can have multiple stems and these may have various forms, directions, and types of flags. Multiple stem elements can be encoded as children of a single note. The attributes <att>pos</att>, <att>length</att>, <att>form</att>, and <att>dir</att> allow to encode different positions, lengths, forms, and directions for each these stems. The attributes <att>flag.pos</att> and <att>flag.form</att> also allow to encode different types of flags for each of the stems.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.midi"> <moduleSpec ident="MEI.midi"> <desc xml:lang="en">MIDI component declarations.</desc> </moduleSpec> <classSpec ident="att.channelized" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record MIDI channel information.</desc> <attList> <attDef ident="midi.channel" usage="opt"> <desc xml:lang="en">Records a MIDI channel value.</desc> <datatype> <rng:ref name="data.MIDICHANNEL"/> </datatype> </attDef> <attDef ident="midi.duty" usage="opt"> <desc xml:lang="en">Specifies the 'on' part of the duty cycle as a percentage of a note’s duration.</desc> <datatype> <rng:ref name="data.PERCENT.LIMITED"/> </datatype> </attDef> <attDef ident="midi.port" usage="opt"> <desc xml:lang="en">Sets the MIDI port value.</desc> <datatype> <rng:ref name="data.MIDIVALUE_NAME"/> </datatype> </attDef> <attDef ident="midi.track" usage="opt"> <desc xml:lang="en">Sets the MIDI track.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.instrDef.log" module="MEI.midi" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.instrumentIdent" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes which identify a MIDI instrument.</desc> <attList> <attDef ident="instr" usage="opt"> <desc xml:lang="en">Provides a way of pointing to a MIDI instrument definition. It must contain the ID of an <gi scheme="MEI">instrDef</gi> element elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_instrTarget" scheme="schematron"> <constraint> <sch:rule context="@instr"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@instr attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:instrDef/@xml:id">The value in @instr should correspond to the @xml:id attribute of an instrDef element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.midi.event" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes common to MIDI events.</desc> <classes> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.timestamp.log"/> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.midi.log" module="MEI.midi" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> </classes> </classSpec> <classSpec ident="att.midiInstrument" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record MIDI instrument information.</desc> <constraintSpec ident="One_of_instrname_or_instrnum" scheme="schematron"> <constraint> <sch:rule context="mei:*[@midi.instrname]"> <sch:assert test="not(@midi.instrnum)">Only one of @midi.instrname and @midi.instrnum allowed.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="One_of_patchname_or_patchnum" scheme="schematron"> <constraint> <sch:rule context="mei:*[@midi.patchname]"> <sch:assert test="not(@midi.patchnum)">Only one of @midi.patchname and @midi.patchnum allowed.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="midi.instrnum" usage="opt"> <desc xml:lang="en">Captures the General MIDI instrument number. Use an integer for a 0-based value. An integer preceded by "in" indicates a 1-based value.</desc> <datatype> <rng:ref name="data.MIDIVALUE"/> </datatype> </attDef> <attDef ident="midi.instrname" usage="opt"> <desc xml:lang="en">Provides a General MIDI label for the MIDI instrument.</desc> <datatype> <rng:ref name="data.MIDINAMES"/> </datatype> </attDef> <attDef ident="midi.pan" usage="opt"> <desc xml:lang="en">Sets the instrument’s position in a stereo field. MIDI values of 0 and 1 both pan left, 127 or 128 pans right, and 63 or 64 pans to the center. Positve percentage values pan to the right, negative ones to the left. 0% is centered.</desc> <datatype> <rng:ref name="data.MIDIVALUE_PAN"/> </datatype> </attDef> <attDef ident="midi.patchname" usage="opt"> <desc xml:lang="en">Records a non-General MIDI patch/instrument name.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> <attDef ident="midi.patchnum" usage="opt"> <desc xml:lang="en">Records a non-General MIDI patch/instrument number.</desc> <datatype> <rng:ref name="data.MIDIVALUE"/> </datatype> </attDef> <attDef ident="midi.volume" usage="opt"> <desc xml:lang="en">Sets the instrument’s volume.</desc> <datatype> <rng:ref name="data.MIDIVALUE_PERCENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.midiNumber" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record MIDI numbers.</desc> <attList> <attDef ident="num" usage="req"> <gloss versionDate="2022-10-30" xml:lang="en">number</gloss> <desc xml:lang="en">MIDI number in the range set by data.MIDIVALUE.</desc> <datatype> <rng:ref name="data.MIDIVALUE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.midiTempo" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record MIDI tempo information.</desc> <attList> <attDef ident="midi.bpm" usage="opt"> <desc xml:lang="en">Captures the number of *quarter notes* per minute. In MIDI, a beat is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*.</desc> <datatype> <rng:ref name="data.MIDIBPM"/> </datatype> </attDef> <attDef ident="midi.mspb" usage="opt"> <desc xml:lang="en">Records the number of microseconds per *quarter note*. In MIDI, a beat is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*. At 120 quarter notes per minute, each quarter note will last 500,000 microseconds.</desc> <datatype> <rng:ref name="data.MIDIMSPB"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.midiValue" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record MIDI values.</desc> <attList> <attDef ident="val" usage="opt"> <desc xml:lang="en">MIDI number.</desc> <datatype> <rng:ref name="data.MIDIVALUE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.midiValue2" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record terminal MIDI values.</desc> <attList> <attDef ident="val2" usage="opt"> <desc xml:lang="en">MIDI number.</desc> <datatype> <rng:ref name="data.MIDIVALUE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.midiVelocity" module="MEI.midi" type="atts"> <desc xml:lang="en">MIDI attributes pertaining to key velocity.</desc> <attList> <attDef ident="vel" usage="opt"> <desc xml:lang="en">MIDI Note-on/off velocity.</desc> <datatype> <rng:ref name="data.MIDIVALUE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.timeBase" module="MEI.midi" type="atts"> <desc xml:lang="en">Attributes that record time-base information.</desc> <attList> <attDef ident="ppq" usage="opt"> <desc xml:lang="en">Indicates the number of pulses (sometimes referred to as ticks or divisions) per quarter note. Unlike MIDI, MEI permits different values for a score and individual staves.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="model.midiLike" module="MEI.midi" type="model"> <desc xml:lang="en">Groups elements which group MIDI-like elements.</desc> <classes> <memberOf key="model.layerPart.mensuralAndNeumes"/> <memberOf key="model.measurePart"/> <memberOf key="model.syllablePart"/> </classes> </classSpec> <elementSpec ident="cc" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">control change</gloss> <desc xml:lang="en">MIDI parameter/control change.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> <memberOf key="att.midiValue"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The <att>num</att> attribute specifies a MIDI parameter number, while <att>val</att> contains the parameter value. Each must fall in the range 0-127.</p> </remarks> </elementSpec> <elementSpec ident="chan" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">channel</gloss> <desc xml:lang="en">MIDI channel assignment.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="num" usage="req"> <desc xml:lang="en">MIDI number in the range set by data.MIDICHANNEL.</desc> <datatype> <rng:ref name="data.MIDICHANNEL"/> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="chanPr" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">channel pressure</gloss> <desc xml:lang="en">MIDI channel pressure/after touch.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The value of the <att>num</att> attribute must be in the range 0-127.</p> </remarks> </elementSpec> <elementSpec ident="cue" module="MEI.midi"> <desc xml:lang="en">MIDI cue point.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.lang"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="hex" module="MEI.midi"> <desc xml:lang="en">Arbitrary MIDI data in hexadecimal form.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:text/> </content> <remarks xml:lang="en"> <p>The element’s content must be wrapped in a CDATA section to avoid parsing errors.</p> </remarks> </elementSpec> <elementSpec ident="instrDef" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">instrument definition</gloss> <desc xml:lang="en">MIDI instrument declaration.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.instrDef.anl"/> <memberOf key="att.instrDef.ges"/> <memberOf key="att.instrDef.log"/> <memberOf key="att.instrDef.vis"/> <memberOf key="model.instrDefLike"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>This element provides a starting or default instrument declaration for a staff, a group of staves, or a layer. Following scoreDef, staffDef, layerDef, or MIDI prog elements may then change the instrument as necessary.</p> </remarks> </elementSpec> <elementSpec ident="instrGrp" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">instrument group</gloss> <desc xml:lang="en">Collects MIDI instrument definitions.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:oneOrMore> <rng:ref name="model.instrDefLike"/> </rng:oneOrMore> </content> </elementSpec> <elementSpec ident="marker" module="MEI.midi"> <desc xml:lang="en">MIDI marker meta-event.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.lang"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="metaText" module="MEI.midi"> <desc xml:lang="en">MIDI text meta-event.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.lang"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="midi" module="MEI.midi"> <desc xml:lang="en">Container for elements that contain information useful when generating MIDI output.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.log"/> <memberOf key="att.midi.ges"/> <memberOf key="att.midi.anl"/> <memberOf key="model.midiLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="cc"/> <rng:ref name="chan"/> <rng:ref name="chanPr"/> <rng:ref name="cue"/> <rng:ref name="hex"/> <rng:ref name="marker"/> <rng:ref name="metaText"/> <rng:ref name="noteOff"/> <rng:ref name="noteOn"/> <rng:ref name="port"/> <rng:ref name="prog"/> <rng:ref name="seqNum"/> <rng:ref name="trkName"/> <rng:ref name="vel"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <att>label</att> attribute can be used to differentiate between multiple MIDI data streams, <abbr>e.g.</abbr>, quantized/unquantized, straight/swing, ornamented/as notated, etc.</p> </remarks> </elementSpec> <elementSpec ident="noteOff" module="MEI.midi"> <desc xml:lang="en">MIDI note-off event.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="noteOn" module="MEI.midi"> <desc xml:lang="en">MIDI note-on event.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="port" module="MEI.midi"> <desc xml:lang="en">MIDI port.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="prog" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">program</gloss> <desc xml:lang="en">MIDI program change.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="seqNum" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">sequence number</gloss> <desc xml:lang="en">MIDI sequence number.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="num" usage="req"> <desc xml:lang="en">Number in the range 0-65535.</desc> <datatype> <rng:data type="nonNegativeInteger"> <rng:param name="maxInclusive">65535</rng:param> </rng:data> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="trkName" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">track name</gloss> <desc xml:lang="en">MIDI track/sequence name.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.lang"/> <memberOf key="att.midi.event"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="vel" module="MEI.midi"> <gloss versionDate="2022-05-18" xml:lang="en">velocity</gloss> <desc xml:lang="en">MIDI Note-on/off velocity.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.midi.event"/> <memberOf key="att.midiNumber"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="form" usage="req"> <desc xml:lang="en">Indicates whether this is note-on or note-off velocity data.</desc> <valList type="closed"> <valItem ident="on"> <desc xml:lang="en">Note-on velocity.</desc> </valItem> <valItem ident="off"> <desc xml:lang="en">Note-off velocity.</desc> </valItem> </valList> </attDef> </attList> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.msDesc"> <moduleSpec ident="MEI.msDesc"> <desc xml:lang="en">Manuscript description component declarations.</desc> </moduleSpec> <classSpec ident="att.componentType" type="atts" module="MEI.msDesc"> <desc xml:lang="en">Attributes that express the relationship between a component and its host.</desc> <attList> <attDef ident="comptype" usage="opt"> <constraintSpec ident="checkComponentType" scheme="schematron"> <constraint> <sch:rule context="mei:*[@comptype]"> <sch:let name="elementName" value="local-name()"/> <sch:assert test="ancestor::mei:componentList">The comptype attribute may occur on <sch:value-of select="$elementName"/> only when it is a descendant of a componentList.</sch:assert> </sch:rule> </constraint> </constraintSpec> <valList type="closed"> <valItem ident="constituent"> <desc xml:lang="en">A physical and logical part of entity.</desc> </valItem> <valItem ident="boundwith"> <desc xml:lang="en">A physical, but not logical component of the entity, usually included as part of the binding process.</desc> </valItem> <valItem ident="separated"> <desc xml:lang="en">A logical component of the entity physically held elsewhere.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.foliation.scheme" type="atts" module="MEI.msDesc"> <desc xml:lang="en">Attributes that describe foliation schemes.</desc> <attList> <attDef ident="scheme" usage="opt"> <desc xml:lang="en">Identifies the foliation scheme in terms of which the location is being specified by pointing to some foliation element defining it, or to some other equivalent resource.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="model.msInline" type="model" module="MEI.msDesc"> <desc xml:lang="en">Groups elements that may appear inline when the msdesc module is active.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <elementSpec ident="accMat" module="MEI.msDesc"> <desc xml:lang="en">Holds a description of any additional material bound with an item, such as non-contemporaneous documents or fragments.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-accMat.html">accMat</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="addDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">addition description</gloss> <desc xml:lang="en">Provides a description of significant additions found within an item, such as marginalia or other annotations.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-additions.html">additions</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="binding" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">binding</gloss> <desc xml:lang="en">Contains a description of one binding, <abbr>i.e.</abbr>, type of covering, boards, etc. applied to an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.contemporary"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="dimensions"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-binding.html">binding</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="bindingDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">binding description</gloss> <desc xml:lang="en">Describes the present and former bindings of an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="binding"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-bindingDesc.html">bindingDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="catchwords" module="MEI.msDesc"> <desc xml:lang="en">Describes the system used to ensure correct ordering of the quires making up an item, typically by means of annotations at the foot of the page.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <constraintSpec ident="check_catchwords_inline" scheme="schematron"> <constraint> <sch:rule context="mei:catchwords"> <sch:assert test="ancestor::mei:physDesc">The catchwords element may only appear as a descendant of the physDesc element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-catchwords.html">catchwords</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="collation" module="MEI.msDesc"> <desc xml:lang="en">Records a description of how the leaves or bifolia of an item are physically arranged.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-collation.html">collation</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="colophon" module="MEI.msDesc"> <desc xml:lang="en">Contains a statement providing information regarding the date, place, agency, or reason for production of the item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-colophon.html">colophon</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="decoDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">decoration description</gloss> <desc xml:lang="en">Contains a description of the decoration of an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-decoDesc.html">decoDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="decoNote" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">decoration note</gloss> <desc xml:lang="en">Contains a description of one or more decorative features of an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-decoNote.html">decoNote</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="explicit" module="MEI.msDesc"> <desc xml:lang="en">Contains the explicit of a manuscript item; that is, the closing words of the text proper, exclusive of any rubric or colophon which might follow it.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-explicit.html">explicit</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="foliation" module="MEI.msDesc"> <desc xml:lang="en">Describes the numbering system or systems used to count the leaves or pages in a codex.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-foliation.html">foliation</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="heraldry" module="MEI.msDesc"> <desc xml:lang="en">Contains a heraldic formula or phrase, typically found as part of a blazon, coat of arms, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-heraldry.html">heraldry</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="layout" module="MEI.msDesc"> <desc xml:lang="en">Describes how text is laid out on the page, including information about any ruling, pricking, or other evidence of page-preparation techniques.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <attList> <attDef ident="cols" usage="opt"> <desc xml:lang="en">Specifies the number of columns per page.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:data type="nonNegativeInteger"/> </datatype> <remarks xml:lang="en"> <p>A single number indicates that all pages have this number of columns. Two numbers mean that the number of columns per page varies between the values supplied.</p> </remarks> </attDef> <attDef ident="ruledlines" usage="opt"> <desc xml:lang="en">Specifies the number of ruled text lines per column.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:data type="nonNegativeInteger"/> </datatype> <remarks xml:lang="en"> <p> A single number indicates that all columns have this number of ruled lines. Two numbers mean that the number of text lines per column varies between the values supplied.</p> </remarks> </attDef> <attDef ident="writtenlines" usage="opt"> <desc xml:lang="en">Specifies the number of written text lines per column.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:data type="nonNegativeInteger"/> </datatype> <remarks xml:lang="en"> <p>A single number indicates that all columns have this number of written text lines. Two numbers mean that the number of text lines per column varies between the values supplied.</p> </remarks> </attDef> <attDef ident="ruledstaves" usage="opt"> <desc xml:lang="en">Specifies the number of ruled staves per column.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:data type="nonNegativeInteger"/> </datatype> <remarks xml:lang="en"> <p>A single number indicates that all columns have this number of ruled staves. Two numbers mean that the number of ruled staves per column varies between the values supplied.</p> </remarks> </attDef> <attDef ident="writtenstaves" usage="opt"> <desc xml:lang="en">Specifies the number of written staves per column.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:data type="nonNegativeInteger"/> </datatype> <remarks xml:lang="en"> <p>A single number indicates that all columns have this number of written staves. Two numbers mean that the number of written staves per column varies between the values supplied.</p> </remarks> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-layout.html">layout</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="layoutDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">layout description</gloss> <desc xml:lang="en">Collects layout descriptions.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="p"/> <rng:ref name="layout"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-layoutDesc.html">layoutDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="locus" module="MEI.msDesc"> <desc xml:lang="en">Defines a location within a manuscript or manuscript component, usually as a (possibly discontinuous) sequence of folio references.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.foliation.scheme"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="locus"/> <rng:ref name="rend"/> <rng:ref name="symbol"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="from" usage="opt"> <desc xml:lang="en">Specifies the starting point of the location in a normalized form.</desc> <datatype> <rng:ref name="data.WORD"/> </datatype> </attDef> <attDef ident="to" usage="opt"> <desc xml:lang="en">Specifies the end-point of the location in a normalized form.</desc> <datatype> <rng:ref name="data.WORD"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-locus.html">locus</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="locusGrp" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">locus group</gloss> <desc xml:lang="en">Groups locations which together form a distinct but discontinuous item within a manuscript or manuscript part, according to a specific foliation.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.foliation.scheme"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="locus"/> </rng:zeroOrMore> </content> <constraintSpec ident="check_locusGrp_inline" module="MEI.msDesc" scheme="schematron"> <constraint> <sch:rule context="mei:locusGrp"> <sch:assert test="ancestor::mei:physDesc or parent::mei:contentItem or ancestor::mei:source[ancestor::mei:componentList[ancestor::mei:sourceDesc or ancestor::mei:sourceList or ancestor::mei:workList]]">The locusGrp element may only appear as a descendant of a physDesc element, a contentItem element, or a source element that is a component of another source or work.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-locusGrp.html">locusGrp</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="rubric" module="MEI.msDesc"> <desc xml:lang="en">Contains a string of words through which a manuscript signals the beginning or end of a text division, often with an assertion as to its author and title, which is in some way set off from the text itself, usually in red ink, or by use of different size or type of script, or some other such visual device.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <attList> <attDef ident="func"> <valList type="closed"> <valItem ident="initial"> <desc xml:lang="en">Signals beginning of a text division.</desc> </valItem> <valItem ident="final"> <desc xml:lang="en">Marks the end of a text division.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-rubric.html">rubric</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="scriptDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">script description</gloss> <desc xml:lang="en">Contains a description of the letters or characters used in an autographic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="p"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="scriptNote"/> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-scriptDesc.html">scriptDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="scriptNote" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">script note</gloss> <desc xml:lang="en">Describes a particular script distinguished within the description of an autographic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-scriptNote.html">scriptNote</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="seal" module="MEI.msDesc"> <desc xml:lang="en">A single seal or similar attachment.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.contemporary"/> <memberOf key="att.datable"/> <memberOf key="att.lang"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-seal.html">seal</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="sealDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">seal description</gloss> <desc xml:lang="en">Describes the seals or similar external attachments applied to an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:choice> <rng:zeroOrMore> <rng:ref name="seal"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-sealDesc.html">sealDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="secFolio" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">second folio</gloss> <desc xml:lang="en">Marks the word or words taken from a fixed point in a codex (typically the beginning of the second leaf) in order to provide a unique identifier for the item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <constraintSpec ident="check_secFolio_inline" scheme="schematron"> <constraint> <sch:rule context="mei:secFolio"> <sch:assert test="ancestor::mei:physDesc">The secFolio element may only appear as a descendant of the physDesc element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-secFol.html">secFol</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="signatures" module="MEI.msDesc"> <desc xml:lang="en">Provides a description of the leaf or quire signatures found within a codex.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <constraintSpec ident="check_signatures_inline" scheme="schematron"> <constraint> <sch:rule context="mei:signatures"> <sch:assert test="ancestor::mei:physDesc">The signatures element may only appear as a descendant of the physDesc element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-signatures.html">signatures</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="stamp" module="MEI.msDesc"> <desc xml:lang="en">Contains a word or phrase describing an official mark indicating ownership, genuineness, validity, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.msInline"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-stamp.html">stamp</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="support" module="MEI.msDesc"> <desc xml:lang="en">Provides a description of the physical support material of a written item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="condition"/> <rng:ref name="decoNote"/> <rng:ref name="dimensions"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-support.html">support</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="supportDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">support description</gloss> <desc xml:lang="en">Groups elements describing the physical support material of an item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:choice> <rng:zeroOrMore> <rng:ref name="p"/> </rng:zeroOrMore> <rng:group> <rng:optional> <rng:ref name="support"/> </rng:optional> <rng:optional> <rng:ref name="foliation"/> </rng:optional> <rng:optional> <rng:ref name="collation"/> </rng:optional> <rng:optional> <rng:ref name="condition"/> </rng:optional> </rng:group> </rng:choice> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <attList> <attDef ident="material" usage="opt"> <desc xml:lang="en">Short, project-defined name for the material composing the majority of the support.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="paper"> <desc xml:lang="en">Paper.</desc> </valItem> <valItem ident="parch"> <desc xml:lang="en">Parchment.</desc> </valItem> <valItem ident="mixed"> <desc xml:lang="en">Mixed materials.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-supportDesc.html">supportDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="typeDesc" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">type description</gloss> <desc xml:lang="en">Contains a description of the typefaces or other aspects of the printing of a printed source.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="head"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="p"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="typeNote"/> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-typeDesc.html">typeDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="typeNote" module="MEI.msDesc"> <gloss versionDate="2022-05-18" xml:lang="en">type note</gloss> <desc xml:lang="en">Describes a particular font or other significant typographic feature of a printed resource.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-typeNote.html">typeNote</ref> element in the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.namesdates"> <moduleSpec ident="MEI.namesdates"> <desc xml:lang="en">Names and dates component declarations.</desc> </moduleSpec> <classSpec ident="model.addressPart" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups elements used as part of a physical address.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.geogNamePart" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups elements which form part of a geographic name.</desc> <classes> <memberOf key="model.addressPart"/> </classes> </classSpec> <classSpec ident="model.nameLike.agent" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups elements which contain names of individuals or corporate bodies.</desc> <classes> <memberOf key="model.eventPart"/> <memberOf key="model.nameLike"/> </classes> </classSpec> <classSpec ident="model.nameLike.geogName" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups geographic name elements.</desc> <classes> <memberOf key="model.eventPart"/> <memberOf key="model.nameLike.place"/> </classes> </classSpec> <classSpec ident="model.nameLike.label" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups elements that serve as stylistic labels.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.nameLike.place" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups place name elements.</desc> <classes> <memberOf key="model.nameLike"/> </classes> </classSpec> <classSpec ident="model.persNamePart" module="MEI.namesdates" type="model"> <desc xml:lang="en">Groups elements which form part of a personal name.</desc> </classSpec> <elementSpec ident="addName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">additional name</gloss> <desc xml:lang="en">Contains an additional name component, such as a nickname, epithet, or alias, or any other descriptive phrase used within a personal name.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.persNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-addName.html">addName</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="bloc" module="MEI.namesdates"> <desc xml:lang="en">Contains the name of a geopolitical unit consisting of two or more nation states or countries.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.geogNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-bloc.html">bloc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="corpName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">corporate name</gloss> <desc xml:lang="en">Identifies an organization or group of people that acts as a single entity.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.nameLike.agent"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Examples of corporate entities include names of associations, institutions, business firms, non-profit enterprises, governments, government agencies, projects, programs, religious bodies, churches, conferences, athletic contests, exhibitions, expeditions, fairs, and ships. Usually, secondary name parts are encoded in <gi scheme="MEI">corpName</gi> sub-elements. The name of the list from which a controlled value is taken may be recorded using the <att>auth</att> attribute.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-corpname">corpname</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="country" module="MEI.namesdates"> <desc xml:lang="en">Contains the name of a geopolitical unit, such as a nation, country, colony, or commonwealth, larger than or administratively superior to a region and smaller than a bloc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.geogNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-country.html">country</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="district" module="MEI.namesdates"> <desc xml:lang="en">Contains the name of any kind of subdivision of a settlement, such as a parish, ward, or other administrative or geographic unit.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.geogNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-district.html">district</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="famName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">family name</gloss> <desc xml:lang="en">Contains a family (inherited) name, as opposed to a given, baptismal, or nick name.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.persNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="nameLink"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="foreName" module="MEI.namesdates"> <desc xml:lang="en">Contains a forename, given or baptismal name.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.persNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-forename.html">forename</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="genName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">generational name component</gloss> <desc xml:lang="en">Contains a name component used to distinguish otherwise similar names on the basis of the relative ages or generations of the persons named.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.persNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-genName.html">genName</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="geogFeat" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">geographical feature name</gloss> <desc xml:lang="en">Contains a common noun identifying a geographical feature.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.geogNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-geogFeat.html">geogFeat</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="geogName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">geographic name</gloss> <desc xml:lang="en">The proper noun designation for a place, natural feature, or political jurisdiction.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.nameLike.geogName"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Examples include Black Forest; Baltimore, Maryland; and Quartier Latin, Paris. Geographic name parts can be encoded using <gi scheme="MEI">geogName</gi> sub-elements. For greater specificity, however, use <gi scheme="MEI">district</gi>, <gi scheme="MEI">settlement</gi>, <gi scheme="MEI">region</gi>, <gi scheme="MEI">country</gi>, and <gi scheme="MEI">bloc</gi> sub-elements. The name of the list from which a controlled value is taken, such as the Thesaurus of Geographic Names (TGN), may be recorded using the <att>auth</att> attribute.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-geogname">geogname</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="nameLink" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">name link</gloss> <desc xml:lang="en">Contains a connecting phrase or link used within a name but not regarded as part of it, such as "van der" or "of", "from", etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.persNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-nameLink.html">nameLink</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="periodName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">period name</gloss> <desc xml:lang="en">A label that describes a period of time, such as 'Baroque' or '3rd Style period'.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.nameLike.label"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The name of the list from which a controlled value is taken may be recorded using the <att>auth</att> attribute.</p> </remarks> </elementSpec> <elementSpec ident="persName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">personal name</gloss> <desc xml:lang="en">Designation for an individual, including any or all of that individual's forenames, surnames, honorific titles, and added names.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.nameLike.agent"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="model.persNamePart"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Parts of a personal name may be captured using <gi scheme="MEI">persName</gi> sub-elements. For greater specificity, however, use foreName, famName, genName, addName, genName, nameLink, and roleName elements. The name of the list from which a controlled value for persName is taken may be recorded using the <att>auth</att> attribute.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-persname">persname</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="postBox" module="MEI.namesdates"> <gloss versionDate="2023-06-16" xml:lang="en">postal box or post office box</gloss> <desc xml:lang="en">Contains a number or other identifier for some postal delivery point other than a street address.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.addressPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-postBox.html">postBox</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="postCode" module="MEI.namesdates"> <gloss versionDate="2023-06-16" xml:lang="en">postal code</gloss> <desc xml:lang="en">Contains a numerical or alphanumeric code used as part of a postal address to simplify sorting or delivery of mail.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.addressPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-postCode.html">postCode</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="region" module="MEI.namesdates"> <desc xml:lang="en">Contains the name of an administrative unit such as a state, province, or county, larger than a settlement, but smaller than a country.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.geogNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-region.html">region</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="roleName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">role name</gloss> <desc xml:lang="en">Contains a name component which indicates that the referent has a particular role or position in society, such as an official title or rank.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.persNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-roleName.html">roleName</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="settlement" module="MEI.namesdates"> <desc xml:lang="en">Contains the name of a settlement such as a city, town, or village identified as a single geopolitical or administrative unit.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.geogNamePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-settlement.html">settlement</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="street" module="MEI.namesdates"> <desc xml:lang="en">full street address including any name or number identifying a building as well as the name of the street or route on which it is located.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.addressPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-street.html">street</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="styleName" module="MEI.namesdates"> <gloss versionDate="2022-05-18" xml:lang="en">style name</gloss> <desc xml:lang="en">A label for a characteristic style of writing or performance, such as 'bebop' or 'rock-n-roll'.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.nameLike.label"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Do not confuse this element with the <gi scheme="MEI">periodName</gi> element. The name of the list from which a controlled value is taken may be recorded using the <att>auth</att> attribute.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.neumes"> <moduleSpec ident="MEI.neumes"> <desc xml:lang="en">Neume repertoire component declarations.</desc> </moduleSpec> <macroSpec ident="data.STAFFITEM.neumes" module="MEI.neumes" type="dt"> <desc xml:lang="en">Items in the Neume repertoire that may be printed near a staff.</desc> </macroSpec> <classSpec ident="att.divLine.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Identifies the different kinds of division.</desc> <datatype maxOccurs="unbounded"> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="caesura"/> <valItem ident="finalis"/> <valItem ident="maior"/> <valItem ident="maxima"/> <valItem ident="minima"/> <valItem ident="virgula"/> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.episema.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <!-- att.controlEvent class expanded here in order to disallow att.timestamp.* --> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.plist"/> <memberOf key="att.staffIdent"/> <memberOf key="att.targetEval"/> </classes> </classSpec> <classSpec ident="att.hispanTick.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <!-- att.controlEvent class expanded here in order to disallow att.timestamp.* --> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.plist"/> <memberOf key="att.staffIdent"/> <memberOf key="att.targetEval"/> </classes> </classSpec> <classSpec ident="att.liquescent.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.nc.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <!-- att.event restricted --> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.staffIdent"/> </classes> <attList> <!-- pname and oct are re-defined locally to allow indefinite pitch --> <attDef ident="oct" usage="opt"> <desc xml:lang="en">Captures written octave information.</desc> <datatype> <rng:choice> <rng:data type="nonNegativeInteger"> <rng:param name="maxInclusive">9</rng:param> </rng:data> <rng:data type="token"> <rng:param name="pattern">unknown</rng:param> </rng:data> </rng:choice> </datatype> </attDef> <attDef ident="pname" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">pitch name</gloss> <desc xml:lang="en">Contains a written pitch name.</desc> <datatype> <rng:data type="token"> <rng:param name="pattern">[a-g]|unknown</rng:param> </rng:data> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ncForm" module="MEI.neumes" type="atts"> <desc xml:lang="en">Attributes that record visual details of neume notation.</desc> <classes> <memberOf key="att.curvatureDirection"/> </classes> <attList> <attDef ident="angled" usage="opt"> <desc/> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="con" usage="opt"> <desc xml:lang="en">Connection to the previous component within the same neume; this attribute should not be used for the first component of a neume.</desc> <valList type="closed"> <valItem ident="g"> <desc xml:lang="en">Gapped; not connected.</desc> </valItem> <valItem ident="l"> <desc xml:lang="en">Looped.</desc> </valItem> <valItem ident="e"> <desc xml:lang="en">Extended.</desc> </valItem> </valList> </attDef> <attDef ident="hooked" usage="opt"> <desc xml:lang="en">Pen stroke has an extension; specific to Hispanic notation.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="ligated" usage="opt"> <desc xml:lang="en">Indicates participation in a ligature.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="rellen" usage="opt"> <desc xml:lang="en">Length of the pen stroke relative to the previous component within the same neume; this attribute should not be used for the first component of a neume.</desc> <valList type="closed"> <valItem ident="l"> <desc xml:lang="en">Longer.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Shorter.</desc> </valItem> </valList> </attDef> <attDef ident="s-shape" usage="opt"> <desc xml:lang="en">Direction of the initial direction for an s-shaped pen stroke; <abbr>i.e.</abbr>, "w" for the standard letter S, "e" for its mirror image, "s" for the letter S turned 90-degrees anti-clockwise, and "n" for its mirror image.</desc> <datatype> <rng:ref name="data.COMPASSDIRECTION.basic"/> </datatype> </attDef> <attDef ident="tilt" usage="opt"> <desc xml:lang="en">Direction of the pen stroke.</desc> <datatype> <rng:ref name="data.COMPASSDIRECTION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ncGrp.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <!-- att.event restricted --> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.sylText"/> </classes> </classSpec> <classSpec ident="att.neume.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <!-- att.event restricted --> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.sylText"/> </classes> </classSpec> <classSpec ident="att.neumeType" module="MEI.neumes" type="atts"> <desc xml:lang="en">Attributes that specify the type of neumes.</desc> <attList> <attDef ident="type" usage="opt"> <desc xml:lang="en">Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.</desc> <datatype maxOccurs="unbounded"> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="apostropha"/> <valItem ident="bistropha"/> <valItem ident="climacus"/> <valItem ident="clivis"/> <valItem ident="oriscus"/> <valItem ident="pes"/> <valItem ident="pessubpunctis"/> <valItem ident="porrectus"/> <valItem ident="porrectusflexus"/> <valItem ident="pressusmaior"/> <valItem ident="pressusminor"/> <valItem ident="punctum"/> <valItem ident="quilisma"/> <valItem ident="scandicus"/> <valItem ident="strophicus"/> <valItem ident="torculus"/> <valItem ident="torculusresupinus"/> <valItem ident="tristropha"/> <valItem ident="virga"/> <valItem ident="virgastrata"/> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.oriscus.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.quilisma.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.signifLet.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <!-- att.controlEvent class expanded here in order to disallow att.timestamp.* --> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.plist"/> <memberOf key="att.staffIdent"/> <memberOf key="att.targetEval"/> </classes> </classSpec> <classSpec ident="att.strophicus.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.syllable.log" module="MEI.neumes" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> </classes> </classSpec> <classSpec ident="model.eventLike.neumes" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups event elements that occur in the neume repertoire.</desc> <classes> <memberOf key="model.layerPart.neumes"/> <memberOf key="model.syllablePart"/> </classes> </classSpec> <classSpec ident="model.layerPart.neumes" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups notated events that may appear at the layer level in the neume repertoire.</desc> <classes> <memberOf key="model.layerPart.mensuralAndNeumes"/> </classes> </classSpec> <classSpec ident="model.neumeComponentModifierLike" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that modify neume components.</desc> </classSpec> <classSpec ident="model.neumeModifierLike" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that modify neume-like features.</desc> </classSpec> <classSpec ident="model.neumePart" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that may occur within a neume.</desc> </classSpec> <!--<classSpec ident="model.scorePart.neumes" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a score in the neume repertoire.</desc> </classSpec>--> <!--<classSpec ident="model.sectionPart.neumes" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a section in the neume repertoire.</desc> <classes> <memberOf key="model.sectionPart.mensuralAndNeumes"/> </classes> </classSpec>--> <!--<classSpec ident="model.staffPart.neumes" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that are components of a staff in the neume repertoire.</desc> <classes> <memberOf key="model.staffPart.mensuralAndNeumes"/> </classes> </classSpec>--> <classSpec ident="model.syllableLike" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that accommodate neumed text.</desc> <classes> <memberOf key="model.layerPart.neumes"/> </classes> </classSpec> <classSpec ident="model.syllablePart" module="MEI.neumes" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the content of a syllable.</desc> </classSpec> <elementSpec ident="episema" module="MEI.neumes"> <desc xml:lang="en">Episema.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.episema.anl"/> <memberOf key="att.episema.ges"/> <memberOf key="att.episema.log"/> <memberOf key="att.episema.vis"/> <memberOf key="model.neumeModifierLike"/> </classes> </elementSpec> <elementSpec ident="hispanTick" module="MEI.neumes"> <desc xml:lang="en">Hispanic tick.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.hispanTick.anl"/> <memberOf key="att.hispanTick.ges"/> <memberOf key="att.hispanTick.log"/> <memberOf key="att.hispanTick.vis"/> <memberOf key="model.neumeModifierLike"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="liquescent" module="MEI.neumes"> <desc xml:lang="en">Liquescent.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.liquescent.anl"/> <memberOf key="att.liquescent.ges"/> <memberOf key="att.liquescent.log"/> <memberOf key="att.liquescent.vis"/> <memberOf key="model.neumeComponentModifierLike"/> </classes> </elementSpec> <elementSpec ident="nc" module="MEI.neumes"> <desc xml:lang="en">Sign representing a single pitched event, although the exact pitch may not be known.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.classed"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="att.nc.anl"/> <memberOf key="att.nc.ges"/> <memberOf key="att.nc.log"/> <memberOf key="att.nc.vis"/> <memberOf key="model.neumePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.neumeComponentModifierLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="ncGrp" module="MEI.neumes"> <gloss versionDate="2023-06-16" xml:lang="en">neume component group</gloss> <desc xml:lang="en">Collection of one or more neume components.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.ncGrp.anl"/> <memberOf key="att.ncGrp.ges"/> <memberOf key="att.ncGrp.log"/> <memberOf key="att.ncGrp.vis"/> <memberOf key="model.neumePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="nc"/> <rng:ref name="ncGrp"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="neume" module="MEI.neumes"> <desc xml:lang="en">Sign representing one or more musical pitches.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.classed"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="att.neume.anl"/> <memberOf key="att.neume.ges"/> <memberOf key="att.neume.log"/> <memberOf key="att.neume.vis"/> <memberOf key="model.eventLike.neumes"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.neumePart"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="oriscus" module="MEI.neumes"> <desc xml:lang="en">Oriscus.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.oriscus.anl"/> <memberOf key="att.oriscus.ges"/> <memberOf key="att.oriscus.log"/> <memberOf key="att.oriscus.vis"/> <memberOf key="model.neumeComponentModifierLike"/> </classes> </elementSpec> <elementSpec ident="quilisma" module="MEI.neumes"> <desc xml:lang="en">Quilisma.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.quilisma.anl"/> <memberOf key="att.quilisma.ges"/> <memberOf key="att.quilisma.log"/> <memberOf key="att.quilisma.vis"/> <memberOf key="model.neumeComponentModifierLike"/> </classes> </elementSpec> <elementSpec ident="signifLet" module="MEI.neumes"> <desc xml:lang="en">Significantive letter(s).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.signifLet.anl"/> <memberOf key="att.signifLet.ges"/> <memberOf key="att.signifLet.log"/> <memberOf key="att.signifLet.vis"/> <memberOf key="model.neumeModifierLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="strophicus" module="MEI.neumes"> <desc xml:lang="en">Strophicus.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.strophicus.anl"/> <memberOf key="att.strophicus.ges"/> <memberOf key="att.strophicus.log"/> <memberOf key="att.strophicus.vis"/> <memberOf key="model.neumeComponentModifierLike"/> </classes> </elementSpec> <elementSpec ident="syllable" module="MEI.neumes"> <desc xml:lang="en">Neume notation can be thought of as "neumed text". Therefore, the syllable element provides high-level organization in this repertoire.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.syllable.anl"/> <memberOf key="att.syllable.ges"/> <memberOf key="att.syllable.log"/> <memberOf key="att.syllable.vis"/> <memberOf key="model.syllableLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.neumeModifierLike"/> <rng:ref name="model.scoreDefLike"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.syllablePart"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="divLine" module="MEI.neumes"> <desc xml:lang="en">Represents a division (divisio) in neume notation. Divisions indicate short, medium, or long pauses similar to breath marks in modern notation.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.classed"/> <memberOf key="att.color"/> <memberOf key="att.divLine.log"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.visibility"/> <memberOf key="att.xy"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="model.eventLike.neumes"/> </classes> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.performance"> <moduleSpec ident="MEI.performance"> <desc xml:lang="en">Performance component declarations.</desc> </moduleSpec> <classSpec ident="att.alignment" module="MEI.performance" type="atts"> <desc xml:lang="en">Temporal alignment attributes.</desc> <constraintSpec ident="check_whenTarget" scheme="schematron"> <constraint> <sch:rule context="@when"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@when attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:when/@xml:id">A value in @when should correspond to the @xml:id attribute of a when element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="when" usage="opt"> <desc xml:lang="en">Indicates the point of occurrence of this feature along a time line. Its value must be the ID of a <gi scheme="MEI">when</gi> element elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <elementSpec ident="avFile" module="MEI.performance"> <gloss versionDate="2022-05-18" xml:lang="en">audio/video file</gloss> <desc xml:lang="en">References an external digital audio or video file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.internetMedia"/> <memberOf key="att.facsimile"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="clip"/> </rng:zeroOrMore> </content> <constraintSpec ident="avFile_child_of_clip" scheme="schematron"> <constraint> <sch:rule context="mei:clip/mei:avFile"> <sch:assert test="count(mei:*) = 0">An avFile child of clip cannot have children.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element is analogous to the <gi scheme="MEI">graphic</gi> element in the figtable module.</p> </remarks> </elementSpec> <elementSpec ident="clip" module="MEI.performance"> <desc xml:lang="en">Defines a time segment of interest within a recording or within a digital audio or video file.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dataPointing"/> <memberOf key="att.mediaBounds"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.startId"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="avFile"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="when"/> </rng:zeroOrMore> </content> <constraintSpec ident="betype_required_when_begin_or_end" scheme="schematron"> <constraint> <sch:rule context="mei:clip[@begin or @end]"> <sch:assert role="warning" test="@betype or ancestor::mei:*[@betype]">When @begin or @end is used, @betype should appear on clip or one of its ancestors.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element is analogous to the <gi scheme="MEI">zone</gi> element in the facsimile module.</p> </remarks> </elementSpec> <elementSpec ident="performance" module="MEI.performance"> <desc xml:lang="en">A presentation of one or more musical works.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.resourceLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="recording"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <att>decls</att> attribute may be used to link the collection with a particular source described in the header. This element is analogous to the <gi scheme="MEI">facsimile</gi> element in the facsimile module.</p> </remarks> </elementSpec> <elementSpec ident="recording" module="MEI.performance"> <desc xml:lang="en">A recorded performance.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dataPointing"/> <memberOf key="att.mediaBounds"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.startId"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="avFile"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="when"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="clip"/> </rng:zeroOrMore> </content> <constraintSpec ident="betype_required_when_begin_or_end" scheme="schematron"> <constraint> <sch:rule context="mei:recording[@begin or @end]"> <sch:assert role="warning" test="@betype">When @begin or @end is used, @betype should be present.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <att>startid</att> attribute may be used to hold a reference to the first feature occurring in this performance. This element is analogous to the <gi scheme="MEI">surface</gi> element in the facsimile module.</p> </remarks> </elementSpec> <elementSpec ident="when" module="MEI.performance"> <desc xml:lang="en">Indicates a point in time either absolutely (using the absolute attribute), or relative to another when element (using the since, interval and inttype attributes).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dataPointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="extData"/> </rng:zeroOrMore> </content> <constraintSpec ident="check_when_interval" scheme="schematron"> <constraint> <sch:rule context="mei:when[@interval]"> <sch:assert test="@since">@since must be present when @interval is used.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(@since, '\s+') satisfies substring($i,2)=//mei:when/@xml:id">The value in @since should correspond to the @xml:id attribute of a when element.</sch:assert> </sch:rule> <sch:rule context="mei:when[matches(@interval, '^[0-9]+$')]"> <sch:assert test="not(@inttype eq 'time')">When @interval contains an integer value, @inttype cannot be 'time'.</sch:assert> </sch:rule> <sch:rule context="mei:when[matches(@interval, ':')]"> <sch:assert test="@inttype eq 'time'">When @interval contains a time value, @inttype must be 'time'.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_when_absolute" scheme="schematron"> <constraint> <sch:rule context="mei:when[@absolute]"> <sch:assert role="warning" test="@abstype or ancestor::mei:*[@betype]">When @absolute is present, @abstype should be present or @betype should be present on an ancestor.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="absolute" usage="opt"> <desc xml:lang="en">Provides an absolute value for the time point.</desc> <datatype> <rng:text/> </datatype> </attDef> <attDef ident="interval" usage="opt"> <desc xml:lang="en">Specifies the time interval between this time point and the one designated by the since attribute. This attribute can only be interpreted meaningfully in conjunction with the inttype attribute.</desc> <datatype> <rng:choice> <rng:data type="decimal"> <rng:param name="minInclusive">1</rng:param> </rng:data> <rng:data type="time"/> </rng:choice> </datatype> </attDef> <attDef ident="abstype" usage="opt"> <desc xml:lang="en">Specifies the kind of values used in the absolute attribute.</desc> <datatype> <rng:ref name="data.BETYPE"/> </datatype> </attDef> <attDef ident="inttype" usage="opt"> <desc xml:lang="en">Specifies the kind of values used in the interval attribute.</desc> <datatype> <rng:ref name="data.BETYPE"/> </datatype> </attDef> <attDef ident="since" usage="opt"> <desc xml:lang="en">Identifies the reference point for determining the time of the current when element, which is obtained by adding the interval to the time of the reference point. The value should be the ID of another when element within the same parent element. If the since attribute is omitted and the absolute attribute is not specified, then the reference point is understood to be the immediately preceding when element.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_sinceTarget" scheme="schematron"> <constraint> <sch:rule context="@since"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@since attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:when/@xml:id">The value in @since should correspond to the @xml:id attribute of a when element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>data</att> attribute may be used to reference one or more features that occur at this point in time.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-when.html">when</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.ptrref"> <moduleSpec ident="MEI.ptrref"> <desc xml:lang="en">Pointer and reference component declarations.</desc> </moduleSpec> <classSpec ident="model.locrefLike" module="MEI.ptrref" type="model"> <desc xml:lang="en">Groups elements used for purposes of location and reference.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <elementSpec ident="ptr" module="MEI.ptrref"> <gloss versionDate="2022-05-18" xml:lang="en">pointer</gloss> <desc xml:lang="en">Defines a traversible pointer to another location, using only attributes to describe the destination.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.internetMedia"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.locrefLike"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>Unlike the <gi scheme="MEI">ref</gi> element, <gi scheme="MEI">ptr</gi> cannot contain text or sub-elements to describe the referenced object.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-ptr">ptr</ref> element of the Encoded Archival Description (EAD) and the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-ptr.html">ptr</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="ref" module="MEI.ptrref"> <gloss versionDate="2022-05-18" xml:lang="en">reference</gloss> <desc xml:lang="en">Defines a traversible reference to another location. May contain text and sub-elements that describe the destination.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.internetMedia"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.locrefLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Unlike the <gi scheme="MEI">ptr</gi> element, <gi scheme="MEI">ref</gi> may contain text and sub-elements to describe the destination.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-ref">ref</ref> element of the Encoded Archival Description (EAD) and the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-ref.html">ref</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.shared"> <moduleSpec ident="MEI.shared"> <desc xml:lang="en">Component declarations that are shared between two or more modules.</desc> </moduleSpec> <macroSpec ident="macro.anyXML" module="MEI.shared" type="pe"> <desc xml:lang="en">Permits any XML elements except those from the MEI or SVG namespace.</desc> <content> <rng:element> <rng:anyName> <rng:except> <rng:nsName ns="http://www.music-encoding.org/ns/mei"/> <rng:nsName ns="http://www.w3.org/2000/svg"/> </rng:except> </rng:anyName> <rng:zeroOrMore> <rng:attribute> <rng:anyName/> </rng:attribute> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="macro.anyXML"/> </rng:choice> </rng:zeroOrMore> </rng:element> </content> </macroSpec> <macroSpec ident="macro.metaLike.page" module="MEI.shared" type="pe"> <desc xml:lang="en">Groups elements that contain meta-data about a single page.</desc> <content> <rng:optional> <rng:ref name="pgHead"/> </rng:optional> <rng:optional> <rng:ref name="pgFoot"/> </rng:optional> <rng:optional> <rng:ref name="pgDesc"/> </rng:optional> </content> </macroSpec> <macroSpec ident="macro.musicPart" module="MEI.shared" type="pe"> <desc xml:lang="en">Groups elements that may appear as part of the music element.</desc> <content> <rng:optional> <rng:ref name="model.frontLike"/> </rng:optional> <rng:optional> <rng:choice> <rng:ref name="body"/> <rng:ref name="group"/> </rng:choice> </rng:optional> <rng:optional> <rng:ref name="model.backLike"/> </rng:optional> </content> </macroSpec> <macroSpec ident="macro.struc-unstrucContent" module="MEI.shared" type="pe"> <desc xml:lang="en">Provides a choice between structured and unstructured/mixed content.</desc> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.pLike"/> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> </macroSpec> <macroSpec ident="macro.titlePart" module="MEI.shared" type="pe"> <desc xml:lang="en">Groups elements that may appear as part of a bibliographic title.</desc> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.addressLike"/> <rng:ref name="model.addressPart"/> <rng:ref name="model.annotLike"/> <rng:ref name="model.biblLike"/> <rng:ref name="model.dateLike"/> <rng:ref name="model.editorialLike"/> <rng:ref name="model.figureLike"/> <rng:ref name="model.identifierLike"/> <rng:ref name="model.lbLike"/> <rng:ref name="model.locrefLike"/> <rng:ref name="model.measurementLike"/> <rng:ref name="model.nameLike"/> <rng:ref name="model.nameLike.label"/> <rng:ref name="model.pbLike"/> <rng:ref name="model.rendLike"/> <rng:ref name="symbol"/> </rng:choice> </rng:zeroOrMore> </content> </macroSpec> <macroSpec ident="data.BETYPE" module="MEI.shared" type="dt"> <desc xml:lang="en">Datatypes for values in begin, end, abstype and inttype attributes.</desc> <content> <valList type="closed"> <valItem ident="byte"> <desc xml:lang="en">Bytes.</desc> </valItem> <valItem ident="smil"> <desc xml:lang="en">Synchronized Multimedia Integration Language.</desc> </valItem> <valItem ident="midi"> <desc xml:lang="en">MIDI clicks.</desc> </valItem> <valItem ident="mmc"> <desc xml:lang="en">MIDI machine code.</desc> </valItem> <valItem ident="mtc"> <desc xml:lang="en">MIDI time code.</desc> </valItem> <valItem ident="smpte-25"> <desc xml:lang="en">SMPTE 25 EBU.</desc> </valItem> <valItem ident="smpte-24"> <desc xml:lang="en">SMPTE 24 Film Sync.</desc> </valItem> <valItem ident="smpte-df30"> <desc xml:lang="en">SMPTE 30 Drop.</desc> </valItem> <valItem ident="smpte-ndf30"> <desc xml:lang="en">SMPTE 30 Non-Drop.</desc> </valItem> <valItem ident="smpte-df29.97"> <desc xml:lang="en">SMPTE 29.97 Drop.</desc> </valItem> <valItem ident="smpte-ndf29.97"> <desc xml:lang="en">SMPTE 29.97 Non-Drop.</desc> </valItem> <valItem ident="tcf"> <desc xml:lang="en">AES Time-code character format.</desc> </valItem> <valItem ident="time"> <desc xml:lang="en">ISO 24-hour time format: HH:MM:SS.ss.</desc> </valItem> </valList> </content> </macroSpec> <classSpec ident="att.accid.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.accidental"/> <memberOf key="att.controlEvent"/> </classes> <attList> <attDef ident="func" usage="opt"> <desc xml:lang="en">Records the function of an accidental.</desc> <valList type="closed"> <valItem ident="caution"> <desc xml:lang="en">Cautionary accidental.</desc> </valItem> <valItem ident="edit"> <desc xml:lang="en">Editorial accidental.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.accidental" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for capturing momentary pitch inflection.</desc> <attList> <attDef ident="accid" usage="opt"> <desc xml:lang="en">Captures a written accidental.</desc> <datatype> <rng:ref name="data.ACCIDENTAL.WRITTEN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ambitus.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.ambNote.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.accidental"/> <memberOf key="att.coloration"/> <memberOf key="att.duration.log"/> <memberOf key="att.pitched"/> </classes> </classSpec> <classSpec ident="att.annot.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes for annot. Values for the type attribute can be taken from any convenient typology of annotation suitable to the work in hand; <abbr>e.g.</abbr>, annotation, gloss, citation, digression, preliminary, temporary, etc.</desc> <!-- Some attributes defined in att.controlEvent (att.timestamp.log, att.timestamp.ges, att.staffIdent, and att.layerIdent) are provided here directly instead of making annot a member of att.controlEvent. --> <classes> <memberOf key="att.alignment"/> <memberOf key="att.duration.additive"/> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp.log"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.artic.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.articulation"/> <memberOf key="att.controlEvent"/> </classes> </classSpec> <classSpec ident="att.articulation" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for capturing the written signs that describe the method of performance.</desc> <attList> <attDef ident="artic" usage="opt"> <desc xml:lang="en">Encodes the written articulation(s). Articulations are normally encoded in order from the note head outward; that is, away from the stem. See additional notes at att.vis.note. Only articulations should be encoded in the artic attribute; for example, fingerings should be encoded using the <gi scheme="MEI">fing</gi> element.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.ARTICULATION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.attacca.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="target" usage="opt"> <desc xml:lang="en">Indicates the next section or movement to be performed.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_attaccaTarget" scheme="schematron"> <constraint> <sch:rule context="mei:attacca/@target"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'section' or local-name() eq 'mdiv']/@xml:id">The value in @target should correspond to the @xml:id attribute of a section or mdiv element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.audience" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe the intended audience.</desc> <attList> <attDef ident="audience" usage="opt"> <desc xml:lang="en">The intended audience.</desc> <valList type="closed"> <valItem ident="private"> <desc xml:lang="en">Internal use only.</desc> </valItem> <valItem ident="public"> <desc xml:lang="en">Available to all audiences.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.augmentDots" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the number of dots of augmentation.</desc> <attList> <attDef ident="dots" usage="opt"> <desc xml:lang="en">Records the number of augmentation dots required by a written dotted duration.</desc> <datatype> <rng:ref name="data.AUGMENTDOT"/> </datatype> <constraintSpec ident="dots_attribute_requires_dur" scheme="schematron"> <constraint> <sch:rule context="mei:*[@dots]"> <sch:assert test="@dur">An element with a dots attribute must also have a dur attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>dots</att> attribute records the number of augmentation dots necessary to represent a non-power-of-two duration. This is usually, but not always, the number of dots displayed. For example, a note with this attribute will result in displayed dots, while a glissando will not.</p> </remarks> </classSpec> <classSpec ident="att.authorized" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe the source of a controlled value.</desc> <classes> <memberOf key="att.canonical"/> </classes> <attList> <attDef ident="auth" usage="opt"> <desc xml:lang="en">A name or label associated with a controlled vocabulary or other authoritative source for this element or its content.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> <attDef ident="auth.uri" usage="opt"> <desc xml:lang="en">A web-accessible location of the controlled vocabulary or other authoritative source of identification or definition for this element or its content. This attribute may contain a complete URI or a partial URI which is completed by the value of the codedval attribute.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.barLine.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.meterConformance.bar"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Records the appearance and usually the function of the bar line.</desc> <datatype> <rng:ref name="data.BARRENDITION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.barring" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that capture the placement of bar lines.</desc> <attList> <attDef ident="bar.len" usage="opt"> <desc xml:lang="en">States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); <abbr>e.g.</abbr>, a value of <val>8</val> for a 5-line staff.</desc> <datatype> <rng:data type="decimal"> <rng:param name="minExclusive">0</rng:param> </rng:data> </datatype> <remarks xml:lang="en"> <p>This attribute is ignored if the value of the bar.style attribute is <val>mensur</val>.</p> </remarks> </attDef> <attDef ident="bar.method" usage="opt"> <desc xml:lang="en">Records the method of barring.</desc> <datatype> <rng:ref name="data.BARMETHOD"/> </datatype> <constraintSpec ident="check_barmethod" scheme="schematron"> <constraint> <sch:rule context="@bar.method[parent::*[matches(local-name(), '(staffDef|measure)')]]"> <sch:assert test="not(. eq 'mensur')">"mensur" not allowed in this context.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="bar.place" usage="opt"> <desc xml:lang="en">Denotes the staff location of bar lines, if the length is non-standard; that is, not equal to 2 times (the number of staff lines - 1).</desc> <datatype> <rng:ref name="data.STAFFLOC"/> </datatype> <remarks xml:lang="en"> <p>The location may include staff lines, the spaces between the lines, and the spaces directly above and below the staff. The value ranges between 0 (just below the staff) to 2 * number of staff lines (directly above the staff). For example, on a 5-line staff the lines would be numbered 1, 3, 5, 7, and 9 while the spaces would be numbered 0, 2, 4, 6, 8, and 10. So, a value of <val>9</val> puts the bar line through the top line of the staff.</p> <p>This attribute is ignored if the value of the bar.style attribute is <val>mensur</val>.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.basic" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that form the basis of the att.common class.</desc> <classes> <memberOf key="att.id"/> </classes> <attList> <!--<attDef ident="base" ns="http://www.w3.org/XML/1998/namespace" usage="opt">--> <attDef ident="xml:base" usage="opt"> <desc xml:lang="en">Provides a base URI reference with which applications can resolve relative URI references into absolute URI references.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.bibl" module="MEI.shared" type="atts"> <desc xml:lang="en">Bibliographic attributes.</desc> <attList> <attDef ident="analog" usage="opt"> <desc xml:lang="en">Contains a reference to a field or element in another descriptive encoding system to which this MEI element is comparable.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Mapping elements from one system to another via <att>analog</att> may help a repository harvest selected data from the MEI file to build a basic catalog record. The encoding system from which fields are taken must be specified. When possible, subfields as well as fields should be specified, <abbr>e.g.</abbr>, subfields within <abbr>MARC</abbr> fields.</p> </remarks> </classSpec> <classSpec ident="att.caesura.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.startId"/> <memberOf key="att.timestamp.log"/> </classes> </classSpec> <classSpec ident="att.calendared" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that indicate the calendar system of a date or other datable element.</desc> <attList> <attDef ident="calendar" usage="opt"> <desc xml:lang="en">Indicates the calendar system to which a date belongs, for example, Gregorian, Julian, Roman, Mosaic, Revolutionary, Islamic, etc.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.canonical" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that can be used to associate a representation such as a name or title with canonical information about the object being named or referenced.</desc> <attList> <attDef ident="codedval" usage="opt"> <desc xml:lang="en">A value that represents or identifies other data. Often, it is a primary key in the database or a unique value in the coded list identified by the <att>auth</att> or <att>auth.uri</att> attributes.</desc> <datatype maxOccurs="unbounded"> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.chord.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes for chord. The artic, dots, and dur attributes encode the written articulations, augmentation dots, and duration values. The beam, fermata, lv, slur, syl, tie, and tuplet attributes may be used to indicate the attachment of these things to this chord. If visual information about these things needs to be recorded, then either the elements corresponding to these attributes or the attributes available in the att.vis.chord class should be employed.</desc> <classes> <memberOf key="att.articulation"/> <memberOf key="att.augmentDots"/> <memberOf key="att.chord.log.cmn"/> <memberOf key="att.cue"/> <memberOf key="att.duration.log"/> <memberOf key="att.event"/> <memberOf key="att.sylText"/> </classes> </classSpec> <classSpec ident="att.classed" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes which can be used to classify features.</desc> <attList> <attDef ident="class" usage="opt"> <desc xml:lang="en">Contains one or more URIs which denote classification terms that apply to the entity bearing this attribute.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_classURI" scheme="schematron"> <constraint> <sch:rule context="@class"> <sch:assert test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:category/@xml:id or matches($i, '^([a-z]+://|\.{1,2}/)')">The value in @class must either correspond to the @xml:id attribute of a category element or be an external URL.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.clef.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.clefShape"/> <memberOf key="att.lineLoc"/> <memberOf key="att.octave"/> <memberOf key="att.octaveDisplacement"/> </classes> <attList> <attDef ident="cautionary" usage="opt"> <desc xml:lang="en">Records the function of the clef. A "cautionary" clef does not change the following pitches.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.cleffing.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the logical domain related to clefs.</desc> <constraintSpec ident="clef_shape_requires_clef_line" scheme="schematron"> <constraint> <sch:rule context="mei:*[matches(@clef.shape, '[FCG]')]"> <sch:assert test="@clef.line">An 'F', 'C', or 'G' clef requires that its position be specified.</sch:assert> </sch:rule> <sch:rule context="mei:*[matches(@clef.shape, '(TAB|perc)')]"> <sch:assert test="@lines">A TAB or percussion clef requires that the number of lines be specified.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="clef.shape" usage="opt"> <desc xml:lang="en">Encodes a value for the clef symbol.</desc> <datatype> <rng:ref name="data.CLEFSHAPE"/> </datatype> </attDef> <attDef ident="clef.line" usage="opt"> <desc xml:lang="en">Contains a default value for the position of the clef. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.</desc> <datatype> <rng:ref name="data.CLEFLINE"/> </datatype> </attDef> <attDef ident="clef.dis" usage="opt"> <desc xml:lang="en">Records the amount of octave displacement to be applied to the clef.</desc> <datatype> <rng:ref name="data.OCTAVE.DIS"/> </datatype> </attDef> <attDef ident="clef.dis.place" usage="opt"> <desc xml:lang="en">Records the direction of octave displacement to be applied to the clef.</desc> <datatype> <rng:ref name="data.STAFFREL.basic"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.clefGrp.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.clefShape" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the shape of a clef.</desc> <constraintSpec ident="shape_requires_line" scheme="schematron"> <constraint> <sch:rule context="mei:clef[matches(@shape, '[FCG]')]"> <sch:assert test="@line">When @shape is present, @line must also be specified.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="shape" usage="opt"> <desc xml:lang="en">Describes a clef’s shape.</desc> <datatype> <rng:ref name="data.CLEFSHAPE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.color" module="MEI.shared" type="atts"> <desc xml:lang="en">Visual color attributes.</desc> <attList> <attDef ident="color" usage="opt"> <desc xml:lang="en">Used to indicate visual appearance. Do not confuse this with the musical term 'color' as used in pre-CMN notation.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.coloration" module="MEI.shared" type="atts"> <desc xml:lang="en">Indication of coloration.</desc> <attList> <attDef ident="colored" usage="opt"> <desc xml:lang="en">Indicates this feature is 'colored'; that is, it is a participant in a change in rhythmic values. In mensural notation, coloration is indicated by colored notes (red, black, etc.) where void notes would otherwise occur. In CMN, coloration is indicated by an inverse color; that is, the note head is void when it would otherwise be filled and vice versa.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.common" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes common to many elements.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> </classes> </classSpec> <classSpec ident="att.contemporary" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes specifying whether a feature is contemporary or historical.</desc> <attList> <attDef ident="contemporary" usage="opt"> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.controlEvent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes shared by events which rely on other events for their existence. For example, a slur/phrase marking must be drawn between or over a group of notes. The slur is therefore a control event.</desc> <classes> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.partIdent"/> <memberOf key="att.plist"/> <memberOf key="att.staffIdent"/> <memberOf key="att.targetEval"/> <memberOf key="att.timestamp.log"/> <memberOf key="att.timestamp.ges"/> </classes> </classSpec> <classSpec ident="att.coordinated" module="MEI.shared" type="atts"> <desc xml:lang="en">This attribute class records the position of a feature within a two-dimensional coordinate system.</desc> <classes> <memberOf key="att.coordinated.ul"/> </classes> <attList> <attDef ident="lrx" usage="opt"> <desc xml:lang="en">Indicates the lower-right corner x coordinate.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> <attDef ident="lry" usage="opt"> <desc xml:lang="en">Indicates the lower-left corner x coordinate.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> <attDef ident="rotate"> <desc xml:lang="en"> Indicates the amount by which the contents of this element have been rotated clockwise or, if applicable, how the orientation of the element self should be interpreted, with respect to the normal orientation of the parent surface. The orientation is expressed in arc degrees. </desc> <datatype minOccurs="1" maxOccurs="1"> <rng:ref name="data.DEGREES"/> </datatype> <defaultVal>0</defaultVal> <remarks xml:lang="en"> <p>This attribute is based on the TEI attribute of the same name.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.coordinated.ul" module="MEI.shared" type="atts"> <desc xml:lang="en">This attribute class records the upper left position of a feature within a two-dimensional coordinate system.</desc> <attList> <attDef ident="ulx" usage="opt"> <desc xml:lang="en">Indicates the upper-left corner x coordinate.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> <attDef ident="uly" usage="opt"> <desc xml:lang="en">Indicates the upper-left corner y coordinate.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.cue" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe "cue-ness".</desc> <attList> <attDef ident="cue" usage="opt"> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.curvature" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe curvature.</desc> <attList> <attDef ident="bezier" usage="opt"> <desc xml:lang="en">Records the placement of Bezier control points as a series of pairs of space-separated values; <abbr>e.g.</abbr>, <val>19 45 -32 118.</val></desc> <datatype> <rng:list> <rng:oneOrMore> <rng:data type="decimal"/> <rng:data type="decimal"/> </rng:oneOrMore> </rng:list> </datatype> </attDef> <attDef ident="bulge" usage="opt"> <desc xml:lang="en">Describes a curve as one or more pairs of values with respect to an imaginary line connecting the starting and ending points of the curve. The first value captures a distance to the left (positive value) or right (negative value) of the line, expressed in virtual units. The second value of each pair represents a point along the line, expressed as a percentage of the line’s length. N.B. An MEI virtual unit (vu) is half the distance between adjacent staff lines where the interline space is measured from the middle of a staff line.</desc> <datatype> <rng:list> <rng:oneOrMore> <rng:data type="decimal"/> <rng:ref name="data.PERCENT"/> </rng:oneOrMore> </rng:list> </datatype> </attDef> <attDef ident="curvedir" usage="opt"> <desc xml:lang="en">Describes a curve with a generic term indicating the direction of curvature.</desc> <valList type="closed"> <valItem ident="above"> <desc xml:lang="en">Upward curve.</desc> </valItem> <valItem ident="below"> <desc xml:lang="en">Downward curve.</desc> </valItem> <valItem ident="mixed"> <desc xml:lang="en">A "meandering" curve, both above and below the items it pertains to.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.custos.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.accidental"/> <memberOf key="att.pitched"/> </classes> <attList> <attDef ident="target" usage="opt"> <desc xml:lang="en">Encodes the target note when its pitch differs from the pitch at which the custos appears.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_custosTarget" scheme="schematron"> <constraint> <sch:rule context="mei:custos/@target"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@target attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:note/@xml:id">The value in @target should correspond to the @xml:id attribute of a note element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.datable" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes common to dates.</desc> <attList> <attDef ident="enddate" usage="opt"> <desc xml:lang="en">Contains the end point of a date range in standard ISO form.</desc> <datatype> <rng:ref name="data.ISODATE"/> </datatype> </attDef> <attDef ident="isodate" usage="opt"> <desc xml:lang="en">Provides the value of a textual date in standard ISO form.</desc> <datatype> <rng:ref name="data.ISODATE"/> </datatype> </attDef> <attDef ident="notafter" usage="opt"> <desc xml:lang="en">Contains an upper boundary for an uncertain date in standard ISO form.</desc> <datatype> <rng:ref name="data.ISODATE"/> </datatype> </attDef> <attDef ident="notbefore" usage="opt"> <desc xml:lang="en">Contains a lower boundary, in standard ISO form, for an uncertain date.</desc> <datatype> <rng:ref name="data.ISODATE"/> </datatype> </attDef> <attDef ident="startdate" usage="opt"> <desc xml:lang="en">Contains the starting point of a date range in standard ISO form.</desc> <datatype> <rng:ref name="data.ISODATE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.dataPointing" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for linking metadata to data.</desc> <attList> <attDef ident="data" usage="opt"> <desc xml:lang="en">Used to link metadata elements to one or more data-containing elements.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_dataTarget" scheme="schematron"> <constraint> <sch:rule context="@data"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@data attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:music]/@xml:id">The value in @data should correspond to the @xml:id attribute of a descendant of the music element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.mdiv.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> </classes> </classSpec> <classSpec ident="att.metadataPointing" module="MEI.shared" type="atts"> <desc xml:lang="en">Provides attributes for elements which may be associated with particular contextual elements within the header.</desc> <attList> <attDef ident="decls" usage="opt"> <desc xml:lang="en">Identifies one or more metadata elements (other than classification terms) within the header, which are understood to apply to the element bearing this attribute and its content.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_declsTarget" scheme="schematron"> <constraint> <sch:rule context="@decls"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@decls attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:meiHead]/@xml:id">Each value in @decls should correspond to the @xml:id attribute of an element within the metadata header.</sch:assert> <sch:assert test="every $i in tokenize(., '\s+') satisfies not(substring($i,2)=//mei:term/@xml:id)">No value in @decls should correspond to the @xml:id attribute of a classification term. Use @class for this purpose.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.dimensions" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that capture the dimensions of an entity.</desc> <classes> <memberOf key="att.height"/> <memberOf key="att.width"/> </classes> </classSpec> <classSpec ident="att.dir.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.distances" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe distance from the staff.</desc> <attList> <attDef ident="dir.dist" usage="opt"> <desc xml:lang="en">Records the default distance from the staff for directives.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="dynam.dist" usage="opt"> <desc xml:lang="en">Records the default distance from the staff for dynamic marks.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="harm.dist" usage="opt"> <desc xml:lang="en">Records the default distance from the staff of harmonic indications, such as guitar chord grids or functional labels.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="reh.dist" usage="opt"> <desc xml:lang="en">Records the default distance from the staff for rehearsal marks.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="tempo.dist" usage="opt"> <desc xml:lang="en">Records the default distance from the staff for tempo marks.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.dot.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Records the function of the dot.</desc> <valList type="closed"> <valItem ident="aug"> <desc xml:lang="en">Augmentation dot.</desc> </valItem> <valItem ident="div"> <desc xml:lang="en">Dot of division.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.duration.additive" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that permit total duration to be represented by multiple values.</desc> <attList> <attDef ident="dur" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">duration</gloss> <desc xml:lang="en">When a duration cannot be represented as a single power-of-two value, multiple space-separated values that add up to the total duration may be used.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.DURATION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.duration.default" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that provide a durational default value.</desc> <attList> <attDef ident="dur.default" usage="opt"> <desc xml:lang="en">Contains a default duration in those situations when the first note, rest, chord, etc. in a measure does not have a duration specified.</desc> <datatype> <rng:ref name="data.DURATION"/> </datatype> </attDef> <attDef ident="num.default" usage="opt"> <desc xml:lang="en">Along with numbase.default, describes the default duration as a ratio. num.default is the first value in the ratio.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> <attDef ident="numbase.default" usage="opt"> <desc xml:lang="en">Along with num.default, describes the default duration as a ratio. numbase.default is the second value in the ratio.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.duration.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that express duration in musical terms.</desc> <attList> <attDef ident="dur" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">duration</gloss> <desc xml:lang="en">Records the duration of a feature using the relative durational values provided by the data.DURATION datatype.</desc> <datatype> <rng:ref name="data.DURATION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.duration.ratio" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe duration as a ratio.</desc> <attList> <attDef ident="num" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">number</gloss> <desc xml:lang="en">Along with numbase, describes duration as a ratio. num is the first value in the ratio, while numbase is the second.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> <attDef ident="numbase" usage="opt"> <desc xml:lang="en">Along with num, describes duration as a ratio. num is the first value in the ratio, while numbase is the second.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.dynam.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.enclosingChars" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that capture characters used to enclose symbols having a cautionary or editorial function.</desc> <attList> <attDef ident="enclose" usage="opt"> <desc xml:lang="en">Records the characters often used to mark accidentals, articulations, and sometimes notes as having a cautionary or editorial function. For an example of cautionary accidentals enclosed in parentheses, see Read, p. 131, ex. 9-14.</desc> <datatype> <rng:ref name="data.ENCLOSURE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ending.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> </classes> </classSpec> <classSpec ident="att.endings" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record ending style information</desc> <attList> <attDef ident="ending.rend" usage="opt"> <desc xml:lang="en">Describes where ending marks should be displayed.</desc> <valList type="closed"> <valItem ident="top"> <desc xml:lang="en">Ending rendered only above top staff.</desc> </valItem> <valItem ident="barred"> <desc xml:lang="en">Ending rendered above staves that have bar lines drawn across them.</desc> </valItem> <valItem ident="grouped"> <desc xml:lang="en">Endings rendered above staff groups.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.event" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that apply to all written events, <abbr>e.g.</abbr>, note, chord, rest, etc.</desc> <classes> <memberOf key="att.alignment"/> <memberOf key="att.layerIdent"/> <memberOf key="att.staffIdent"/> <memberOf key="att.timestamp.ges"/> <memberOf key="att.timestamp.log"/> </classes> </classSpec> <classSpec ident="att.evidence" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes describing the support for and the certainty of an assertion.</desc> <attList> <attDef ident="cert" usage="opt"> <desc xml:lang="en">Signifies the degree of certainty or precision associated with a feature.</desc> <datatype> <rng:ref name="data.CERTAINTY"/> </datatype> </attDef> <attDef ident="evidence" usage="opt"> <desc xml:lang="en">Indicates the nature of the evidence supporting the reliability or accuracy of the intervention or interpretation.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="internal"> <desc xml:lang="en">There is evidence within the document to support the intervention.</desc> </valItem> <valItem ident="external"> <desc xml:lang="en">There is evidence outside the document to support the intervention.</desc> </valItem> <valItem ident="conjecture"> <desc xml:lang="en">The assertion has been made by the editor, cataloguer, or scholar on the basis of their expertise.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.extender" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe extension symbols, typically lines. Members of this class are also typically members of the att.lineRend class.</desc> <classes> <memberOf key="att.lineRend"/> </classes> <attList> <attDef ident="extender" usage="opt"> <desc xml:lang="en">Indicates the presence of an extension symbol, typically a line.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.extent" module="MEI.shared" type="atts"> <desc xml:lang="en">Provides attributes for describing the size of an entity.</desc> <classes> <memberOf key="att.measurement"/> <memberOf key="att.ranging"/> </classes> <attList> <attDef ident="extent" usage="opt"> <desc xml:lang="en">Captures a measurement, count, or description. When extent contains a numeric value, use the unit attribute to indicate the measurement unit.</desc> <datatype> <rng:data type="string"/> </datatype> <constraintSpec ident="check_extent" scheme="schematron"> <constraint> <sch:rule context="@extent[matches(normalize-space(.), '^\d+(\.\d+)?$')]"> <sch:assert role="warning" test="../@unit">The @unit attribute is recommended.</sch:assert> </sch:rule> <sch:rule context="@extent[matches(., '\d+(\.\d+)?\s')]"> <sch:assert role="warning" test="../@unit">Separation into value (@extent) and unit (@unit) is recommended.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.fermataPresent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes indicating the attachment of a fermata to the feature.</desc> <attList> <attDef ident="fermata" usage="opt"> <desc xml:lang="en">Indicates the attachment of a fermata to this element. If visual information about the fermata needs to be recorded, then a <gi scheme="MEI">fermata</gi> element should be employed instead.</desc> <datatype> <rng:ref name="data.STAFFREL.basic"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.filing" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that deal with string filing characteristics.</desc> <attList> <attDef ident="nonfiling" usage="opt"> <desc xml:lang="en">Holds the number of initial characters (such as those constituting an article or preposition) that should not be used for sorting a title or name.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.formework" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the function (i.e., placement) of forme work elements.</desc> <attList> <attDef ident="func" usage="opt"> <desc xml:lang="en">Records the function (i.e., placement) of a page header or footer.</desc> <datatype> <rng:ref name="data.PGFUNC"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.grpSym.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.staffGroupingSym"/> <memberOf key="att.startEndId"/> </classes> <attList> <attDef ident="level" usage="opt"> <desc xml:lang="en">Indicates the nesting level of staff grouping symbols.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.handIdent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes which identify a document hand.</desc> <attList> <attDef ident="hand" usage="opt"> <desc xml:lang="en">Signifies the hand responsible for an action. The value must be the ID of a <gi scheme="MEI">hand</gi> element declared in the header.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_handTarget" scheme="schematron"> <constraint> <sch:rule context="@hand"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@hand attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:hand/@xml:id">Each value in @hand should correspond to the @xml:id attribute of a hand element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.height" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe vertical size.</desc> <attList> <attDef ident="height" usage="opt"> <desc xml:lang="en">Measurement of the vertical dimension of an entity.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.horizontalAlign" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record horizontal alignment.</desc> <attList> <attDef ident="halign" usage="opt"> <desc xml:lang="en">Records horizontal alignment.</desc> <datatype> <rng:ref name="data.HORIZONTALALIGNMENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.id" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that uniquely identify an element.</desc> <attList> <!--<attDef ident="id" ns="http://www.w3.org/XML/1998/namespace" usage="opt">--> <attDef ident="xml:id" usage="opt"> <desc xml:lang="en">Regularizes the naming of an element and thus facilitates building links between it and other resources. Each id attribute within a document must have a unique value.</desc> <datatype> <rng:data type="ID"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.internetMedia" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes which record the type of an electronic resource.</desc> <attList> <attDef ident="mimetype" usage="opt"> <desc xml:lang="en">Specifies the applicable MIME (multimedia internet mail extension) type. The value should be a valid MIME media type defined by the Internet Engineering Task Force in RFC 2046.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.joined" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes indicating that elements are semantically linked; that is, while the parts are encoded separately, together they may be thought of as a single intellectual object.</desc> <attList> <attDef ident="join" usage="opt"> <desc xml:lang="en">Used for linking visually separate entities that form a single logical entity, for example, multiple slurs broken across a system break that form a single musical phrase. Also used to indicate a measure which metrically completes the current one. Record the identifiers of the separately encoded components, excluding the one carrying the attribute.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_joinTarget" scheme="schematron"> <constraint> <sch:rule context="@join"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@join attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @join should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.keyAccid.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.accidental"/> <memberOf key="att.pitched"/> </classes> </classSpec> <classSpec ident="att.keyMode" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for describing key mode.</desc> <attList> <attDef ident="mode" usage="opt"> <desc xml:lang="en">Indicates major, minor, or other tonality.</desc> <datatype> <rng:ref name="data.MODE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.keySig.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <attList> <attDef ident="sig" usage="opt"> <desc xml:lang="en">Written key signature.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.KEYFIFTHS"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Mixed key signatures, <abbr>e.g.</abbr>, those consisting of a mixture of flats and sharps (Read, p. 143, ex. 9-39), and key signatures with unorthodox placement of the accidentals (Read, p. 141) can be encoded using the <gi scheme="MEI">keySig</gi> element.</p> </remarks> </classSpec> <classSpec ident="att.keySigDefault.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the logical domain that are related to key signatures.</desc> <attList> <attDef ident="keysig" usage="opt"> <desc xml:lang="en">Written key signature.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.KEYFIFTHS"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Mixed key signatures, <abbr>e.g.</abbr>, those consisting of a mixture of flats and sharps (Read, p. 143, ex. 9-39), and key signatures with unorthodox placement of the accidentals (Read, p. 141) can be encoded using the <gi scheme="MEI">keySig</gi> element.</p> </remarks> </classSpec> <classSpec ident="att.labelled" module="MEI.shared" type="atts"> <attList> <attDef ident="label" usage="opt"> <desc xml:lang="en">Captures text to be used to generate a label for the element to which it’s attached, a "tool tip" or prefatory text, for example. Should not be used to record document content.</desc> <datatype> <rng:data type="string"/> </datatype> <remarks xml:lang="en"> <p> <att>label</att> is used to provide a display label for an element’s contents, for example in the form of a "tool tip" or as the "name" when the element’s contents are treated as the "value" in a "name-value pair". Unlike <att>n</att>, <att>label</att> may contain space characters.</p> <p>Don't confuse this attribute with the <gi scheme="MEI">label</gi> element, which records document content.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.lang" module="MEI.shared" type="atts"> <desc xml:lang="en">Language attributes common to text elements.</desc> <attList> <!--<attDef ident="lang" ns="http://www.w3.org/XML/1998/namespace" usage="opt">--> <attDef ident="xml:lang" usage="opt"> <desc xml:lang="en">Identifies the language of the element’s content. The values for this attribute are language 'tags' as defined in BCP 47. All language tags that make use of private use sub-tags must be documented in a corresponding language element in the MEI header whose id attribute is the same as the language tag’s value.</desc> <datatype> <rng:data type="language"/> </datatype> </attDef> <attDef ident="translit" usage="opt"> <desc xml:lang="en">Specifies the transliteration technique used.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <remarks xml:lang="en"> <p>There is no standard list of transliteration schemes.</p> </remarks> </attDef> </attList> <remarks xml:lang="en"> <p>BCP 47 is described at <ref target="https://tools.ietf.org/html/bcp47">https://tools.ietf.org/html/bcp47</ref>. The IANA Subtag Registry, from which BCP 47 language tags are constructed, may be found at <ref target="www.iana.org/assignments/language-subtag-registry">www.iana.org/assignments/language-subtag-registry</ref>. A tool for locating subtags and validating language tags is available at <ref target="https://r12a.github.io/apps/subtags">https://r12a.github.io/apps/subtags</ref>.</p> </remarks> </classSpec> <classSpec ident="att.layer.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.cue"/> <memberOf key="att.meterConformance"/> </classes> <attList> <attDef ident="def" usage="opt"> <desc xml:lang="en">Provides a mechanism for linking the layer to a layerDef element.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_defTarget_layer" scheme="schematron"> <constraint> <sch:rule context="mei:layer/@def"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@def attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:layerDef/@xml:id">The value in @def should correspond to the @xml:id attribute of a layerDef element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.layerDef.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.duration.default"/> <memberOf key="att.layerDef.log.cmn"/> <memberOf key="att.octaveDefault"/> <memberOf key="att.transposition"/> </classes> </classSpec> <classSpec ident="att.layerIdent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that identify the layer to which a feature applies.</desc> <attList> <attDef ident="layer" usage="opt"> <desc xml:lang="en">Identifies the layer to which a feature applies.</desc> <datatype maxOccurs="unbounded"> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.lineLoc" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for identifying the staff line with which a feature is associated.</desc> <attList> <attDef ident="line" usage="opt"> <desc xml:lang="en">Indicates the line upon which a feature stands. The value must be in the range between 1 and the number of lines on the staff. The numbering of lines starts with the lowest line of the staff.</desc> <datatype> <rng:ref name="data.CLEFLINE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.lineRend" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the visual rendition of lines.</desc> <classes> <memberOf key="att.lineRend.base"/> </classes> <attList> <!-- additional visual characteristics of the line --> <attDef ident="lendsym" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">line end symbol</gloss> <desc xml:lang="en">Symbol rendered at end of line.</desc> <datatype> <rng:ref name="data.LINESTARTENDSYMBOL"/> </datatype> </attDef> <attDef ident="lendsym.size" usage="opt"> <desc xml:lang="en">Holds the relative size of the line-end symbol.</desc> <datatype> <rng:ref name="data.FONTSIZESCALE"/> </datatype> </attDef> <attDef ident="lstartsym" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">line start symbol</gloss> <desc xml:lang="en">Symbol rendered at start of line.</desc> <datatype> <rng:ref name="data.LINESTARTENDSYMBOL"/> </datatype> </attDef> <attDef ident="lstartsym.size" usage="opt"> <desc xml:lang="en">Holds the relative size of the line-start symbol.</desc> <datatype> <rng:ref name="data.FONTSIZESCALE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.lineRend.base" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the basic visual rendition of lines.</desc> <attList> <!-- @llength not necessary: @llength implies we know the direction of the vector which we can't know without establishing an end point, which in turn makes @llength redundant. --> <attDef ident="lform" usage="opt"> <desc xml:lang="en">Describes the style of a line.</desc> <datatype> <rng:ref name="data.LINEFORM"/> </datatype> </attDef> <attDef ident="lwidth" usage="opt"> <desc xml:lang="en">Width of a line.</desc> <datatype> <rng:ref name="data.LINEWIDTH"/> </datatype> </attDef> <attDef ident="lsegs" usage="opt"> <desc xml:lang="en">Describes the number of segments into which a dashed or dotted line may be divided, or the number of "peaks" of a wavy line; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:data type="positiveInteger"> <rng:param name="minInclusive">2</rng:param> </rng:data> </datatype> <constraintSpec ident="check_lsegs" scheme="schematron"> <constraint> <sch:rule context="@lsegs"> <sch:assert test="matches(../@lform, '(dashed|dotted|wavy)')">@lform attribute matching "dashed", "dotted", or "wavy" required.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <!-- Possible addition: <attDef ident="lwaveheight" usage="opt"> <desc xml:lang="en">Captures the height of peaks of a wavy line.</desc> <datatype> <rng:ref name="data.MEASUREMENT"/> </datatype> </attDef> --> </attList> </classSpec> <classSpec ident="att.linking" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that specify element-to-element relationships.</desc> <attList> <attDef ident="copyof" usage="opt"> <desc xml:lang="en">Points to an element of which the current element is a copy.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="When_copyof_element_empty" scheme="schematron"> <constraint> <sch:rule context="mei:*[@copyof]"> <sch:assert test="count(child::*[not(comment() or processing-instruction())]) = 0">An element with a copyof attribute can only have comment or processing instruction descendents.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_copyofTarget" scheme="schematron"> <constraint> <sch:rule context="@copyof"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@copyof attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @copyof should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="corresp" usage="opt"> <desc xml:lang="en">Used to point to other elements that correspond to this one in a generic fashion.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_correspTarget" scheme="schematron"> <constraint> <sch:rule context="@corresp"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@corresp attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @corresp should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="follows" usage="opt"> <desc xml:lang="en">points to one or more events in a user-defined collection that are known to be predecessors of the current element.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_followsTarget" scheme="schematron"> <constraint> <sch:rule context="@follows"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@follows attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @follows must correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="next" usage="opt"> <desc xml:lang="en">Used to point to the next event(s) in a user-defined collection.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_nextTarget" scheme="schematron"> <constraint> <sch:rule context="@next"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@next attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @next should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="precedes" usage="opt"> <desc xml:lang="en">Points to one or more events in a user-defined collection that are known to be successors of the current element.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_precedesTarget" scheme="schematron"> <constraint> <sch:rule context="@precedes"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@precedes attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @precedes must correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="prev" usage="opt"> <desc xml:lang="en">Points to the previous event(s) in a user-defined collection.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_prevTarget" scheme="schematron"> <constraint> <sch:rule context="@prev"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@prev attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @prev should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="sameas" usage="opt"> <desc xml:lang="en">Points to an element that is the same as the current element but is not a literal copy of the current element.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_sameasTarget" scheme="schematron"> <constraint> <sch:rule context="@sameas"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@sameas attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @sameas should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="synch" usage="opt"> <desc xml:lang="en">Points to elements that are synchronous with the current element.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_synchTarget" scheme="schematron"> <constraint> <sch:rule context="@synch"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@synch attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @synch should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.lyricStyle" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe default typography of lyrics.</desc> <attList> <attDef ident="lyric.align" usage="opt"> <desc xml:lang="en">Describes the alignment of lyric syllables associated with a note or chord.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="lyric.fam" usage="opt"> <desc xml:lang="en">Sets the font family default value for lyrics.</desc> <datatype> <rng:ref name="data.FONTFAMILY"/> </datatype> </attDef> <attDef ident="lyric.name" usage="opt"> <desc xml:lang="en">Sets the font name default value for lyrics.</desc> <datatype> <rng:ref name="data.FONTNAME"/> </datatype> </attDef> <attDef ident="lyric.size" usage="opt"> <desc xml:lang="en">Sets the default font size value for lyrics.</desc> <datatype> <rng:ref name="data.FONTSIZE"/> </datatype> </attDef> <attDef ident="lyric.style" usage="opt"> <desc xml:lang="en">Sets the default font style value for lyrics.</desc> <datatype> <rng:ref name="data.FONTSTYLE"/> </datatype> </attDef> <attDef ident="lyric.weight" usage="opt"> <desc xml:lang="en">Sets the default font weight value for lyrics.</desc> <datatype> <rng:ref name="data.FONTWEIGHT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.measurement" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the unit of measurement in which a value is expressed.</desc> <attList> <attDef ident="unit" usage="opt"> <desc xml:lang="en">Indicates the unit of measurement.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="byte"> <desc xml:lang="en">Byte.</desc> </valItem> <valItem ident="char"> <desc xml:lang="en">Character.</desc> </valItem> <valItem ident="cm"> <desc xml:lang="en">Centimeter.</desc> </valItem> <valItem ident="deg"> <desc xml:lang="en">Degree.</desc> </valItem> <valItem ident="in"> <desc xml:lang="en">Inch.</desc> </valItem> <valItem ident="issue"> <desc xml:lang="en">Serial issue.</desc> </valItem> <valItem ident="ft"> <desc xml:lang="en">Foot.</desc> </valItem> <valItem ident="m"> <desc xml:lang="en">Meter.</desc> </valItem> <valItem ident="mm"> <desc xml:lang="en">Millimeter.</desc> </valItem> <valItem ident="page"> <desc xml:lang="en">Page.</desc> </valItem> <valItem ident="pc"> <desc xml:lang="en">Pica.</desc> </valItem> <valItem ident="pt"> <desc xml:lang="en">Point.</desc> </valItem> <valItem ident="px"> <desc xml:lang="en">Pixel.</desc> </valItem> <valItem ident="rad"> <desc xml:lang="en">Radian.</desc> </valItem> <valItem ident="record"> <desc xml:lang="en">Record.</desc> </valItem> <valItem ident="vol"> <desc xml:lang="en">Serial volume.</desc> </valItem> <valItem ident="vu"> <desc xml:lang="en">MEI virtual unit.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.measureNumbers" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes pertaining to measure numbers</desc> <attList> <attDef ident="mnum.visible" usage="opt"> <desc xml:lang="en">Indicates whether measure numbers should be displayed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.mediaBounds" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that establish the boundaries of a media object.</desc> <attList> <attDef ident="begin" usage="opt"> <desc xml:lang="en">Specifies a point where the relevant content begins. A numerical value must be less and a time value must be earlier than that given by the end attribute.</desc> <datatype> <rng:text/> </datatype> </attDef> <attDef ident="end" usage="opt"> <desc xml:lang="en">Specifies a point where the relevant content ends. If not specified, the end of the content is assumed to be the end point. A numerical value must be greater and a time value must be later than that given by the begin attribute.</desc> <datatype> <rng:text/> </datatype> </attDef> <attDef ident="betype" usage="opt"> <desc xml:lang="en">Type of values used in the begin/end attributes. The begin and end attributes can only be interpreted meaningfully in conjunction with this attribute.</desc> <datatype> <rng:ref name="data.BETYPE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.medium" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes describing a writing medium, such as pencil or ink.</desc> <attList> <attDef ident="medium" usage="opt"> <desc xml:lang="en">Describes the writing medium.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meiVersion" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record the version of MEI in use.</desc> <attList> <attDef ident="meiversion" usage="opt"> <desc xml:lang="en">Specifies a generic MEI version label.</desc> <defaultVal>5.0</defaultVal> <valList type="closed"> <valItem ident="5.0"> <desc xml:lang="en">MEI 5.0</desc> </valItem> <valItem ident="5.0+anyStart"> <desc>MEI 5.0+anyStart</desc> </valItem> <valItem ident="5.0+basic"> <desc>MEI 5.0+basic</desc> </valItem> <valItem ident="5.0+CMN"> <desc>MEI 5.0+CMN</desc> </valItem> <valItem ident="5.0+Mensural"> <desc>MEI 5.0+Mensural</desc> </valItem> <valItem ident="5.0+Neumes"> <desc>MEI 5.0+Neumes</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.mensur.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.duration.ratio"/> <memberOf key="att.mensural.shared"/> </classes> <attList> <attDef ident="level" usage="opt"> <desc>Level of duration at which the proportion given by the @num and @numbase ratio applies.</desc> <datatype> <rng:ref name="data.DURATION.mensural"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meterConformance" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that provide information about a structure’s conformance to the prevailing meter.</desc> <attList> <attDef ident="metcon" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">meter conformance</gloss> <desc xml:lang="en">Indicates the relationship between the content of a staff or layer and the prevailing meter.</desc> <valList type="closed"> <valItem ident="c"> <desc xml:lang="en">Complete; <abbr>i.e.</abbr>, conformant with the prevailing meter.</desc> </valItem> <valItem ident="i"> <desc xml:lang="en">Incomplete; <abbr>i.e.</abbr>, not enough beats.</desc> </valItem> <valItem ident="o"> <desc xml:lang="en">Overfull; <abbr>i.e.</abbr>, too many beats.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.meterConformance.bar" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that provide information about a measure’s conformance to the prevailing meter.</desc> <attList> <attDef ident="metcon" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">meter conformance</gloss> <desc xml:lang="en">Indicates the relationship between the content of a measure and the prevailing meter.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="control" usage="opt"> <desc xml:lang="en">Indicates whether or not a bar line is "controlling"; that is, if it indicates a point of alignment across all the parts. Bar lines within a score are usually controlling; that is, they "line up". Bar lines within parts may or may not be controlling. When applied to <gi scheme="MEI">measure</gi>, this attribute indicates the nature of the right bar line but not the left.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meterSig.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <attList> <attDef ident="count" usage="opt"> <desc xml:lang="en">Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2.</desc> <datatype> <rng:data type="string"> <rng:param name="pattern">\d+(\.\d+)?(\s*[\+\-\*/]\s*\d+(\.\d+)?)*</rng:param> </rng:data> </datatype> </attDef> <attDef ident="sym" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">symbol</gloss> <desc xml:lang="en">Indicates the use of a meter symbol instead of a numeric meter signature, that is, 'C' for common time or 'C' with a slash for cut time.</desc> <datatype> <rng:ref name="data.METERSIGN"/> </datatype> </attDef> <attDef ident="unit" usage="opt"> <desc xml:lang="en">Contains the number indicating the beat unit, that is, the bottom number of the meter signature.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meterSigDefault.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the logical domain related to meter signature.</desc> <attList> <attDef ident="meter.count" usage="opt"> <desc xml:lang="en">Captures the number of beats in a measure, that is, the top number of the meter signature. It must contain a decimal number or an expression that evaluates to a decimal number, such as 2+3 or 3*2.</desc> <datatype> <rng:data type="string"> <rng:param name="pattern">\d+(\.\d+)?(\s*[\+\-\*/]\s*\d+(\.\d+)?)*</rng:param> </rng:data> </datatype> </attDef> <attDef ident="meter.unit" usage="opt"> <desc xml:lang="en">Contains the number indicating the beat unit, that is, the bottom number of the meter signature.</desc> <datatype> <rng:data type="decimal"> <rng:param name="minExclusive">0</rng:param> </rng:data> </datatype> </attDef> <attDef ident="meter.sym" usage="opt"> <desc xml:lang="en">Indicates the use of a meter symbol instead of a numeric meter signature, that is, 'C' for common time or 'C' with a slash for cut time.</desc> <datatype> <rng:ref name="data.METERSIGN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.mmTempo" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record tempo in terms of beats per minute.</desc> <attList> <attDef ident="mm" usage="opt"> <desc xml:lang="en">Used to describe tempo in terms of beats (often the meter signature denominator) per minute, ala M.M. (Maelzel’s Metronome). Do not confuse this attribute with midi.bpm or midi.mspb. In MIDI, a beat is always defined as a quarter note, *not the numerator of the time signature or the metronomic indication*.</desc> <datatype> <rng:ref name="data.TEMPOVALUE"/> </datatype> </attDef> <attDef ident="mm.unit" usage="opt"> <desc xml:lang="en">Captures the metronomic unit.</desc> <datatype> <rng:ref name="data.DURATION"/> </datatype> </attDef> <attDef ident="mm.dots" usage="opt"> <desc xml:lang="en">Records the number of augmentation dots required by a dotted metronome unit.</desc> <datatype> <rng:ref name="data.AUGMENTDOT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.multinumMeasures" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that indicate programmatic numbering.</desc> <attList> <attDef ident="multi.number" usage="opt"> <desc xml:lang="en">Indicates whether programmatically calculated counts of multiple measures of rest (mRest) and whole measure repeats (mRpt) in parts should be rendered.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.name" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes shared by names.</desc> <classes> <memberOf key="att.authorized"/> <memberOf key="att.datable"/> <memberOf key="att.filing"/> </classes> <attList> <attDef ident="nymref" usage="opt"> <desc xml:lang="en">Used to record a pointer to the regularized form of the name elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_nymrefTarget" scheme="schematron"> <constraint> <sch:rule context="@nymref"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@nymref attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @nymref should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="role" usage="opt"> <desc xml:lang="en">Used to specify further information about the entity referenced by this name, for example, the occupation of a person or the status of a place.</desc> <datatype> <rng:text/> </datatype> <remarks xml:lang="en"> <p>When applicable, values from the <abbr>MARC</abbr> relator term list (<ref target="http://www.loc.gov/marc/relators/relaterm.html">http://www.loc.gov/marc/relators/relaterm.html</ref>) or code list (<ref target="http://www.loc.gov/marc/relators/relacode.html">http://www.loc.gov/marc/relators/relacode.html</ref>) are recommended for <att>role</att>.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.nInteger" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes used to supply an integer number designation for an element.</desc> <attList> <attDef ident="n" usage="opt"> <desc xml:lang="en">Provides a numeric designation that indicates an element’s position in a sequence of similar elements. Its value must be a non-negative integer.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.nNumberLike" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes used to supply a number-like designation for an element.</desc> <attList> <attDef ident="n" usage="opt"> <desc xml:lang="en">Provides a number-like designation that indicates an element’s position in a sequence of similar elements. May not contain space characters.</desc> <datatype> <rng:ref name="data.WORD"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.notationStyle" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that capture music font name and size.</desc> <attList> <attDef ident="music.name" usage="opt"> <desc xml:lang="en">Sets the default music font name.</desc> <datatype> <rng:ref name="data.MUSICFONT"/> </datatype> </attDef> <attDef ident="music.size" usage="opt"> <desc xml:lang="en">Sets the default music font size.</desc> <datatype> <rng:ref name="data.FONTSIZE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.note.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.augmentDots"/> <memberOf key="att.coloration"/> <memberOf key="att.cue"/> <memberOf key="att.duration.log"/> <memberOf key="att.event"/> <memberOf key="att.note.log.cmn"/> <memberOf key="att.note.log.mensural"/> <memberOf key="att.pitched"/> <memberOf key="att.duration.quality"/> </classes> </classSpec> <classSpec ident="att.noteHeads" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes pertaining to the notehead part of a note.</desc> <attList> <attDef ident="head.altsym" usage="opt"> <desc xml:lang="en">Provides a way of pointing to a user-defined symbol. It must contain a reference to an ID of a <gi scheme="MEI">symbolDef</gi> element elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_head.altsymTarget" scheme="schematron"> <constraint> <sch:rule context="@head.altsym"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@head.altsym attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:symbolDef/@xml:id">The value in @head.altsym should correspond to the @xml:id attribute of a symbolDef element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="head.auth" usage="opt"> <desc xml:lang="en">A name or label associated with the controlled vocabulary from which a numerical value of <att>head.shape</att> is taken.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <constraintSpec ident="check_head.auth" scheme="schematron"> <constraint> <sch:rule context="mei:*[lower-case(@head.auth) eq 'smufl']"> <sch:assert test="matches(@head.shape, '^#x') or matches(@head.shape, '^U+')">When @head.auth matches 'smufl', @head.shape must contain a numeric glyph reference in hexadecimal notation, like "#xE000" or "U+E000".</sch:assert> </sch:rule> </constraint> </constraintSpec> <valList type="semi"> <valItem ident="smufl"> <desc xml:lang="en">Standard Music Font Layout.</desc> </valItem> </valList> </attDef> <attDef ident="head.color" usage="opt"> <desc xml:lang="en">Captures the overall color of a notehead.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> <attDef ident="head.fill" usage="opt"> <desc xml:lang="en">Describes how/if the notehead is filled.</desc> <datatype> <rng:ref name="data.FILL"/> </datatype> </attDef> <attDef ident="head.fillcolor" usage="opt"> <desc xml:lang="en">Captures the fill color of a notehead if different from the overall note color.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> <attDef ident="head.mod" usage="opt"> <desc xml:lang="en">Records any additional symbols applied to the notehead.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.NOTEHEADMODIFIER"/> </datatype> </attDef> <attDef ident="head.rotation" usage="opt"> <desc xml:lang="en">Describes rotation applied to the basic notehead shape. A positive value rotates the notehead in a counter-clockwise fashion, while negative values produce clockwise rotation.</desc> <datatype> <rng:ref name="data.ROTATION"/> </datatype> </attDef> <attDef ident="head.shape" usage="opt"> <desc xml:lang="en">Used to override the head shape normally used for the given duration.</desc> <datatype> <rng:ref name="data.HEADSHAPE"/> </datatype> <constraintSpec ident="check_headshape_num" scheme="schematron"> <constraint> <sch:rule context="mei:*[(matches(@head.shape, '#x') or matches(@head.shape, 'U+')) and (lower-case(@head.auth) eq 'smufl')]"> <sch:assert role="warning" test="matches(normalize-space(@head.shape), '^(#x|U\+)E([0-9AB][0-9A-F][0-9A-F]|C[0-9A][0-9A-F]|CB[0-9A-F])$')">SMuFL version 1.18 uses the range U+E000 - U+ECBF.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="head.visible" usage="opt"> <desc xml:lang="en">Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.octave" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record written octave.</desc> <attList> <attDef ident="oct" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">octave</gloss> <desc xml:lang="en">Captures written octave information.</desc> <datatype> <rng:ref name="data.OCTAVE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.octaveDefault" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record a default value for octave.</desc> <attList> <attDef ident="oct.default" usage="opt"> <desc xml:lang="en">Contains a default octave specification for use when the first note, rest, chord, etc. in a measure does not have an octave value specified.</desc> <datatype> <rng:ref name="data.OCTAVE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.octaveDisplacement" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes describing the amount and direction of octave displacement.</desc> <attList> <attDef ident="dis" usage="opt"> <desc xml:lang="en">Records the amount of octave displacement.</desc> <datatype> <rng:ref name="data.OCTAVE.DIS"/> </datatype> </attDef> <attDef ident="dis.place" usage="opt"> <desc xml:lang="en">Records the direction of octave displacement.</desc> <datatype> <rng:ref name="data.STAFFREL.basic"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.oneLineStaff" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record placement of notes on a single-line staff.</desc> <attList> <attDef ident="ontheline" usage="opt"> <desc xml:lang="en">Determines the placement of notes on a 1-line staff. A value of '<val>true</val>' places all notes on the line, while a value of '<val>false</val>' places stems-up notes above the line and stems-down notes below the line.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.optimization" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes pertaining to layout optimization.</desc> <attList> <attDef ident="optimize" usage="opt"> <desc xml:lang="en">Indicates whether staves without notes, rests, etc. should be displayed. When the value is 'true', empty staves are displayed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.origin.layerIdent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that identify the layer associated with a distant feature.</desc> <attList> <attDef ident="origin.layer" usage="opt"> <desc xml:lang="en">identifies the layer on which referenced notation occurs.</desc> <datatype> <rng:list> <rng:oneOrMore> <rng:data type="positiveInteger"/> </rng:oneOrMore> </rng:list> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.origin.staffIdent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for identifying the staff associated with a distant feature.</desc> <attList> <attDef ident="origin.staff" usage="rec"> <desc xml:lang="en">signifies the staff on which referenced notation occurs. Defaults to the same value as the local staff. Mandatory when applicable.</desc> <datatype> <rng:list> <rng:oneOrMore> <rng:data type="positiveInteger"/> </rng:oneOrMore> </rng:list> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.origin.startEndId" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes recording the identifiers of the first and last elements of a sequence of distant elements.</desc> <attList> <attDef ident="origin.startid" usage="opt"> <desc xml:lang="en">indicates the first element in a sequence of events.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="origin.endid" usage="opt"> <desc xml:lang="en">indicates the final element in a sequence of events.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.origin.timestamp.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that identify a musical range in terms of musical time.</desc> <attList> <attDef ident="origin.tstamp" usage="opt"> <desc xml:lang="en">encodes the starting point of musical material in terms of musical time, <abbr>i.e.</abbr>, a (potentially negative) count of measures plus a beat location.</desc> <datatype> <rng:ref name="data.MEASUREBEATOFFSET"/> </datatype> </attDef> <attDef ident="origin.tstamp2" usage="rec"> <desc xml:lang="en">encodes the ending point of musical material in terms of musical time, <abbr>i.e.</abbr>, a count of measures plus a beat location. The values are relative to the measure identified by <att>origin.tstamp</att>.</desc> <datatype> <rng:ref name="data.MEASUREBEAT"/> </datatype> <constraintSpec ident="origin.tstamp2_requires_origin.tstamp" scheme="schematron"> <constraint> <sch:rule context="mei:*[@origin.tstamp2]"> <sch:assert test="@origin.tstamp">When @origin.tstamp2 is used @origin.tstamp must also be present.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.ornam.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.ornamentAccid"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.pad.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.event"/> <memberOf key="att.width"/> </classes> </classSpec> <classSpec ident="att.pages" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record page-level layout information.</desc> <attList> <attDef ident="page.height" usage="opt"> <desc xml:lang="en">Specifies the height of the page; may be expressed in real-world units or staff steps.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="page.width" usage="opt"> <desc xml:lang="en">Describes the width of the page; may be expressed in real-world units or staff steps.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="page.topmar" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">page top margin</gloss> <desc xml:lang="en">Indicates the amount of whitespace at the top of a page.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="page.botmar" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">page bottom margin</gloss> <desc xml:lang="en">Indicates the amount of whitespace at the bottom of a page.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="page.leftmar" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">page left margin</gloss> <desc xml:lang="en">Indicates the amount of whitespace at the left side of a page.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="page.rightmar" usage="opt"> <gloss versionDate="2022-11-11" xml:lang="en">page right margin</gloss> <desc xml:lang="en">Indicates the amount of whitespace at the right side of a page.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="page.panels" usage="opt"> <desc xml:lang="en">Indicates the number of logical pages to be rendered on a single physical page.</desc> <datatype> <rng:ref name="data.PAGE.PANELS"/> </datatype> </attDef> <attDef ident="page.scale" usage="opt"> <desc xml:lang="en">Indicates how the page should be scaled when rendered.</desc> <datatype> <rng:ref name="data.PGSCALE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.part.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.partIdent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for identifying the part in which the current feature appears.</desc> <attList> <attDef ident="part" usage="opt"> <desc xml:lang="en">Indicates the part in which the current feature should appear. Use '%all' when the feature should occur in every part.</desc> <datatype maxOccurs="unbounded"> <rng:data type="token"> <rng:param name="pattern">(%all|#[\i][\c]+)</rng:param> </rng:data> </datatype> <constraintSpec ident="check_part_attr_all" scheme="schematron"> <constraint> <sch:rule context="@part[some $i in tokenize(., '\s+') satisfies (matches($i, '^%all$'))]"> <sch:assert test="count(tokenize(., '\s+')) = 1">'%all' cannot be mixed with other values.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="partstaff" usage="opt"> <desc xml:lang="en">Signifies the part staff on which a notated feature occurs. Use '%all' when the feature should occur on every staff.</desc> <datatype maxOccurs="unbounded"> <rng:data type="token"> <rng:param name="pattern">(%all|\d+(-\d+)?)</rng:param> </rng:data> </datatype> <constraintSpec ident="check_partstaff_attr_all" scheme="schematron"> <constraint> <sch:rule context="@partstaff[some $i in tokenize(., '\s+') satisfies (matches($i, '^%all$'))]"> <sch:assert test="count(tokenize(., '\s+')) = 1">'%all' cannot be mixed with other values.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.parts.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.pb.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> </classes> </classSpec> <classSpec ident="att.phrase.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> </classSpec> <classSpec ident="att.pitch" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record written pitch name.</desc> <attList> <attDef ident="pname" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">pitch name</gloss> <desc xml:lang="en">Contains a written pitch name.</desc> <datatype> <rng:ref name="data.PITCHNAME"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.pitched" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record written pitch name and octave number.</desc> <classes> <memberOf key="att.pitch"/> <memberOf key="att.octave"/> </classes> </classSpec> <classSpec ident="att.placementOnStaff" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes capturing placement on a staff.</desc> <attList> <attDef ident="onstaff" usage="opt"> <desc xml:lang="en">Indicates the placement of the item within the staff. A value of '<val>true</val>' means on the staff, and '<val>false</val>' off the staff.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.placementRelEvent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes capturing placement information with respect to an event.</desc> <attList> <attDef ident="place" usage="opt"> <desc xml:lang="en">Captures the placement of the item with respect to the event with which it is associated.</desc> <datatype> <rng:ref name="data.STAFFREL"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.placementRelStaff" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes capturing placement information with respect to the staff.</desc> <attList> <attDef ident="place" usage="opt"> <desc xml:lang="en">Captures the placement of the item with respect to the staff with which it is associated.</desc> <datatype> <rng:ref name="data.STAFFREL"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.plist" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes listing the active participants in a user-defined collection.</desc> <attList> <attDef ident="plist" usage="opt"> <desc xml:lang="en">When the target attribute is present, plist identifies the active participants; that is, those entities pointed "from", in a relationship with the specified target(s). When the target attribute is not present, it identifies participants in a mutual relationship.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_plistTarget" scheme="schematron"> <constraint> <sch:rule context="@plist"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@plist attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">Each value in @plist should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.pointing" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes common to all pointing/linking elements.</desc> <attList> <!--<attDef ident="actuate" ns="http://www.w3.org/1999/xlink" usage="opt">--> <attDef ident="xlink:actuate" usage="opt"> <desc xml:lang="en">Defines whether a link occurs automatically or must be requested by the user.</desc> <valList type="closed"> <valItem ident="onLoad"> <desc xml:lang="en">Load the target resource(s) immediately.</desc> </valItem> <valItem ident="onRequest"> <desc xml:lang="en">Load the target resource(s) upon user request.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">Do not permit loading of the target resource(s).</desc> </valItem> <valItem ident="other"> <desc xml:lang="en">Behavior other than allowed by the other values of this attribute.</desc> </valItem> </valList> </attDef> <!--<attDef ident="role" ns="http://www.w3.org/1999/xlink" usage="opt">--> <attDef ident="xlink:role" usage="opt"> <desc xml:lang="en">Characterization of the relationship between resources. The value of the role attribute must be a URI.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> </attDef> <!--<attDef ident="show" ns="http://www.w3.org/1999/xlink" usage="opt">--> <attDef ident="xlink:show" usage="opt"> <desc xml:lang="en">Defines how a remote resource is rendered.</desc> <valList type="closed"> <valItem ident="new"> <desc xml:lang="en">Open in a new window.</desc> </valItem> <valItem ident="replace"> <desc xml:lang="en">Load the referenced resource in the same window.</desc> </valItem> <valItem ident="embed"> <desc xml:lang="en">Embed the referenced resource at the point of the link.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">Do not permit traversal to the referenced resource.</desc> </valItem> <valItem ident="other"> <desc xml:lang="en">Behavior other than permitted by the other values of this attribute.</desc> </valItem> </valList> </attDef> <attDef ident="target" usage="opt"> <desc xml:lang="en">Identifies passive participants in a relationship; that is, the entities pointed "to".</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> </attDef> <attDef ident="targettype" usage="opt"> <desc xml:lang="en">Characterization of target resource(s) using any convenient classification scheme or typology.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> </attDef> <!-- @xlink:title duplicates @label. Use @label instead! --> <!--<attDef ident="title" ns="http://www.w3.org/1999/xlink" usage="opt">--> <!--<attDef ident="xlink:title" usage="opt"> <desc xml:lang="en">Contains a human-readable description of the entire link.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef>--> </attList> </classSpec> <classSpec ident="att.quantity" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that specify a measurement in numerical terms.</desc> <classes> <memberOf key="att.measurement"/> <memberOf key="att.ranging"/> </classes> <attList> <attDef ident="quantity" usage="opt"> <desc xml:lang="en">Numeric value capturing a measurement or count. Can only be interpreted in combination with the unit attribute.</desc> <datatype> <rng:data type="decimal"> <rng:param name="minInclusive">0</rng:param> </rng:data> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.ranging" module="MEI.shared" type="atts"> <desc xml:lang="en">Groups attributes that describe a numerical range.</desc> <attList> <attDef ident="atleast" usage="opt"> <desc xml:lang="en">Gives a minimum estimated value for an approximate measurement.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="atmost" usage="opt"> <desc xml:lang="en">Gives a maximum estimated value for an approximate measurement.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="min" usage="opt"> <desc xml:lang="en">Where the measurement summarizes more than one observation or a range of values, supplies the minimum value observed.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="max" usage="opt"> <desc xml:lang="en">Where the measurement summarizes more than one observation or a range of values, supplies the maximum value observed.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="confidence" usage="opt"> <desc xml:lang="en">Specifies the degree of statistical confidence (between zero and one) that a value falls within the range specified by min and max, or the proportion of observed values that fall within that range.</desc> <datatype> <rng:ref name="data.CONFIDENCE"/> </datatype> <constraintSpec ident="check_confidence" scheme="schematron"> <constraint> <sch:rule context="mei:*[@confidence]"> <sch:assert test="@min and @max">The attributes @min and @max are required when @confidence is present.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.repeatMark.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="func" usage="req"> <desc xml:lang="en">Indicates the function of the mark, usually implying a corresponding form.</desc> <valList type="closed"> <valItem ident="coda"> <desc xml:lang="en">Coda (SMuFL E048 or Unicode 1D10C).</desc> </valItem> <valItem ident="segno"> <desc xml:lang="en">Segno (SMuFL E047 or Unicode 1D10B).</desc> </valItem> <valItem ident="dalSegno"> <desc xml:lang="en">Dal segno (SMuFL E045 or Unicode 1D109).</desc> </valItem> <valItem ident="daCapo"> <desc xml:lang="en">Da capo (SMuFL E046 or Unicode 1D10A).</desc> </valItem> <valItem ident="fine"> <desc xml:lang="en">Fine. (text)</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.responsibility" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes capturing information regarding responsibility for some aspect of the text's creation, transcription, editing, or encoding.</desc> <attList> <attDef ident="resp" usage="opt"> <desc xml:lang="en">Indicates the agent(s) responsible for some aspect of the text’s transcription, editing, or encoding. Its value must point to one or more identifiers declared in the document header.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_respTarget" scheme="schematron"> <constraint> <sch:rule context="@resp"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@resp attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[ancestor::mei:meiHead]/@xml:id">The value in @resp should correspond to the @xml:id attribute of an element within the metadata header.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.rest.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.augmentDots"/> <memberOf key="att.cue"/> <memberOf key="att.restduration.log"/> <memberOf key="att.event"/> <memberOf key="att.rest.log.cmn"/> </classes> </classSpec> <classSpec ident="att.restduration.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that express duration of rests in musical terms.</desc> <attList> <attDef ident="dur" usage="opt"> <desc xml:lang="en">Records the duration of a rest using the relative durational values provided by the data.DURATIONRESTS datatype.</desc> <datatype> <rng:ref name="data.DURATIONRESTS"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.sb.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> </classes> </classSpec> <classSpec ident="att.scalable" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe relative size.</desc> <attList> <attDef ident="scale" usage="opt"> <desc xml:lang="en">Scale factor to be applied to the feature to make it the desired display size.</desc> <datatype> <rng:ref name="data.PERCENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.score.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.scoreDef.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes for scoreDef in the CMN repertoire. The values set in these attributes act as score-wide defaults for attributes that are not set in descendant elements.</desc> <classes> <memberOf key="att.cleffing.log"/> <memberOf key="att.duration.default"/> <memberOf key="att.keySigDefault.log"/> <memberOf key="att.meterSigDefault.log"/> <memberOf key="att.octaveDefault"/> <memberOf key="att.transposition"/> <memberOf key="att.scoreDef.log.cmn"/> <memberOf key="att.scoreDef.log.mensural"/> </classes> </classSpec> <classSpec ident="att.section.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.alignment"/> </classes> </classSpec> <classSpec ident="att.sequence" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe order within a collection of features.</desc> <attList> <attDef ident="seq" usage="opt"> <desc xml:lang="en">Used to assign a sequence number related to the order in which the encoded features carrying this attribute are believed to have occurred.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.slashCount" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for recording the number of slashes that accompany a feature.</desc> <attList> <attDef ident="slash" usage="opt"> <desc xml:lang="en">Indicates the number of slashes present.</desc> <datatype> <rng:ref name="data.SLASH"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.slurPresent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for marking the presence of a slur.</desc> <attList> <attDef ident="slur" usage="opt"> <desc xml:lang="en">Indicates that this element participates in a slur. If visual information about the slur needs to be recorded, then a <gi scheme="MEI">slur</gi> element should be employed.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.SLUR"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.source" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes common to elements that may refer to a source.</desc> <attList> <attDef ident="source" usage="opt"> <desc xml:lang="en">Contains a list of one or more pointers indicating the sources which attest to a given reading. Each value should correspond to the ID of a <gi scheme="MEI">source</gi> or <gi scheme="MEI">manifestation</gi>element located in the document header.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_sourceTarget" scheme="schematron"> <constraint> <sch:rule context="@source"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@source attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*[local-name() eq 'source' or local-name() eq 'manifestation']/@xml:id">Each value in @source should correspond to the @xml:id attribute of a source or manifestation element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.space.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.augmentDots"/> <memberOf key="att.duration.log"/> <memberOf key="att.event"/> <memberOf key="att.space.log.cmn"/> </classes> </classSpec> <classSpec ident="att.spacing" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that capture notation spacing information.</desc> <attList> <attDef ident="spacing.packexp" usage="opt"> <desc xml:lang="en">Describes a note’s spacing relative to its time value.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="spacing.packfact" usage="opt"> <desc xml:lang="en">Describes the note spacing of output.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="spacing.staff" usage="opt"> <desc xml:lang="en">Specifies the minimum amount of space between adjacent staves in the same system; measured from the bottom line of the staff above to the top line of the staff below.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="spacing.system" usage="opt"> <desc xml:lang="en">Describes the space between adjacent systems; a pair of space-separated values (minimum and maximum, respectively) provides a range between which a rendering system-supplied value may fall, while a single value indicates a fixed amount of space; that is, the minimum and maximum values are equal.</desc> <datatype minOccurs="1" maxOccurs="2"> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staff.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.meterConformance"/> </classes> <attList> <attDef ident="def" usage="opt"> <desc xml:lang="en">Provides a mechanism for linking the staff to a staffDef element.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_defTarget_staff" scheme="schematron"> <constraint> <sch:rule context="mei:staff/@def"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@def attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:staffDef/@xml:id">The value in @def should correspond to the @xml:id attribute of a staffDef element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.staffDef.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes for staffDef.</desc> <classes> <memberOf key="att.cleffing.log"/> <memberOf key="att.duration.default"/> <memberOf key="att.keySigDefault.log"/> <memberOf key="att.meterSigDefault.log"/> <memberOf key="att.notationType"/> <memberOf key="att.octaveDefault"/> <memberOf key="att.transposition"/> <memberOf key="att.staffDef.log.cmn"/> <memberOf key="att.staffDef.log.mensural"/> </classes> <attList> <attDef ident="lines" usage="opt"> <desc xml:lang="en">Indicates the number of staff lines.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staffGroupingSym" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe the symbol used to group a set of staves.</desc> <attList> <attDef ident="symbol" usage="opt"> <desc xml:lang="en">Specifies the symbol used to group a set of staves.</desc> <valList type="closed"> <valItem ident="brace"> <desc xml:lang="en">Curved symbol, <abbr>i.e.</abbr>, {.</desc> </valItem> <valItem ident="bracket"> <desc xml:lang="en">Square symbol, <abbr>i.e.</abbr>, [, but with curved/angled top and bottom segments.</desc> </valItem> <valItem ident="bracketsq"> <desc xml:lang="en">Square symbol, <abbr>i.e.</abbr>, [, with horizontal top and bottom segments.</desc> </valItem> <valItem ident="line"> <desc xml:lang="en">Line symbol, <abbr>i.e.</abbr>, |, (wide) line without top and bottom curved/horizontal segments.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">Grouping symbol missing.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.staffGrp.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> </classSpec> <classSpec ident="att.staffIdent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for identifying the staff associated with the current feature.</desc> <attList> <attDef ident="staff" usage="rec"> <desc xml:lang="en">Signifies the staff on which a notated event occurs or to which a control event applies. Mandatory when applicable.</desc> <datatype maxOccurs="unbounded"> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staffItems" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe items printed near (above, below, or between) staves</desc> <attList> <attDef ident="aboveorder"> <desc xml:lang="en">Describes vertical order of items printed above a staff, from closest to farthest away from the staff.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.STAFFITEM"/> </datatype> </attDef> <attDef ident="beloworder"> <desc xml:lang="en">Describes vertical order of items printed below a staff, from closest to farthest away from the staff.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.STAFFITEM"/> </datatype> </attDef> <attDef ident="betweenorder"> <desc xml:lang="en">Describes vertical order of items printed between staves, from top to bottom.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.STAFFITEM"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staffLoc" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that identify location on a staff in terms of lines and spaces.</desc> <attList> <attDef ident="loc" usage="opt"> <desc xml:lang="en">Holds the staff location of the feature.</desc> <datatype> <rng:ref name="data.STAFFLOC"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staffLoc.pitched" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that identify location on a staff in terms of pitch and octave.</desc> <attList> <attDef ident="ploc" usage="opt"> <desc xml:lang="en">Captures staff location in terms of written pitch name.</desc> <datatype> <rng:ref name="data.PITCHNAME"/> </datatype> </attDef> <attDef ident="oloc" usage="opt"> <desc xml:lang="en">Records staff location in terms of written octave.</desc> <datatype> <rng:ref name="data.OCTAVE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.startEndId" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes recording the identifiers of the first and last elements of a sequence of elements to which the current element is associated.</desc> <classes> <memberOf key="att.startId"/> </classes> <attList> <attDef ident="endid" usage="opt"> <desc xml:lang="en">Indicates the final element in a sequence of events to which the feature applies.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_endidTarget" scheme="schematron"> <constraint> <sch:rule context="@endid"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@endid attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @endid should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.startId" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that identify a relative starting point.</desc> <attList> <attDef ident="startid" usage="opt"> <desc xml:lang="en">Holds a reference to the first element in a sequence of events to which the feature applies.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_startidTarget" scheme="schematron"> <constraint> <sch:rule context="@startid"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@startid attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:*/@xml:id">The value in @startid should correspond to the @xml:id attribute of an element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.stems" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe the properties of stemmed features; that is, chords and notes.</desc> <classes> <memberOf key="att.stems.cmn"/> <memberOf key="att.stems.mensural"/> </classes> <attList> <attDef ident="stem.dir" usage="opt"> <desc xml:lang="en">Describes the direction of a stem.</desc> <datatype> <rng:ref name="data.STEMDIRECTION"/> </datatype> </attDef> <attDef ident="stem.len" usage="opt"> <desc xml:lang="en">Encodes the stem length.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="stem.mod" usage="opt"> <desc xml:lang="en">Encodes any stem "modifiers"; that is, symbols rendered on the stem, such as tremolo or Sprechstimme indicators.</desc> <datatype> <rng:ref name="data.STEMMODIFIER"/> </datatype> </attDef> <attDef ident="stem.pos" usage="opt"> <desc xml:lang="en">Records the position of the stem in relation to the note head(s).</desc> <datatype> <rng:ref name="data.STEMPOSITION"/> </datatype> </attDef> <attDef ident="stem.sameas" usage="opt"> <desc xml:lang="en">Points to a note element in a different layer whose stem is shared. The linked notes should be rendered like a chord though they are part of different layers. </desc> <datatype maxOccurs="1"> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_stem.sameasTarget" scheme="schematron"> <constraint> <sch:rule context="@stem.sameas"> <sch:let name="layer.n" value="self::node()/ancestor::mei:layer/@n"/> <sch:let name="ref.id" value="substring(.,2)"/> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@stem.sameas attribute should have content.</sch:assert> <sch:assert role="warning" test="substring(.,2)=//mei:note[not(ancestor::mei:layer/@n=$layer.n)]/@xml:id"> The value in @stem.sameas should correspond to the @xml:id attribute of the linked note element of a different layer.</sch:assert> <sch:assert role="warning" test="../@dur=//mei:note[@xml:id=$ref.id]/@dur"> The linked notes by @stem.sameas should have the same @dur values. </sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="stem.visible" usage="opt"> <desc xml:lang="en">Determines whether a stem should be displayed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="stem.x" usage="opt"> <desc xml:lang="en">Records the output x coordinate of the stem’s attachment point.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="stem.y" usage="opt"> <desc xml:lang="en">Records the output y coordinate of the stem’s attachment point.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.syl.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <attList> <attDef ident="con" usage="opt"> <desc xml:lang="en">Describes the symbols typically used to indicate breaks between syllables and their functions.</desc> <valList type="closed"> <valItem ident="s"> <desc xml:lang="en">Space (word separator).</desc> </valItem> <valItem ident="d"> <desc xml:lang="en">Dash (syllable separator).</desc> </valItem> <valItem ident="u"> <desc xml:lang="en">Underscore (syllable extension).</desc> </valItem> <valItem ident="t"> <desc xml:lang="en">Tilde (syllable elision).</desc> </valItem> <valItem ident="c"> <desc xml:lang="en">Circumflex [angled line above] (syllable elision).</desc> </valItem> <valItem ident="v"> <desc xml:lang="en">Caron [angled line below] (syllable elision).</desc> </valItem> <valItem ident="i"> <desc xml:lang="en">Inverted breve [curved line above] (syllable elision).</desc> </valItem> <valItem ident="b"> <desc xml:lang="en">Breve [curved line below] (syllable elision).</desc> </valItem> </valList> </attDef> <attDef ident="wordpos" usage="opt"> <desc xml:lang="en">Records the position of a syllable within a word.</desc> <valList type="closed"> <valItem ident="i"> <desc xml:lang="en">(initial) first syllable.</desc> </valItem> <valItem ident="m"> <desc xml:lang="en">(medial) neither first nor last syllable.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">(single) single syllable.</desc> </valItem> <valItem ident="t"> <desc xml:lang="en">(terminal) last syllable.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.sylText" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that hold associated sung text syllables.</desc> <attList> <attDef ident="syl" usage="opt"> <desc xml:lang="en">Holds an associated sung text syllable.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.symbol.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.startId"/> </classes> </classSpec> <classSpec ident="att.systems" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that capture system layout information.</desc> <attList> <attDef ident="system.leftline" usage="opt"> <desc xml:lang="en">Indicates whether the system starts with a continuous line connecting all staves, including single-staff systems. Do not confuse this with the heavy vertical line used as a grouping symbol.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="system.leftmar" usage="opt"> <desc xml:lang="en">Describes the amount of whitespace at the left system margin relative to page.leftmar.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="system.rightmar" usage="opt"> <desc xml:lang="en">Describes the amount of whitespace at the right system margin relative to page.rightmar.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="system.topmar" usage="opt"> <desc xml:lang="en">Describes the distance from page’s top edge to the first system; used for first page only.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.targetEval" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that deal with resolution of values in plist or target attributes.</desc> <attList> <attDef ident="evaluate" usage="opt"> <desc xml:lang="en">Specifies the intended meaning when a participant in a relationship is itself a pointer.</desc> <valList type="closed"> <valItem ident="all"> <desc xml:lang="en">If an element pointed to is itself a pointer, then the target of that pointer will be taken, and so on, until an element is found which is not a pointer.</desc> </valItem> <valItem ident="one"> <desc xml:lang="en">If an element pointed to is itself a pointer, then its target (whether a pointer or not) is taken as the target of this pointer.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">No further evaluation of targets is carried out beyond that needed to find the element(s) specified in plist or target attribute.</desc> </valItem> </valList> <remarks xml:lang="en"> <p>If no value is given, the application program is responsible for deciding (possibly on the basis of user input) how far to trace a chain of pointers.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.tempo.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.mmTempo"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="func"> <desc xml:lang="en">Records the function of a tempo indication.</desc> <valList type="closed"> <valItem ident="continuous"> <desc xml:lang="en">Marks a gradual change of tempo, such as "accel." or "rit."</desc> </valItem> <valItem ident="instantaneous"> <desc xml:lang="en">Represents a static tempo instruction, such as a textual term like "Adagio", a metronome marking like "♩=70", or a combination of text and metronome indication.</desc> </valItem> <valItem ident="metricmod"> <desc xml:lang="en">Captures a change in pulse rate (tempo) and/or pulse grouping (subdivision) in an "equation" of the form [tempo before change] = [tempo after change].</desc> </valItem> <valItem ident="precedente"> <desc xml:lang="en">Indicates a change in pulse rate (tempo) and/or pulse grouping (subdivision) in an "equation" of the form [tempo after change] = [tempo before change]. The term "precedente" often appears following the "equation" to distinguish this kind of historical usage from the modern metric modulation form.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.textRendition" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record renditional characteristics.</desc> <attList> <attDef ident="altrend" usage="opt"> <desc xml:lang="en">Used to extend the values of the rend attribute.</desc> <datatype maxOccurs="unbounded"> <rng:data type="NMTOKEN"/> </datatype> </attDef> <attDef ident="rend" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">rendition</gloss> <desc xml:lang="en">Captures the appearance of the element’s contents using MEI-defined descriptors.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.TEXTRENDITION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.textStyle" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe default text typography.</desc> <attList> <attDef ident="text.fam" usage="opt"> <desc xml:lang="en">Provides a default value for the font family name of text (other than lyrics) when this information is not provided on the individual elements.</desc> <datatype> <rng:ref name="data.FONTFAMILY"/> </datatype> </attDef> <attDef ident="text.name" usage="opt"> <desc xml:lang="en">Provides a default value for the font name of text (other than lyrics) when this information is not provided on the individual elements.</desc> <datatype> <rng:ref name="data.FONTNAME"/> </datatype> </attDef> <attDef ident="text.size" usage="opt"> <desc xml:lang="en">Provides a default value for the font size of text (other than lyrics) when this information is not provided on the individual elements.</desc> <datatype> <rng:ref name="data.FONTSIZE"/> </datatype> </attDef> <attDef ident="text.style" usage="opt"> <desc xml:lang="en">Provides a default value for the font style of text (other than lyrics) when this information is not provided on the individual elements.</desc> <datatype> <rng:ref name="data.FONTSTYLE"/> </datatype> </attDef> <attDef ident="text.weight" usage="opt"> <desc xml:lang="en">Provides a default value for the font weight for text (other than lyrics) when this information is not provided on the individual elements.</desc> <datatype> <rng:ref name="data.FONTWEIGHT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.tiePresent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that indicate the presence of a tie.</desc> <attList> <attDef ident="tie" usage="opt"> <desc xml:lang="en">Indicates that this element participates in a tie. If visual information about the tie needs to be recorded, then a <gi scheme="MEI">tie</gi> element should be employed.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.TIE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.timestamp.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record a time stamp in terms of musical time, <abbr>i.e.</abbr>, beats[.fractional beat part].</desc> <attList> <attDef ident="tstamp" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">time stamp</gloss> <desc xml:lang="en">Encodes the onset time in terms of musical time, <abbr>i.e.</abbr>, beats[.fractional beat part], as expressed in the written time signature.</desc> <datatype> <rng:ref name="data.BEAT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.timestamp2.log" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record a time stamp for the end of an event in terms of musical time.</desc> <attList> <attDef ident="tstamp2" usage="opt"> <desc xml:lang="en">Encodes the ending point of an event, <abbr>i.e.</abbr>, a count of measures plus a beat location in the ending measure.</desc> <datatype> <rng:ref name="data.MEASUREBEAT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.transposition" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe transposition.</desc> <attList> <attDef ident="trans.diat" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">transposition (diatonic)</gloss> <desc xml:lang="en">Records the amount of diatonic pitch shift, <abbr>e.g.</abbr>, C to C♯ = 0, C to D♭ = 1, necessary to calculate the sounded pitch from the written one.</desc> <datatype> <rng:data type="integer"/> </datatype> </attDef> <attDef ident="trans.semi" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">transposition (semitones)</gloss> <desc xml:lang="en">Records the amount of pitch shift in semitones, <abbr>e.g.</abbr>, C to C♯ = 1, C to D♭ = 1, necessary to calculate the sounded pitch from the written one.</desc> <datatype> <rng:data type="integer"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Diatonic transposition requires both <att>trans.diat</att> and <att>trans.semi</att> attributes in order to distinguish the difference, for example, between a transposition from C to C♯ and one from C to D♭.</p> </remarks> </classSpec> <classSpec ident="att.tuning" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe tuning.</desc> <attList> <attDef ident="tune.Hz" usage="opt"> <desc xml:lang="en">Holds a value for cycles per second, <abbr>i.e.</abbr>, Hertz, for a tuning reference pitch.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="tune.pname" usage="opt"> <desc xml:lang="en">Holds the pitch name of a tuning reference pitch, <abbr>i.e.</abbr>, the central tone of a tuning system.</desc> <datatype> <rng:ref name="data.PITCHNAME"/> </datatype> </attDef> <attDef ident="tune.temper" usage="opt"> <desc xml:lang="en">Provides an indication of the tuning system, <val>just</val>, for example.</desc> <datatype> <rng:ref name="data.TEMPERAMENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.tupletPresent" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes for indicating the presence of a tuplet.</desc> <attList> <attDef ident="tuplet" usage="opt"> <desc xml:lang="en">Indicates that this feature participates in a tuplet. If visual information about the tuplet needs to be recorded, then a <gi scheme="MEI">tuplet</gi> element should be employed.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.TUPLET"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.typed" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes which can be used to classify features.</desc> <classes> <memberOf key="att.classed"/> </classes> <attList> <attDef ident="type" usage="opt"> <desc xml:lang="en">Designation which characterizes the element in some sense, using any convenient classification scheme or typology that employs single-token labels.</desc> <datatype maxOccurs="unbounded"> <rng:data type="NMTOKEN"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>When appropriate, values from an established typology should be used.</p> </remarks> </classSpec> <classSpec ident="att.typography" module="MEI.shared" type="atts"> <desc xml:lang="en">Typographical attributes.</desc> <attList> <attDef ident="fontfam" usage="opt"> <desc xml:lang="en">Contains the name of a font-family.</desc> <datatype> <rng:ref name="data.FONTFAMILY"/> </datatype> </attDef> <attDef ident="fontname" usage="opt"> <desc xml:lang="en">Holds the name of a font.</desc> <datatype> <rng:ref name="data.FONTNAME"/> </datatype> </attDef> <attDef ident="fontsize" usage="opt"> <desc xml:lang="en">Indicates the size of a font expressed in printers' points, <abbr>i.e.</abbr>, 1/72nd of an inch, relative terms, <abbr>e.g.</abbr>, <val>small</val>, <val>larger</val>, <abbr>etc.</abbr>, or percentage values relative to <val>normal</val> size, <abbr>e.g.</abbr>, <val>125%</val>. </desc> <datatype> <rng:ref name="data.FONTSIZE"/> </datatype> </attDef> <attDef ident="fontstyle" usage="opt"> <desc xml:lang="en">Records the style of a font, <abbr>i.e.</abbr>, <val>italic</val>, <val>oblique</val>, or <val>normal</val>.</desc> <datatype> <rng:ref name="data.FONTSTYLE"/> </datatype> </attDef> <attDef ident="fontweight" usage="opt"> <desc xml:lang="en">Used to indicate bold type.</desc> <datatype> <rng:ref name="data.FONTWEIGHT"/> </datatype> </attDef> <attDef ident="letterspacing" usage="opt"> <desc xml:lang="en">Indicates letter spacing (aka tracking) in analogy to the CSS letter-spacing property.</desc> <datatype> <rng:ref name="data.MEASUREMENTTYPOGRAPHYSIGNED"/> </datatype> </attDef> <attDef ident="lineheight" usage="opt"> <desc xml:lang="en">Indicates line height in analogy to the CSS line-height property.</desc> <datatype> <rng:choice> <rng:ref name="data.MEASUREMENTTYPOGRAPHYUNSIGNED"/> <rng:ref name="data.PERCENT"/> </rng:choice> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.verticalAlign" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record vertical alignment.</desc> <attList> <attDef ident="valign" usage="opt"> <desc xml:lang="en">Records vertical alignment.</desc> <datatype> <rng:ref name="data.VERTICALALIGNMENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.verticalGroup" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that record grouping of vertically aligned elements.</desc> <attList> <attDef ident="vgrp" usage="opt"> <desc xml:lang="en">Provides a label for members of a vertically aligned group.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visibility" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes describing whether a feature should be displayed.</desc> <attList> <attDef ident="visible" usage="opt"> <desc xml:lang="en">Indicates if a feature should be rendered when the notation is presented graphically or sounded when it is presented in an aural form.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visualOffset" module="MEI.shared" type="atts"> <desc xml:lang="en">Visual offset attributes. Some items may have their location recorded in terms of offsets from their programmatically-determined location. The ho attribute records the horizontal offset while vo records the vertical. The to attribute holds a timestamp offset, the most common use of which is as an alternative to the ho attribute.</desc> <classes> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.visualOffset.to"/> <memberOf key="att.visualOffset.vo"/> </classes> </classSpec> <classSpec ident="att.visualOffset.ho" module="MEI.shared" type="atts"> <desc xml:lang="en">Horizontal offset attributes.</desc> <attList> <attDef ident="ho" usage="opt"> <desc xml:lang="en">Records a horizontal adjustment to a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visualOffset.to" module="MEI.shared" type="atts"> <desc xml:lang="en">Horizontal offset attributes specified in terms of time.</desc> <attList> <attDef ident="to" usage="opt"> <desc xml:lang="en">Records a timestamp adjustment of a feature’s programmatically-determined location in terms of musical time; that is, beats.</desc> <datatype> <rng:ref name="data.TSTAMPOFFSET"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visualOffset.vo" module="MEI.shared" type="atts"> <desc xml:lang="en">Vertical offset attributes.</desc> <attList> <attDef ident="vo" usage="opt"> <desc xml:lang="en">Records the vertical adjustment of a feature’s programmatically-determined location in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visualOffset2" module="MEI.shared" type="atts"> <desc xml:lang="en">Visual offset attributes. Some items may have their location recorded in terms of pairs of offsets from their programmatically-determined location. The startho and endho attributes record the horizontal offsets of the start and end points of the item, respectively. Similarly, the startvo and endvo attributes record the vertical offsets of the start and end points of the item. The startto and endto attributes hold timestamp offsets, the most common use of which is as alternatives to the ho attributes.</desc> <classes> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.visualOffset2.vo"/> </classes> </classSpec> <classSpec ident="att.visualOffset2.ho" module="MEI.shared" type="atts"> <desc xml:lang="en">Horizontal offset requiring a pair of attributes.</desc> <attList> <attDef ident="startho" usage="opt"> <desc xml:lang="en">Records the horizontal adjustment of a feature’s programmatically-determined start point.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="endho" usage="opt"> <desc xml:lang="en">Records the horizontal adjustment of a feature’s programmatically-determined end point.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visualOffset2.to" module="MEI.shared" type="atts"> <desc xml:lang="en">Horizontal offset attributes requiring a pair of attributes specified in terms of time.</desc> <attList> <attDef ident="startto" usage="opt"> <desc xml:lang="en">Records a timestamp adjustment of a feature’s programmatically-determined start point.</desc> <datatype> <rng:ref name="data.TSTAMPOFFSET"/> </datatype> </attDef> <attDef ident="endto" usage="opt"> <desc xml:lang="en">Records a timestamp adjustment of a feature’s programmatically-determined end point.</desc> <datatype> <rng:ref name="data.TSTAMPOFFSET"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.visualOffset2.vo" module="MEI.shared" type="atts"> <desc xml:lang="en">Vertical offset attributes requiring a pair of attributes.</desc> <attList> <attDef ident="startvo" usage="opt"> <desc xml:lang="en">Records a vertical adjustment of a feature’s programmatically-determined start point.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> <attDef ident="endvo" usage="opt"> <desc xml:lang="en">Records a vertical adjustment of a feature’s programmatically-determined end point.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.voltaGroupingSym" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe the symbol used to group volta elements.</desc> <attList> <attDef ident="voltasym" usage="opt"> <desc xml:lang="en">Specifies the symbol used to group lyrics.</desc> <valList type="closed"> <valItem ident="brace"> <desc xml:lang="en">Curved symbol, <abbr>i.e.</abbr>, {.</desc> </valItem> <valItem ident="bracket"> <desc xml:lang="en">Square symbol, <abbr>i.e.</abbr>, [, but with curved/angled top and bottom segments.</desc> </valItem> <valItem ident="bracketsq"> <desc xml:lang="en">Square symbol, <abbr>i.e.</abbr>, [, with horizontal top and bottom segments.</desc> </valItem> <valItem ident="line"> <desc xml:lang="en">Line symbol, <abbr>i.e.</abbr>, |, (wide) line without top and bottom curved/horizontal segments.</desc> </valItem> <valItem ident="none"> <desc xml:lang="en">Grouping symbol missing.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.whitespace" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that address whitespace processing.</desc> <!--<attDef ident="space" ns="http://www.w3.org/XML/1998/namespace" usage="opt">--> <attList> <attDef ident="xml:space" usage="opt"> <desc xml:lang="en">Allows one to signal to an application whether an element’s white space is "significant". The behavior of xml:space cascades to all descendant elements, but it can be turned off locally by setting the xml:space attribute to the value <val>default</val>.</desc> <valList type="closed"> <valItem ident="default"> <desc xml:lang="en">Allows the application to handle white space as necessary. Not including an xml:space attribute produces the same result as using the default value.</desc> </valItem> <valItem ident="preserve"> <desc xml:lang="en">Instructs the application to maintain white space "as-is", suggesting that it might have meaning.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.width" module="MEI.shared" type="atts"> <desc xml:lang="en">Attributes that describe horizontal size.</desc> <attList> <attDef ident="width" usage="opt"> <desc xml:lang="en">Measurement of the horizontal dimension of an entity.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The width attribute may be used to capture measure width data for interchange with music printing systems that utilize this information for printing. On <gi scheme="MEI">barLine</gi> the width attribute captures the width of the preceding measure.</p> </remarks> </classSpec> <classSpec ident="att.xy" module="MEI.shared" type="atts"> <desc xml:lang="en">Output coordinate attributes. Some elements may have their exact rendered *output* coordinates recorded. x and y attributes indicate where to place the rendered output. Recording the coordinates of a feature in a facsimile requires the use of the facs attribute.</desc> <attList> <attDef ident="x" usage="opt"> <desc xml:lang="en">Encodes an x coordinate for a feature in an output coordinate system. When it is necessary to record the placement of a feature in a facsimile image, use the facs attribute.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="y" usage="opt"> <desc xml:lang="en">Encodes a y coordinate for a feature in an output coordinate system. When it is necessary to record the placement of a feature in a facsimile image, use the facs attribute.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.xy2" module="MEI.shared" type="atts"> <desc xml:lang="en">Output coordinate attributes. Some elements may need 2 coordinate pairs to record their rendered *output* coordinates. The attributes indicate where to place the rendered output. Recording the coordinates of a feature in a facsimile requires the use of the facs attribute.</desc> <attList> <attDef ident="x2" usage="opt"> <desc xml:lang="en">Encodes the optional 2nd x coordinate.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> <attDef ident="y2" usage="opt"> <desc xml:lang="en">Encodes the optional 2nd y coordinate.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="model.addressLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements used to represent a postal address.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> <memberOf key="model.pubStmtPart"/> <memberOf key="model.eventPart"/> </classes> </classSpec> <classSpec ident="model.annotLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups annotation-like elements.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.biblLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements containing a bibliographic description.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.biblPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a bibliographic description.</desc> </classSpec> <classSpec ident="model.captionLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that contain the text of a caption or other text displayed along with a figure.</desc> </classSpec> <classSpec ident="model.chordPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of the content of a chord element.</desc> </classSpec> <classSpec ident="model.controlEventLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements, such as dynamics, ties, phrase marks, pedal marks, etc., which depend upon other events, such as notes or rests, for their existence.</desc> <classes> <memberOf key="model.measurePart"/> <memberOf key="model.staffPart.mensural"/> <memberOf key="model.syllablePart"/> <memberOf key="model.rdgPart.music"/> <memberOf key="model.editTransPart.music"/> </classes> </classSpec> <classSpec ident="model.dateLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements containing date expressions.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> <memberOf key="model.pubStmtPart"/> <memberOf key="model.eventPart"/> <memberOf key="model.titlePagePart"/> </classes> </classSpec> <classSpec ident="model.descLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements which provide a description of their parent entity.</desc> </classSpec> <classSpec ident="model.dimLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements which describe a measurement forming part of the physical dimensions of an object.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.editionLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements containing bibliographic edition information.</desc> <classes> <memberOf key="model.biblPart"/> <memberOf key="model.titlePagePart"/> </classes> </classSpec> <classSpec ident="model.editorialLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups editorial intervention elements.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> <memberOf key="model.choicePart"/> </classes> </classSpec> <classSpec ident="model.endingLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent alternative endings.</desc> <classes> <memberOf key="model.scorePart"/> <memberOf key="model.sectionPart"/> </classes> </classSpec> <classSpec ident="model.eventLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups event elements that occur in all notational repertoires.</desc> <classes> <memberOf key="model.layerPart"/> </classes> </classSpec> <classSpec ident="model.headLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements used to provide a heading at the start of a text division or other markup component.</desc> </classSpec> <classSpec ident="model.identifierLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups identifier-like elements.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> <memberOf key="model.pubStmtPart"/> <memberOf key="model.titlePagePart"/> </classes> </classSpec> <classSpec ident="model.imprintPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a bibliographic imprint.</desc> </classSpec> <classSpec ident="model.incipLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements used to represent a textual or musical incipit.</desc> <classes> <memberOf key="model.physDescPart"/> <memberOf key="model.workIdent"/> </classes> </classSpec> <classSpec ident="model.instrDefLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements used to declare a MIDI instrument.</desc> </classSpec> <classSpec ident="model.keyAccidLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent accidentals in a key signature.</desc> </classSpec> <classSpec ident="model.keySigLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that have the same function as a key signature.</desc> <classes> <memberOf key="model.eventLike"/> <memberOf key="model.staffDefPart"/> </classes> </classSpec> <classSpec ident="model.labelLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements used to assign a label to other parts of a document.</desc> </classSpec> <classSpec ident="model.layerDefLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that permit declaration of layer properties.</desc> </classSpec> <classSpec ident="model.layerLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that function as notational layers within a staff.</desc> <classes> <memberOf key="model.staffPart"/> <memberOf key="model.rdgPart.music"/> <memberOf key="model.editTransPart.music"/> </classes> </classSpec> <classSpec ident="model.layerPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups notated events that may appear at the layer level in all repertoires.</desc> </classSpec> <classSpec ident="model.layerPart.mensuralAndNeumes" module="MEI.shared" type="model"> <desc xml:lang="en">Groups notated events at the layer level that are shared by the mensural and neume repertoires.</desc> <classes> <memberOf key="model.layerPart"/> </classes> </classSpec> <classSpec ident="model.lbLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that function like line beginnings.</desc> <classes> <memberOf key="model.milestoneLike.text"/> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.mdivLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements used to represent generic structural divisions of music notation.</desc> </classSpec> <classSpec ident="model.measurementLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent a measurement.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.meterSigLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent a meter signature.</desc> <classes> <memberOf key="model.eventLike"/> <memberOf key="model.staffDefPart"/> </classes> </classSpec> <classSpec ident="model.milestoneLike.music" module="MEI.shared" type="model"> <desc xml:lang="en">Groups milestone-style elements found in music notation.</desc> </classSpec> <classSpec ident="model.milestoneLike.text" module="MEI.shared" type="model"> <desc xml:lang="en">Groups milestone-style elements found in text.</desc> </classSpec> <classSpec ident="model.nameLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that contain names.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.noteModifierLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that modify note-like features.</desc> <classes> <memberOf key="model.layerPart.mensuralAndNeumes"/> </classes> </classSpec> <classSpec ident="model.numLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that denote a number or a quantity.</desc> <classes> <memberOf key="model.measurementLike"/> </classes> </classSpec> <classSpec ident="model.paracontentPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements which may appear as part of the paragraph content model. A paragraph may contain inline elements and all other block-level elements except itself.</desc> </classSpec> <classSpec ident="model.partLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent a separate performer part.</desc> </classSpec> <classSpec ident="model.partsLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that collect separate performer parts.</desc> </classSpec> <classSpec ident="model.pbLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups page beginning-like elements.</desc> <classes> <memberOf key="model.milestoneLike.music"/> <memberOf key="model.milestoneLike.text"/> <memberOf key="model.textPhraseLike"/> </classes> </classSpec> <classSpec ident="model.pLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups paragraph-like elements.</desc> <classes> <memberOf key="model.textComponentLike"/> </classes> </classSpec> <classSpec ident="model.relationLike" type="model" module="MEI.shared"> <desc xml:lang="en">Collects elements that express a relationship.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.rendLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that mark typographical features.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.repositoryLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that denote a corporate entity that holds a bibliographic item.</desc> <classes> <memberOf key="model.nameLike.place"/> </classes> </classSpec> <classSpec ident="model.resourceLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups non-text components that represent the content of the musical text.</desc> </classSpec> <classSpec ident="model.respLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that are used to indicate intellectual or other significant responsibility, for example within a bibliographic citation.</desc> <classes> <memberOf key="model.biblPart"/> </classes> </classSpec> <classSpec ident="model.respLikePart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that delineate particular responsibilities as opposed to the respStmt element that provides for generic statements of responsibility.</desc> <classes> <memberOf key="model.respLike"/> <memberOf key="model.titlePagePart"/> </classes> </classSpec> <classSpec ident="model.scoreDefLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that provide score meta-information.</desc> <classes> <memberOf key="model.sectionPart"/> </classes> </classSpec> <classSpec ident="model.scoreLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent a score.</desc> </classSpec> <classSpec ident="model.scorePart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a score.</desc> </classSpec> <!--<classSpec ident="model.scorePart.mensuralAndNeumes" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a score in the mensural and neumes repertoires.</desc> <classes> <memberOf key="model.scorePart"/> </classes> </classSpec>--> <classSpec ident="model.sectionLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that represent a segment of music notation.</desc> <classes> <memberOf key="model.scorePart"/> <memberOf key="model.sectionPart"/> </classes> </classSpec> <classSpec ident="model.sectionPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a section.</desc> </classSpec> <classSpec ident="model.sectionPart.mensuralAndNeumes" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a section in the mensural and neume repertoires.</desc> <classes> <memberOf key="model.sectionPart"/> </classes> </classSpec> <classSpec ident="model.staffDefLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that permit declaration of staff properties.</desc> <classes> <memberOf key="model.sectionPart"/> </classes> </classSpec> <classSpec ident="model.staffDefPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear in the declaration of staff features.</desc> </classSpec> <classSpec ident="model.staffGrpLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that permit declaration of staff group properties.</desc> </classSpec> <classSpec ident="model.staffLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that function like staves.</desc> <classes> <memberOf key="model.sectionPart.mensuralAndNeumes"/> <memberOf key="model.measurePart"/> </classes> </classSpec> <classSpec ident="model.staffPart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that are components of a staff.</desc> </classSpec> <classSpec ident="model.staffPart.mensuralAndNeumes" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that are components of a staff in the mensural and neume repertoires.</desc> <classes> <memberOf key="model.staffPart"/> </classes> </classSpec> <classSpec ident="model.sylLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that contain a lyric syllable.</desc> <classes> <memberOf key="model.editTransPart"/> <memberOf key="model.rdgPart"/> <memberOf key="model.syllablePart"/> </classes> </classSpec> <classSpec ident="model.textComponentLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups block-level text elements.</desc> <classes> <memberOf key="model.rdgPart.text"/> <memberOf key="model.editTransPart.text"/> </classes> </classSpec> <classSpec ident="model.textPhraseLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups textual elements that occur at the level of individual words or phrases.</desc> <classes> <memberOf key="model.paracontentPart"/> </classes> </classSpec> <classSpec ident="model.textPhraseLike.limited" module="MEI.shared" type="model"> <desc xml:lang="en">Groups textual elements that occur at the level of individual words or phrases. This class is equivalent to the model.textPhraseLike class without the pb element.</desc> <classes> <memberOf key="model.rdgPart.text"/> <memberOf key="model.editTransPart.text"/> <memberOf key="model.textPhraseLike"/> </classes> </classSpec> <classSpec ident="model.titleLike" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that denote the name of a bibliographic item.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> <memberOf key="model.titlePagePart"/> </classes> </classSpec> <classSpec ident="model.titlePagePart" module="MEI.shared" type="model"> <desc xml:lang="en">Groups elements that may appear as part of a title page transcription.</desc> </classSpec> <elementSpec ident="accid" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">accidental</gloss> <desc xml:lang="en">Records a temporary alteration to the pitch of a note.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.accid.log"/> <memberOf key="att.accid.vis"/> <memberOf key="att.accid.ges"/> <memberOf key="att.accid.anl"/> <memberOf key="model.noteModifierLike"/> <memberOf key="model.syllablePart"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>An accidental may raise a pitch by one or two semitones or it may cancel a previous accidental or part of a key signature. This element provides an alternative to the <att>accid</att> and <att>accid.ges</att> attributes on the <gi scheme="MEI">note</gi> element. The element may be used when specific display info, such as size or color, needs to be recorded for the accidental or when multiple accidentals occur on a single note. The <att>func</att> attribute can be used to differentiate between the accidental’s functions, such as 'cautionary' or 'editorial'.</p> </remarks> </elementSpec> <elementSpec ident="actor" module="MEI.shared"> <desc xml:lang="en">Name of an actor appearing within a cast list.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-actor.html">actor</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="address" module="MEI.shared"> <desc xml:lang="en">Contains a postal address, for example of a publisher, an organization, or an individual.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.addressLike"/> </classes> <content> <rng:choice> <rng:oneOrMore> <rng:ref name="addrLine"/> </rng:oneOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="model.addressPart"/> </rng:choice> </rng:oneOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-address.html">address</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-address">address</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="addrLine" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">address line</gloss> <desc xml:lang="en">Single line of a postal address.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p> <gi scheme="MEI">addrLine</gi> may be repeated as many times as necessary to enter all lines of an address.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-addrLine.html">addrLine</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-addressline">addressline</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="ambitus" module="MEI.shared"> <desc xml:lang="en">Range of a voice, instrument or piece.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.ambitus.anl"/> <memberOf key="att.ambitus.ges"/> <memberOf key="att.ambitus.log"/> <memberOf key="att.ambitus.vis"/> <memberOf key="att.metadataPointing"/> </classes> <content> <rng:ref name="ambNote"/> <rng:ref name="ambNote"/> </content> </elementSpec> <elementSpec ident="ambNote" module="MEI.shared"> <desc xml:lang="en">Highest or lowest pitch in a score, staff, or layer.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.ambNote.log"/> <memberOf key="att.ambNote.vis"/> <memberOf key="att.ambNote.ges"/> <memberOf key="att.ambNote.anl"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="analytic" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">analytic level</gloss> <desc xml:lang="en">Contains bibliographic elements describing an item (<abbr>e.g.</abbr>, an article or poem) published within a monograph or journal and not as an independent publication.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.componentType"/> <memberOf key="att.dataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.recordType"/> <memberOf key="att.targetEval"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.respLikePart"/> <rng:ref name="respStmt"/> <rng:ref name="title"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="biblScope"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="identifier"/> </rng:optional> </content> </elementSpec> <elementSpec ident="annot" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">annotation</gloss> <desc xml:lang="en">Provides a statement explaining the text or indicating the basis for an assertion.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.annot.log"/> <memberOf key="att.annot.vis"/> <memberOf key="att.annot.ges"/> <memberOf key="att.annot.anl"/> <memberOf key="att.audience"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.plist"/> <memberOf key="att.source"/> <memberOf key="att.targetEval"/> <memberOf key="model.annotLike"/> </classes> <content> <rng:choice> <rng:group> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.textComponentLike"/> </rng:zeroOrMore> </rng:group> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.editLike"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <constraintSpec ident="Check_annot_data" scheme="schematron"> <constraint> <sch:rule context="mei:annot[@data]"> <sch:assert test="ancestor::mei:notesStmt">The @data attribute may only occur on an annotation within the notesStmt element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <gi scheme="MEI">annot</gi> element can be used for both general comments and for annotations of the musical text. It provides a way to group participating *events* and/or *control events*, for example, the notes that form a descending bass line, and provide a label for and comment regarding the group. Participating entities may be identified in the <att>plist</att> attribute. An editorial or analytical comment or observation may be included directly within the <gi scheme="MEI">annot</gi> element. The starting point of the annotation may be indicated by either a <att>tstamp</att>, <att>tstamp.ges</att>, <att>tstamp.real</att> or <att>startid</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att> or <att>endid</att> attribute. The <att>resp</att> attribute records the editor(s) responsible for identifying or creating the annotation.</p> </remarks> </elementSpec> <elementSpec ident="arranger" module="MEI.shared"> <desc xml:lang="en">A person or organization who transcribes a musical composition, usually for a different medium from that of the original; in an arrangement the musical substance remains essentially unchanged.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="artic" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">articulation</gloss> <desc xml:lang="en">An indication of how to play a note or chord.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.artic.log"/> <memberOf key="att.artic.vis"/> <memberOf key="att.artic.ges"/> <memberOf key="att.artic.anl"/> <memberOf key="model.chordPart"/> <memberOf key="model.noteModifierLike"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>Articulations typically affect duration, such as staccato marks, or the force of attack, such as accents. This element provides an alternative to the <att>artic</att> attribute on the <gi scheme="MEI">note</gi> and <gi scheme="MEI">chord</gi> elements. It may be used when specific display info, such as size or color, needs to be recorded for the articulation or when multiple articulation marks occur on a single note or chord.</p> </remarks> </elementSpec> <elementSpec ident="author" module="MEI.shared"> <desc xml:lang="en">The name of the creator of the intellectual content of a non-musical, literary work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-author.html">author</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-author">author</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="barLine" module="MEI.shared"> <desc xml:lang="en">Vertical line drawn through one or more staves that divides musical notation into metrical units.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="att.barLine.log"/> <memberOf key="att.barLine.vis"/> <memberOf key="att.barLine.ges"/> <memberOf key="att.barLine.anl"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>This element is provided for repertoires, such as mensural notation, that lack measures. Because the <gi scheme="MEI">barLine</gi> element’s attributes, from which the logical and visual characteristics of the bar line can be discerned, largely duplicate those of measure, the use of <gi scheme="MEI">barLine</gi> is not necessary within <gi scheme="MEI">measure</gi> elements in CMN.</p> </remarks> </elementSpec> <elementSpec ident="bibl" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">bibliographic reference</gloss> <desc xml:lang="en">Provides a loosely-structured bibliographic citation in which the sub-components may or may not be explicitly marked.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.pointing"/> <memberOf key="model.biblLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.biblPart"/> <rng:ref name="model.imprintPart"/> <rng:ref name="model.textPhraseLike"/> </rng:choice> </rng:zeroOrMore> </content> <!-- To produce a more strict bibliographic citation, the following content model may be used: --> <!-- <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.titleLike"/> <rng:ref name="model.identifierLike"/> <rng:ref name="model.annotLike"/> <rng:ref name="model.biblPart"/> <rng:ref name="imprint"/> <rng:ref name="creation"/> <rng:ref name="genre"/> <rng:ref name="relatedItem"/> </rng:choice> </rng:zeroOrMore> </content> --> <remarks xml:lang="en"> <p> <gi scheme="MEI">bibl</gi> may contain a mix of text and more specific elements such as <gi scheme="MEI">title</gi>, <gi scheme="MEI">edition</gi>, <gi scheme="MEI">persName</gi>, and <gi scheme="MEI">corpName</gi>. This element may also function as a hypertext reference to an external electronic resource. Do not confuse this element with <gi scheme="MEI">ref</gi>, which does not provide special bibliographic sub-elements.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-bibl.html">bibl</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-bibref">bibref</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="biblList" module="MEI.shared"> <desc xml:lang="en">List of bibliographic references.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.listLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:group> <rng:optional> <rng:ref name="label"/> </rng:optional> <rng:ref name="model.biblLike"/> </rng:group> <rng:ref name="biblList"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="checkBiblLabels" scheme="schematron"> <constraint> <sch:rule context="mei:biblList[mei:label]"> <sch:assert role="warning" test="count(mei:label) = count(mei:bibl)">When labels are used, usually each bibliographic item has one.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-listBibl.html">listBibl</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="biblScope" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">scope of citation</gloss> <desc xml:lang="en">Defines the scope of a bibliographic reference, for example as a list of page numbers, or a named subdivision of a larger work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.extent"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="from" usage="opt"> <datatype> <rng:data type="token"/> </datatype> </attDef> <attDef ident="to" usage="opt"> <datatype> <rng:data type="token"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Use the <att>from</att> and <att>to</att> attributes to regularize the beginning and ending values provided in the element content.</p> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-biblScope.html">biblScope</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="biblStruct" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">structured bibliographic citation</gloss> <desc xml:lang="en">Contains a bibliographic citation in which bibliographic sub-elements must appear in a specified order.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="att.pointing"/> <memberOf key="att.recordType"/> <memberOf key="att.targetEval"/> <memberOf key="model.biblLike"/> </classes> <content> <rng:group> <rng:zeroOrMore> <rng:ref name="analytic"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="monogr"/> <rng:zeroOrMore> <rng:ref name="series"/> </rng:zeroOrMore> </rng:oneOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="identifier"/> <rng:ref name="relatedItem"/> </rng:choice> </rng:zeroOrMore> </rng:group> </content> </elementSpec> <elementSpec ident="body" module="MEI.shared"> <desc xml:lang="en">Contains the whole of a single musical text, excluding any front or back matter.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="macro.musicPart"/> </classes> <content> <rng:oneOrMore> <rng:choice> <rng:ref name="model.divLike"/> <rng:ref name="model.mdivLike"/> </rng:choice> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>When the music can be broken into high-level, discrete, linear segments, such as movements of a symphony, there may be multiple <gi scheme="MEI">mdiv</gi> elements within <gi scheme="MEI">body</gi>. This is the highest level indication of the structure of the music.</p> <p>The content model of <gi scheme="MEI">body</gi> also allows blocks of text and music notation to be interleaved. This permits the encoding of a wide range of musical documents, including those that are primarily textual with only occasional musical material or even those which completely lack music notation.</p> </remarks> </elementSpec> <elementSpec ident="caesura" module="MEI.shared"> <desc xml:lang="en">Break, pause, or interruption in the normal tempo of a composition. Typically indicated by "railroad tracks", <abbr>i.e.</abbr>, two diagonal slashes.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.caesura.anl"/> <memberOf key="att.caesura.ges"/> <memberOf key="att.caesura.log"/> <memberOf key="att.caesura.vis"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="caesura_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:caesura"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The caesura often indicates an abrupt interruption in the performance followed by an equally sudden resumption. Its duration is typically shorter than a grand pause (G.P.) or long pause (L.P.), but longer than that indicated by a <gi scheme="MEI">breath</gi> mark. When combined with a <gi scheme="MEI">fermata</gi> a longer silence is usually implied. The starting point of the caesura may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute. It is a semantic error not to specify a starting point attribute.</p> <p>Unlike the <gi scheme="MEI">breath</gi> mark, a caesura may have a performed duration. Also, while the default value for <att>place</att> on the breath mark is <val>above</val>, the default value for <att>place</att> for a caesura is <val>within</val>. Unless indicated by other attributes, a caesura will be rendered as a pair of slanted lines through the top line of the staff.</p> <p/> </remarks> </elementSpec> <elementSpec ident="caption" module="MEI.shared"> <desc xml:lang="en">A label which accompanies an illustration or a table.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.captionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="castGrp" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">cast group</gloss> <desc xml:lang="en">Groups one or more individual castItem elements within a cast list.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:oneOrMore> <rng:choice> <rng:ref name="castItem"/> <rng:ref name="castGrp"/> <rng:ref name="roleDesc"/> </rng:choice> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-castGroup.html">castGroup</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="castItem" module="MEI.shared"> <desc xml:lang="en">Contains a single entry within a cast list, describing either a single role or a list of non-speaking roles.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:oneOrMore> <rng:choice> <rng:text/> <rng:ref name="role"/> <rng:ref name="roleDesc"/> <rng:ref name="actor"/> <rng:ref name="perfRes"/> </rng:choice> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-castItem.html">castItem</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="castList" module="MEI.shared"> <desc xml:lang="en">Contains a single cast list or dramatis personae.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.listLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="castItem"/> <rng:ref name="castGrp"/> </rng:choice> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-castList.html">castList</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="cb" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">column beginning</gloss> <desc xml:lang="en">An empty formatting element that forces text to begin in a new column.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.responsibility"/> <memberOf key="att.source"/> <memberOf key="att.typed"/> <memberOf key="model.milestoneLike.music"/> <memberOf key="model.milestoneLike.text"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="n" usage="req"> <desc xml:lang="en">Records the column number.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> <constraintSpec ident="check_cb" scheme="schematron"> <constraint> <sch:rule context="mei:cb"> <sch:let name="totalColumns" value="preceding::mei:colLayout[1]/@cols"/> <sch:assert test="preceding::mei:colLayout">Column beginning must be preceded by a colLayout element.</sch:assert> <sch:assert test="@n <= $totalColumns">The value of @n should be less than or equal to the value of @cols (<sch:value-of select="$totalColumns"/>) of the preceding colLayout element.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-cb.html">cb</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="chord" module="MEI.shared"> <desc xml:lang="en">A simultaneous sounding of two or more notes in the same layer *with the same duration*.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.chord.log"/> <memberOf key="att.chord.vis"/> <memberOf key="att.chord.ges"/> <memberOf key="att.chord.anl"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.chordPart"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.sylLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="model.verseLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="clef" module="MEI.shared"> <desc xml:lang="en">Indication of the exact location of a particular note on the staff and, therefore, the other notes as well.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.event"/> <memberOf key="att.facsimile"/> <memberOf key="att.clef.anl"/> <memberOf key="att.clef.ges"/> <memberOf key="att.clef.log"/> <memberOf key="att.clef.vis"/> <memberOf key="model.eventLike"/> <memberOf key="model.staffDefPart"/> <memberOf key="model.syllablePart"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="Clef_position_lines" scheme="schematron"> <constraint> <sch:rule context="mei:clef[matches(@shape, '[FCG]')][ancestor::mei:staffDef[@lines]]"> <sch:let name="thisstaff" value="ancestor::mei:staffDef/@n"/> <sch:assert test="number(@line) <= number(ancestor::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The clef position must be less than or equal to the number of lines of an ancestor staff.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Clef_position_nolines" scheme="schematron"> <constraint> <sch:rule context="mei:clef[ancestor::mei:staffDef[not(@lines)]]"> <sch:let name="thisstaff" value="ancestor::mei:staffDef/@n"/> <sch:assert test="number(@line) <= number(preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The clef position must be less than or equal to the number of lines of a preceding staff.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element can be used as an alternative to the <gi scheme="MEI">staff</gi> element's clef.* attributes. It should be used when specific display info, such as size or color, needs to be recorded for the clef or when multiple, simultaneous clefs occur on a single staff. This element may also be used within the staff context to indicate changes of clef.</p> </remarks> </elementSpec> <elementSpec ident="clefGrp" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">clef group</gloss> <desc xml:lang="en">A set of simultaneously-occurring clefs.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.event"/> <memberOf key="att.facsimile"/> <memberOf key="att.clefGrp.log"/> <memberOf key="att.clefGrp.vis"/> <memberOf key="att.clefGrp.ges"/> <memberOf key="att.clefGrp.anl"/> <memberOf key="model.eventLike"/> <memberOf key="model.staffDefPart"/> </classes> <content> <rng:oneOrMore> <rng:ref name="clef"/> </rng:oneOrMore> </content> </elementSpec> <elementSpec ident="colLayout" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">column layout</gloss> <desc xml:lang="en">An empty formatting element that signals the start of columnar layout.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.source"/> <memberOf key="model.milestoneLike.music"/> <memberOf key="model.milestoneLike.text"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="cols" usage="req"> <desc xml:lang="en">Records the number of columns.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="composer" module="MEI.shared"> <desc xml:lang="en">The name of the creator of the intellectual content of a musical work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="contributor" module="MEI.shared"> <desc xml:lang="en">Names of individuals, institutions, or organizations responsible for contributions to the intellectual content of a work, where the specialized elements for authors, editors, etc. do not suffice or do not apply.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="check_contributor_role" scheme="schematron"> <constraint> <sch:rule context="mei:contributor"> <sch:assert test="not(matches(normalize-space(lower-case(@role)), '(arranger|author|composer|contributor|editor|funder|librettist|lyricist|sponsor)'))">The value of @role must not contain the name of another element available in this context.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="role" usage="rec"> <desc xml:lang="en">Used to specify the contributor’s function.</desc> <datatype> <rng:text/> </datatype> <remarks xml:lang="en"> <p>When applicable, values from the <abbr>MARC</abbr> relator term list (<ref target="http://www.loc.gov/marc/relators/relaterm.html">http://www.loc.gov/marc/relators/relaterm.html</ref>) or code list (<ref target="http://www.loc.gov/marc/relators/relacode.html">http://www.loc.gov/marc/relators/relacode.html</ref>) are recommended for <att>role</att>.</p> </remarks> </attDef> </attList> </elementSpec> <elementSpec ident="creation" module="MEI.shared"> <desc xml:lang="en">Non-bibliographic details of the creation of an intellectual entity, in narrative form, such as the date, place, and circumstances of its composition. More detailed information may be captured within the history element.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="dedication"/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-creation.html">creation</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="custos" module="MEI.shared"> <desc xml:lang="en">Symbol placed at the end of a line of music to indicate the first note of the next line. Sometimes called a "direct".</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.source"/> <memberOf key="att.custos.log"/> <memberOf key="att.custos.vis"/> <memberOf key="att.custos.ges"/> <memberOf key="att.custos.anl"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="accid"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The most common visual form is a sign resembling a mordent. Other graphical forms may be indicated by the <att>altsym</att> attribute. Together the <att>pname</att> and <att>oct</att> attributes identify the location where the custos appears.</p> </remarks> </elementSpec> <elementSpec ident="date" module="MEI.shared"> <desc xml:lang="en">A string identifying a point in time or the time period between two such points.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.calendared"/> <memberOf key="att.datable"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.dateLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-date.html">date</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-date">date</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="dedicatee" module="MEI.shared"> <desc xml:lang="en">Entity to whom a creative work is formally offered.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.textPhraseLike.limited"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="check_dedicatee" scheme="schematron"> <constraint> <sch:rule context="mei:dedicatee"> <sch:assert test="not(ancestor::mei:dedicatee)">The dedicatee element may not be recursively nested.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="depth" module="MEI.shared"> <desc xml:lang="en">Description of a measurement taken through a three-dimensional object.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.quantity"/> <memberOf key="model.dimLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="desc" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">description</gloss> <desc xml:lang="en">Container for text that briefly describes the feature to which it is attached, including its intended usage, purpose, or application as appropriate.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.source"/> <memberOf key="model.descLike"/> <memberOf key="model.eventPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-desc.html">desc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="dim" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">dimension</gloss> <desc xml:lang="en">Any single dimensional specification.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.quantity"/> <memberOf key="model.dimLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="form" usage="req"> <desc xml:lang="en">Aspect of the object being measured.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="alt"> <desc xml:lang="en">Altitude. Refers to the distance above a given level, commonly mean sea level.</desc> </valItem> <valItem ident="angle"> <desc xml:lang="en">Angle. Amount of rotation needed to bring one line or plane into coincidence with another.</desc> </valItem> <valItem ident="circum"> <desc xml:lang="en">Circumference of a circular area.</desc> </valItem> <valItem ident="depth"> <desc xml:lang="en">Dimension taken through an object or body of material, usually downward from an upper surface, horizontally inward from an outer surface, or from top to bottom of something regarded as one of several layers.</desc> </valItem> <valItem ident="diameter"> <desc xml:lang="en">Length of a straight line passing through the center of a circle or sphere and meeting the circumference or surface at each end.</desc> </valItem> <valItem ident="elevation"> <desc xml:lang="en">Distance to which something has been raised or uplifted above a level, <abbr>e.g.</abbr>, a hill’s elevation above the surrounding country.</desc> </valItem> <valItem ident="height"> <desc xml:lang="en">Denotes extent upward (as from foot to head) as well as any measurable distance above a given level.</desc> </valItem> <valItem ident="length"> <desc xml:lang="en">Measure of the greatest dimension of a plane or solid figure.</desc> </valItem> <valItem ident="radius"> <desc xml:lang="en">Half the diameter of a circular, spherical, or cylindrical object.</desc> </valItem> <valItem ident="relief"> <desc xml:lang="en">Projection of a figure or part from the plane on which it is formed.</desc> </valItem> <valItem ident="width"> <desc xml:lang="en">Extent from side to side; breadth.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The <gi scheme="MEI">height</gi>, <gi scheme="MEI">width</gi>, and <gi scheme="MEI">depth</gi> elements are preferred when appropriate.</p> </remarks> </elementSpec> <elementSpec ident="dimensions" module="MEI.shared"> <desc xml:lang="en">Information about the physical size of an entity; usually includes numerical data.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.lang"/> <memberOf key="att.measurement"/> <memberOf key="model.physDescPart"/> <memberOf key="model.textPhraseLike.limited"/> </classes> <content> <rng:ref name="macro.struc-unstrucContent"/> </content> <constraintSpec ident="check_dimensions" scheme="schematron"> <constraint> <sch:rule context="mei:physDesc/mei:dimensions"> <sch:assert test="not(count(mei:depth) > 1)">The depth element may only appear once.</sch:assert> <sch:assert test="not(count(mei:height) > 1)">The height element may only appear once.</sch:assert> <sch:assert test="not(count(mei:width) > 1)">The width element may only appear once.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The elements <gi scheme="MEI">height</gi>, <gi scheme="MEI">width</gi>, <gi scheme="MEI">depth</gi>, and <gi scheme="MEI">dim</gi> are available for circumstances that require the capture of the individual dimensions of an object. Do not confuse this element with the <gi scheme="MEI">extent</gi> element, which is used to indicate the quantity of described materials.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-dimensions.html">dimensions</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-dimensions">dimensions</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="dir" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">directive</gloss> <desc xml:lang="en">An instruction expressed as a combination of text and symbols, typically above, below, or between staves, but not on the staff — that is not encoded elsewhere in more specific elements, like <gi scheme="MEI">tempo</gi>, <gi scheme="MEI">dynam</gi> or <gi scheme="MEI">repeatMark</gi>.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.dir.log"/> <memberOf key="att.dir.vis"/> <memberOf key="att.dir.ges"/> <memberOf key="att.dir.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="dir_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:dir[not(ancestor::mei:syllable)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Examples include text strings, such as 'affettuoso', and music symbols, such as segno and coda symbols, fermatas over a bar line, etc. Directives can be control elements. That is, they can be linked via their attributes to other events. The starting point of the directive may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify a starting point attribute.</p> </remarks> </elementSpec> <elementSpec ident="distributor" module="MEI.shared"> <desc xml:lang="en">Person or agency, other than a publisher, from which access (including electronic access) to a bibliographic entity may be obtained.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.imprintPart"/> <memberOf key="model.pubStmtPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-distributor.html">distributor</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="div" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">division</gloss> <desc xml:lang="en">Major structural division of text, such as a preface, chapter or section.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.classed"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="model.divLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.headLike"/> <rng:ref name="model.milestoneLike.text"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.divLike"/> <rng:ref name="model.figureLike"/> <rng:ref name="model.textComponentLike"/> <rng:ref name="sp"/> </rng:choice> <rng:zeroOrMore> <rng:ref name="model.milestoneLike.text"/> </rng:zeroOrMore> </rng:zeroOrMore> </content> <attList> <attDef ident="type" usage="opt"> <desc xml:lang="en">Characterizes the textual division in some sense, using any convenient classification scheme or typology that employs single-token labels.</desc> <datatype> <rng:data type="NMTOKENS"/> </datatype> <valList type="semi"> <valItem ident="abstract"> <desc xml:lang="en">A summary of the content of a text as continuous prose.</desc> </valItem> <valItem ident="ack"> <desc xml:lang="en">A formal declaration of acknowledgment by the author in which persons and institutions are thanked for their part in the creation of a text.</desc> </valItem> <valItem ident="appendix"> <desc xml:lang="en">An ancillary self-contained section of a work, often providing additional but in some sense extra-canonical text.</desc> </valItem> <valItem ident="bibliography"> <desc xml:lang="en">A list of bibliographic citations.</desc> </valItem> <valItem ident="colophon"> <desc xml:lang="en">A statement appearing at the end of a book describing the conditions of its physical production.</desc> </valItem> <valItem ident="contents"> <desc xml:lang="en">A table of contents, specifying the structure of a work and listing its constituents. The list element should be used to mark its structure.</desc> </valItem> <valItem ident="dedication"> <desc xml:lang="en">A formal offering or dedication of a text to one or more persons or institutions by the author.</desc> </valItem> <valItem ident="frontispiece"> <desc xml:lang="en">A pictorial frontispiece, possibly including some text.</desc> </valItem> <valItem ident="glossary"> <desc xml:lang="en">A list of terms associated with definition texts (‘glosses’).</desc> </valItem> <valItem ident="half-title"> <desc xml:lang="en">A page containing only the title of a book — as opposed to the title page, which also lists subtitle, author, imprint and similar data.</desc> </valItem> <valItem ident="index"> <desc xml:lang="en">Any form of index to the work.</desc> </valItem> <valItem ident="annotations"> <desc xml:lang="en">A section in which annotations on the text are gathered together.</desc> </valItem> <valItem ident="preface"> <desc xml:lang="en">A foreword or preface addressed to the reader in which the author or publisher explains the content, purpose, or origin of the text.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>Often, the <gi scheme="MEI">head</gi> sub-element identifies the <gi scheme="MEI">div</gi>’s purpose. The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-div.html">div</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="dot" module="MEI.shared"> <desc xml:lang="en">Dot of augmentation or division.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.dot.log"/> <memberOf key="att.dot.vis"/> <memberOf key="att.dot.ges"/> <memberOf key="att.dot.anl"/> <memberOf key="model.noteModifierLike"/> <memberOf key="model.eventLike.mensural"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>This element provides an alternative to the <att>dots</att> attribute on <gi scheme="MEI">note</gi> and <gi scheme="MEI">rest</gi> elements. It should be used when specific display info, such as size or color, needs to be recorded for the dot. This element may also be used for dots of division in the mensural repertoire.</p> </remarks> </elementSpec> <elementSpec ident="dynam" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">dynamic</gloss> <desc xml:lang="en">Indication of the volume of a note, phrase, or section of music.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.dynam.log"/> <memberOf key="att.dynam.vis"/> <memberOf key="att.dynam.ges"/> <memberOf key="att.dynam.anl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="dynam_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:dynam"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real"> Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="dynam_end-type_attributes" scheme="schematron"> <constraint> <sch:rule context="mei:dynam[@val2]"> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">When @val2 is present, either @dur, @dur.ges, @endid, or @tstamp2 must also be present.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element may be used for instantaneous or continuous <emph>textual</emph> dynamics, <abbr>e.g.</abbr>, 'p', 'mf', or 'cresc. poco a poco'. The <gi scheme="MEI">hairpin</gi> element should be used for <emph>graphical</emph>, <abbr>i.e.</abbr>, crescendo and diminuendo, dynamic markings. The starting point of the dynamic marking may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify a starting point attribute. MIDI values associated with the graphical dynamic sign may be recorded in the <att>val</att> and <att>val2</att> attributes.</p> </remarks> </elementSpec> <elementSpec ident="edition" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">edition designation</gloss> <desc xml:lang="en">A word or text phrase that indicates a difference in either content or form between the item being described and a related item previously issued by the same publisher/distributor (<abbr>e.g.</abbr>, 2nd edition, version 2.0, etc.), or simultaneously issued by either the same publisher/distributor or another publisher/distributor (<abbr>e.g.</abbr>, large print edition, British edition, etc.).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="model.editionLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="editor"/> <rng:ref name="respStmt"/> <rng:ref name="textLang"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-edition.html">edition</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-edition">edition</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="editor" module="MEI.shared"> <desc xml:lang="en">The name of the individual(s), institution(s) or organization(s) acting in an editorial capacity.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-editor.html">editor</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="ending" module="MEI.shared"> <desc xml:lang="en">Alternative ending for a repeated passage of music; <abbr>i.e.</abbr>, prima volta, seconda volta, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.ending.anl"/> <memberOf key="att.ending.ges"/> <memberOf key="att.ending.log"/> <memberOf key="att.ending.vis"/> <memberOf key="att.facsimile"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.endingLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="expansion"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.relationLike"/> <rng:ref name="model.scoreDefLike"/> <rng:ref name="model.sectionLike"/> <rng:ref name="model.sectionPart.cmn"/> <rng:ref name="model.sectionPart.mensuralAndNeumes"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">scoreDef</gi> element is allowed as a sub-element so that an ending may have its own meta-data without the overhead of child <gi scheme="MEI">section</gi> elements. <gi scheme="MEI">div</gi> sub-elements are not allowed within ending. They may, however, be contained by the children of ending, <abbr>e.g.</abbr>, measures. Endings may not contain other ending elements.</p> </remarks> </elementSpec> <elementSpec ident="event" module="MEI.shared"> <desc xml:lang="en">Contains a free-text event description.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.calendared"/> <memberOf key="att.datable"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:choice> <!-- data-like organization --> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.eventPart"/> <rng:ref name="castList"/> <rng:ref name="eventList"/> </rng:choice> </rng:zeroOrMore> <!-- free-form organization --> <rng:zeroOrMore> <rng:choice> <!-- model.listLike is expanded here in order to disallow biblList, castList, and eventList --> <rng:ref name="model.pLike"/> <rng:ref name="model.tableLike"/> <rng:ref name="list"/> </rng:choice> </rng:zeroOrMore> </rng:choice> <!-- biblList may occur in either organizational approach, but must come at the end --> <rng:zeroOrMore> <rng:ref name="biblList"/> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="eventList" module="MEI.shared"> <desc xml:lang="en">Contains historical information given as a sequence of significant past events.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="model.listLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:group> <!-- an organizing data element; when not present, the list is a simple list of event descriptions --> <rng:optional> <rng:choice> <rng:ref name="name"/> <rng:ref name="model.addressLike"/> <rng:ref name="model.dateLike"/> <rng:ref name="model.nameLike.agent"/> <rng:ref name="model.nameLike.geogName"/> </rng:choice> </rng:optional> <!-- an event description or a nested group of events --> <rng:choice> <rng:ref name="event"/> <rng:ref name="eventList"/> </rng:choice> </rng:group> </rng:zeroOrMore> <!-- at the very end, a list of citations --> <rng:zeroOrMore> <rng:ref name="biblList"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>An <gi scheme="MEI">eventList</gi> contains <gi scheme="MEI">event</gi> elements that capture a brief description of the associated event, including dates and locations where the event took place. An <gi scheme="MEI">eventList</gi> describes events associated with a work when it appears in the <gi scheme="MEI">workList</gi> element or events associated with the custodial history of a given copy of a source for the encoding when it appears within the <gi scheme="MEI">sourceDesc</gi> or <gi scheme="MEI">relatedItem</gi> elements. The <att>type</att> attribute may be used to distinguish between event lists with different functions, such as a list of events in the compositional process and a list of performance dates.</p> </remarks> </elementSpec> <elementSpec ident="expansion" module="MEI.shared"> <desc xml:lang="en">Indicates how a section may be programmatically expanded into its 'through-composed' form.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.plist"/> <memberOf key="att.source"/> <memberOf key="att.targetEval"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The <att>plist</att> attribute contains an ordered list of identifiers of descendant <gi scheme="MEI">section</gi>, <gi scheme="MEI">ending</gi>, <gi scheme="MEI">lem</gi>, or <gi scheme="MEI">rdg</gi> elements. For example, the sequence "#A #End1 #A #End2" indicates that the section labelled 'A' comes first, then the ending labelled 'End1', followed by the 'A' section again, and finally the ending labelled 'End2'.</p> </remarks> </elementSpec> <elementSpec ident="extent" module="MEI.shared"> <desc xml:lang="en">Used to express size in terms other than physical dimensions, such as number of pages, records, bytes, physical components, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.quantity"/> <memberOf key="model.physDescPart"/> <memberOf key="model.textPhraseLike.limited"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Use the <gi scheme="MEI">dimensions</gi> element when it is necessary to specify the <hi rend="bold">physical</hi> size of materials being described, for example, height and width.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-extent.html">extent</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="extData" module="MEI.shared"> <gloss versionDate="2023-05-23" xml:lang="en">extended data</gloss> <desc xml:lang="en">Provides a container element for non-MEI data formats.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.labelled"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.whitespace"/> <memberOf key="att.pointing"/> <memberOf key="att.internetMedia"/> </classes> <content> <rng:zeroOrMore> <rng:group> <rng:choice> <rng:text/> <rng:ref name="macro.anyXML"/> </rng:choice> </rng:group> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Container for holding non-MEI data formats, similar to <gi scheme="MEI">extMeta</gi> but available in <gi scheme="MEI">when</gi> rather than in <gi scheme="MEI">meiHead</gi>. The content of this element, by virtue of being inside a <gi scheme="MEI">when</gi> element, is associated with a particular point in time in a media file and this point in time may be linked to symbolic data, such as notes, chords, rests, etc., recorded elsewhere. When the data in <gi scheme="MEI">extData</gi> contains left angle bracket (less-than) or ampersand characters, or when it contains white space that should be preserved (such as line breaks), then the data should be enclosed in a CDATA section (<abbr>e.g.</abbr>, for JSON formatted data).</p> </remarks> </elementSpec> <elementSpec ident="funder" module="MEI.shared"> <desc xml:lang="en">Names of individuals, institutions, or organizations responsible for funding. Funders provide financial support for a project; they are distinct from sponsors, who provide intellectual support and authority.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-funder.html">funder</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="genre" module="MEI.shared"> <desc xml:lang="en">Term or terms that designate a category characterizing a particular style, form, or content.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="group" module="MEI.shared"> <desc xml:lang="en">Contains a composite musical text, grouping together a sequence of distinct musical texts (or groups of such musical texts) which are regarded as a unit for some purpose, for example, the collected works of a composer.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="macro.musicPart"/> </classes> <content> <rng:choice> <rng:ref name="music"/> <rng:ref name="group"/> </rng:choice> <rng:zeroOrMore> <rng:choice> <rng:ref name="music"/> <rng:ref name="group"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Because its model contains the music element, each of the subordinate MEI documents can have its own front and back matter.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-group.html">group</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="grpSym" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">group symbol</gloss> <desc xml:lang="en">A brace or bracket used to group two or more staves of a score or part.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.grpSym.log"/> <memberOf key="att.grpSym.vis"/> <memberOf key="att.grpSym.ges"/> <memberOf key="att.grpSym.anl"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.labelLike"/> </rng:zeroOrMore> </content> <constraintSpec ident="check_grpSym_attributes_scoreDef" scheme="schematron"> <constraint> <sch:rule context="mei:grpSym[parent::mei:scoreDef]"> <sch:assert test="@startid and @endid and @level">In scoreDef, grpSym must have startid, endid, and level attributes.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_grpSym_attributes_staffDef" scheme="schematron"> <constraint> <sch:rule context="mei:grpSym[parent::mei:staffGrp]"> <sch:assert test="not(@startid or @endid or @level)">In staffGrp, grpSym must not have startid, endid, or level attributes.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element provides an alternative to the <gi scheme="MEI">staffGrp</gi> element's <att>symbol</att> attribute. It may be used when exact placement or editorial details for the grouping symbol must be recorded.</p> </remarks> </elementSpec> <elementSpec ident="head" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">heading</gloss> <desc xml:lang="en">Contains any heading, for example, the title of a section of text, or the heading of a list.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.xy"/> <memberOf key="model.headLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>One or more <gi scheme="MEI">head</gi> elements usually identify the parent element and/or its purpose.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-head">head</ref> element of the Encoded Archival Description (EAD), the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-head.html">head</ref> element of the Text Encoding Initiative (TEI), and the <ref target="https://html.spec.whatwg.org/#the-head-element">head</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="height" module="MEI.shared"> <desc xml:lang="en">Description of the vertical size of an object.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.quantity"/> <memberOf key="model.dimLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="identifier" module="MEI.shared"> <desc xml:lang="en">An alpha-numeric string that establishes the identity of the described material.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="model.identifierLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Examples include an International Standard Book/Music Number, Library of Congress Control Number, publisher’s number, a personal identification number, an entry in a bibliography or catalog, etc. The <att>type</att> attribute may be used to indicate the system from which the identifier was derived.</p> </remarks> </elementSpec> <elementSpec ident="imprint" module="MEI.shared"> <desc xml:lang="en">Information relating to the publication or distribution of a bibliographic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="model.biblPart"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.imprintPart"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-imprint.html">imprint</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="incip" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">incipit</gloss> <desc xml:lang="en">The opening music and/or words of a musical or textual work.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="model.incipLike"/> </classes> <!-- Can XSLT be used within content to "select" an incipit from the already-encoded MEI transcription in the music element? <rng:ref name="macro.XSLT"/> --> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="tempo"/> </rng:optional> <rng:optional> <rng:ref name="role"/> </rng:optional> <rng:optional> <rng:choice> <rng:ref name="clef"/> <rng:ref name="clefGrp"/> </rng:choice> </rng:optional> <rng:optional> <rng:choice> <rng:ref name="perfRes"/> <rng:ref name="perfResList"/> </rng:choice> </rng:optional> <rng:optional> <rng:ref name="key"/> </rng:optional> <rng:optional> <rng:ref name="meter"/> </rng:optional> <rng:optional> <rng:ref name="mensuration"/> </rng:optional> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.graphicLike"/> <rng:ref name="model.scoreLike"/> <rng:ref name="incipCode"/> <rng:ref name="incipText"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">incipText</gi> element may be used to capture a text incipit, while <gi scheme="MEI">score</gi> is available to provide an MEI-encoded musical incipit. Images of an incipit may be referenced using the <gi scheme="MEI">graphic</gi> element. An incipit encoded in a text format other than MEI may be placed in the <gi scheme="MEI">incipCode</gi> element.</p> </remarks> </elementSpec> <elementSpec ident="keyAccid" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">key accidental</gloss> <desc xml:lang="en">Accidental in a key signature.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.keyAccid.anl"/> <memberOf key="att.keyAccid.ges"/> <memberOf key="att.keyAccid.log"/> <memberOf key="att.keyAccid.vis"/> <memberOf key="model.keyAccidLike"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="Check_keyAccidPlacement" scheme="schematron"> <constraint> <sch:rule context="mei:keyAccid"> <sch:assert test="(@x and @y) or @pname or @loc">One of the following is required: @x and @y attribute pair, @pname attribute, or @loc attribute. </sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Specifies whether enharmonic (written) values or implicit ("perform-able") values are allowed.</desc> <valList type="closed"> <valItem ident="implicit"> <desc xml:lang="en">Only performed values (sharp, flat, natural) allowed.</desc> </valItem> <valItem ident="explicit"> <desc xml:lang="en">All enharmonic (written) values allowed.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>It is a semantic error not to provide one of the following: the <att>x</att> and <att>y</att> pair of attributes, the <att>pname</att> and <att>oct</att> pair of attributes, or the <att>loc</att> attribute.</p> </remarks> </elementSpec> <elementSpec ident="keySig" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">key signature</gloss> <desc xml:lang="en">Written key signature.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.keySig.anl"/> <memberOf key="att.keySig.ges"/> <memberOf key="att.keySig.log"/> <memberOf key="att.keySig.vis"/> <memberOf key="model.keySigLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.keyAccidLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="check_keyAccid_oct" scheme="schematron"> <constraint> <sch:rule context="mei:keySig[mei:keyAccid[@oct]]"> <sch:assert test="count(mei:keyAccid[@oct]) = count(mei:keyAccid)">If the @oct attribute appears on any keyAccid element, it must be provided on all keyAccid elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="check_keySig_editorial" scheme="schematron"> <constraint> <sch:rule context="mei:keySig/mei:*[local-name() eq 'add' or local-name() eq 'corr' or local-name() eq 'damage' or local-name() eq 'del' or local-name() eq 'orig' or local-name() eq 'reg' or local-name() eq 'restore' or local-name() eq 'sic' or local-name() eq 'supplied' or local-name() eq 'unclear']"> <sch:assert test="count(mei:keyAccid) = count(mei:*)">Only keyAccid elements are allowed here.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="label" module="MEI.shared"> <desc xml:lang="en">A container for document text that identifies the feature to which it is attached. For a "tool tip" or other generated label, use the <att>label</att> attribute.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.source"/> <memberOf key="model.labelLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-label.html">label</ref> element of the Text Encoding Initiative (TEI).</p> <p>Don't confuse this element, which is used to capture labelling text appearing in the document, with the <att>label</att> attribute, which records text to be used to generate a designation for the element to which it’s attached, a "tool tip" or prefatory text, for example.</p> </remarks> </elementSpec> <elementSpec ident="labelAbbr" module="MEI.shared"> <desc xml:lang="en">A label on the pages following the first.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.source"/> <memberOf key="model.labelLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="layer" module="MEI.shared"> <desc xml:lang="en">An independent stream of events on a staff.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.layer.log"/> <memberOf key="att.layer.vis"/> <memberOf key="att.layer.ges"/> <memberOf key="att.layer.anl"/> <memberOf key="model.layerLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.layerPart"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="divLine"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The term 'layer' is used instead of 'voice' in order to avoid confusion between 'voice' and 'voice leading' and 'voicing'. The <att>def</att> attribute may be used to create a connection with a <gi scheme="MEI">layerDef</gi> element where logical and visual information about the layer is recorded. Alternatively, the <att>n</att> attribute may be used as a reference to a <gi scheme="MEI">layerDef</gi> element with the same value in its <att>n</att> attribute. If neither <att>def</att> nor <att>n</att> attributes are present, then encoding order of the layers is presumed to match the encoding order of the layer definitions.</p> </remarks> </elementSpec> <elementSpec ident="layerDef" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">layer definition</gloss> <desc xml:lang="en">Container for layer meta-information.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.layerDef.log"/> <memberOf key="att.layerDef.vis"/> <memberOf key="att.layerDef.ges"/> <memberOf key="att.layerDef.anl"/> <memberOf key="model.layerDefLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.labelLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.instrDefLike"/> <rng:ref name="model.meterSigLike"/> </rng:choice> </rng:zeroOrMore> <rng:optional> <rng:ref name="ambitus"/> </rng:optional> </content> </elementSpec> <elementSpec ident="lb" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">line beginning</gloss> <desc xml:lang="en">An empty formatting element that forces text to begin on a new line.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.source"/> <memberOf key="model.lbLike"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>The <att>n</att> attribute should be used to record a number associated with this textual line. See comment on <gi scheme="MEI">verse</gi> element for description of <att>func</att> attribute. Do not confuse this element with the <gi scheme="MEI">sb</gi> element, which performs a similar function for musical notation.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-lb.html">lb</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="lg" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">line group</gloss> <desc xml:lang="en">May be used for any section of text that is organized as a group of lines; however, it is most often used for a group of verse lines functioning as a formal unit, <abbr>e.g.</abbr>, a stanza, refrain, verse paragraph, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.lyrics.anl"/> <memberOf key="att.lyrics.ges"/> <memberOf key="att.lyrics.log"/> <memberOf key="att.lyrics.vis"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.xy"/> <memberOf key="model.lgLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:choice> <rng:ref name="model.lLike"/> <rng:ref name="model.lgLike"/> </rng:choice> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.lLike"/> <rng:ref name="model.lgLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-lg.html">lg</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="librettist" module="MEI.shared"> <desc xml:lang="en">Person or organization who is a writer of the text of an opera, oratorio, etc.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="lyricist" module="MEI.shared"> <desc xml:lang="en">Person or organization who is a writer of the text of a song.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="mdiv" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">musical division</gloss> <desc xml:lang="en">Contains a subdivision of the body of a musical text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.mdiv.anl"/> <memberOf key="att.mdiv.ges"/> <memberOf key="att.mdiv.log"/> <memberOf key="att.mdiv.vis"/> <memberOf key="model.mdivLike"/> </classes> <content> <rng:choice> <rng:group> <rng:optional> <rng:ref name="model.scoreLike"/> </rng:optional> <rng:optional> <rng:ref name="model.partsLike"/> </rng:optional> </rng:group> <rng:zeroOrMore> <rng:ref name="model.mdivLike"/> </rng:zeroOrMore> </rng:choice> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">mdiv</gi> element may contain one or both of 2 possible views of the music. The score view is the traditional full and open score while the parts view contains each performer’s view of the score; that is, his part. These 2 views are necessary because it is not always possible or desirable to generate one from the other. The <gi scheme="MEI">score</gi> and <gi scheme="MEI">parts</gi> elements are placed here and not directly within the <gi scheme="MEI">body</gi> element because score and part characteristics may change from <gi scheme="MEI">mdiv</gi> to <gi scheme="MEI">mdiv</gi>. For example, the 2nd movement of a symphony may require different performing forces (and therefore different score and part layout) than the other movements. The <gi scheme="MEI">mdiv</gi> element may be recursively nested in order to represent music which exhibits this kind of structure. For example, an opera is normally divided into acts, which are in turn divided into scenes.</p> </remarks> </elementSpec> <elementSpec ident="mei" module="MEI.shared"> <desc xml:lang="en">Contains a single MEI-conformant document, consisting of an MEI header and a musical text, either in isolation or as part of an meiCorpus element.</desc> <classes> <memberOf key="att.id"/> <memberOf key="att.meiVersion"/> <memberOf key="att.responsibility"/> </classes> <content> <rng:ref name="meiHead"/> <rng:ref name="music"/> </content> <constraintSpec ident="Check_staff" scheme="schematron"> <constraint> <sch:rule context="mei:*[@staff]"> <sch:assert test="every $i in tokenize(normalize-space(@staff), '\s+') satisfies $i=//mei:staffDef/@n">The values in @staff must correspond to @n attribute of a staffDef element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <gi scheme="MEI">mei</gi> element defines an instance of a document encoded with the MEI schema. It is the document element for a single document containing a header and data. The name of this element should not be changed by any customization in order to assure an absolute minimum level of MEI compliance.</p> </remarks> </elementSpec> <elementSpec ident="monogr" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">monograph level</gloss> <desc xml:lang="en">Contains bibliographic elements describing an item, for example, a published book or journal, score, recording, or an unpublished manuscript.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.recordType"/> <memberOf key="att.targetEval"/> </classes> <content> <rng:group> <rng:optional> <rng:choice> <rng:group> <rng:choice> <rng:ref name="model.respLikePart"/> <rng:ref name="respStmt"/> </rng:choice> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.respLikePart"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> <rng:oneOrMore> <rng:ref name="model.titleLike"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="editor"/> <rng:ref name="model.identifierLike"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> </rng:group> <rng:group> <rng:oneOrMore> <rng:ref name="model.titleLike"/> </rng:oneOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.respLikePart"/> <rng:ref name="model.identifierLike"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> </rng:group> </rng:choice> </rng:optional> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="corpName"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.editionLike"/> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.identifierLike"/> <rng:ref name="editor"/> <rng:ref name="respStmt"/> </rng:choice> </rng:zeroOrMore> </rng:zeroOrMore> <rng:ref name="imprint"/> <rng:zeroOrMore> <rng:choice> <rng:ref name="imprint"/> <rng:ref name="extent"/> <rng:ref name="biblScope"/> </rng:choice> </rng:zeroOrMore> </rng:group> </content> </elementSpec> <elementSpec ident="music" module="MEI.shared"> <desc xml:lang="en">Contains a single musical text of any kind, whether unitary or composite, for example, an etude, opera, song cycle, symphony, or anthology of piano solos.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.meiVersion"/> <memberOf key="att.metadataPointing"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.resourceLike"/> </rng:zeroOrMore> <rng:ref name="macro.musicPart"/> </content> </elementSpec> <elementSpec ident="name" module="MEI.shared"> <desc xml:lang="en">Proper noun or noun phrase.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.bibl"/> <memberOf key="att.classed"/> <memberOf key="att.edit"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.linking"/> <memberOf key="att.name"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="model.eventPart"/> <memberOf key="model.nameLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="nameParts" scheme="schematron"> <constraint> <sch:rule context="mei:name"> <sch:assert role="warning" test="not(mei:geogName or mei:persName or mei:corpName)">Recommended practice is to use name elements to capture sub-parts of a generic name.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="type" usage="opt"> <desc xml:lang="en">Characterizes the name in some sense, using any convenient classification scheme or typology that employs single-token labels.</desc> <datatype> <rng:data type="NMTOKENS"/> </datatype> <valList type="semi"> <valItem ident="person"> <desc xml:lang="en">A personal name.</desc> </valItem> <valItem ident="corporation"> <desc xml:lang="en">Name of a corporate body.</desc> </valItem> <valItem ident="location"> <desc xml:lang="en">Name of a location.</desc> </valItem> <valItem ident="process"> <desc xml:lang="en">Name of a process or software application.</desc> </valItem> <valItem ident="style"> <desc xml:lang="en">Name of a musical style; <abbr>i.e.</abbr>, form, genre, technique, etc.</desc> </valItem> <valItem ident="time"> <desc xml:lang="en">Name of a period of time.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>Contains the name of an entity that is difficult to tag more specifically, for example, as a <gi scheme="MEI">corpName</gi>, <gi scheme="MEI">geogName</gi>, <gi scheme="MEI">persName</gi>, or <gi scheme="MEI">title</gi>. The <gi scheme="MEI">name</gi> element may be used in place of the more specific elements when it is not known what kind of name is being described or when a high degree of precision is not necessary. For example, the <gi scheme="MEI">name</gi> element might be used when it is not clear whether the name "Bach" refers to a person or a geographic feature. The <gi scheme="MEI">name</gi> element may be used for an individual, such as 'Henry VIII, King of England'; a corporate body, such as 'The Beatles'; a geographical place; an expanse of time, such as 'The Romantic Era'; or a mechanical (often generative) process. When name parts are needed, <gi scheme="MEI">name</gi> sub-elements are recommended. The recommended values for the <att>type</att> attribute are: person, corporation, location, period, and process. Dates associated with <emph>the name</emph> (not necessarily the same as those pertaining to the <emph>entity described by the name</emph>) may be recorded using <att>startdate</att>, <att>enddate</att>, <att>notbefore</att>, <att>notafter</att>, and <att>isodate</att> attributes. The name of the list from which a controlled value is taken, such as the Thesaurus of Geographic Names (TGN) or Library of Congress Name Authority File (LCNAF), and its electronically-available location may be recorded using the <att>auth</att> and <att>auth.uri</att> attributes.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-name">name</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="note" module="MEI.shared"> <desc xml:lang="en">A single pitched event. <!-- (Read, p. 63) --> </desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.note.log"/> <memberOf key="att.note.vis"/> <memberOf key="att.note.ges"/> <memberOf key="att.note.anl"/> <memberOf key="model.chordPart"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.noteModifierLike"/> <rng:ref name="model.verseLike"/> <rng:ref name="model.sylLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="plica"/> <rng:ref name="stem"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The <gi scheme="MEI">accid</gi> and <gi scheme="MEI">artic</gi> sub-elements may be used instead of the note element’s attributes when accid and artic represent first-class objects, <abbr>e.g.</abbr>, when they require attributes, such as <att>x</att> and <att>y</att> location attributes. Similarly, the <gi scheme="MEI">syl</gi> sub-element may be used instead of the <att>syl</att> attribute. The verse sub-element may be used to group text syllables by verse. The <att>colored</att> attribute may be used to indicate coloration. In the mensural repertoire, coloration is a temporary change in the underlying mensuration from perfect to imperfect. In the CMN repertoire, coloration is an inversion of the note head’s normal rendition, that is, the note head is void when it would otherwise be filled and vice versa. Do not confuse this with visual color.</p> </remarks> </elementSpec> <elementSpec ident="num" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">number</gloss> <desc xml:lang="en">Numeric information in any form.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.measurement"/> <memberOf key="att.ranging"/> <memberOf key="model.numLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="value" usage="opt"> <desc xml:lang="en">Numeric value capturing a measurement or count. Can only be interpreted in combination with the unit attribute.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Use this element only when it is necessary to display a number in a special way or to identify it with a <att>type</att> attribute.</p> </remarks> </elementSpec> <elementSpec ident="ornam" module="MEI.shared"> <desc xml:lang="en">An element indicating an ornament that is not a mordent, turn, or trill. </desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.ornam.log"/> <memberOf key="att.ornam.vis"/> <memberOf key="att.ornam.ges"/> <memberOf key="att.ornam.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="ornam_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:ornam"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>If it is not textual, the glyph of the ornament may be indicated with the <att>altsym</att> attribute, and it is recommended to provide an expansion of the ornament on the staff content. The starting point of the ornament may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute. It is a semantic error not to specify one of these attributes.</p> </remarks> </elementSpec> <elementSpec ident="p" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">paragraph</gloss> <desc xml:lang="en">One or more text phrases that form a logical prose passage.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.xy"/> <memberOf key="model.pLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.paracontentPart"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>A paragraph is usually typographically distinct: The text usually begins on a new line and the first letter of the content is often indented, enlarged, or both.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-p">p</ref> element of the Encoded Archival Description, the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-p.html">p</ref> element of the Text Encoding Initiative (TEI), and the <ref target="https://html.spec.whatwg.org/#the-p-element">p</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="pad" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">padding</gloss> <desc xml:lang="en">An indication of extra visual space between notational elements.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.pad.log"/> <memberOf key="att.pad.vis"/> <memberOf key="att.pad.ges"/> <memberOf key="att.pad.anl"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="part" module="MEI.shared"> <desc xml:lang="en">An alternative visual rendition of the score from the point of view of a particular performer (or group of performers).</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.part.log"/> <memberOf key="att.part.vis"/> <memberOf key="att.part.ges"/> <memberOf key="att.part.anl"/> <memberOf key="model.partLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.scoreDefLike"/> <rng:ref name="model.scorePart"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p> <gi scheme="MEI">part</gi> elements are not used in MEI to indicate voice leading. <att>next</att> attributes on event elements should be used for this purpose. <gi scheme="MEI">part</gi> elements are useful for encoding individual parts when there is no score, such as early music part books, when the music has non-aligning bar lines, when different layout, such as page turns, are needed for the score and parts, or for accommodating software that requires part-by-part encoding. When assembly of the parts into a score is desired and there are non-aligning bar lines, bar lines which indicate points of alignment across all the parts may be marked as 'controlling', while non-aligning ones may be marked as 'non-controlling'.</p> </remarks> </elementSpec> <elementSpec ident="parts" module="MEI.shared"> <desc xml:lang="en">Provides a container for performers' parts.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.parts.log"/> <memberOf key="att.parts.vis"/> <memberOf key="att.parts.ges"/> <memberOf key="att.parts.anl"/> <memberOf key="model.partsLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.partLike"/> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="pb" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">page beginning</gloss> <desc xml:lang="en">An empty formatting element that forces text to begin on a new page.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.pointing"/> <memberOf key="att.source"/> <memberOf key="att.pb.anl"/> <memberOf key="att.pb.ges"/> <memberOf key="att.pb.log"/> <memberOf key="att.pb.vis"/> <memberOf key="model.pbLike"/> </classes> <content> <rng:ref name="macro.metaLike.page"/> </content> <remarks xml:lang="en"> <p>The <att>n</att> attribute should be used to record the page number displayed in the source. It need not be an integer, <abbr>e.g.</abbr>, 'iv', or 'p17-3'. The logical page number can be calculated by counting previous <gi scheme="MEI">pb</gi> ancestor elements. When used in a score context, a page beginning implies an accompanying system beginning.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-pb.html">pb</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="pgDesc" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">page description</gloss> <desc xml:lang="en">Contains a brief prose description of the appearance or description of the content of a physical page.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.lang"/> <memberOf key="macro.metaLike.page"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.annotLike"/> <rng:ref name="model.locrefLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Best practice suggests the use of controlled vocabulary. Don't confuse this element with a figure caption. A caption is text primarily intended for display with an illustration. It may or may not function as a description of the illustration.</p> </remarks> </elementSpec> <elementSpec ident="pgFoot" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">page footer</gloss> <desc xml:lang="en">A running footer.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.formework"/> <memberOf key="att.horizontalAlign"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="model.appLike"/> <rng:ref name="anchoredText"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>This element is used to capture the textual data that often appears in printed music. It may also be used for similarly formatted material in manuscripts. When used within <gi scheme="MEI">pb</gi>, it records a temporary suspension of the pattern of page footers established by the use of <gi scheme="MEI">pgFoot</gi> within a previous <gi scheme="MEI">scoreDef</gi>. Auto-generated page numbers may be indicated with a processing instruction. The pgHead and pgFoot elements should <hi rend="bold">*not*</hi> be used to encode textual notes/annotations.</p> </remarks> </elementSpec> <elementSpec ident="pgHead" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">page header</gloss> <desc xml:lang="en">A running header.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.formework"/> <memberOf key="att.horizontalAlign"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="model.appLike"/> <rng:ref name="anchoredText"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>This element is used to capture the textual data that often appears in printed music. It may also be used for similarly formatted material in manuscripts. When used within <gi scheme="MEI">pb</gi>, it records a temporary suspension of the pattern of page headers established by the use of <gi scheme="MEI">pgHead</gi> within a previous <gi scheme="MEI">scoreDef</gi>. Auto-generated page numbers may be indicated with a processing instruction. The pgHead and pgFoot elements should <hi rend="bold">*not*</hi> be used to encode textual notes/annotations.</p> </remarks> </elementSpec> <elementSpec ident="phrase" module="MEI.shared"> <desc xml:lang="en">Indication of 1) a "unified melodic idea" or 2) performance technique.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.phrase.log"/> <memberOf key="att.phrase.vis"/> <memberOf key="att.phrase.ges"/> <memberOf key="att.phrase.anl"/> <memberOf key="model.controlEventLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="curve"/> </rng:zeroOrMore> </content> <constraintSpec ident="phrase_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:phrase"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2">Must have one of the attributes: dur, dur.ges, endid, or tstamp2.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="phrase_containing_curve" scheme="schematron"> <constraint> <sch:rule context="mei:phrase[mei:curve[@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2]]"> <sch:assert test="not(@bezier or @bulge or @curvedir or @lform or @lwidth or @ho or @startho or @endho or @to or @startto or @endto or @vo or @startvo or @endvo or @x or @y or @x2 or @y2)" role="warning">The visual attributes of the phrase (@bezier, @bulge, @curvedir, @lform, @lwidth, @ho, @startho, @endho, @to, @startto, @endto, @vo, @startvo, @endvo, @x, @y, @x2, and @y2) will be overridden by visual attributes of the contained curve elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>Historically, the term "slur" indicated two notes performed legato, while the term "phrase" was used for a "unified melodic idea". Nowadays, however, "slur" often has the same meaning as "phrase" (See Read, p. 265-266), since the visual rendition of the two concepts is the same. MEI provides two distinct elements so that those users wishing to maintain a distinction for historical reasons may do so. If the user does not want to maintain the distinction, then the more generic <gi scheme="MEI">slur</gi> element should be employed. The starting point of the phrase/slur may be indicated by either a <att>startid</att>, <att>tstamp</att>, <att>tstamp.ges</att>, or <att>tstamp.real</att> attribute, while the ending point may be recorded by either a <att>dur</att>, <att>dur.ges</att>, <att>endid</att>, or <att>tstamp2</att> attribute. It is a semantic error not to specify one starting and one ending type of attribute. Either <att>place</att>, <att>bulge</att>, or <att>bezier</att> attributes may be used to record the curvature of the phrase/slur. The <gi scheme="MEI">slur</gi> and <gi scheme="MEI">tie</gi> elements may be used instead of the slur.* and tie.* attributes provided on <gi scheme="MEI">chord</gi> and <gi scheme="MEI">note</gi> elements when 1) they are required by software, or 2) multiple, alternative slurs are needed.</p> </remarks> </elementSpec> <elementSpec ident="physLoc" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">physical location</gloss> <desc xml:lang="en">Groups information about the current physical location of a bibliographic item, such as the repository in which it is located and its shelf mark(s), and its previous locations.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:group> <rng:ref name="model.repositoryLike"/> <rng:zeroOrMore> <rng:ref name="model.identifierLike"/> </rng:zeroOrMore> </rng:group> </rng:zeroOrMore> <rng:optional> <rng:ref name="history"/> </rng:optional> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-physloc">physloc</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="publisher" module="MEI.shared"> <desc xml:lang="en">Name of the organization responsible for the publication of a bibliographic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.imprintPart"/> <memberOf key="model.pubStmtPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-publisher.html">publisher</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="pubPlace" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">publication place</gloss> <desc xml:lang="en">Name of the place where a bibliographic item was published.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.imprintPart"/> <memberOf key="model.pubStmtPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-pubPlace.html">pubPlace</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="recipient" module="MEI.shared"> <desc xml:lang="en">The name of the individual(s), institution(s) or organization(s) receiving correspondence.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="relatedItem" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">related item</gloss> <desc xml:lang="en">Contains or references another bibliographic item which is related to the present one.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.facsimile"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.biblLike"/> <!-- ptr/ref children aren't necessary as relatedItem is a member of att.pointing. --> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="rel" usage="req"> <desc xml:lang="en">Describes the relationship between the entity identified by the <gi scheme="MEI">relatedItem</gi> element and the resource described in the parent element, <abbr>i.e.</abbr>, <gi scheme="MEI">bibl</gi>, <gi scheme="MEI">source</gi> or <gi scheme="MEI">relatedItem</gi>.</desc> <datatype> <rng:ref name="data.MODSRELATIONSHIP"/> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="relation" module="MEI.shared"> <desc xml:lang="en">Describes a relationship or linkage amongst entities.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.evidence"/> <memberOf key="att.plist"/> <memberOf key="att.pointing"/> <memberOf key="att.targetEval"/> <memberOf key="model.relationLike"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="FRBR_relation" scheme="schematron"> <constraint> <!-- See http://vocab.org/frbr/core for more-precise entity-to-entity constraints --> <sch:rule context="mei:relationList/mei:relation[parent::mei:work or parent::mei:expression or parent::mei:source or parent::mei:item]"> <sch:assert test="matches(@rel, 'hasAbridgement') or matches(@rel, 'hasAbridgement') or matches(@rel, 'isAbridgementOf') or matches(@rel, 'hasAdaptation') or matches(@rel, 'isAdaptationOf') or matches(@rel, 'hasAlternate') or matches(@rel, 'isAlternateOf') or matches(@rel, 'hasArrangement') or matches(@rel, 'isArrangementOf') or matches(@rel, 'hasComplement') or matches(@rel, 'isComplementOf') or matches(@rel, 'hasEmbodiment') or matches(@rel, 'isEmbodimentOf') or matches(@rel, 'hasExemplar') or matches(@rel, 'isExemplarOf') or matches(@rel, 'hasImitation') or matches(@rel, 'isImitationOf') or matches(@rel, 'hasPart') or matches(@rel, 'isPartOf') or matches(@rel, 'hasRealization') or matches(@rel, 'isRealizationOf') or matches(@rel, 'hasReconfiguration') or matches(@rel, 'isReconfigurationOf') or matches(@rel, 'hasReproduction') or matches(@rel, 'isReproductionOf') or matches(@rel, 'hasRevision') or matches(@rel, 'isRevisionOf') or matches(@rel, 'hasSuccessor') or matches(@rel, 'isSuccessorOf') or matches(@rel, 'hasSummarization') or matches(@rel, 'isSummarizationOf') or matches(@rel, 'hasSupplement') or matches(@rel, 'isSupplementOf') or matches(@rel, 'hasTransformation') or matches(@rel, 'isTransformationOf') or matches(@rel, 'hasTranslation') or matches(@rel, 'isTranslationOf')">Within work, expression, source, or item, the value of the rel attribute must match one of the following: hasAbridgement, isAbridgementOf, hasAdaptation, isAdaptationOf, hasAlternate, isAlternateOf, hasArrangement, isArrangementOf, hasComplement, isComplementOf, hasEmbodiment, isEmbodimentOf, hasExemplar, isExemplarOf, hasImitation, isImitationOf, hasPart, isPartOf, hasRealization, isRealizationOf, hasReconfiguration, isReconfigurationOf, hasReproduction, isReproductionOf, hasRevision, isRevisionOf, hasSuccessor, isSuccessorOf, hasSummarization, isSummarizationOf, hasSupplement, isSupplementOf, hasTransformation, isTransformationOf, hasTranslation, isTranslationOf</sch:assert> <sch:assert test="@target">Within work, expression, source or item, the target attribute must be present.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="rel" usage="req"> <desc xml:lang="en">Describes the relationship between the entities identified by the plist and target attributes.</desc> <datatype> <rng:ref name="data.RELATIONSHIP"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>plist</att> and <att>target</att> attributes identify the participants in a relationship, while the <att>rel</att> attribute describes the nature of their relationship. A mutual relationship can be described using only the <att>plist</att> attribute – the <att>target</att> attribute is not necessary. In a non-mutual relationship, <att>plist</att> identifies the entities pointed "from", while <att>target</att> specifies the entities pointed "to". If the <att>target</att> attribute is present, but the <att>plist</att> is not, the relationship is presumed to exist between the parent of the current relation element and the entities identified by <att>target</att>.</p> </remarks> </elementSpec> <elementSpec ident="relationList" module="MEI.shared"> <desc xml:lang="en">Gathers relation elements.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.relationLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.relationLike"/> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="rend" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">render</gloss> <desc xml:lang="en">A formatting element indicating special visual rendering, <abbr>e.g.</abbr>, bold or italicized, of a text word or phrase.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.common"/> <memberOf key="att.extSym.auth"/> <memberOf key="att.horizontalAlign"/> <memberOf key="att.lang"/> <memberOf key="att.textRendition"/> <memberOf key="att.typography"/> <memberOf key="att.verticalAlign"/> <memberOf key="att.whitespace"/> <memberOf key="model.rendLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="rotation" usage="opt"> <desc xml:lang="en">A positive value for rotation rotates the text in a counter-clockwise fashion, while negative values produce clockwise rotation.</desc> <datatype> <rng:ref name="data.DEGREES"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>When an entire element should be rendered in a special way, a style sheet function should be used instead of the <gi scheme="MEI">rend</gi> element. The <att>glyph.auth</att> and <att>glyph.uri</att> attributes may be used to specify an external authority, <abbr>e.g.,</abbr> SMuFL, to be used for displaying code points in the textual content of the element.</p> </remarks> </elementSpec> <elementSpec ident="repository" module="MEI.shared"> <desc xml:lang="en">Institution, agency, or individual which holds a bibliographic item.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.name"/> <memberOf key="model.repositoryLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Sub-units of the holding institution may be marked with <gi scheme="MEI">repository</gi> sub-elements. The name of the list from which a controlled value is taken may be recorded using the <att>auth</att> attribute.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-repository">repository</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="resp" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">responsibility</gloss> <desc xml:lang="en">A phrase describing the nature of intellectual responsibility.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.authorized"/> <memberOf key="att.bibl"/> <memberOf key="att.datable"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The name of the list from which a controlled value is taken may be recorded using the <att>auth</att> attribute.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-resp.html">resp</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="respStmt" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">responsibility statement</gloss> <desc xml:lang="en">Transcription of text that names one or more individuals, groups, or in rare cases, mechanical processes, responsible for creation, realization, production, funding, or distribution of the intellectual or artistic content.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="model.pubStmtPart"/> <memberOf key="model.respLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="name"/> <rng:ref name="resp"/> <rng:ref name="model.nameLike.agent"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="check_respStmt" scheme="schematron"> <constraint> <sch:rule context="mei:respStmt[not(ancestor::mei:change)]"> <sch:assert test="(mei:resp and (mei:name or mei:corpName or mei:persName)) or count(mei:*[@role]) = count(mei:*) and count(mei:*) > 0" role="warning">At least one element pair (a resp element and a name-like element) is recommended. Alternatively, each name-like element may have a @role attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-respStmt.html">respStmt</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="rest" module="MEI.shared"> <desc xml:lang="en">A non-sounding event found in the source being transcribed.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.rest.log"/> <memberOf key="att.rest.vis"/> <memberOf key="att.rest.ges"/> <memberOf key="att.rest.anl"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="dot"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="Check_restline" scheme="schematron"> <constraint> <sch:rule context="mei:rest[@line]"> <sch:let name="thisstaff" value="ancestor::mei:staff/@n"/> <sch:assert test="number(@line) <= number(preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines)">The value of @line must be less than or equal to the number of lines on the staff.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>See (Read, p. 96-102). Do not confuse this element with the <gi scheme="MEI">space</gi> element, which is used as an aid for visual alignment.</p> </remarks> </elementSpec> <elementSpec ident="role" module="MEI.shared"> <desc xml:lang="en">Name of a dramatic role, as given in a cast list.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-role.html">role</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="roleDesc" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">role description</gloss> <desc xml:lang="en">Describes a character’s role in a drama.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-roleDesc.html">roleDesc</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="sb" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">system beginning</gloss> <desc xml:lang="en">An empty formatting element that forces musical notation to begin on a new line.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.source"/> <memberOf key="att.sb.anl"/> <memberOf key="att.sb.ges"/> <memberOf key="att.sb.log"/> <memberOf key="att.sb.vis"/> <memberOf key="model.milestoneLike.music"/> </classes> <content> <rng:empty/> </content> <remarks xml:lang="en"> <p>Do not confuse this element with the <gi scheme="MEI">lb</gi> element, which performs a similar function in prose.</p> </remarks> </elementSpec> <elementSpec ident="score" module="MEI.shared"> <desc xml:lang="en">Full score view of the musical content.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.score.log"/> <memberOf key="att.score.vis"/> <memberOf key="att.score.ges"/> <memberOf key="att.score.anl"/> <memberOf key="model.scoreLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.relationLike"/> <rng:ref name="model.scoreDefLike"/> <rng:ref name="model.scorePart"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Since the <gi scheme="MEI">measure</gi> element is optional, a score may consist entirely of page beginnings, each of which points to a page image. <gi scheme="MEI">div</gi> elements are allowed preceding and following sections of music data in order to accommodate blocks of explanatory text.</p> </remarks> </elementSpec> <elementSpec ident="scoreDef" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">score definition</gloss> <desc xml:lang="en">Container for score meta-information.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.scoreDef.log"/> <memberOf key="att.scoreDef.vis"/> <memberOf key="att.scoreDef.ges"/> <memberOf key="att.scoreDef.anl"/> <memberOf key="model.scoreDefLike"/> </classes> <content> <rng:optional> <rng:ref name="model.chordTableLike"/> </rng:optional> <rng:optional> <rng:ref name="model.symbolTableLike"/> </rng:optional> <rng:optional> <rng:ref name="model.keySigLike"/> </rng:optional> <rng:optional> <rng:ref name="model.meterSigLike"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="pgHead"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="pgFoot"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="instrGrp"/> </rng:optional> <rng:choice> <rng:optional> <rng:ref name="model.staffGrpLike"/> </rng:optional> </rng:choice> <rng:zeroOrMore> <rng:ref name="grpSym"/> </rng:zeroOrMore> <rng:optional> <rng:ref name="ambitus"/> </rng:optional> </content> </elementSpec> <elementSpec ident="section" module="MEI.shared"> <desc xml:lang="en">Segment of music data.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.pointing"/> <memberOf key="att.section.anl"/> <memberOf key="att.section.ges"/> <memberOf key="att.section.log"/> <memberOf key="att.section.vis"/> <memberOf key="att.targetEval"/> <memberOf key="model.sectionLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="expansion"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.divLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.relationLike"/> <rng:ref name="model.sectionPart"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="Check_sectionexpansion" scheme="schematron"> <constraint> <sch:rule context="mei:section[mei:expansion]"> <sch:assert test="descendant::mei:section|descendant::mei:ending|descendant::mei:rdg">A section containing an expansion element must have descendant section, ending, or rdg elements.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>This element functions as a container for actual music data. Pointing attributes make it possible to connect this element to other internal or external entities, such as media objects or annotations.</p> </remarks> </elementSpec> <elementSpec ident="series" module="MEI.shared"> <desc xml:lang="en">Contains information about the serial publication in which a bibliographic item has appeared.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.identifierLike"/> <rng:ref name="model.locrefLike"/> <rng:ref name="model.milestoneLike.text"/> <rng:ref name="model.titleLike"/> <rng:ref name="editor"/> <rng:ref name="extent"/> <rng:ref name="respStmt"/> <rng:ref name="textLang"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-series.html">series</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="space" module="MEI.shared"> <desc xml:lang="en">A placeholder used to fill an incomplete measure, layer, etc. most often so that the combined duration of the events equals the number of beats in the measure.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.duration.quality"/> <memberOf key="att.space.log"/> <memberOf key="att.space.vis"/> <memberOf key="att.space.ges"/> <memberOf key="att.space.anl"/> <memberOf key="model.eventLike"/> </classes> <content> <rng:empty/> </content> </elementSpec> <elementSpec ident="speaker" module="MEI.shared"> <desc xml:lang="en">Contains a specialized form of heading or label, giving the name of one or more speakers in a dramatic text or fragment.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-speaker.html">speaker</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="sponsor" module="MEI.shared"> <desc xml:lang="en">Names of sponsoring individuals, organizations or institutions. Sponsors give their intellectual authority to a project; they are to be distinguished from funders, who provide the funding but do not necessarily take intellectual responsibility.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.evidence"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.respLikePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-sponsor.html">sponsor</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-sponsor">sponsor</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="stack" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">stacked text</gloss> <desc xml:lang="en">An inline table with a single column.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.rendLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="delim" usage="opt"> <desc xml:lang="en">Indicates the delimiter used to mark the portions of text that are to be stacked.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> <attDef ident="align" usage="opt"> <desc xml:lang="en">Specifies how the stacked text components should be aligned.</desc> <valList type="closed"> <valItem ident="left"> <desc xml:lang="en">Left justified.</desc> </valItem> <valItem ident="right"> <desc xml:lang="en">Right justified.</desc> </valItem> <valItem ident="center"> <desc xml:lang="en">Centered.</desc> </valItem> <valItem ident="rightdigit"> <desc xml:lang="en">Aligned on right-most digit.</desc> </valItem> </valList> </attDef> </attList> </elementSpec> <elementSpec ident="staff" module="MEI.shared"> <desc xml:lang="en">A group of equidistant horizontal lines on which notes are placed in order to represent pitch or a grouping element for individual 'strands' of notes, rests, etc. that may or may not actually be rendered on staff lines; that is, both diastematic and non-diastematic signs.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.staff.log"/> <memberOf key="att.staff.vis"/> <memberOf key="att.staff.ges"/> <memberOf key="att.staff.anl"/> <memberOf key="model.staffLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.annotLike"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.milestoneLike.music"/> <rng:ref name="model.relationLike"/> <rng:ref name="model.staffDefLike"/> <rng:ref name="model.staffPart"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <!-- <constraintSpec ident="staffOrganization" scheme="schematron"> <constraint> <sch:rule context="mei:staff"> <sch:assert test="not(descendant::mei:staff)">A staff cannot have staff descendants.</sch:assert> </sch:rule> </constraint> </constraintSpec> --> <constraintSpec ident="checkStaff_n" scheme="schematron"> <constraint> <sch:rule context="mei:staff[@n]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="preceding::mei:staffDef[@n=$thisstaff] or preceding::mei:staff[@n=$thisstaff]/mei:staffDef or mei:staffDef">There must be a preceding staffDef with a matching value of @n, a preceding staff with a matching @n value containing a staffDef, or a staffDef child element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <att>def</att> attribute may be used to create a connection with a <gi scheme="MEI">staffDef</gi> element where logical and visual information about the staff is recorded. Alternatively, the <att>n</att> attribute may be used as a reference to a <gi scheme="MEI">staffDef</gi> element with the same value in its <att>n</att> attribute or the staff may contain a staffDef element that defines it. If neither <att>def</att> nor <att>n</att> attributes are present, then the encoding order of the staves is presumed to match the encoding order of the staff definitions.</p> </remarks> </elementSpec> <elementSpec ident="staffDef" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">staff definition</gloss> <desc xml:lang="en">Container for staff meta-information.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="att.typed"/> <memberOf key="att.staffDef.log"/> <memberOf key="att.staffDef.vis"/> <memberOf key="att.staffDef.ges"/> <memberOf key="att.staffDef.anl"/> <memberOf key="model.staffDefLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.labelLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.instrDefLike"/> <rng:ref name="model.layerDefLike"/> <rng:ref name="model.staffDefPart"/> </rng:choice> </rng:zeroOrMore> <rng:optional> <rng:ref name="ambitus"/> </rng:optional> </content> <constraintSpec ident="Check_staffDefn" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[not(ancestor::mei:staff)]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="@n">StaffDef must have an n attribute.</sch:assert> <sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]"> Either @lines must be present or a preceding staffDef with the same value for @n and @lines must exist.</sch:assert> <sch:assert test="count(mei:clef) + count(mei:clefGrp) < 2">Only one clef or clefGrp is permitted.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_ancestor_staff" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[ancestor::mei:staff and @n]"> <sch:let name="thisstaff" value="@n"/> <sch:assert test="ancestor::mei:staff/@n eq $thisstaff">@n must have the same value as the current staff.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_ancestor_staff_lines" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[ancestor::mei:staff and not(@n)]"> <sch:let name="thisstaff" value="ancestor::mei:staff/@n"/> <sch:assert test="@lines or preceding::mei:staffDef[@n=$thisstaff and @lines]"> Either @lines must be present or a preceding staffDef with matching @n value and @lines must exist.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_clef_position_staffDef" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[@clef.line and @lines]"> <sch:assert test="number(@clef.line) <= number(@lines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_clef_position_staffDef_nolines" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[@clef.line and not(@lines)]"> <sch:let name="thisstaff" value="@n"/> <sch:let name="stafflines" value="preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines"/> <sch:assert test="number(@clef.line) <= number($stafflines)">The clef position must be less than or equal to the number of lines on the staff.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_tab_strings_lines" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[@tab.strings and @lines]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@tab.strings), '\s'))"/> <sch:assert test="$countTokens = @lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_tab_strings_nolines" scheme="schematron"> <constraint> <sch:rule context="mei:staffDef[@tab.strings and not(@lines)]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@tab.strings), '\s'))"/> <sch:let name="thisstaff" value="@n"/> <sch:assert test="$countTokens = preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines">The tab.strings attribute must have the same number of values as there are staff lines.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="Check_lines_color" scheme="schematron"> <constraint> <sch:pattern> <sch:rule context="mei:staffDef[@lines.color and @lines]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@lines.color), '\s'))"/> <sch:assert test="$countTokens = 1 or $countTokens = @lines">The lines.color attribute must have either 1) a single value or 2) the same number of values as there are staff lines.</sch:assert> </sch:rule> <sch:rule context="mei:staffDef[@lines.color and not(@lines)]"> <sch:let name="countTokens" value="count(tokenize(normalize-space(@lines.color), '\s'))"/> <sch:let name="thisstaff" value="@n"/> <sch:assert test="$countTokens = 1 or $countTokens = preceding::mei:staffDef[@n=$thisstaff and @lines][1]/@lines">The lines.color attribute must have either 1) a single value or 2) the same number of values as there are staff lines.</sch:assert> </sch:rule> </sch:pattern> </constraint> </constraintSpec> <constraintSpec ident="Check_staff_ppq_ancestor" scheme="schematron"> <constraint> <sch:pattern> <sch:rule context="mei:staffDef[@ppq][ancestor::mei:scoreDef[@ppq]]"> <sch:let name="staffPPQ" value="@ppq"/> <sch:let name="scorePPQ" value="ancestor::mei:scoreDef[@ppq][1]/@ppq"/> <sch:assert test="($scorePPQ mod $staffPPQ) = 0">The value of ppq must be a factor of the value of ppq on an ancestor scoreDef.</sch:assert> </sch:rule> </sch:pattern> </constraint> </constraintSpec> <constraintSpec ident="Check_staff_ppq_preceding" scheme="schematron"> <constraint> <sch:pattern> <sch:rule context="mei:staffDef[@ppq][preceding::mei:scoreDef[@ppq]]"> <sch:let name="staffPPQ" value="@ppq"/> <sch:let name="scorePPQ" value="preceding::mei:scoreDef[@ppq][1]/@ppq"/> <sch:assert test="($scorePPQ mod $staffPPQ) = 0">The value of ppq must be a factor of the value of ppq on a preceding scoreDef.</sch:assert> </sch:rule> </sch:pattern> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="staffGrp" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">staff group</gloss> <desc xml:lang="en">A group of bracketed or braced staves.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.metadataPointing"/> <memberOf key="att.staffGrp.log"/> <memberOf key="att.staffGrp.vis"/> <memberOf key="att.staffGrp.ges"/> <memberOf key="att.staffGrp.anl"/> <memberOf key="model.staffGrpLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="grpSym"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.labelLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="model.instrDefLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="model.staffGrpLike"/> <rng:ref name="model.staffDefLike"/> </rng:choice> </rng:oneOrMore> <rng:zeroOrMore> <rng:ref name="grpSym"/> </rng:zeroOrMore> </content> <constraintSpec ident="Check_staffGrp_unique_staff_n_values" scheme="schematron"> <constraint> <sch:rule context="mei:staffGrp"> <sch:let name="countstaves" value="count(descendant::mei:staffDef)"/> <sch:let name="countuniqstaves" value="count(distinct-values(descendant::mei:staffDef/@n))"/> <sch:assert test="$countstaves eq $countuniqstaves">Each staffDef must have a unique value for the n attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>System is the more proper name for this concept (Read, p. 37-38). Bracketed staff groups may contain other bracketed or braced staff groups or single staves. See Read, p. 35-38, examples p. 434, 438.</p> </remarks> </elementSpec> <elementSpec ident="syl" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">syllable</gloss> <desc xml:lang="en">Individual lyric syllable.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.syl.log"/> <memberOf key="att.syl.vis"/> <memberOf key="att.syl.ges"/> <memberOf key="att.syl.anl"/> <memberOf key="model.sylLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.appLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Do not confuse this element with the <gi scheme="MEI">syllable</gi> element, which is used to organize neume notation.</p> </remarks> </elementSpec> <elementSpec ident="symbol" module="MEI.shared"> <desc xml:lang="en">A reference to a previously defined symbol.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.symbol.anl"/> <memberOf key="att.symbol.ges"/> <memberOf key="att.symbol.log"/> <memberOf key="att.symbol.vis"/> <memberOf key="model.textPhraseLike.limited"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="symbolDef_symbol_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:symbol[ancestor::mei:symbolDef]"> <sch:assert test="@startid or (@x and @y)">In the symbolDef context, symbol must have either a startid attribute or x and y attributes.</sch:assert> <sch:assert test="@altsym or @glyph.name or @glyph.num">In the symbolDef context, symbol must have one of the following attributes: altsym, glyph.name, or glyph.num.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point, <abbr>e.g.</abbr>, "hotspot", of the symbol may be identified in absolute output coordinate terms using the <att>x</att> and <att>y</att> attributes or relative to another element using the <att>startid</att> attribute. Attributes in the att.visualOffset class may be used to record horizontal, vertical, or time offsets from the absolute coordinates or from the location of the referenced element. The <att>altsym</att> attribute must contain the id of a <gi scheme="MEI">symbolDef</gi> element. The <att>scale</att> attribute indicates that the printed output must be scaled by the specified percentage.</p> </remarks> </elementSpec> <elementSpec ident="tempo" module="MEI.shared"> <desc xml:lang="en">Text and symbols descriptive of tempo, mood, or style, <abbr>e.g.</abbr>, "allarg.", "a tempo", "cantabile", "Moderato", "♩=60", "Moderato ♩ =60").</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.tempo.log"/> <memberOf key="att.tempo.vis"/> <memberOf key="att.tempo.ges"/> <memberOf key="att.tempo.anl"/> <memberOf key="model.controlEventLike"/> <memberOf key="model.workIdent"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="tempo_in_header_disallow_most_attrs" scheme="schematron"> <constraint> <sch:rule context="mei:tempo[not(ancestor::mei:score or ancestor::mei:part)]"> <sch:assert test="not(@*[name() != 'analog' and name() != 'class' and name() != 'label' and name() != 'mm' and name() != 'mm.dots' and name() != 'translit' and name() != 'type' and name() != 'mm.unit' and name() != 'n' and name() != 'xml:base' and name() != 'xml:id' and name() != 'xml:lang'])">Only analog, class, label, mm, mm.dots, mm.unit, n, translit, type, xml:base, xml:id, and xml:lang attributes are allowed when tempo is not a descendant of a score or part.</sch:assert> </sch:rule> </constraint> </constraintSpec> <constraintSpec ident="tempo_start-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:tempo[not(ancestor::mei:syllable) and not(ancestor::mei:work) and not(ancestor::mei:expression) and not(count(ancestor::mei:*) = 0)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real">Must have one of the attributes: startid, tstamp, tstamp.ges or tstamp.real.</sch:assert> </sch:rule> </constraint> </constraintSpec> </elementSpec> <elementSpec ident="term" module="MEI.shared"> <desc xml:lang="en">Keyword or phrase which describes a resource.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.dataPointing"/> <memberOf key="att.lang"/> <memberOf key="model.textPhraseLike.limited"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="Check_term_dataTarget" scheme="schematron"> <constraint> <sch:rule context="mei:term[@data]"> <sch:assert test="ancestor::mei:classification">The @data attribute may only occur on a term which is a descendant of a classification element.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The <gi scheme="MEI">term</gi> element may include other <gi scheme="MEI">term</gi> elements in order to allow the creation of coordinated terms; <abbr>i.e.</abbr>, terms created from a combination of other, independent terms.</p> <p>To associate a term with a taxonomy category defined in the MEI metadata header, the value of <att>class</att> must contain a fragment identifier corresponding to the appropriate <gi scheme="MEI">term</gi> element. To associate a term with category in an externally-defined taxonomy, <att>class</att> must contain an absolute URI, which may include the fragment identifier of the element containing the category label.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-term.html">term</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="textLang" module="MEI.shared"> <gloss versionDate="2022-05-18" xml:lang="en">text language</gloss> <desc xml:lang="en">Identifies the languages and writing systems within the work described by a bibliographic description, not the language of the description.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.biblPart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="lang.main" usage="opt"> <desc xml:lang="en">(main language) supplies a code which identifies the chief language used in the bibliographic work.</desc> <datatype> <rng:data type="language"/> </datatype> </attDef> <attDef ident="lang.other" usage="opt"> <desc xml:lang="en">(other languages) one or more codes identifying any other languages used in the bibliographic work.</desc> <datatype maxOccurs="unbounded"> <rng:data type="language"/> </datatype> </attDef> </attList> </elementSpec> <elementSpec ident="title" module="MEI.shared"> <desc xml:lang="en">Title of a bibliographic entity.</desc> <classes> <memberOf key="att.authorized"/> <memberOf key="att.basic"/> <memberOf key="att.bibl"/> <memberOf key="att.classed"/> <memberOf key="att.facsimile"/> <memberOf key="att.filing"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="model.titleLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="macro.titlePart"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> <rng:ref name="titlePart"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="level" usage="opt"> <desc xml:lang="en">Indicates the bibliographic level of the title.</desc> <valList type="closed"> <valItem ident="a"> <desc xml:lang="en">Analyzed component, such as an article or chapter, within a larger bibliographic entity.</desc> </valItem> <valItem ident="c"> <desc xml:lang="en">Collection. A group of items that were not originally published, distributed, or produced together.</desc> </valItem> <valItem ident="d"> <desc xml:lang="en">Subunit of a collection, <abbr>e.g.</abbr>, item, folder, box, archival series, subgroup, or subcollection.</desc> </valItem> <valItem ident="i"> <desc xml:lang="en">Integrating resource, such as a continuously updated loose-leaf service or Web site.</desc> </valItem> <valItem ident="m"> <desc xml:lang="en">Monograph.</desc> </valItem> <valItem ident="j"> <desc xml:lang="en">Journal.</desc> </valItem> <valItem ident="s"> <desc xml:lang="en">Series.</desc> </valItem> <valItem ident="u"> <desc xml:lang="en">Unpublished (including theses and dissertations unless published by a commercial press).</desc> </valItem> </valList> </attDef> <attDef ident="type" usage="opt"> <desc xml:lang="en">Characterizes the title in some sense, using any convenient classification scheme or typology that employs single-token labels.</desc> <datatype> <rng:data type="NMTOKENS"/> </datatype> <valList type="semi"> <valItem ident="main"> <desc xml:lang="en">Main title.</desc> </valItem> <valItem ident="subordinate"> <desc xml:lang="en">Subtitle or title of part.</desc> </valItem> <valItem ident="abbreviated"> <desc xml:lang="en">Abbreviated form of title.</desc> </valItem> <valItem ident="alternative"> <desc xml:lang="en">Alternate title by which the item is also known.</desc> </valItem> <valItem ident="translated"> <desc xml:lang="en">Translated form of title.</desc> </valItem> <valItem ident="uniform"> <desc xml:lang="en">Collective title.</desc> </valItem> <valItem ident="desc"> <desc xml:lang="en">Descriptive paraphrase of the work.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>type</att> attribute may be used to classify the title according to some convenient typology. Sample values include: main (main title), subordinate (subtitle, title of part), abbreviated (abbreviated form of title), alternative (alternate title by which the work is also known), translated (translated form of title), uniform (collective title), and desc (descriptive title). The <att>type</att> attribute is provided for convenience in analysing titles and processing them according to their type; where such specialized processing is not necessary, there is no need for such analysis, and the entire title, including subtitles and any parallel titles, may be enclosed within a single <gi scheme="MEI">title</gi> element. Title parts may be encoded in <gi scheme="MEI">titlePart</gi> sub-elements. The name of the list from which a controlled value is taken may be recorded using the <att>auth</att> attribute. The number of initial characters (such as those constituting an article or preposition) that should not be used for sorting a title or name may be indicated in the <att>nonfiling</att> attribute.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-title.html">title</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="titlePage" module="MEI.shared"> <desc xml:lang="en">Contains a transcription of the title page of a text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.frontAndBackPart"/> <memberOf key="model.physDescPart"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:oneOrMore> <rng:choice> <rng:ref name="model.figureLike"/> <rng:ref name="model.imprintPart"/> <rng:ref name="model.milestoneLike.text"/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.titlePagePart"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>This element may be used within the <gi scheme="MEI">physDesc</gi> element when no other transcription is provided.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-titlePage.html">titlePage</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="titlePart" module="MEI.shared"> <desc xml:lang="en">Contains a subsection or division of the title of a bibliographic entity.</desc> <classes> <memberOf key="att.authorized"/> <memberOf key="att.basic"/> <memberOf key="att.bibl"/> <memberOf key="att.classed"/> <memberOf key="att.facsimile"/> <memberOf key="att.filing"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.linking"/> <memberOf key="att.nInteger"/> <memberOf key="att.responsibility"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="macro.titlePart"/> <rng:ref name="model.editLike"/> <rng:ref name="model.titleLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="type" usage="opt"> <desc xml:lang="en">Characterizes this title component in some sense, using any convenient classification scheme or typology that employs single-token labels.</desc> <datatype> <rng:data type="NMTOKENS"/> </datatype> <valList type="semi"> <valItem ident="alternative"> <desc xml:lang="en">Alternate title by which the item is also known.</desc> </valItem> <valItem ident="arrangement"> <desc xml:lang="en">Arranged statement for music. Analogous to <abbr>MARC</abbr> 240 subfield o.</desc> </valItem> <valItem ident="carrier"> <desc xml:lang="en">Medium of the carrier. Analogous to <abbr>MARC</abbr> 240 subfield h.</desc> </valItem> <valItem ident="date"> <desc xml:lang="en">Publication/creation date(s) of work. Analogous to <abbr>MARC</abbr> 240 subfield f.</desc> </valItem> <valItem ident="desc"> <desc xml:lang="en">Descriptive paraphrase of the work.</desc> </valItem> <valItem ident="form"> <desc xml:lang="en">Form subheading. Analogous to <abbr>MARC</abbr> 240 subfield k.</desc> </valItem> <valItem ident="key"> <desc xml:lang="en">Key for music. Analogous to <abbr>MARC</abbr> 240 subfield r.</desc> </valItem> <valItem ident="language"> <desc xml:lang="en">Language of a work. Analogous to <abbr>MARC</abbr> 240 subfield l (el).</desc> </valItem> <valItem ident="main"> <desc xml:lang="en">Main title.</desc> </valItem> <valItem ident="name"> <desc xml:lang="en">Name of a part or section of a work. Analogous to <abbr>MARC</abbr> 240 subfield p.</desc> </valItem> <valItem ident="number"> <desc xml:lang="en">Standard number designation of a work or of a part or section of a work. Analogous to <abbr>MARC</abbr> 240 subfield n.</desc> </valItem> <valItem ident="perfmedium"> <desc xml:lang="en">Performance medium. Analogous to <abbr>MARC</abbr> 240 subfield m.</desc> </valItem> <valItem ident="subordinate"> <desc xml:lang="en">Subtitle.</desc> </valItem> <valItem ident="translated"> <desc xml:lang="en">Translated form of title.</desc> </valItem> <valItem ident="version"> <desc xml:lang="en">Version. Analogous to <abbr>MARC</abbr> 240 subfield s.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-titlePart.html">titlePart</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="width" module="MEI.shared"> <desc xml:lang="en">Description of the horizontal size of an object.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.bibl"/> <memberOf key="att.lang"/> <memberOf key="att.quantity"/> <memberOf key="model.dimLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.stringtab"> <moduleSpec ident="MEI.stringtab"> <desc xml:lang="en">Tablature component declarations.</desc> </moduleSpec> <classSpec ident="att.stringtab" module="MEI.stringtab" type="atts"> <desc xml:lang="en">String tablature string and fret information.</desc> <attList> <attDef ident="tab.fing" usage="opt"> <desc xml:lang="en">Indicates which finger, if any, should be used to play an individual string. The index, middle, ring, and little fingers are represented by the values 1-4, while <val>t</val> is for the thumb. The values <val>x</val> and <val>o</val> indicate muffled and open strings, respectively.</desc> <datatype> <rng:ref name="data.FINGER.FRET"/> </datatype> </attDef> <attDef ident="tab.fret" usage="opt"> <desc xml:lang="en">Records the location at which a string should be stopped against a fret.</desc> <datatype> <rng:ref name="data.FRETNUMBER"/> </datatype> </attDef> <attDef ident="tab.string" usage="opt"> <desc xml:lang="en">Records which string is to be played.</desc> <datatype> <rng:ref name="data.STRINGNUMBER"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.stringtab.position" module="MEI.stringtab" type="atts"> <desc xml:lang="en">String tablature position information.</desc> <attList> <attDef ident="tab.pos" usage="opt"> <desc xml:lang="en">Records fret position.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.stringtab.tuning" module="MEI.stringtab" type="atts"> <desc xml:lang="en">String tablature tuning information.</desc> <attList> <attDef ident="tab.strings" usage="opt"> <desc xml:lang="en">Provides a *written* pitch and octave for each open string or course of strings.</desc> <datatype> <rng:list> <rng:oneOrMore> <rng:data type="token"> <rng:param name="pattern">[a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?([a-g][0-9](s|f|ss|x|ff|xs|sx|ts|tf|n|nf|ns|su|sd|fu|fd|nu|nd|1qf|3qf|1qs|3qs)?)*</rng:param> </rng:data> </rng:oneOrMore> </rng:list> </datatype> </attDef> </attList> </classSpec> <elementSpec ident="barre" module="MEI.stringtab"> <desc xml:lang="en">A barre in a chord tablature grid.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.startEndId"/> </classes> <content> <rng:empty/> </content> <attList> <attDef ident="fret" usage="opt"> <desc xml:lang="en">Records the location at which the strings should be stopped against a fret in a fretboard diagram. This may or may not be the same as the actual location on the fretboard of the instrument in performance.</desc> <datatype> <rng:data type="positiveInteger"> <rng:param name="minInclusive">1</rng:param> <rng:param name="maxInclusive">5</rng:param> </rng:data> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>The <att>startid</att> and <att>endid</att> attributes are used to indicate the <gi scheme="MEI">chordMember</gi> elements on which the barre starts and finishes respectively. The fret at which the barre should be created is recorded by the <att>fret</att> attribute.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.text"> <moduleSpec ident="MEI.text"> <desc xml:lang="en">Text component declarations.</desc> </moduleSpec> <classSpec ident="model.backLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements that may contain back matter.</desc> <classes> <memberOf key="macro.musicPart"/> </classes> </classSpec> <classSpec ident="model.divLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements used to represent generic structural divisions of text.</desc> </classSpec> <classSpec ident="model.frontLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements that may contain front matter.</desc> <classes> <memberOf key="macro.musicPart"/> </classes> </classSpec> <classSpec ident="model.lgLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements that have a line-grouping function.</desc> <classes> <memberOf key="model.paracontentPart"/> <memberOf key="model.textComponentLike"/> </classes> </classSpec> <classSpec ident="model.listLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups list-like elements.</desc> <classes> <memberOf key="model.paracontentPart"/> <memberOf key="model.textComponentLike"/> </classes> </classSpec> <classSpec ident="model.lLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements representing metrical components such as verse lines.</desc> </classSpec> <classSpec ident="model.qLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements related to highlighting which can appear at the phrase-level.</desc> <classes> <memberOf key="model.textPhraseLike.limited"/> </classes> </classSpec> <classSpec ident="model.quoteLike" module="MEI.text" type="model"> <desc xml:lang="en">Groups elements used to directly contain quotations.</desc> <classes> <memberOf key="model.paracontentPart"/> <memberOf key="model.textComponentLike"/> </classes> </classSpec> <elementSpec ident="argument" module="MEI.text"> <desc xml:lang="en">Contains a formal list or prose description of topics addressed.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.headLike"/> <rng:ref name="model.milestoneLike.text"/> </rng:choice> </rng:zeroOrMore> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.figureLike"/> <rng:ref name="model.textComponentLike"/> <rng:ref name="sp"/> </rng:choice> <rng:zeroOrMore> <rng:ref name="model.milestoneLike.text"/> </rng:zeroOrMore> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-argument.html">argument</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="back" module="MEI.text"> <gloss versionDate="2022-05-18" xml:lang="en">back matter</gloss> <desc xml:lang="en">Contains any appendixes, advertisements, indexes, etc. following the main body of a musical text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.backLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.divLike"/> <rng:ref name="model.frontAndBackPart"/> <rng:ref name="model.milestoneLike.text"/> <rng:ref name="model.relationLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-back.html">back</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="epigraph" module="MEI.text"> <desc xml:lang="en">Contains a quotation, anonymous or attributed, appearing on a title page.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.paracontentPart"/> <rng:ref name="p"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-epigraph.html">epigraph</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="front" module="MEI.text"> <gloss versionDate="2022-05-18" xml:lang="en">front matter</gloss> <desc xml:lang="en">Bundles prefatory text found before the start of the musical text.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.frontLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.divLike"/> <rng:ref name="model.frontAndBackPart"/> <rng:ref name="model.milestoneLike.text"/> <rng:ref name="model.relationLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p> <gi scheme="MEI">titlePage</gi> may be used to transcribe the item’s title page. Other front matter structures, such as a preface, dedication, or table of contents, may be encoded as textual divisions; that is, as <gi scheme="MEI">div</gi> elements, with an optional <gi scheme="MEI">head</gi> sub-element describing the nature of the division. The <gi scheme="MEI">pb</gi> element is allowed here in order to accommodate page images, <abbr>e.g.</abbr>, cover, endpapers, etc. before and after the actual textual matter.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-front.html">front</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="imprimatur" module="MEI.text"> <desc xml:lang="en">Contains a formal statement authorizing the publication of a work, sometimes required to appear on a title page or its verso.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.metadataPointing"/> <memberOf key="model.titlePagePart"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.paracontentPart"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-imprimatur.html">imprimatur</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="l" module="MEI.text"> <gloss versionDate="2022-05-18" xml:lang="en">line of text</gloss> <desc xml:lang="en">Contains a single line of text within a line group.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.lLike"/> </classes> <content> <rng:choice> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.editLike"/> <rng:ref name="model.sylLike"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </rng:choice> </content> <attList> <attDef ident="rhythm" usage="opt"> <desc xml:lang="en">Used to specify a rhythm for the lyric syllables that differs from that of the notes on the staff, <abbr>e.g.</abbr>, '4,4,4,4' when the rhythm of the notes is '4.,8,4.,8'.</desc> <datatype> <rng:data type="string"/> </datatype> </attDef> </attList> <remarks xml:lang="en"> <p>Do not confuse this element with the <gi scheme="MEI">line</gi> element, which is used for graphical lines that occur in music notation.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-l.html">l</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="li" module="MEI.text"> <gloss versionDate="2022-05-18" xml:lang="en">list item</gloss> <desc xml:lang="en">Single item in a <gi scheme="MEI">list</gi>.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textComponentLike"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-item">item</ref> elements of the Encoded Archival Description (EAD), the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-item.html">item</ref> element of the Text Encoding Initiative (TEI), and the <ref target="https://html.spec.whatwg.org/#the-li-element">li</ref> element of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="list" module="MEI.text"> <desc xml:lang="en">A formatting element that contains a series of items separated from one another and arranged in a linear, often vertical, sequence.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.classed"/> <memberOf key="att.facsimile"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="att.xy"/> <memberOf key="model.listLike"/> </classes> <content> <rng:zeroOrMore> <rng:ref name="model.headLike"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:optional> <rng:ref name="label"/> </rng:optional> <rng:ref name="li"/> </rng:zeroOrMore> </content> <constraintSpec ident="list_type_constraint" scheme="schematron"> <constraint> <sch:rule context="mei:list[contains(@type,'gloss')]"> <sch:assert test="count(mei:label) = count(mei:li)">In a list of type "gloss" all items must be immediately preceded by a label.</sch:assert> </sch:rule> </constraint> </constraintSpec> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Used to indicate the format of a list. In a <val>simple</val> list, <gi scheme="MEI">li</gi> elements are not numbered or bulleted. In a <val>marked</val> list, the sequence of the list items is not critical, and a bullet, box, dash, or other character is displayed at the start of each <gi scheme="MEI">item</gi>. In an <val>ordered</val> list, the sequence of the items is important, and each <gi scheme="MEI">li</gi> is lettered or numbered. Style sheet functions should be used to specify the mark or numeration system for each <gi scheme="MEI">li</gi>.</desc> <valList type="closed"> <valItem ident="simple"> <desc xml:lang="en">Items are not numbered or bulleted.</desc> </valItem> <valItem ident="marked"> <desc xml:lang="en">Bullet, box, dash, or other character is displayed before each item.</desc> </valItem> <valItem ident="ordered"> <desc xml:lang="en">Each item is numbered or lettered.</desc> </valItem> </valList> </attDef> <attDef ident="type" usage="opt"> <desc xml:lang="en">Captures the nature of the content of a list.</desc> <datatype> <rng:data type="NMTOKENS"/> </datatype> <valList type="semi"> <valItem ident="gloss"> <desc xml:lang="en">Each list item glosses some term or concept, which is given by a label element preceding the list item.</desc> </valItem> <valItem ident="index"> <desc xml:lang="en">Each list item is an entry in an index such as the alphabetical topical index at the back of a print volume.</desc> </valItem> <valItem ident="instructions"> <desc xml:lang="en">Each list item is a step in a sequence of instructions, as in a recipe.</desc> </valItem> <valItem ident="litany"> <desc xml:lang="en">Each list item is one of a sequence of petitions, supplications or invocations, typically in a religious ritual.</desc> </valItem> <valItem ident="syllogism"> <desc xml:lang="en">Each list item is part of an argument consisting of two or more propositions and a final conclusion derived from them.</desc> </valItem> </valList> <remarks xml:lang="en"> <p>In a list of type <val>gloss</val> it is a semantic error not to precede each list item with a label.</p> </remarks> </attDef> </attList> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-list">list</ref> element of the Encoded Archival Description (EAD), the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-list.html">list</ref> element of the Text Encoding Initiative (TEI), and the respective elements of <abbr>HTML</abbr>.</p> </remarks> </elementSpec> <elementSpec ident="q" module="MEI.text"> <gloss versionDate="2022-05-18" xml:lang="en">quoted</gloss> <desc xml:lang="en">Contains material which is distinguished from the surrounding phrase-level text using quotation marks or a similar method. Use <gi scheme="MEI">quote</gi> for block-level quotations.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.classed"/> <memberOf key="att.labelled"/> <memberOf key="att.lang"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> <memberOf key="model.qLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike"/> </rng:choice> </rng:zeroOrMore> </content> <attList> <attDef ident="type" usage="opt"> <datatype maxOccurs="unbounded"> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="spoken"> <desc xml:lang="en">Representation of speech.</desc> </valItem> <valItem ident="thought"> <desc xml:lang="en">Representation of thought, <abbr>e.g.</abbr>, internal monologue.</desc> </valItem> <valItem ident="written"> <desc xml:lang="en">Quotation from a written source.</desc> </valItem> <valItem ident="soCalled"> <desc xml:lang="en">Authorial distance.</desc> </valItem> <valItem ident="foreign"> <desc xml:lang="en">Linguistically distinct.</desc> </valItem> <valItem ident="distinct"> <desc xml:lang="en">Linguistically distinct.</desc> </valItem> <valItem ident="term"> <desc xml:lang="en">Technical term.</desc> </valItem> <valItem ident="emph"> <desc xml:lang="en">Rhetorically emphasized.</desc> </valItem> <valItem ident="mentioned"> <desc xml:lang="en">Refering to itself, not its normal referent.</desc> </valItem> </valList> </attDef> </attList> <remarks xml:lang="en"> <p>This element may be used for a variety of reasons including, but not limited to: direct speech or thought, technical terms or jargon, authorial distance, quotations from elsewhere, and passages that are mentioned but not used.</p> <p>Do not confuse this element, used to capture phrase-level quotations, and <gi scheme="MEI">quote</gi>, intended for block quotations.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://html.spec.whatwg.org/#the-q-element">q</ref> element of <abbr>HTML</abbr> and the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-q.html">q</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> <elementSpec ident="quote" module="MEI.text"> <gloss versionDate="2022-05-18" xml:lang="en">quoted material</gloss> <desc xml:lang="en">Contains a paragraph-like block of text attributed to an external source, normally set off from the surrounding text by spacing or other typographic distinction.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.xy"/> <memberOf key="model.quoteLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.paracontentPart"/> <rng:ref name="model.pLike"/> <rng:ref name="sp"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The source for the quote may be included in a <gi scheme="MEI">bibl</gi> sub-element.</p> <p>Do not confuse this element, used to capture block-level quotations, and <gi scheme="MEI">q</gi>, intended for inline quotations.</p> </remarks> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-quote.html">quote</ref> element of the Text Encoding Initiative (TEI) and the <ref target="https://www.loc.gov/ead/EAD3taglib/EAD3-TL-eng.html#elem-quote">quote</ref> element of the Encoded Archival Description (EAD).</p> </remarks> </elementSpec> <elementSpec ident="seg" module="MEI.text"> <gloss versionDate="2023-06-16" xml:lang="en">arbitrary segment</gloss> <desc xml:lang="en">represents any segmentation of text below the "text component" level.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="model.textPhraseLike.limited"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.editLike"/> <rng:ref name="model.sylLike"/> <rng:ref name="model.textPhraseLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>The model of this element is based on the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/ref-seg.html">seg</ref> element of the Text Encoding Initiative (TEI).</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.usersymbols"> <moduleSpec ident="MEI.usersymbols"> <desc xml:lang="en">User-defined symbols component declarations.</desc> </moduleSpec> <classSpec ident="att.altSym" module="MEI.usersymbols" type="atts"> <desc xml:lang="en">Attributes supplying pointers to user-defined symbols.</desc> <attList> <attDef ident="altsym" usage="opt"> <desc xml:lang="en">Provides a way of pointing to a user-defined symbol. It must contain a reference to an ID of a <gi scheme="MEI">symbolDef</gi> element elsewhere in the document.</desc> <datatype> <rng:ref name="data.URI"/> </datatype> <constraintSpec ident="check_altsymTarget" scheme="schematron"> <constraint> <sch:rule context="@altsym"> <sch:assert role="warning" test="not(normalize-space(.) eq '')">@altsym attribute should have content.</sch:assert> <sch:assert role="warning" test="every $i in tokenize(., '\s+') satisfies substring($i,2)=//mei:symbolDef/@xml:id">The value in @altsym should correspond to the @xml:id attribute of a symbolDef element.</sch:assert> <sch:assert test="not(substring(., 2) eq ancestor::mei:symbolDef/@xml:id)">The value in @altsym must not correspond to the @xml:id attribute of a symbolDef ancestor.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> </attList> </classSpec> <classSpec ident="att.anchoredText.log" module="MEI.usersymbols" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.startId"/> </classes> <attList> <attDef ident="func" usage="rec"> <desc xml:lang="en">Indicates the function of the text.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="unknown"> <desc xml:lang="en">The function of the text is unknown.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.curve.log" module="MEI.usersymbols" type="atts"> <desc xml:lang="en">Logical domain attributes.</desc> <classes> <memberOf key="att.startEndId"/> </classes> <attList> <attDef ident="func" usage="rec"> <desc xml:lang="en">Indicates the function of the curve.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="unknown"> <desc xml:lang="en">The function of the curve is unknown.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.line.log" module="MEI.usersymbols" type="atts"> <desc xml:lang="en">Attributes for describing the logical behavior of a line.</desc> <classes> <memberOf key="att.controlEvent"/> <memberOf key="att.duration.additive"/> <memberOf key="att.startEndId"/> <memberOf key="att.timestamp2.log"/> </classes> <attList> <attDef ident="func" usage="rec"> <desc xml:lang="en">Indicates the function of the line.</desc> <datatype> <rng:data type="NMTOKEN"/> </datatype> <valList type="semi"> <valItem ident="coloration"> <desc xml:lang="en">Indicates coloration in material transcribed from a source originally in mensural notation.</desc> </valItem> <valItem ident="ligature"> <desc xml:lang="en">Marks a ligature in material transcribed from a source originally in mensural notation.</desc> </valItem> <valItem ident="unknown"> <desc xml:lang="en">The function of the line is unknown.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="model.graphicPrimitiveLike" module="MEI.usersymbols" type="model"> <desc xml:lang="en">Groups elements that function as drawing primitives.</desc> </classSpec> <classSpec ident="model.symbolTableLike" module="MEI.usersymbols" type="model"> <desc xml:lang="en">Groups elements that group symbol definitions.</desc> </classSpec> <elementSpec ident="anchoredText" module="MEI.usersymbols"> <desc xml:lang="en">Container for text that is fixed to a particular page location, regardless of changes made to the layout of the measures around it.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.lang"/> <memberOf key="att.anchoredText.anl"/> <memberOf key="att.anchoredText.ges"/> <memberOf key="att.anchoredText.log"/> <memberOf key="att.anchoredText.vis"/> <memberOf key="model.graphicPrimitiveLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> <rng:ref name="model.editLike"/> <rng:ref name="model.transcriptionLike"/> </rng:choice> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>This element may be used where semantic markup of the text is neither possible nor desirable, such as in optical music recognition (OMR) applications. The content model here is similar to paragraph without model.textcomponent and <gi scheme="MEI">pb</gi> sub-elements. The starting point of the text may be identified in absolute output coordinate terms using the <att>x</att> and <att>y</att> attributes or relative to the location of another element using the <att>startid</att> attribute. The attributes in the att.visualOffset class may be used to record horizontal, vertical, or time offsets from the absolute coordinates or from the location of the referenced element.</p> </remarks> </elementSpec> <elementSpec ident="curve" module="MEI.usersymbols"> <desc xml:lang="en">A curved line that cannot be represented by a more specific element, such as a slur.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.curve.anl"/> <memberOf key="att.curve.ges"/> <memberOf key="att.curve.log"/> <memberOf key="att.curve.vis"/> <memberOf key="att.facsimile"/> <memberOf key="model.graphicPrimitiveLike"/> </classes> <content> <rng:empty/> </content> <constraintSpec ident="symbolDef_curve_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:curve[ancestor::mei:symbolDef]"> <sch:assert test="@startid or (@x and @y)">In the symbolDef context, curve must have either a startid attribute or x and y attributes.</sch:assert> <sch:assert test="@endid or (@x2 and @y2)">In the symbolDef context, curve must have either an endid attribute or both x2 and y2 attributes.</sch:assert> <sch:assert test="@bezier or @bulge">In the symbolDef context, curve must have either a bezier or bulge attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the curve may be identified in absolute output coordinate terms using the <att>x</att> and <att>y</att> attributes or relative to the location of another element using the <att>startid</att> attribute. The attributes in the att.visualOffset class may be used to record horizontal, vertical, or time offsets from the absolute coordinates or from the location of the referenced element. Similarly, the terminal point of the curve may be recorded using either the <att>x2</att> and <att>y2</att> coordinates or in relation to the location of another element using the <att>endid</att> attribute. Attributes in the att.visualOffset2 class maybe used to record the offsets of the ending point. The <att>bulge</att> attribute or, alternatively, the <att>bezier</att> attribute, describe the shape of the curve and the <att>lform</att> and <att>lwidth</att> attributes capture its appearance.</p> </remarks> </elementSpec> <elementSpec ident="line" module="MEI.usersymbols"> <desc xml:lang="en">A visual line that cannot be represented by a more specific; <abbr>i.e.</abbr>, semantic, element.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.facsimile"/> <memberOf key="att.line.anl"/> <memberOf key="att.line.ges"/> <memberOf key="att.line.log"/> <memberOf key="att.line.vis"/> <memberOf key="model.graphicPrimitiveLike"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="model.textPhraseLike.limited"/> </rng:choice> </rng:zeroOrMore> </content> <constraintSpec ident="line_start-_and_end-type_attributes_required" scheme="schematron"> <constraint> <sch:rule context="mei:line[ancestor::mei:symbolDef]"> <sch:assert test="@startid or (@x and @y)">When used in the symbolDef context, must have either a startid attribute or x and y attributes.</sch:assert> <sch:assert test="@endid or (@x2 and @y2)">When used in the symbolDef context, must have either an endid attribute or both x2 and y2 attributes.</sch:assert> </sch:rule> <sch:rule context="mei:line[not(ancestor::mei:symbolDef)]"> <sch:assert test="@startid or @tstamp or @tstamp.ges or @tstamp.real or (@x and @y)">When used in the score context, must have a startid, tstamp, tstamp.ges or tstamp.real attribute or both x and y attributes.</sch:assert> <sch:assert test="@dur or @dur.ges or @endid or @tstamp2 or (@x2 and @y2)">When used in the score context, must have an endid, dur, dur.ges, or tstamp2 attribute or both x2 and y2 attributes.</sch:assert> </sch:rule> </constraint> </constraintSpec> <remarks xml:lang="en"> <p>The starting point of the line may be identified in absolute output coordinate terms using the <att>x</att> and <att>y</att> attributes. The attributes in the att.visualOffset class may be used to record horizontal, vertical, or time offsets from these absolute coordinates or from the location of the element reference in the <att>startid</att> attribute. Similarly, the terminal point of the line may be recorded using the <att>x2</att> and <att>y2</att> attributes. Attributes in the att.visualOffset2 class maybe used to record the offsets of the ending point. Textual content of the <gi scheme="MEI">line</gi> element, <abbr>e.g.</abbr>, 'gliss.', may be rendered with the line. The appearance of the line is captured in the color, <att>form</att> and <att>width</att> attributes.</p> </remarks> </elementSpec> <elementSpec ident="mapping" module="MEI.usersymbols"> <desc xml:lang="en">One or more characters which are related to the parent symbol in some respect, as specified by the type attribute.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:zeroOrMore> <rng:choice> <rng:text/> <rng:ref name="symbol"/> </rng:choice> </rng:zeroOrMore> </content> </elementSpec> <elementSpec ident="propName" module="MEI.usersymbols"> <gloss versionDate="2022-05-18" xml:lang="en">property name</gloss> <desc xml:lang="en">Name of a property of the symbol.</desc> <classes> <memberOf key="att.basic"/> <memberOf key="att.labelled"/> <memberOf key="att.linking"/> <memberOf key="att.nNumberLike"/> <memberOf key="att.responsibility"/> </classes> <content> <rng:text/> </content> <attList> <attDef ident="type" usage="req"> <desc xml:lang="en">Characterizes the property name.</desc> <valList type="closed"> <valItem ident="unicode"> <desc xml:lang="en">A registered Unicode normative or informative property name.</desc> </valItem> <valItem ident="local"> <desc xml:lang="en">A locally defined name.</desc> </valItem> </valList> </attDef> </attList> </elementSpec> <elementSpec ident="propValue" module="MEI.usersymbols"> <gloss versionDate="2022-05-18" xml:lang="en">property value</gloss> <desc xml:lang="en">A single property value.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="symbolDef" module="MEI.usersymbols"> <gloss versionDate="2022-05-18" xml:lang="en">symbol definition</gloss> <desc xml:lang="en">Declaration of an individual symbol in a symbolTable.</desc> <classes> <memberOf key="att.common"/> <memberOf key="att.coordinated"/> </classes> <content> <rng:optional> <rng:ref name="symName"/> </rng:optional> <rng:zeroOrMore> <rng:ref name="symProp"/> </rng:zeroOrMore> <rng:zeroOrMore> <rng:ref name="mapping"/> </rng:zeroOrMore> <!-- Use either SVG or MEI elements to "draw" the symbol --> <rng:choice> <rng:optional> <rng:ref name="svg_svg"/> </rng:optional> <rng:zeroOrMore> <rng:choice> <rng:ref name="model.graphicPrimitiveLike"/> <rng:ref name="symbol"/> <rng:ref name="graphic"/> </rng:choice> </rng:zeroOrMore> </rng:choice> <rng:zeroOrMore> <rng:ref name="model.annotLike"/> </rng:zeroOrMore> </content> <remarks xml:lang="en"> <p>Like a chord table, a symbolTable may be shared between MEI instances through the use of an external parsed entity containing the symbolTable to be shared.</p> </remarks> </elementSpec> <elementSpec ident="symName" module="MEI.usersymbols"> <gloss versionDate="2022-05-18" xml:lang="en">symbol name</gloss> <desc xml:lang="en">Contains the name of a symbol, expressed following Unicode conventions.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:text/> </content> </elementSpec> <elementSpec ident="symProp" module="MEI.usersymbols"> <gloss versionDate="2022-05-18" xml:lang="en">symbol property</gloss> <desc xml:lang="en">Provides a name and value for some property of the parent symbol.</desc> <classes> <memberOf key="att.common"/> </classes> <content> <rng:ref name="propName"/> <rng:ref name="propValue"/> </content> </elementSpec> <elementSpec ident="symbolTable" module="MEI.usersymbols"> <desc xml:lang="en">Contains a set of user-defined symbols.</desc> <classes> <memberOf key="att.common"/> <memberOf key="model.symbolTableLike"/> </classes> <content> <rng:oneOrMore> <rng:ref name="symbolDef"/> </rng:oneOrMore> </content> <remarks xml:lang="en"> <p>Like a chord table, a symbolTable may be shared between mei instances through the use of an external parsed entity containing the symbolTable to be shared.</p> </remarks> </elementSpec> </specGrp> <!-- NOTICE: Copyright (c) 2017-2023 by the Music Encoding Initiative (MEI) Board (formerly known as "MEI Council"). Licensed under the Educational Community License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://opensource.org/licenses/ECL-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. This is a derivative work based on earlier versions of the schema © 2001-2006 Perry Roland and the Rector and Visitors of the University of Virginia; licensed under the Educational Community License version 1.0. CONTACT: info@music-encoding.org --><specGrp xml:id="module.MEI.visual"> <moduleSpec ident="MEI.visual"> <desc xml:lang="en">Visual component declarations.</desc> </moduleSpec> <classSpec ident="att.accid.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.placementOnStaff"/> <memberOf key="att.placementRelEvent"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.visualOffset.vo"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.ambitus.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.ambNote.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.noteHeads"/> <memberOf key="att.staffLoc"/> <memberOf key="att.stems"/> <memberOf key="att.typography"/> </classes> </classSpec> <classSpec ident="att.anchoredText.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.annot.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <attList> <attDef ident="place" usage="opt"> <desc xml:lang="en">Location of the annotation.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.PLACEMENT"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.arpeg.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="arrow" usage="opt"> <desc xml:lang="en">Indicates if an arrowhead is to be drawn as part of the arpeggiation symbol.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="arrow.shape" usage="opt"> <desc xml:lang="en">Symbol rendered at end of the line.</desc> <datatype> <rng:ref name="data.LINESTARTENDSYMBOL"/> </datatype> </attDef> <attDef ident="arrow.size" usage="opt"> <desc xml:lang="en">Holds the relative size of the arrow symbol.</desc> <datatype> <rng:ref name="data.FONTSIZESCALE"/> </datatype> </attDef> <attDef ident="arrow.color" usage="opt"> <desc xml:lang="en">Captures the overall color of the arrow.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> <attDef ident="arrow.fillcolor" usage="opt"> <desc xml:lang="en">Captures the fill color of the arrow if different from the line color.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.artic.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.placementOnStaff"/> <memberOf key="att.placementRelEvent"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.attacca.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.barLine.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.visibility"/> <memberOf key="att.width"/> </classes> <attList> <attDef ident="len" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">length</gloss> <desc xml:lang="en">States the length of bar lines in virtual units. The value must be greater than 0 and is typically equal to 2 times (the number of staff lines - 1); <abbr>e.g.</abbr>, a value of <val>8</val> for a 5-line staff.</desc> <datatype> <rng:data type="decimal"> <rng:param name="minExclusive">0</rng:param> </rng:data> </datatype> <remarks xml:lang="en"> <p>This attribute is ignored if the value of the style attribute is <val>mensur</val>.</p> </remarks> </attDef> <attDef ident="method" usage="opt"> <desc xml:lang="en">Records the method of barring.</desc> <datatype> <rng:ref name="data.BARMETHOD"/> </datatype> </attDef> <attDef ident="place" usage="opt"> <desc xml:lang="en">Denotes the staff location of the bar line if its length is non-standard.</desc> <datatype> <rng:ref name="data.STAFFLOC"/> </datatype> <remarks xml:lang="en"> <p>The location may include staff lines, the spaces between the lines, and the spaces directly above and below the staff. The value ranges between 0 (just below the staff) to 2 * number of staff lines (directly above the staff). For example, on a 5-line staff the lines would be numbered 1, 3, 5, 7, and 9 while the spaces would be numbered 0, 2, 4, 6, 8, and 10. So, a value of <val>9</val> puts the bar line through the top line of the staff.</p> <p>This attribute is ignored if the value of the style attribute is <val>mensur</val>.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.beam.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.cue"/> <memberOf key="att.beamRend"/> <memberOf key="att.visibility"/> </classes> </classSpec> <classSpec ident="att.beaming.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Used by layerDef, staffDef, and scoreDef to provide default values for attributes in the visual domain related to beaming.</desc> <attList> <attDef ident="beam.color" usage="opt"> <desc xml:lang="en">Color of beams, including those associated with tuplets.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> <attDef ident="beam.rend" usage="opt"> <desc xml:lang="en">Encodes whether a beam is "feathered" and in which direction.</desc> <valList type="closed"> <valItem ident="acc"> <desc xml:lang="en">Beam lines grow farther apart from left to right.</desc> </valItem> <valItem ident="rit"> <desc xml:lang="en">Beam lines grow closer together from left to right.</desc> </valItem> <valItem ident="norm"> <desc xml:lang="en">Beam lines are equally-spaced over the entire length of the beam.</desc> </valItem> </valList> </attDef> <attDef ident="beam.slope" usage="opt"> <desc xml:lang="en">Captures beam slope.</desc> <datatype> <rng:data type="decimal"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.beamSpan.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.beam.vis"/> </classes> </classSpec> <classSpec ident="att.beatRpt.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.expandable"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> </classes> <attList> <attDef ident="slash" usage="req"> <desc xml:lang="en">Indicates the number of slashes required to render the appropriate beat repeat symbol. When a single beat consisting of a single note or chord is repeated, the repetition symbol is a single thick, slanting slash; therefore, the value <val>1</val> should be used. When the beat is divided into even notes, the following values should be used: 4ths or 8ths=1, 16ths=2, 32nds=3, 64ths=4, 128ths=5. When the beat is comprised of mixed duration values, the default rendition is 2 slashes and 2 dots.</desc> <datatype> <rng:ref name="data.BEATRPT.REND"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.bend.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes. If the bulge or bezier attributes are present, the bend should be rendered as a curve. Otherwise, it should be rendered using lines. The ho and vo attributes describe the visual offset of the entire rendered bend. The endho, endvo and startho, startvo attribute pairs may be used to encode start and end points relative to their programmatic placement. For exact placement of the endpoints of the bend, use the x and y attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.curvature"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> </classSpec> <classSpec ident="att.bracketSpan.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.lineRend"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> </classSpec> <classSpec ident="att.breath.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.bTrem.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.numberPlacement"/> </classes> </classSpec> <classSpec ident="att.caesura.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.chord.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes for chord. The slur, slur.dir, slur.rend, tie, tie.dir, and tie.rend attributes here are syntactic sugar for these attributes on each of the chord's individual notes. The values here apply to all the notes in the chord. If some notes are slurred or tied while others aren't, then the individual note attributes must be used.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.stems"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.visualOffset.to"/> <memberOf key="att.xy"/> <memberOf key="att.chord.vis.cmn"/> </classes> <attList> <attDef ident="cluster" usage="opt"> <desc xml:lang="en">Indicates a single, alternative note head should be displayed instead of individual note heads. The highest and lowest notes of the chord usually indicate the upper and lower boundaries of the cluster note head.</desc> <datatype> <rng:ref name="data.CLUSTER"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.chordDef.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.chordMember.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.clef.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset"/> </classes> </classSpec> <classSpec ident="att.cleffing.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to clefs.</desc> <attList> <attDef ident="clef.color" usage="opt"> <desc xml:lang="en">Describes the color of the clef.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> <attDef ident="clef.visible" usage="opt"> <desc xml:lang="en">Determines whether the clef is to be displayed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.clefGrp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.cpMark.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.curvatureDirection" module="MEI.visual" type="atts"> <desc xml:lang="en">Attributes describing the direction of curvature.</desc> <attList> <attDef ident="curve" usage="opt"> <desc xml:lang="en">Records direction of curvature.</desc> <valList type="closed"> <valItem ident="a"> <desc xml:lang="en">Anti-clockwise curvature.</desc> </valItem> <valItem ident="c"> <desc xml:lang="en">Clockwise curvature.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.curve.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.curvature"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> </classSpec> <classSpec ident="att.custos.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset.ho"/> </classes> </classSpec> <classSpec ident="att.mdiv.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.dir.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.dot.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.visualOffset.vo"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.dynam.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.ending.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.lineRend"/> </classes> </classSpec> <classSpec ident="att.episema.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> <attList> <!-- Use @tilt here instead of @form? --> <attDef ident="form" usage="rec"> <valList type="closed"> <valItem ident="h"> <desc xml:lang="en">Horizontal stroke.</desc> </valItem> <valItem ident="v"> <desc xml:lang="en">Vertical stroke.</desc> </valItem> </valList> </attDef> <attDef ident="place" usage="rec"> <desc xml:lang="en">Captures the placement of the episema with respect to the neume or neume component with which it is associated.</desc> <datatype> <rng:ref name="data.EVENTREL"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.f.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> <remarks xml:lang="en"> <p>If <att>tstamp2</att> is not provided, then the extender should be drawn based on the value of <att>tstamp2</att> on the harm ancestor.</p> </remarks> </classSpec> <classSpec ident="att.fermata.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Describes the visual appearance of the fermata; that is, whether it occurs as upright or inverted.</desc> <valList type="closed"> <valItem ident="inv"> <desc xml:lang="en">Inverted, <abbr>i.e.</abbr>, curve or bracket below the dot.</desc> </valItem> <valItem ident="norm"> <desc xml:lang="en">Upright; <abbr>i.e.</abbr>, curve or bracket above the dot.</desc> </valItem> </valList> </attDef> <attDef ident="shape" usage="opt"> <desc xml:lang="en">Describes the visual appearance of the fermata; that is, whether it has a curved, square, or angular shape.</desc> <valList type="closed"> <valItem ident="curved"> <desc xml:lang="en">A curve above or below the dot.</desc> </valItem> <valItem ident="square"> <desc xml:lang="en">A bracket above or below the dot.</desc> </valItem> <valItem ident="angular"> <desc xml:lang="en">A triangle above or below the dot.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.fing.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> <remarks xml:lang="en"> <p>If <att>tstamp2</att> is not provided, then the extender should be drawn based on the value of <att>tstamp2</att> on a fingering ancestor.</p> </remarks> </classSpec> <classSpec ident="att.fingGrp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="orient" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">orientation</gloss> <valList type="closed"> <valItem ident="horiz"> <desc xml:lang="en">Combination expressed horizontally, as for brass instruments.</desc> </valItem> <valItem ident="vert"> <desc xml:lang="en">Combination expressed vertically, as for woodwind instruments or piano.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.fTrem.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <attList> <attDef ident="beams" usage="opt"> <desc xml:lang="en">Indicates the number of beams present.</desc> <datatype> <rng:data type="positiveInteger"> <rng:param name="minInclusive">1</rng:param> <rng:param name="maxInclusive">6</rng:param> </rng:data> </datatype> </attDef> <attDef ident="beams.float" usage="opt"> <desc xml:lang="en">Captures the number of "floating" beams, <abbr>i.e.</abbr>, those not attached to stems.</desc> <datatype> <rng:data type="nonNegativeInteger"/> </datatype> <constraintSpec ident="check_beams.floating" scheme="schematron"> <constraint> <sch:rule context="mei:fTrem[@beams and @beams.float]"> <sch:assert test="@beams.float <= @beams">The number of floating beams must be less than or equal to the total number of beams.</sch:assert> </sch:rule> </constraint> </constraintSpec> </attDef> <attDef ident="float.gap" usage="opt"> <desc xml:lang="en">Records the amount of separation between floating beams and stems.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.gliss.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> <memberOf key="att.lineRend"/> </classes> </classSpec> <classSpec ident="att.graceGrp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> </classes> </classSpec> <classSpec ident="att.guitarGrid.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes</desc> <attList> <attDef ident="grid.show" usage="opt"> <desc xml:lang="en">Determines whether to display guitar chord grids.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.grpSym.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.hairpin.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes. The startho and startvo attributes record the horizontal and vertical offsets of the left end, endho and endvo record the horizontal and vertical offsets of the right end, and the opening attribute records the width of the opening in staff inter-line units. The x and y attributes give the absolute coordinates of the left end point, and x2 and y2 the right end point, of an imaginary line that defines the length of the hairpin and horizontally bifurcates it. The so-called "pitch" of hairpin may be controlled by use of the startho, endho, startvo, and endvo attributes, while the placement of the entire rendered mark may be controlled by use of the ho and vo attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> <attList> <attDef ident="opening" usage="opt"> <desc xml:lang="en">Specifies the distance between the lines at the open end of a hairpin dynamic mark.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="closed" usage="opt"> <desc xml:lang="en">Applies to a "Rossini" hairpin, i.e., one where the normally open side is closed by a connecting line.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="opening.vertical" usage="opt"> <desc xml:lang="en">Indicates that the opening points are aligned with an imaginary line that is always 90° perpendicular to the horizontal plane, regardless of any angle or start/end adjustments, including when the hairpin is angled with @angle.optimize or through @endvo/@startvo adjustments.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="angle.optimize" usage="opt"> <desc xml:lang="en">Indicates that the slope of the hairpin can be adjusted to follow the content in order to optimize spacing.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.halfmRpt.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.expandable"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> </classes> </classSpec> <classSpec ident="att.harm.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="rendgrid" usage="opt"> <desc xml:lang="en">Describes how the harmonic indication should be rendered.</desc> <valList type="closed"> <valItem ident="grid"> <desc xml:lang="en">Chord tablature grid.</desc> </valItem> <valItem ident="gridtext"> <desc xml:lang="en">Chord tablature grid and the element’s textual content.</desc> </valItem> <valItem ident="text"> <desc xml:lang="en">Textual content of the element.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.harpPedal.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.hispanTick.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="place" usage="rec"> <desc xml:lang="en">Captures the placement of the tick mark with respect to the neume or neume component with which it is associated.</desc> <datatype> <rng:ref name="data.EVENTREL"/> </datatype> </attDef> <attDef ident="tilt" usage="rec"> <desc xml:lang="en">Direction toward which the mark points.</desc> <datatype> <rng:ref name="data.COMPASSDIRECTION"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.instrDef.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.keyAccid.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.keySig.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.visibility"/> </classes> <attList> <attDef ident="cancelaccid" usage="opt"> <desc xml:lang="en">Determines where cautionary accidentals should be displayed at a key change.</desc> <datatype> <rng:ref name="data.CANCELACCID"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.keySigDefault.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to key signatures.</desc> <attList> <attDef ident="keysig.cancelaccid" usage="opt"> <desc xml:lang="en">Determines where cautionary accidentals should be displayed at a key change.</desc> <datatype> <rng:ref name="data.CANCELACCID"/> </datatype> </attDef> <attDef ident="keysig.visible" usage="opt"> <desc xml:lang="en">Determines whether the key signature is to be displayed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.layer.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.visibility"/> </classes> </classSpec> <classSpec ident="att.layerDef.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.beaming.vis"/> <memberOf key="att.textStyle"/> <memberOf key="att.visibility"/> </classes> </classSpec> <classSpec ident="att.ligature.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Provides an indication of the function of the ligature.</desc> <datatype> <rng:ref name="data.LIGATUREFORM"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.line.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Attributes for describing the visual appearance of a line.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Visual form of the line.</desc> <datatype> <rng:ref name="data.LINEFORM"/> </datatype> </attDef> <!-- @length not necessary: @length implies we know the direction of the vector which we can't know without establishing an end point, which in turn makes @length redundant. --> <attDef ident="width" usage="opt"> <desc xml:lang="en">Width of the line.</desc> <datatype> <rng:ref name="data.LINEWIDTH"/> </datatype> </attDef> <!-- additional visual characteristics of the line --> <attDef ident="endsym" usage="opt"> <desc xml:lang="en">Symbol rendered at end of line.</desc> <datatype> <rng:ref name="data.LINESTARTENDSYMBOL"/> </datatype> </attDef> <attDef ident="endsym.size" usage="opt"> <desc xml:lang="en">Holds the relative size of the line-end symbol.</desc> <datatype> <rng:ref name="data.FONTSIZESCALE"/> </datatype> </attDef> <!-- Possible addition: <attDef ident="segments" usage="opt"> <desc xml:lang="en">Stores the number of segments used to render a dashed, dotted, or wavy line.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> --> <attDef ident="startsym" usage="opt"> <desc xml:lang="en">Symbol rendered at start of line.</desc> <datatype> <rng:ref name="data.LINESTARTENDSYMBOL"/> </datatype> </attDef> <attDef ident="startsym.size" usage="opt"> <desc xml:lang="en">Holds the relative size of the line-start symbol.</desc> <datatype> <rng:ref name="data.FONTSIZESCALE"/> </datatype> </attDef> <!-- Possible addition: <attDef ident="waveheight" usage="opt"> <desc xml:lang="en">Captures the wave height of a wavy line.</desc> <datatype> <rng:ref name="data.MEASUREMENT"/> </datatype> </attDef> --> </attList> </classSpec> <classSpec ident="att.liquescent.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.curvatureDirection"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="looped" usage="opt"> <desc xml:lang="en">Indicates whether curve is closed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.lv.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes. The vo attribute is the vertical offset (from its normal position) of the entire rendered tie. The startho, startvo, endho, and endvo attributes describe the horizontal and vertical offsets of the start and end points of the sign in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines. Startto and endto describe the start and end points in terms of time; that is, beats.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.curvature"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> </classSpec> <classSpec ident="att.lyrics.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> </classes> </classSpec> <classSpec ident="att.measure.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.barring"/> <memberOf key="att.width"/> </classes> </classSpec> <classSpec ident="att.mensur.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes. These attributes describe the physical appearance of the mensuration sign/time signature of mensural notation.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.slashCount"/> </classes> <attList> <attDef ident="dot" usage="opt"> <desc xml:lang="en">Specifies whether a dot is to be added to the base symbol.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="form" usage="opt"> <desc xml:lang="en">Indicates whether the base symbol is written vertically or horizontally.</desc> <valList type="closed"> <valItem ident="horizontal"> <desc xml:lang="en">Horizontally oriented.</desc> </valItem> <valItem ident="vertical"> <desc xml:lang="en">Vertically oriented.</desc> </valItem> </valList> </attDef> <attDef ident="orient" usage="opt"> <desc xml:lang="en">Describes the rotation or reflection of the base symbol.</desc> <datatype> <rng:ref name="data.ORIENTATION"/> </datatype> </attDef> <attDef ident="sign" usage="opt"> <desc xml:lang="en">The base symbol in the mensuration sign/time signature of mensural notation.</desc> <datatype> <rng:ref name="data.MENSURATIONSIGN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.mensural.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to mensuration.</desc> <attList> <attDef ident="mensur.color" usage="opt"> <desc xml:lang="en">Records the color of the mensuration sign. Do not confuse this with the musical term 'color' as used in pre-CMN notation.</desc> <datatype> <rng:ref name="data.COLOR"/> </datatype> </attDef> <attDef ident="mensur.dot" usage="opt"> <desc xml:lang="en">Determines if a dot is to be added to the base symbol.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="mensur.form" usage="opt"> <desc xml:lang="en">Indicates whether the base symbol is written vertically or horizontally.</desc> <valList type="closed"> <valItem ident="horizontal"> <desc xml:lang="en">Horizontally oriented.</desc> </valItem> <valItem ident="vertical"> <desc xml:lang="en">Vertically oriented.</desc> </valItem> </valList> </attDef> <attDef ident="mensur.loc" usage="opt"> <desc xml:lang="en">Holds the staff location of the mensuration sign.</desc> <datatype> <rng:ref name="data.STAFFLOC"/> </datatype> </attDef> <attDef ident="mensur.orient" usage="opt"> <desc xml:lang="en">Describes the rotation or reflection of the base symbol.</desc> <datatype> <rng:ref name="data.ORIENTATION"/> </datatype> </attDef> <attDef ident="mensur.sign" usage="opt"> <desc xml:lang="en">The base symbol in the mensuration sign/time signature of mensural notation.</desc> <datatype> <rng:ref name="data.MENSURATIONSIGN"/> </datatype> </attDef> <attDef ident="mensur.size" usage="opt"> <desc xml:lang="en">Describes the relative size of the mensuration sign.</desc> <datatype> <rng:ref name="data.FONTSIZE"/> </datatype> </attDef> <attDef ident="mensur.slash" usage="opt"> <desc xml:lang="en">Indicates the number lines added to the mensuration sign. For example, one slash is added for what we now call 'alla breve'.</desc> <datatype> <rng:data type="positiveInteger"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.metaMark.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.placementRelStaff"/> </classes> </classSpec> <classSpec ident="att.meterSig.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Contains an indication of how the meter signature should be rendered.</desc> <datatype> <rng:ref name="data.METERFORM"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meterSigDefault.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Used by staffDef and scoreDef to provide default values for attributes in the visual domain related to meter signature.</desc> <attList> <attDef ident="meter.form" usage="opt"> <desc xml:lang="en">Contains an indication of how the meter signature should be rendered.</desc> <datatype> <rng:ref name="data.METERFORM"/> </datatype> </attDef> <attDef ident="meter.showchange" usage="opt"> <desc xml:lang="en">Determines whether the old meter signature should be displayed when the meter signature changes.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="meter.visible" usage="opt"> <desc xml:lang="en">Determines whether the meter signature is to be displayed.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.meterSigGrp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.mNum.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.mordent.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> </classes> </classSpec> <classSpec ident="att.mRest.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.cutout"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.mRpt.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.expandable"/> <memberOf key="att.extSym"/> <memberOf key="att.numberPlacement"/> <memberOf key="att.typography"/> </classes> </classSpec> <classSpec ident="att.mRpt2.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.expandable"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> </classes> </classSpec> <classSpec ident="att.mSpace.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.cutout"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.multiRest.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.numberPlacement"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.width"/> </classes> <attList> <attDef ident="block" usage="opt"> <desc xml:lang="en">The block attribute controls whether the multimeasure rest should be rendered as a block rest or as church rests ("Kirchenpausen"), that are combinations of longa, breve and semibreve rests.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.multiRpt.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.expandable"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> </classes> </classSpec> <classSpec ident="att.nc.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.ncForm"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.ncGrp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.neume.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.note.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.noteHeads"/> <memberOf key="att.staffLoc"/> <memberOf key="att.stems"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.visualOffset.to"/> <memberOf key="att.xy"/> <memberOf key="att.note.vis.cmn"/> <memberOf key="att.note.vis.mensural"/> </classes> </classSpec> <classSpec ident="att.octave.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.extender"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.oriscus.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.ornam.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.ossia.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.pad.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.part.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.parts.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.pb.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <attList> <attDef ident="folium" usage="opt"> <desc xml:lang="en">States the side of a leaf (as in a manuscript) on which the content following the <gi scheme="MEI">pb</gi> element occurs.</desc> <valList type="closed"> <valItem ident="verso"> <desc xml:lang="en">The back of a manuscript page.</desc> </valItem> <valItem ident="recto"> <desc xml:lang="en">The front of a manuscript page.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.pedal.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes. The place attribute captures the placement of the pedal marking with respect to the staff with which it is associated. Modern publishing standards require the place to be <val>below</val>; however, for transcriptions of manuscript works, this attribute class allows the full range of values.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.lineRend"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Determines whether piano pedal marks should be rendered as lines or as terms.</desc> <datatype> <rng:ref name="data.PEDALSTYLE"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.phrase.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> <memberOf key="att.phrase.vis.cmn"/> </classes> </classSpec> <classSpec ident="att.plica.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes that describe the properties of a plica stem in the mensural repertoire.</desc> <attList> <attDef ident="dir" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">direction</gloss> <desc xml:lang="en">Describes the direction of a stem.</desc> <datatype> <rng:ref name="data.STEMDIRECTION.basic"/> </datatype> </attDef> <attDef ident="len" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">length</gloss> <desc xml:lang="en">Encodes the stem length.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.proport.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> </classes> </classSpec> <classSpec ident="att.quilisma.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="waves" usage="opt"> <desc xml:lang="en">Number of "crests" of a wavy line.</desc> <datatype> <rng:data type="positiveInteger"> <rng:param name="minInclusive">2</rng:param> <rng:param name="maxInclusive">4</rng:param> </rng:data> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.rdg.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.refrain.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset.to"/> <memberOf key="att.visualOffset.vo"/> <memberOf key="att.voltaGroupingSym"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.reh.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.repeatMark.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.extender"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.rest.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.rest.vis.cmn"/> <memberOf key="att.rest.vis.mensural"/> <memberOf key="att.staffLoc"/> <memberOf key="att.staffLoc.pitched"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.sb.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> </classes> <attList> <attDef ident="form" usage="opt"> <desc xml:lang="en">Indicates whether hash marks should be rendered between systems. See Read, p. 436, ex. 26-3.</desc> <valList type="closed"> <valItem ident="hash"> <desc xml:lang="en">Display hash marks between systems.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.score.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.scoreDef.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes for scoreDef in the CMN repertoire.</desc> <classes> <memberOf key="att.barring"/> <memberOf key="att.cleffing.vis"/> <memberOf key="att.distances"/> <memberOf key="att.endings"/> <memberOf key="att.keySigDefault.vis"/> <memberOf key="att.lyricStyle"/> <memberOf key="att.measureNumbers"/> <memberOf key="att.meterSigDefault.vis"/> <memberOf key="att.multinumMeasures"/> <memberOf key="att.notationStyle"/> <memberOf key="att.oneLineStaff"/> <memberOf key="att.optimization"/> <memberOf key="att.pages"/> <memberOf key="att.spacing"/> <memberOf key="att.staffItems"/> <memberOf key="att.systems"/> <memberOf key="att.textStyle"/> <memberOf key="att.scoreDef.vis.cmn"/> <memberOf key="att.scoreDef.vis.mensural"/> </classes> <attList> <attDef ident="vu.height" usage="opt"> <desc xml:lang="en">Defines the height of a "virtual unit" (vu) in terms of real-world units. A single vu is half the distance between adjacent staff lines where the interline space is measured from the middle of a staff line.</desc> <datatype> <rng:data type="token"> <!-- px and vu are *not* allowed here because they're not real-world units --> <rng:param name="pattern">\d+(\.\d+)?(cm|mm|in|pt|pc)</rng:param> </rng:data> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.section.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <attList> <attDef ident="restart" usage="opt"> <desc xml:lang="en">Indicates that staves begin again with this section.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.signifLet.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> <attList> <attDef ident="place" usage="rec"> <desc xml:lang="en">Captures the placement of the sequence of characters with respect to the neume or neume component with which it is associated.</desc> <datatype> <rng:ref name="data.EVENTREL"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.slur.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes for slur. The vo attribute is the vertical offset (from its normal position) of the entire rendered slur/phrase mark.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.curvature"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> </classSpec> <classSpec ident="att.sp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.space.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.cutout"/> </classes> <attList> <attDef ident="compressable" usage="opt"> <desc xml:lang="en">Indicates whether a space is 'compressible', <abbr>i.e.</abbr>, if it may be removed at the discretion of processing software.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staff.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.visibility"/> </classes> </classSpec> <classSpec ident="att.staffDef.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes for staffDef.</desc> <classes> <memberOf key="att.barring"/> <memberOf key="att.cleffing.vis"/> <memberOf key="att.distances"/> <memberOf key="att.guitarGrid.vis"/> <memberOf key="att.keySigDefault.vis"/> <memberOf key="att.lyricStyle"/> <memberOf key="att.meterSigDefault.vis"/> <memberOf key="att.multinumMeasures"/> <memberOf key="att.notationStyle"/> <memberOf key="att.oneLineStaff"/> <memberOf key="att.scalable"/> <memberOf key="att.staffItems"/> <memberOf key="att.textStyle"/> <memberOf key="att.visibility"/> <memberOf key="att.staffDef.vis.cmn"/> <memberOf key="att.staffDef.vis.mensural"/> </classes> <attList> <attDef ident="layerscheme" usage="opt"> <desc xml:lang="en">Indicates the number of layers and their stem directions.</desc> <datatype> <rng:ref name="data.LAYERSCHEME"/> </datatype> </attDef> <attDef ident="lines.color" usage="opt"> <desc xml:lang="en">Captures the colors of the staff lines.</desc> <datatype maxOccurs="unbounded"> <rng:ref name="data.COLOR"/> </datatype> <remarks xml:lang="en"> <p>The value is structured; that is, it should contain a single color value or have the same number of space-separated values as the number of lines indicated by the lines attribute. The first value then applies to the lowest line of the staff.</p> <p>All values from data.COLOR are allowed.</p> </remarks> </attDef> <attDef ident="lines.visible" usage="opt"> <desc xml:lang="en">Records whether all staff lines are visible.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="spacing" usage="opt"> <desc xml:lang="en">Records the absolute distance (as opposed to the relative distances recorded in <gi scheme="MEI">scoreDef</gi> elements) between this staff and the preceding one in the same system. This value is meaningless for the first staff in a system since the spacing.system attribute indicates the spacing between systems.</desc> <datatype> <rng:ref name="data.MEASUREMENTSIGNED"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.staffGrp.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.barring"/> <memberOf key="att.staffGroupingSym"/> <memberOf key="att.visibility"/> </classes> <attList> <attDef ident="bar.thru" usage="opt"> <gloss versionDate="2022-10-18" xml:lang="en">bar lines through</gloss> <desc xml:lang="en">Indicates whether bar lines go across the space between staves (true) or are only drawn across the lines of each staff (false).</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> <remarks xml:lang="en"> <p>This attribute is ignored when the <att>bar.method</att> attribute’s value is <val>mensur</val> or <val>takt</val>.</p> </remarks> </attDef> </attList> </classSpec> <classSpec ident="att.stageDir.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.placementRelStaff"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.stem.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes that describe the properties of a stem in the mensural repertoire.</desc> <classes> <memberOf key="att.xy"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.visibility"/> </classes> <attList> <attDef ident="pos" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">position</gloss> <desc xml:lang="en">Records the position of the stem in relation to the note head(s).</desc> <datatype> <rng:ref name="data.STEMPOSITION"/> </datatype> </attDef> <attDef ident="len" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">length</gloss> <desc xml:lang="en">Encodes the stem length.</desc> <datatype> <rng:ref name="data.MEASUREMENTUNSIGNED"/> </datatype> </attDef> <attDef ident="form" usage="opt"> <desc xml:lang="en">Encodes the form of the stem using the values provided by the data.STEMFORM.mensural datatype.</desc> <datatype> <rng:ref name="data.STEMFORM.mensural"/> </datatype> </attDef> <attDef ident="dir" usage="opt"> <gloss versionDate="2022-10-30" xml:lang="en">direction</gloss> <desc xml:lang="en">Describes the direction of a stem.</desc> <datatype> <rng:ref name="data.STEMDIRECTION"/> </datatype> </attDef> <attDef ident="flag.pos" usage="opt"> <desc xml:lang="en">Records the position of the flag using the values provided by the data.FLAGPOS.mensural datatype.</desc> <datatype> <rng:ref name="data.FLAGPOS.mensural"/> </datatype> </attDef> <attDef ident="flag.form" usage="opt"> <desc xml:lang="en">Encodes the form of the flag using the values provided by the data.FLAGFORM.mensural datatype.</desc> <datatype> <rng:ref name="data.FLAGFORM.mensural"/> </datatype> </attDef> </attList> </classSpec> <classSpec ident="att.strophicus.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.staffLoc"/> <memberOf key="att.typography"/> <memberOf key="att.visibility"/> <memberOf key="att.visualOffset.ho"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.syl.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> <memberOf key="att.horizontalAlign"/> </classes> <!-- Is this constraint true in all cases? --> <!-- <constraintSpec ident="check_sylAncestor" scheme="schematron"> <constraint> <sch:rule context="mei:syl[@place]"> <sch:assert test="not(ancestor::mei:verse or ancestor::mei:refrain)">When syl is a descendant of a verse or refrain element, it cannot have a @place attribute.</sch:assert> </sch:rule> </constraint> </constraintSpec> --> </classSpec> <classSpec ident="att.syllable.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> </classSpec> <classSpec ident="att.symbol.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.extSym"/> <memberOf key="att.scalable"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.tempo.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.verticalGroup"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.tie.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes. The vo attribute is the vertical offset (from its normal position) of the entire rendered tie. The startho, startvo, endho, and endvo attributes describe the horizontal and vertical offsets of the start and end points of the tie in terms of staff interline distance; that is, in units of 1/2 the distance between adjacent staff lines. Startto and endto describe the start and end points in terms of time; that is, beats.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.curvature"/> <memberOf key="att.lineRend.base"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2"/> <memberOf key="att.xy"/> <memberOf key="att.xy2"/> </classes> </classSpec> <classSpec ident="att.trill.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extender"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.extSym"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.visualOffset2.ho"/> <memberOf key="att.visualOffset2.to"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.tuplet.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.numberPlacement"/> </classes> <attList> <attDef ident="bracket.place" usage="opt"> <desc xml:lang="en">Used to state where a tuplet bracket will be placed in relation to the note heads.</desc> <datatype> <rng:ref name="data.STAFFREL.basic"/> </datatype> </attDef> <attDef ident="bracket.visible" usage="opt"> <desc xml:lang="en">States whether a bracket should be rendered with a tuplet.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="dur.visible" usage="opt"> <desc xml:lang="en">Determines if the tuplet duration is visible.</desc> <datatype> <rng:ref name="data.BOOLEAN"/> </datatype> </attDef> <attDef ident="num.format" usage="opt"> <desc xml:lang="en">Controls how the num:numbase ratio is to be displayed.</desc> <valList type="closed"> <valItem ident="count"> <desc xml:lang="en">Only the num attribute is displayed, <abbr>e.g.</abbr>, '7'.</desc> </valItem> <valItem ident="ratio"> <desc xml:lang="en">Both the num and numbase attributes are displayed, <abbr>e.g.</abbr>, '7:4'.</desc> </valItem> </valList> </attDef> </attList> </classSpec> <classSpec ident="att.tupletSpan.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.tuplet.vis"/> </classes> </classSpec> <classSpec ident="att.turn.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.altSym"/> <memberOf key="att.color"/> <memberOf key="att.enclosingChars"/> <memberOf key="att.extSym"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.verse.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.placementRelStaff"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset.to"/> <memberOf key="att.visualOffset.vo"/> <memberOf key="att.voltaGroupingSym"/> <memberOf key="att.xy"/> </classes> </classSpec> <classSpec ident="att.volta.vis" module="MEI.visual" type="atts"> <desc xml:lang="en">Visual domain attributes.</desc> <classes> <memberOf key="att.color"/> <memberOf key="att.typography"/> <memberOf key="att.visualOffset.to"/> <memberOf key="att.visualOffset.vo"/> <memberOf key="att.xy"/> </classes> </classSpec> </specGrp> </schemaSpec> </div> </back> </text> </TEI>