home *** CD-ROM | disk | FTP | other *** search
/ Audio Version 4.94 / audioversion4.94knowledgemediaresourcelibraryoctober1994.iso / unix / midi_doc / smdl_tch < prev    next >
Text File  |  1993-02-08  |  103KB  |  2,964 lines

  1.  
  2.                     X3V1.8M/SD-7 Journal of Development
  3.                     Standard Music Description Language
  4.            Part Two: Technical Description and Formal Definition
  5.           Editor: Alan D. Talbot, New England Digital Corporation
  6.                                June 4, 1988
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.                                June 16, 1988
  60.  
  61.  
  62.  
  63.  
  64.  
  65.                                    - 2 -
  66.  
  67.  
  68.  
  69. CONTENTS
  70.  
  71. 0       Introduction                                                    4
  72.         0.1     Purpose of the Document                                 4
  73.         0.2     Development Methodology                                 4
  74.         0.3     Editorial Conventions                                   5
  75. 1       Scope and Field of Application                                  5
  76.         1.1     Scope                                                   5
  77.         1.2     Field of Application                                    6
  78. 3       References                                                      6
  79. 4       Definitions                                                     6
  80. 5       Notation                                                        8
  81. 6       Structure and Content                                           8
  82. 7       Work                                                            9
  83.         7.1     Work Segment                                            10
  84.         7.2     Work Segment Reference                                  11
  85. 8       Core                                                            11
  86.         8.1     Thread                                                  12
  87.         8.1.1   Core Event Sequence                                     13
  88.         8.1.2   Core Event Group                                        14
  89.         8.1.3   Core Events                                             14
  90.         8.1.3.1 Notes and Rests                                         14
  91.         8.1.3.2 Graced Events                                           15
  92.         8.1.3.3 Special Events                                          16
  93.         8.1.4   Core Event References                                   16
  94.         8.2     Time                                                    16
  95.         8.2.1   Beat                                                    16
  96.         8.2.2   Duration                                                17
  97.         8.3     Stress                                                  17
  98.         8.3.1   Beat Number                                             17
  99.         8.3.2   Stresses                                                18
  100.         8.3.3   Meter                                                   18
  101.         8.4     Tempo Sequence                                          18
  102.         8.4.1   Tempo                                                   18
  103. 9       Gestural Domain                                                 20
  104.         9.1     Track                                                   21
  105.         9.1.1   Gestural Event Sequence                                 21
  106.         9.1.2   Gestural Event Group                                    21
  107.         9.1.3   Gestural Event                                          22
  108.         9.1.4   Gestural Event Reference                                22
  109.         9.2     Click Track                                             22
  110. 10      Visual Domain                                                   23
  111.         10.1    Part                                                    23
  112.         10.1.1  Visual Event Sequence                                   24
  113.         10.1.2  Visual Event Group                                      24
  114.         10.1.3  Visual Event                                            24
  115.         10.1.4  Visual Event Reference                                  25
  116.         10.2    Space                                                   25
  117. 11      Analytical Domain                                               25
  118.         11.1    Voice                                                   26
  119.         11.1.1  Analytical Event Sequence                               26
  120.         11.1.2  Analytical Event Group                                  27
  121.         11.1.3  Analytical Event                                        27
  122.  
  123.  
  124.  
  125.                                June 16, 1988
  126.  
  127.  
  128.  
  129.  
  130.  
  131.                                    - 3 -
  132.  
  133.  
  134.         11.1.4  Analytical Event Reference                              27
  135. 12      Bibliographic                                                   27
  136.         12.1    Theme                                                   28
  137. 13      Conformance                                                     28
  138. Annex A                                                                 30
  139. Annex B                                                                 40
  140.         B.1     General Application                                     40
  141. Annex C                                                                 42
  142.         C.1     Definitions                                             42
  143.         C.2     Structure                                               42
  144.         C.3     Segregation                                             42
  145.         C.4     Language                                                43
  146. Annex D                                                                 44
  147.         D.1     Structure                                               44
  148.         D.2     Punctuation                                             44
  149. Annex E                                                                 45
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.                                June 16, 1988
  192.  
  193.  
  194.  
  195.  
  196.  
  197.                                    - 4 -
  198.  
  199.  
  200. 0 Introduction
  201.  
  202.      This is the second part of a two part document describing the work  of
  203.      ANSI  X3V1.8M,  the  Music  Information Processing Standards Committee
  204.      (MIPS). The parts are known collectively as the  Journal  of  Develop-
  205.      ment.
  206.  
  207.      "Part One: Objectives and Methodology" describes the objectives of the
  208.      project and the development methodology employed.
  209.  
  210.      "Part Two: Technical Description and Formal Definition" describes  the
  211.      language design itself, and provides a formal definition.
  212.  
  213.      This document and the other Standing Documents comprise the output  of
  214.      the committee, while the other documents and material presented at the
  215.      meetings provide the input.
  216.  
  217.           NOTES
  218.  
  219.      1.   The Journal of Development is maintained in  two  parts  only  to
  220.           facilitate  maintenance  by  separate  individuals; the two parts
  221.           should always be read as a single document. There is much in Part
  222.           Two, for example, that may seem confusing or contentious if it is
  223.           not read in the context established by Part One.
  224.  
  225.      2.   This introduction  appears  in  both  parts  of  the  Journal  of
  226.           Development.
  227.  
  228.      3.   General information about the MIPS committee, including  a  guide
  229.           to  participation, can be found in committee document X3V1.8M/SD-
  230.           0.
  231.  
  232. 0.1 Purpose of the Document
  233.  
  234.      The Journal of Development describes the status of the Standard  Music
  235.      Description  Language  (SMDL) being developed by the Music Information
  236.      Processing Standards (MIPS) Committee. It is intended as the technical
  237.      and  methodological  design specification which will ultimately evolve
  238.      into a Standard.
  239.  
  240. 0.2 Development Methodology
  241.  
  242.      Both parts are revised by their respective editors after each  meeting
  243.      of  the  committee.   As  a result, the documents never represent text
  244.      that has been agreed on in detail by the committee, but only the  edi-
  245.      tors'  best  efforts  to express the committee's ideas.  Moreover, the
  246.      ideas in the journal are subject to further study and revision and  do
  247.      not represent a final design.
  248.  
  249.      Eventually, the design work will reach a point where  all  aspects  of
  250.      the  language have been addressed, although not necessarily finalized.
  251.      At that point, the Journal of Development will cease to be the vehicle
  252.      that  expresses  the  current language design.  Instead, the committee
  253.      will produce one or more successive "working  drafts",  consisting  of
  254.  
  255.  
  256.  
  257.                                June 16, 1988
  258.  
  259.  
  260.  
  261.  
  262.  
  263.                                    - 5 -
  264.  
  265.  
  266.      text that has been agreed to.
  267.  
  268.      During the Journal of Development and  working  draft  stages,  public
  269.      comment  is  sought and considered, but the process is informal. When,
  270.      eventually, the committee is satisfied with a working draft,  it  will
  271.      recommend that X3V1.8 process the document as a "draft proposed Ameri-
  272.      can National Standard". There  will  then  commence  a  formal  public
  273.      review  and  ballot,  during  which  all  comments  received  will  be
  274.      responded to in writing.
  275.  
  276. 0.3 Editorial Conventions
  277.  
  278.      Formal standards can be complex documents in which every word has both
  279.      legal and technical significance.  They may also need to be translated
  280.      into other languages.  For these reasons, editorial  conventions  have
  281.      been  established  to  assure precision, accuracy, and clarity (albeit
  282.      often at the expense of readability by the general public).   The  key
  283.      principles are:
  284.  
  285.      1.   Precise and consistent definitions of terms.
  286.  
  287.      2.   Distinguishing real requirements from mere  commentary,  explana-
  288.           tions, and examples -- and from definitions.
  289.  
  290.      3.   Avoidance of redundancy.  (Repetition of a  requirement  is  nor-
  291.           mally  expressed  as  a note, to avoid the question of which text
  292.           governs if the "repetition" is imperfect.)
  293.  
  294.      Part Two of the Journal of Development observes some of the  editorial
  295.      conventions  of a formal standard, but not yet with the strictness and
  296.      consistency that will be required in the final document.  (See Annex C
  297.      of Part 2 for details.)
  298.  
  299. 1 Scope and Field of Application
  300.  
  301.      This section defines the range of applicability of  the  Standard.  It
  302.      specifies  the  limits  of  what  the  Standard  can  be  expected  to
  303.      represent, and what is outside the design criteria.
  304.  
  305.      NOTE: In order to proceed in a timely fashion, we found  it  necessary
  306.      to  choose  a  subset of all possible music for the scope of the Stan-
  307.      dard. As the design matures, we expect to expand the scope to meet any
  308.      further needs of its users.
  309.  
  310. 1.1 Scope
  311.  
  312.      This Standard defines a  language  for  the  representation  of  music
  313.      information,  either  alone, or in conjunction with text, graphics, or
  314.      other information needed for publishing  or  business  purposes.   The
  315.      language  is  known  as  the "Standard Music Description Language", or
  316.      "SMDL".
  317.  
  318.      NOTE: The Standard Music Description Language is an  SGML  application
  319.      conforming  to International Standard ISO 8879 -- Standard Generalized
  320.  
  321.  
  322.  
  323.                                June 16, 1988
  324.  
  325.  
  326.  
  327.  
  328.  
  329.                                    - 6 -
  330.  
  331.  
  332.      Markup Language.
  333.  
  334.      The SMDL is capable of representing  many  (but  not  all)  genres  of
  335.      music,  and most (but not necessarily all) instances of works in those
  336.      genres.  The  primary  focus  is  on  music  that  can  reasonably  be
  337.      expressed in Standard Western Musical Notation.
  338.  
  339.      NOTE: The scope as defined  should  encompass  the  vast  majority  of
  340.      music.   It  does  not  exclude the use of special symbols that can be
  341.      placed in the score, nor of modern notational practices. The only cri-
  342.      terion  is  that  the music be capable of representation as notes on a
  343.      staff, regardless of whether it was actually written down that way, or
  344.      even written down at all.
  345.  
  346.      The SMDL is designed for flexibility and extensibility. There  are  no
  347.      technical  prohibitions against the use of some components without the
  348.      whole, or against the use of user-defined  components  in  conjunction
  349.      with  standardized  ones.  The  Standard includes a conformance clause
  350.      that identifies minimum and higher  levels  of  support  in  terms  of
  351.      standardized language components and options for user extensions.
  352.  
  353. 1.2 Field of Application
  354.  
  355.      Pieces that are composed on computer devices,  pieces  that  exist  as
  356.      printed scores, pieces that are performances recorded in a manner that
  357.      permits machine transcription, and pieces that are already represented
  358.      in  some  language,  are  all  within the field of application of this
  359.      Standard.
  360.  
  361.      Pieces that have other sources, such as digital audio recordings,  can
  362.      be associated and synchronized with pieces described in SMDL. They can
  363.      exist as elements in the same document as SMDL works,  but  will  have
  364.      their  own  representation  (document type definition and data content
  365.      notations).
  366.  
  367. 3 References
  368.  
  369.      ISO 8879, Information processing -- Text and office systems  --  Stan-
  370.      dard Generalized Markup Language (SGML).
  371.  
  372.      X3V1.8M/SD-6 Journal of  Development  --  Standard  Music  Description
  373.      Language -- Part One: Objectives and Methodology
  374.  
  375. 4 Definitions
  376.  
  377.      The following items are used in a number of places in the text but are
  378.      not explicitly defined. They are essential to the understanding of the
  379.      Standard, and many have been assigned meanings which differ from  com-
  380.      mon usage.
  381.  
  382.      4.1  analytical domain: The portion of a  work  which  contains  music
  383.      theoretical analyses.
  384.  
  385.      4.2  analysis: A music theoretical analysis of the piece,  such  as  a
  386.  
  387.  
  388.  
  389.                                June 16, 1988
  390.  
  391.  
  392.  
  393.  
  394.  
  395.                                    - 7 -
  396.  
  397.  
  398.      Shenkerian  analysis. An examination of the piece as opposed to a ren-
  399.      dition of the piece.
  400.  
  401.      4.3  beat: A relative time unit that is used for  measuring  durations
  402.      in the core.
  403.  
  404.      NOTE: It should be the "felt" beat (tactus) if  known.  Otherwise,  it
  405.      can  be chosen for convenience; for example, the smallest or most com-
  406.      mon note value in the piece (i.e., 1/4, 1/8, 1/16, etc.)
  407.  
  408.      4.4  bibliographic data: Identification information  used  to  catalog
  409.      and archive pieces of music (or any other works.)
  410.  
  411.      4.5  core: The portion of a work that represents the basis of  all  of
  412.      the  performances,  scores, and analyses. The logical musical material
  413.      as opposed to the performance or score specific material.
  414.  
  415.      NOTE: The core can be thought of mechanistically  as  the  information
  416.      which  is  most convenient to share in common among the other domains,
  417.      and among multiple instances in the same domain.  Philosophically,  it
  418.      can  be  thought  of  as the information that is necessary (and in the
  419.      case of conventional Western music,  sufficient)  to  distinguish  the
  420.      piece from all others.
  421.  
  422.      4.6  gestural domain: The portion of a work that represents live  per-
  423.      formance data such as precise timing and dynamic fluctuation.
  424.  
  425.      4.7  logical: The basic musical content of a piece of music,  such  as
  426.      the  time values, pitch values, and basic groupings such as chords and
  427.      tuplets.
  428.  
  429.      4.8  logical domain: The core.
  430.  
  431.      4.9  markup minimization: The elimination of redundant verbiage in the
  432.      actual representation of a work.
  433.  
  434.      NOTE: SGML has been designed to allow this to happen naturally, so  it
  435.      is not necessary to consider it in the initial design of the Standard.
  436.  
  437.      4.10 MIPS: Music  Information  Processing  Standards  Committee;  ANSI
  438.      X3V1.8M.
  439.  
  440.      4.11 performance: A particular  realization  of  a  piece,  either  by
  441.      mechanical means or by a musician.
  442.  
  443.      4.12 piece: A musical composition.
  444.  
  445.      4.13 real time unit: The basic unit of measurement of time in a  work;
  446.      the smallest representable division of time.
  447.  
  448.      4.14 SGML:  Standard  Generalized  Markup  Language;  a  text   markup
  449.      language and structured design tool. SGML is an International Standard
  450.      and is fully defined and described in ISO 8879-1986.
  451.  
  452.  
  453.  
  454.  
  455.                                June 16, 1988
  456.  
  457.  
  458.  
  459.  
  460.  
  461.                                    - 8 -
  462.  
  463.  
  464.      4.15 SMDL: Standard Music Description Language; this Standard.
  465.  
  466.      4.16 score: A printed piece of music; an edition.
  467.  
  468.      4.17 tuplet: A group of notes which occur in a  different  time  frame
  469.      than the surrounding notes; a time anomaly.
  470.  
  471.      NOTE: A triplet, a quintuplet, and a duplet in compound meter are  all
  472.      tuplets.
  473.  
  474.      4.18 visual domain: The portion of a work which represents the  score;
  475.      the music engraving information.
  476.  
  477.      4.19 work: The SMDL representation of a piece.
  478.  
  479.      NOTE: A work has four domains: core, gestural, visual, and analytical.
  480.      In  addition,  bibliographic data can be associated with the work as a
  481.      whole or with instances of any of the domains.
  482.  
  483. 5 Notation
  484.  
  485.      This Standard is expected to be an SGML application, and the  develop-
  486.      ment  is  proceding  using SGML as a design tool. For this reason, the
  487.      formal syntactic and structural definitions in this  document  are  in
  488.      SGML.  A brief discussion of SGML syntax and semantics can be found in
  489.      Annex D. A complete and definitive treatise on SGML is  found  in  ISO
  490.      8879-1986.
  491.  
  492.      It is intended that the text describing  each  element  and  attribute
  493.      will be a complete definition and explanation, but the formal language
  494.      of the SGML coding provides the rigorous  definitions  underlying  the
  495.      text  descriptions,  and will show the mechanism behind each technique
  496.      that is presented. For this reason, excerpts of the SGML encoding have
  497.      been interspersed with the text at strategic points. It is recommended
  498.      that the reader refer to the SGML in the text and  in  Annex  A  while
  499.      reading the technical definitions.
  500.  
  501.      NOTE: In the case of conflict between the SGML excerpts  in  the  text
  502.      and  the  formal  specification  in  Annex A, the SGML in Annex A will
  503.      govern.
  504.  
  505. 6 Structure and Content
  506.  
  507.      The Standard will be based on a hierarchical structure which describes
  508.      a  piece in terms of four basic sections: the underlying musical form,
  509.      a set of performances (presumably to be reproduced by  a  machine),  a
  510.      set  of  scores  in the form of Standard Western Music Notation, and a
  511.      set of theoretical analyses. We feel this structure best reflects  the
  512.      conceptual  divisions  inherent in music in light of the uses to which
  513.      the Standard will be put. These divisions may not represent the philo-
  514.      sophically  most  elegant approach to the expression of musical ideas,
  515.      but we feel they will they will be maximally useful.  This  separation
  516.      of  the  whole  into  performance and score, and the extraction of the
  517.      logical musical concepts, seems an  unavoidable  outcome  of  the  way
  518.  
  519.  
  520.  
  521.                                June 16, 1988
  522.  
  523.  
  524.  
  525.  
  526.  
  527.                                    - 9 -
  528.  
  529.  
  530.      music  has come to be performed and notated, and has long been present
  531.      in Western music.
  532.  
  533.      This hierarchical structure will be codified  in  terms  of  elements.
  534.      Elements  are  basic structural building blocks which provide a frame-
  535.      work and a means to relate and collect information. Each element has a
  536.      related  information  set consisting of attributes. These will contain
  537.      much of the actual data, as the element itself is  basically  a  place
  538.      holder.  For  instance,  an  event  is an element, and may represent a
  539.      note, in which case it will have attributes  describing  pitch,  dura-
  540.      tion,  and  possibly  dynamic  level. Attributes can be defined by the
  541.      user as well as the designer. This allows almost unlimited flexibility
  542.      in  representing unusual material that may not have been foreseen dur-
  543.      ing the design.
  544.  
  545.      The representational scheme is based on the separation  of  the  basic
  546.      musical content (pitch, rhythm, harmony, etc.) from the purely perfor-
  547.      mance oriented information (intonation, rhythmic  interpretation)  and
  548.      the  purely  score oriented information (page layout, horizontal spac-
  549.      ing, clef). This means simply that some process  or  machine  must  be
  550.      able  to  separate  the  work into one or more of these categories for
  551.      this Standard to represent  it.  (These  divisions  are  discussed  in
  552.      detail  in  the  following clauses.) This is not to say that the piece
  553.      must originate in a separated form, only that it can be separated  for
  554.      the  purpose of encoding in the Standard. While it is possible to ima-
  555.      gine pieces which are not separable in this way, almost all  works  in
  556.      all genres are in fact easily separable.
  557.  
  558. 7 Work
  559.  
  560.      NOTE: This and the following clauses are devoted to a detailed defini-
  561.      tion  of  each  element  of the structure, and the information it con-
  562.      tains. (A description of the applications of these elements  is  found
  563.      in  Annex  B.)  Some  of  the  attributes  have  been  defined and are
  564.      described below, but some have not yet been addressed. The  assumption
  565.      is that every element will have an attribute list, containing at least
  566.      an identification mark for reference by  other  elements.   Additional
  567.      items  will be added to the attribute list as they are defined, but in
  568.      the interests of top down design, we are concentrating on the  overall
  569.      structure first, leaving the myriad and obfuscating details for later.
  570.  
  571.      The work is the top level of the hierarchy. The work  encompasses  the
  572.      entire  document,  and  is defined as the logical musical information,
  573.      and all of the performances, scores, and analyses that stem from  that
  574.      musical  information. If a "piece" actually has several versions which
  575.      differ in basic ways, those versions must each be a separate work. All
  576.      of the remaining elements are contained within the work.
  577.  
  578.      The source is an attribute of a work which  indicates  what  form  the
  579.      piece originated from. It distinguishes between a piece which was cap-
  580.      tured from a MIDI stream, a piece which was  entered  from  a  printed
  581.      score,  and a piece which was composed and entered as logical informa-
  582.      tion.
  583.  
  584.  
  585.  
  586.  
  587.                                June 16, 1988
  588.  
  589.  
  590.  
  591.  
  592.  
  593.                                   - 10 -
  594.  
  595.  
  596.      The composer analysis attribute, if  present,  indicates  an  analysis
  597.      which was created by the composer.
  598.  
  599.      NOTE: The intent is to label that information which is  definitive  as
  600.      opposed to that which represents an opinion.
  601.  
  602.      The rtu base is a time reference which specifies the order  of  magni-
  603.      tude  of  the timing in the work. It specifies the number of real time
  604.      units (rtu) per second.
  605.  
  606.      NOTE: The intent is to allow a wide range of  pieces  to  be  realized
  607.      with  an  implementation  of limited precision. If 32 bits are used to
  608.      hold time values, for instance, setting rtubase to 1 will  give  about
  609.      100  years  of  time  measurable  to  1 second accuracy. Setting it to
  610.      1,000,000 will give about 1 hour at 1 microsecond accuracy.
  611.  
  612.                      <!-- 7  Work as a Whole -->
  613.      <!ELEMENT work     -- Musical composition, piece, etc. --
  614.                         - -      (bibdata?, workseg+, analysis*) >
  615.      <!ATTLIST work     source   -- Origin of this representation of the work --
  616.                                  (core | analysis | perform | score) #REQUIRED
  617.                         companal -- Composer's analysis (may include core-like
  618.                                  controlling factors that distinguish the work)--
  619.                                  IDREF    #IMPLIED -- ID of analysis --
  620.                         rtubase  -- Real Time Units per second (0=100,000,000) --
  621.                                  NUMBER   10000 >
  622.  
  623.  
  624. 7.1 Work Segment
  625.  
  626.      The work segment is a structural device for dividing  the  work  along
  627.      major  boundaries.  Workseg  is  defined  self-referentially  so  that
  628.      repetitions and other constructs can be easily represented.
  629.  
  630.      Movements of a symphony would be placed in separate segments, as would
  631.      acts in an opera or any other divisions that affect all aspects of the
  632.      piece (i.e. all parts, all instruments, etc.) The segment will also be
  633.      used  for  making  global  changes such as key changes, time signature
  634.      changes and instrumentation changes. If the piece changes key or  time
  635.      signature, that often affects every part and instrument, and indicates
  636.      a major turning point in the music. In such cases, the material before
  637.      the  change  should  be  in  one  segment,  and  the material after in
  638.      another.
  639.  
  640.      One very important use of the work segment will be in cases where  the
  641.      instrumentation  changes. If the piece starts out with full orchestra,
  642.      and later proceeds with only strings, then two segments should be used
  643.      to  separate  the  sections. This will greatly assist in maintaining a
  644.      useful relationship between the threads in the core, the parts in  the
  645.      score, and the tracks in the performance.
  646.  
  647.      Another use is to indicate the composer's intent. If the  composer  or
  648.      the editor wants a major division in the work, the work segment can be
  649.      used to indicate the division even though none of the above situations
  650.  
  651.  
  652.  
  653.                                June 16, 1988
  654.  
  655.  
  656.  
  657.  
  658.  
  659.                                   - 11 -
  660.  
  661.  
  662.      apply.
  663.  
  664.      The class is a label indicating the use of the workseg. It is coded as
  665.      a text string, not as a machine interpretable value.
  666.  
  667.      The delay indicates the expected pause (if any)  between  the  workseg
  668.      and  any  following  workseg.  It  is coded as a text string, not as a
  669.      machine interpretable value.
  670.  
  671.  
  672.                       <!-- 7.1  Work Segment -->
  673.      <!ELEMENT workseg  -- Sequential segment of a work: movement, act, etc. --
  674.                         O O      ((workseg, (workseg | worksegr)+) |
  675.                                  (bibdata?, core, perform*, score*)) >
  676.      <!ATTLIST workseg  id       ID       #IMPLIED
  677.                         class    -- E.g., movement, section, coda --
  678.                                  CDATA    #IMPLIED  -- don't care --
  679.                         delay    -- E.g., 15 minute intermission --
  680.                                  CDATA    #IMPLIED  -- don't care -- >
  681.  
  682.  
  683. 7.2 Work Segment Reference
  684.  
  685.      The work segment reference is a structural tool to allow a  work  seg-
  686.      ment  to  reference  other work segments. This provides flexibility in
  687.      creating repeats and loops, and allows analyses to refer to work  seg-
  688.      ments.
  689.  
  690.  
  691.                       <!-- 7.2  Work Segment Reference -->
  692.      <!ELEMENT worksegr -- Work segment reference --
  693.                         - O      EMPTY    >
  694.      <!ATTLIST worksegr idr      IDREF    #REQUIRED -- ID of any work segment -- >
  695.  
  696.  
  697. 8 Core
  698.  
  699.      The core is the basis for a work, and a work  has  one  and  only  one
  700.      core.   The  core contains such information as pitch, note value, har-
  701.      monic groupings, phrasings, tuplets, etc. A piece for which a core  is
  702.      not  producible can not be represented, and a piece with more than one
  703.      core must be represented as more than one work. We will see,  however,
  704.      that several interpretations of the same basic piece can reside in the
  705.      same work if they derive from the same core.
  706.  
  707.      Let us take the example of a simple piano piece. We have a performance
  708.      captured by a MIDI sequencer, and the score from which the performance
  709.      was played. The core will contain an element for each note and rest in
  710.      the  score,  thus  representing the logical basis of the work. A given
  711.      measure in the core may contain no notes, and the  corresponding  spot
  712.      in the score may say "ad lib". At that point in the performance, there
  713.      are several improvised notes. It is possible that another  performance
  714.      with  a different improvised section, and another score which specifi-
  715.      cally details a cadenza, might be included in this work and  be  based
  716.  
  717.  
  718.  
  719.                                June 16, 1988
  720.  
  721.  
  722.  
  723.  
  724.  
  725.                                   - 12 -
  726.  
  727.  
  728.      on the same core.
  729.  
  730.      The normalized attribute states whether the core has been  normalized.
  731.      It  may often be desirable that the core have a canonical (normalized)
  732.      form.  That is, that there be one particular form which will always be
  733.      used for a given piece. (Note that the definition of the core does not
  734.      provide orthoganality, so there are many ways that a given piece could
  735.      be  represented.)  For  such  situations,  an algorithm can be applied
  736.      which translates any arbitrary core into a given canonical  form.  The
  737.      user may create such an algorithm to fit the needs of the application,
  738.      or the Standard Canonical Form can be  generated  using  the  Standard
  739.      Algorithm.   We  plan to provide this Standard Algorithm both as a way
  740.      of providing consistency between applications and as a model for other
  741.      algorithms.
  742.  
  743.      The normalization algorithm attribute states which algorithm has  been
  744.      used to normalize the core. If "standard" is used, it is expected that
  745.      implementations will access the Standard Algorithm. If  another  algo-
  746.      rithm  is  used  it  can be identified here, and may be implementation
  747.      specific.
  748.  
  749.  
  750.                            <!-- 8  Core -->
  751.      <!ELEMENT core     -- The essential music, common to all domains --
  752.                         - O      (stress*, temposeq+, thread+) >
  753.      <!ATTLIST core     norm     -- Is core timing normalized? (7.5) --
  754.                                  (norm | nonnorm) nonnorm >
  755.  
  756.  
  757. 8.1 Thread
  758.  
  759.      The thread is a sequence of musical events which lasts for  the  dura-
  760.      tion  of  the piece. It is analogous to a track in a sequencer or on a
  761.      multi-track tape deck. The purpose of the thread is to allow the  core
  762.      to  be  sectioned  into  concurrent streams of notes and other events,
  763.      mostly for the sake of convenience. There is no assumption made  about
  764.      how  the  piece  will be divided into threads, but logic suggests that
  765.      parts in a score, tracks in a sequence, or voices would  be  the  best
  766.      choices of thread allocation.
  767.  
  768.      The tempo sequence attribute indicates which tempo sequence is  to  be
  769.      used for this thread.
  770.  
  771.      The nominal instrument attribute records for posterity the  instrument
  772.      that  the  composer  had in mind (in case anybody cares.) The point is
  773.      that the gestural section, which contains the timbral information, may
  774.      be  an interpretation by someone other than the composer. This will be
  775.      encoded as a text string, not as coded timbral data such as  is  found
  776.      in the gestural section.
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.                                June 16, 1988
  786.  
  787.  
  788.  
  789.  
  790.  
  791.                                   - 13 -
  792.  
  793.  
  794.  
  795.  
  796.                          <!-- 8.1  Thread -->
  797.      <!ELEMENT thread   -- Voice-like time-ordered sequence of events --
  798.                         - O      (ces) >
  799.      <!ATTLIST thread   id       ID       #IMPLIED
  800.                         temposeq IDREF    #IMPLIED
  801.                         nominst  CDATA    #IMPLIED -- Nominal instrument --
  802.                         -- TO DO: other attributes -- >
  803.  
  804.  
  805. 8.1.1 Core Event Sequence
  806.  
  807.      A core event sequence is a collection of core events, other core event
  808.      sequences, and core event groups. A core event sequence groups sequen-
  809.      tial events, as in movements, measures or tuplets. These groups may be
  810.      nested to any depth and combined in any way. Each thread is made up of
  811.      a structure of core event sequences which is as complex as  is  neces-
  812.      sary to represent the music completely.
  813.  
  814.      The time factor attribute is a fraction which describes the  relation-
  815.      ship  of the beat inside a given sequence and the beat surrounding (or
  816.      underneath) the sequence. Time anomalies (such as  triplets)  will  be
  817.      represented  by  setting  the time factor to the correct fraction. For
  818.      example, if the beat of a piece falls on the quarter note (so  quarter
  819.      notes  have  a  time value of 1) and an eighth note triplet is encoun-
  820.      tered, the triplet could be expressed as a sequence of three notes  of
  821.      value  1 with a time factor of 1/3, or as a sequence of three notes of
  822.      value 1/2 with a time factor of 2/3. It may turn out to  be  desirable
  823.      to  specify  that  every event sequence must contain an integral (non-
  824.      fractional) number of beats. This would not be limiting since a common
  825.      denominator can be found for any situation.
  826.  
  827.      The stress id attribute is a reference to a stress pattern to use  for
  828.      this sequence.
  829.  
  830.      The stress beat attribute is the offset (in  beats)  into  the  stress
  831.      pattern  at  which the sequence starts. A common use for this would be
  832.      for an anacrusis (pick-up measure).
  833.  
  834.      The ornamentation style attribute is a text string  which  allows  the
  835.      composer or editor to record remarks on the ornamentation style of the
  836.      sequence.
  837.  
  838.      NOTE: This attribute should perhaps modify stress instead.
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.                                June 16, 1988
  852.  
  853.  
  854.  
  855.  
  856.  
  857.                                   - 14 -
  858.  
  859.  
  860.  
  861.  
  862.                  <!-- 8.1.1  Core Event Sequence -->
  863.      <!ENTITY % FRAC    "NUMBERS" -- fraction: numerator, denominator? (=1) -- >
  864.      <!ENTITY % m.ces   "(ces|ceg|note|rest|grcevent|special|cer)*" >
  865.      <!ELEMENT ces      -- Core event sequence --
  866.                         O O      (chordnm?, %m.ces;) >
  867.      <!ATTLIST ces      id       ID       #IMPLIED
  868.                         factor   -- ces beats / sum of subelement beats --
  869.                                  %FRAC    "1 1"
  870.                         stressid -- Beat cycle dynamic stress pattern --
  871.                                  IDREF    #IMPLIED -- Default: no change --
  872.                         stressbt -- Beat # of stress pattern on which ces begins --
  873.                                  NUMBER   1        -- Not 1 only if anacrusis --
  874.                         ornstyle -- Ornamentation style: e.g., period --
  875.                                  CDATA #IMPLIED -- Default: no ornamentation -- >
  876.  
  877.  
  878. 8.1.2 Core Event Group
  879.  
  880.      The core event group is a collection of events or sequences which  are
  881.      initiated  simultaneously.  A  chord  is a group which contains events
  882.      (notes). A section of a thread  may  well  be  a  group  containing  a
  883.      sequence  for  each of several parallel voices. This is an alternative
  884.      to placing each voice in a separate thread.
  885.  
  886.  
  887.                    <!-- 8.1.2  Core Event Group -->
  888.      <!ELEMENT ceg      -- Core event group --
  889.                         - -      %m.ces; >
  890.      <!ATTLIST ceg      id       ID       #IMPLIED
  891.                         -- TO DO: other attributes -- >
  892.  
  893.  
  894.  
  895. 8.1.3 Core Events
  896.  
  897.      The core event is the basic unit of the structure. Notes and rests are
  898.      examples of core events, but other occurrences may also be represented
  899.      as events. In general an event is some occurrence or item which has  a
  900.      single definable starting point in time, and a definable duration.
  901.  
  902. 8.1.3.1 Notes and Rests
  903.  
  904.      The note and the rest are the most common  musical  events.  They  are
  905.      very  similar  in  that they are simple events (as opposed to compound
  906.      events like the graced event). The note has a  pitch  attribute  which
  907.      specifies its scale tone and octave.
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.                                June 16, 1988
  918.  
  919.  
  920.  
  921.  
  922.  
  923.                                   - 15 -
  924.  
  925.  
  926.  
  927.  
  928.                   <!-- 8.1.3.1  Notes and Rests -->
  929.      <!ELEMENT (note | rest)
  930.                         -- Conventionally pitched time-stamped event --
  931.                         - O      EMPTY >
  932.  
  933.      <!ATTLIST (note | rest)
  934.                         id       ID       #IMPLIED
  935.                         %a.ctime;
  936.                         -- TO DO: other attributes -- >
  937.  
  938.  
  939.  
  940. 8.1.3.2 Graced Events
  941.  
  942.      The graced event is a compound event in that it  consists  of  a  main
  943.      event  ornamented  by  a  "grace"  modifier.  The modifier is an event
  944.      sequence which can either precede or follow the main event, and  which
  945.      will not consume time as will a normal sequence.
  946.  
  947.      The preceding grace modifier is an event sequence which  starts  at  a
  948.      given  time  and proceeds until finished, at which time the grace sub-
  949.      ject is started.
  950.  
  951.      The grace subject is the main event. It  starts  after  the  preceding
  952.      modifier  and  continues  until  the end of its duration, or until the
  953.      start of a posterior modifier.
  954.  
  955.      The posterior grace modifier starts at a given  time  after  the  main
  956.      event has started, and proceeds until finished.
  957.  
  958.      The  grace  synchronization  attribute  specifies  the  starting  time
  959.      offsets  of the preceding and posterior modifiers. It is measured from
  960.      the start time of the subject,  and  the  end  time  of  the  subject,
  961.      respectively.
  962.  
  963.  
  964.                    <!-- 8.1.3.2  Graced Event -->
  965.      <!ELEMENT grcevent -- Graced core event --
  966.                         - O      ((grcpre, grcsubj) | (grcpre?, grcsubj, grcpost))>
  967.      <!ATTLIST grcevent id       ID       #IMPLIED >
  968.      <!ELEMENT (grcpre | grcpost)
  969.                         -- Core event whose duration is not counted --
  970.                         - O      %m.ces; >
  971.      <!ATTLIST (grcpre | grcpost)
  972.                         id       ID       #IMPLIED
  973.                         -- Synchronization with subject:
  974.                            start-time in the case of grcpre
  975.                            end-time in the case of grcpref --
  976.                         grcsync  (lead | lag) lead >
  977.      <!ELEMENT grcsubj  -- Grace sequence subject: that which is graced --
  978.                         O O      (note | rest | special | cer) >
  979.  
  980.  
  981.  
  982.  
  983.                                June 16, 1988
  984.  
  985.  
  986.  
  987.  
  988.  
  989.                                   - 16 -
  990.  
  991.  
  992. 8.1.3.3 Special Events
  993.  
  994.      The special event contains user defined information about timed events
  995.      other  than  conventional musical occurrences. Its content (other than
  996.      starting time and duration) will be application specific.
  997.  
  998.  
  999.                    <!-- 8.1.3.3  Special Events -->
  1000.      <!ELEMENT special  -- User-defined time-stamped event: content describes it --
  1001.                         - O      (#PCDATA) >
  1002.      <!ATTLIST special  id       ID       #IMPLIED
  1003.                         %a.ctime;
  1004.                         -- TO DO: other attributes -- >
  1005.  
  1006.  
  1007. 8.1.4 Core Event References
  1008.  
  1009.      Core events are accessed through  core  event  references.  These  are
  1010.      pointers which allow the core to be referred to in arbitrarily complex
  1011.      ways by the performance, score, and analysis sections  of  the  piece.
  1012.      This  process  will  be  explored in more depth in Theory of Use. This
  1013.      structure yields a very flexible system for organizing  and  referring
  1014.      to events.
  1015.  
  1016.  
  1017.                  <!-- 8.1.4  Core Event Reference -->
  1018.      <!ELEMENT cer      -- Reference to core event, sequence, or group --
  1019.                         - O      EMPTY    >
  1020.      <!ATTLIST cer      idr      IDREF    #REQUIRED -- ID of ces|ceg|ce --
  1021.                         shift    NUTOKEN  0         -- Transposition in steps --
  1022.                         -- TO DO: other event modifier attributes -- >
  1023.  
  1024.  
  1025. 8.2 Time
  1026.  
  1027.      It is in the core that the time of the piece is represented.  By  time
  1028.      we  mean  the rhythmic relationship of each event to all other events.
  1029.      This is not to be confused with tempo, which refers  to  the  rate  of
  1030.      progress  of  the  piece.  The time model has several components which
  1031.      combine to form a system which we hope will account for any  situation
  1032.      within the scope of the Standard.
  1033.  
  1034. 8.2.1 Beat
  1035.  
  1036.      All time must be measured in relation to some base which is  not  open
  1037.      to  interpretation.  That  base  will  be called the beat. The beat is
  1038.      defined to be that time interval which, at  any  given  point  in  the
  1039.      piece,  is  small enough to divide without remainder into all existing
  1040.      subdivisions of the sequence, excluding time anomalies. This beat will
  1041.      only  be  assigned  an  absolute value in the gestural section; in the
  1042.      core it is simply a common reference. If the beat changes  in  meaning
  1043.      as  the  piece  progresses,  then the core will be sectioned into more
  1044.      than one sequence.  Each sequence will specify  the  relation  of  its
  1045.      beat to an overall reference beat.
  1046.  
  1047.  
  1048.  
  1049.                                June 16, 1988
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.                                   - 17 -
  1056.  
  1057.  
  1058.      Since the beat is a  relative  measurement,  the  performance  can  be
  1059.      linked  to any time base that is appropriate. The beat can be assigned
  1060.      a fixed duration, an algorithmically generated variable  duration,  or
  1061.      be related to a live recorded click track. Similarly the score can use
  1062.      any appropriate time signature for a given  passage.  The  same  piece
  1063.      could,  for  example,  be  scored  in  4/4  as  triplets or in 12/8 as
  1064.      straight eighths. Indeed, a score representation in each  meter  could
  1065.      refer to the same core.
  1066.  
  1067. 8.2.2 Duration
  1068.  
  1069.      Each core event will have a  music  duration  (note  value)  attribute
  1070.      which  is  stated as a fraction of a beat. The time consumed by a core
  1071.      event sequence will be the sum of  the  durations  of  its  events  in
  1072.      beats.   Accumulated time is therefore represented as the sum of dura-
  1073.      tional time,  necessitating  the  definition  of  events  which  sound
  1074.      (notes), and events which do not (rests).
  1075.  
  1076.      The model will support single events or tied events. Tied  events  are
  1077.      strings of events which are taken together to represent one event with
  1078.      a duration that is the sum of each of the individual durations. When a
  1079.      note  starts  sounding  in  one  event sequence and continues into the
  1080.      next, the note is split into two tied events of the appropriate  dura-
  1081.      tion. The tie attribute indicates that the event is tied, and to which
  1082.      subsequent event it is tied.
  1083.  
  1084.  
  1085.                           <!-- 8.2  Time -->
  1086.      <!ENTITY % BEATS   "%FRAC;" -- Measure of music time (fractional) -- >
  1087.      <!ENTITY % a.ctime   -- Core event time attributes (7.2) --
  1088.                           "musicdur %BEATS #CURRENT  tie IDREF #IMPLIED" >
  1089.  
  1090.  
  1091. 8.3 Stress
  1092.  
  1093.      The stress element indicates how a passage is to be  stressed  dynami-
  1094.      cally.  It consists of a set of template sequences that indicate which
  1095.      beats are to receive what stress. Stress can be dynamic, agogic (tempo
  1096.      related), or can be related to other user specified parameters.
  1097.  
  1098.      The beat count attribute indicates the number of beats in the template
  1099.      cycle.
  1100.  
  1101.  
  1102.                         <!-- 8.3  Stress -->
  1103.      <!ELEMENT stress   -- Beat cycle definition; dynamic stress pattern --
  1104.                         - O      (beatnum, stresses)+ >
  1105.      <!ATTLIST stress   id       ID       #IMPLIED
  1106.                         beatcnt  NUMBER   #REQUIRED -- Number of beats in cycle -->
  1107.  
  1108.  
  1109. 8.3.1 Beat Number
  1110.  
  1111.      The beat number element marks a particular beat in a stress  cycle  as
  1112.  
  1113.  
  1114.  
  1115.                                June 16, 1988
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.                                   - 18 -
  1122.  
  1123.  
  1124.      receiving stress.
  1125.  
  1126.  
  1127.      <!ELEMENT beatnum  -- Beat number receiving agogic or dynamic stresses --
  1128.                         O O      (#PCDATA) >
  1129.  
  1130.  
  1131.  
  1132. 8.3.2 Stresses
  1133.  
  1134.      The stresses element contains information on what kind of stress is to
  1135.      be applied to the beat with which it is associated.
  1136.  
  1137.  
  1138.      <!ELEMENT stresses -- Stresses applied to specified beat --
  1139.                         O O      (#PCDATA) >
  1140.  
  1141.  
  1142.  
  1143. 8.3.3 Meter
  1144.  
  1145.      The concept of meter is expressible in the core by creating  a  stress
  1146.      template  which  models  a measure. In 4/4 time, a template may have 4
  1147.      beats, and may mark the first as having maximum stress, and the  third
  1148.      as  having moderate stress. In the case of a complex metric situation,
  1149.      such as a measure of five which is felt as two  and  three,  a  nested
  1150.      structure  of  stress templates can be used to accurately indicate the
  1151.      feel. If ambiguity is desired however, the measure can be  represented
  1152.      as simply five beats.
  1153.  
  1154.      NOTE: The inclusion of the meter in the core reflects  the  philosophy
  1155.      that  measures  are  a  basic  logical  concept  in music, rather than
  1156.      strictly a score related issue. This is  certainly  not  true  of  all
  1157.      music, but the facility must be there for those pieces for which it is
  1158.      important.
  1159.  
  1160. 8.4 Tempo Sequence
  1161.  
  1162.      The tempo sequence element is a list of time stamped  tempo  modifica-
  1163.      tions  which  govern  the  tempo of the piece. Each thread refers to a
  1164.      particular tempo sequence; there can be several if the piece  involves
  1165.      conflicting tempi.
  1166.  
  1167.  
  1168.                          <!-- 8.4  Tempo -->
  1169.      <!ELEMENT temposeq -- Relates music time to real time (may be imprecise) --
  1170.                         - O      (tempo+) >
  1171.      <!ATTLIST temposeq id       ID       #IMPLIED >
  1172.  
  1173.  
  1174. 8.4.1 Tempo
  1175.  
  1176.      The tempo element is the basic building block of the  tempo  sequence.
  1177.      It  specifies a tempo change from the current tempo to a target tempo.
  1178.  
  1179.  
  1180.  
  1181.                                June 16, 1988
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.                                   - 19 -
  1188.  
  1189.  
  1190.      (The current tempo is the tempo in effect infinitesimally  before  the
  1191.      start  time  of  the  tempo  element. The target tempo is the tempo in
  1192.      effect infinitesimally before the start time of the  next  tempo  ele-
  1193.      ment.)  The  attributes  have  been  defined to give a large degree of
  1194.      flexibility in specifying changes over time, and maintaining ambiguity
  1195.      and imprecision when desired.
  1196.  
  1197.      The music duration attribute specifies the life of this tempo  setting
  1198.      (the time until the next change) in beats.
  1199.  
  1200.      The set value attribute specifies a precise target tempo, either abso-
  1201.      lutely in rtu's per beat or as a percentage of the current tempo.
  1202.  
  1203.      The set text attribute specifies an imprecise target tempo. The  value
  1204.      is represented as a text string, and presumably will be a common musi-
  1205.      cal expression such as "presto" or "moderato".
  1206.  
  1207.      The rate value attribute specifies a precise formula for reaching  the
  1208.      target  tempo  from the current tempo. It can be specified as "immedi-
  1209.      ate" (instant change at the start time of the tempo element), "linear"
  1210.      over the duration of the tempo element, or represented by a mathemati-
  1211.      cal formula in the form of a text string.
  1212.  
  1213.      The rate text attribute specifies an imprecise  formula  for  reaching
  1214.      the target tempo from the current tempo. The value is represented as a
  1215.      text string, and presumably will be a common musical  expression  such
  1216.      as "accelerando" or "ritardando".
  1217.  
  1218.      The hold duration attribute specifies a precise pause in the  counting
  1219.      of  music  time.  Its value is absolute in beats. It can be used for a
  1220.      fermata, a full stop, or any other pause or interruption of the normal
  1221.      time  flow  of  the  piece, such as an unaccompanied solo cadenza. The
  1222.      hold starts at the starting time of the tempo element, and  the  tempo
  1223.      duration begins at the completion of the hold.
  1224.  
  1225.      The hold type attribute specifies an imprecise pause in  the  counting
  1226.      of  music  time. It can be specified as "full stop", "long", "medium",
  1227.      "short", "none", in non-increasing order of length.  The  actual  time
  1228.      value of these specifiers is implementation dependant. The hold starts
  1229.      at the starting time of the tempo  element,  and  the  tempo  duration
  1230.      begins at the completion of the hold.
  1231.  
  1232.      The strictness attribute specifies the precision with which the  tempo
  1233.      should  be followed during a realization of the piece. It is specified
  1234.      as "strict tempo", or represented by a text string containing a common
  1235.      musical expression such as "rubato".
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.                                June 16, 1988
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.                                   - 20 -
  1254.  
  1255.  
  1256.  
  1257.  
  1258.      <!ELEMENT tempo    -- Real time units per beat --
  1259.                         - O      (#PCDATA) >
  1260.      <!ATTLIST tempo    id       ID       #IMPLIED
  1261.                         musicdur -- Duration of tempo setting in music time --
  1262.                                  %BEATS   #CURRENT
  1263.                         setval   -- Precise final tempo: RTUs/beat (integer #RTU)
  1264.                                     or % of earlier tempo (%FRAC idref) --
  1265.                                  CDATA    #CURRENT
  1266.                         settext  -- Imprecise final tempo: moderato --
  1267.                                  CDATA    #IMPLIED -- Default: use setval --
  1268.  
  1269.                         rateval  -- Precise rate of reaching final tempo --
  1270.                                  -- Format: (LINEAR | FORMULA data) --
  1271.                                  CDATA    #IMPLIED -- Default: immediate --
  1272.                         ratetext -- Imprecise rate specification: accel, ritard --
  1273.                                  CDATA    #IMPLIED -- Default: use rateval --
  1274.                         strict   -- Strictness of interpretation: rubato --
  1275.                                  CDATA    #IMPLIED -- Default: strict tempo --
  1276.                         holdtype -- Imprecise extension of counted duration --
  1277.                                  (fullstop|long|medium|short|none) none
  1278.                         holddur  -- Precise duration of hold --
  1279.                                  %BEATS   #CURRENT >
  1280.  
  1281.  
  1282. 9 Gestural Domain
  1283.  
  1284.      The gestural section of the piece  contains  the  performances.  While
  1285.      each  work  has  only one core, it may have several gestural sections,
  1286.      each a different performance (and hence different  interpretation)  of
  1287.      the  piece, and each linked to a particular score The gestural section
  1288.      refers to the core for the majority of its musical material,  but  may
  1289.      have  events of its own. Usually these events will be ad lib notes and
  1290.      performance control information such as volume  or  timbre  selection.
  1291.      The  gestural  section  is intended to represent data for an automated
  1292.      performance of the piece. That data could be generated by a live  per-
  1293.      formance  or  by  non-real-time  composition,  then returned to a syn-
  1294.      thesizer for realization.
  1295.  
  1296.      The performance is the top level gestural  element.  Each  performance
  1297.      typically realizes the entire piece.
  1298.  
  1299.      The score attribute identifies a score  in  the  visual  domain  which
  1300.      represents  the  edition  which  produced  this performance, if such a
  1301.      score exists.
  1302.  
  1303.      The closure attribute indicates whether every event in  the  core  was
  1304.      realized in this performance.
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.                                June 16, 1988
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.                                   - 21 -
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                       <!-- 9  Gestural Domain -->
  1325.      <!ELEMENT perform  -- The gestures of a performance (MIDI) --
  1326.                         - O      (bibdata?, clicktrk*, track+) >
  1327.      <!ATTLIST perform  id       ID       #IMPLIED
  1328.                         score    IDREFS   #IMPLIED
  1329.                         closure  -- Are all core events referenced? --
  1330.                                  (closed, open) open >
  1331.  
  1332.  
  1333.  
  1334. 9.1 Track
  1335.  
  1336.      The track is analogous to the thread in the core. It will be  used  to
  1337.      drive  one  channel of sound output, or one instrument. It is the pre-
  1338.      cise counterpart of a track on a multi-track. Unlike the  thread,  the
  1339.      division  of  music  into tracks may need to follow certain restraints
  1340.      imposed by the device that will perform the piece. For example a track
  1341.      may  have  to be limited to events which are to sound in the same tim-
  1342.      bre.
  1343.  
  1344.      A track is made up of gestural event sequences, which are made  up  of
  1345.      gestural events, gestural event references, and core event references.
  1346.      It is through these core event references that the  core  becomes  the
  1347.      basis  of the gestural section. While it would be possible through the
  1348.      use of gestural events to represent a performance that  was  unrelated
  1349.      to  the core, the intention is that the track will contain mostly per-
  1350.      formance control information, and refer to the core for most or all of
  1351.      the notes, rests, and other basic conceptual material.
  1352.  
  1353.  
  1354.                          <!-- 9.1  Track -->
  1355.      <!ELEMENT track    -- One instrument's time-ordered sequence of gestures --
  1356.                         - O      (ges)   >
  1357.      <!ATTLIST track    id       ID       #IMPLIED
  1358.                         instrum  CDATA    #IMPLIED
  1359.                         clicktrk IDREF    #IMPLIED
  1360.                         -- TO DO: other attributes -- >
  1361.  
  1362.  
  1363. 9.1.1 Gestural Event Sequence
  1364.  
  1365.                <!-- 9.1.1  Gestural Event Sequence -->
  1366.      <!ENTITY % e.ge    "ge" -- TO DO: replace with real element types -- >
  1367.      <!ENTITY % m.ges   "(ges | geg | %e.ge; | ger | gcer)*" >
  1368.      <!ELEMENT ges      -- Gestural event sequence (has core references) --
  1369.                         O O      %m.ges; >
  1370.      <!ATTLIST ges      id       ID       #IMPLIED
  1371.                         -- TO DO: other attributes -- >
  1372.  
  1373.  
  1374. 9.1.2 Gestural Event Group
  1375.  
  1376.  
  1377.  
  1378.  
  1379.                                June 16, 1988
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.                                   - 22 -
  1386.  
  1387.  
  1388.  
  1389.                <!-- 9.1.2  Gestural Event Group -->
  1390.      <!ELEMENT geg      -- Gestural event group (has core references) --
  1391.                         - -      %m.ges; >
  1392.      <!ATTLIST geg      id       ID       #IMPLIED
  1393.                         -- TO DO: other attributes -- >
  1394.  
  1395.  
  1396. 9.1.3 Gestural Event
  1397.  
  1398.                     <!-- 9.1.3  Gestural Event -->
  1399.      <!ENTITY % SECONDS "NUMBERS" -- Format: (seconds?, Real Time Units) -- >
  1400.      <!ELEMENT (%e.ge;) -- Gestural event: e.g., controller setting, ad lib note --
  1401.                         - O      EMPTY >
  1402.      <!ATTLIST ge       id       ID       #IMPLIED
  1403.                         start    -- Start time (Default: derived from core) --
  1404.                                  %SECONDS #IMPLIED
  1405.                         duration -- (Default: derived from core) --
  1406.                                  %SECONDS #IMPLIED
  1407.                         -- TO DO: other attributes -- >
  1408.  
  1409.  
  1410. 9.1.4 Gestural Event Reference
  1411.  
  1412.      <!-- 9.1.4.1  Gestural Domain Reference to Gestural Event -->
  1413.      <!ELEMENT ger      -- Gestural event reference (includes geg|ges) --
  1414.                         - O      EMPTY    >
  1415.      <!ATTLIST ger      idr      IDREF    #REQUIRED -- ges|ge|geg same perform --
  1416.                         start    -- Start time (Default: derived from core) --
  1417.                                  %SECONDS #IMPLIED
  1418.                         duration -- (Default: derived from core) --
  1419.                                  %SECONDS #IMPLIED
  1420.                         shift    NUTOKEN  0         -- Transposition in steps --
  1421.                         -- TO DO: other event modifier attributes -- >
  1422.  
  1423.  
  1424.      <!-- 9.1.4.2  Gestural Domain References to Core Events -->
  1425.      <!ELEMENT gcer     -- Gestural domain core event reference --
  1426.                         - O      EMPTY    >
  1427.      <!ATTLIST gcer     idr      IDREF    #REQUIRED -- ces|ce|ceg in core --
  1428.                         start    -- Start time (Default: derived from core) --
  1429.                                  %SECONDS #IMPLIED
  1430.                         duration -- (Default: derived from core) --
  1431.                                  %SECONDS #IMPLIED
  1432.                         shift    NUTOKEN  0         -- Transposition in steps --
  1433.                         -- TO DO: other event modifier attributes -- >
  1434.  
  1435.  
  1436. 9.2 Click Track
  1437.  
  1438.      The click track is a gestural event sequence with  an  event  to  mark
  1439.      each beat in the piece. This element will provide a means for relating
  1440.      beats in the core to real time.  Click  tracks  can  have  arbitrarily
  1441.      spaced   events,   so  any  kind  of  expressive  performance  can  be
  1442.  
  1443.  
  1444.  
  1445.                                June 16, 1988
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.                                   - 23 -
  1452.  
  1453.  
  1454.      represented. The click track will usually be generated by a transcrip-
  1455.      tion  program  in  the  process of creating a work from a live perfor-
  1456.      mance. Note that a click track does not need to be  present,  since  a
  1457.      rhythmically exact performance can be generated from the core alone.
  1458.  
  1459.  
  1460.                        <!-- 9.2 Click Track -->
  1461.      <!ELEMENT clicktrk -- Click track: ordered table of event start-times --
  1462.                         - O      (#PCDATA) >
  1463.      <!ATTLIST clicktrk id       ID       #IMPLIED -- Default: generated --
  1464.                         nextbeat -- Track and time of next beat --
  1465.                                  NMTOKENS #IMPLIED >
  1466.  
  1467.  
  1468. 10 Visual Domain
  1469.  
  1470.      The visual section of the piece contains the scores. While  each  work
  1471.      has  only  one core, it may have several scores, each a different edi-
  1472.      tion (and hence a different interpretation of  the  piece),  and  each
  1473.      linked  to  a particular performance. The visual section refers to the
  1474.      core for the majority of its musical material, but may have events  of
  1475.      its  own.   Usually  these  events  will be symbols that appear on the
  1476.      score aside from notes, rests, and accidentals. Such items  as  phrase
  1477.      markings,  beams, accents, dynamic markings, and lyrics would be found
  1478.      here. The visual section is intended to represent the printed score in
  1479.      Standard  Western  Music  Notation.  The score could be generated by a
  1480.      music printing system and returned to such a system  for  printing  or
  1481.      display.
  1482.  
  1483.      The score element is the top level of the visual domain. Each score is
  1484.      a presumably complete edition of the piece.
  1485.  
  1486.      The performance attribute specifies  a  performance  in  the  gestural
  1487.      domain  which  was  generated from this particular score (edition), if
  1488.      such a performance exists.
  1489.  
  1490.      The closure attribute indicates whether every event in  the  core  was
  1491.      notated in this score.
  1492.  
  1493.  
  1494.                      <!-- 10  Visual Domain -->
  1495.      <!ELEMENT score    -- Visual representation of work (a la DARMS, MUSTRAN...) --
  1496.                         - O      (bibdata?, part+) >
  1497.      <!ATTLIST score    id       ID       #IMPLIED
  1498.                         perform  IDREFS   #IMPLIED
  1499.                         closure  -- Are all core events referenced? --
  1500.                                  (closed, open) open >
  1501.  
  1502.  
  1503. 10.1 Part
  1504.  
  1505.      The part is analogous to the thread in the core. It will  be  used  to
  1506.      print  one  part  of  the  score for one instrument. It is the precise
  1507.      counterpart of a staff in a score. The division of  music  into  parts
  1508.  
  1509.  
  1510.  
  1511.                                June 16, 1988
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.                                   - 24 -
  1518.  
  1519.  
  1520.      will be based on the desired appearance of the score.
  1521.  
  1522.      A part is made up of visual event sequences,  which  are  made  up  of
  1523.      visual  events, visual event references, and core event references. It
  1524.      is through these core event references that the core becomes the basis
  1525.      of  the  visual section. While it would be possible through the use of
  1526.      visual events to represent a score that was unrelated to the core, the
  1527.      intention  is  that  the  part will contain mostly visual symbols, and
  1528.      refer to the core for most or all of the notes, rests, and other basic
  1529.      conceptual material.
  1530.  
  1531.  
  1532.                          <!-- 10.1  Part -->
  1533.      <!ELEMENT part     -- One instrument's portion of the system --
  1534.                         - O      (ves)   >
  1535.      <!ATTLIST part     id       ID       #IMPLIED
  1536.                         clef     NAMES    "treble bass"
  1537.                         -- TO DO: other attributes -- >
  1538.  
  1539.  
  1540. 10.1.1 Visual Event Sequence
  1541.  
  1542.  
  1543.                <!-- 10.1.1  Visual Event Sequence -->
  1544.      <!ENTITY % e.ve    "ve" -- TO DO: replace with real element types -- >
  1545.      <!ENTITY % m.ves   "(ves | veg | %e.ve; | ver | vcer)*" >
  1546.      <!ELEMENT ves      -- Visual event sequence (has core references) --
  1547.                         O O      %m.ves; >
  1548.      <!ATTLIST ves      id       ID       #IMPLIED
  1549.                         tuplet   -- Triplet (etc.) indicator for sequence --
  1550.                                  CDATA    #IMPLIED  -- Not a tuplet --
  1551.                         cue      IDREF    #IMPLIED  -- ID of ves --
  1552.                         tsinst   NUMBERS  #IMPLIED  -- Time sig for instrument --
  1553.                         tscond   NUMBERS  #IMPLIED  -- Time sig for conductor --
  1554.                         -- TO DO: other attributes -- >
  1555.  
  1556.  
  1557. 10.1.2 Visual Event Group
  1558.  
  1559.  
  1560.                  <!-- 10.1.2  Visual Event Group -->
  1561.      <!ELEMENT veg      -- Visual event group (has core references) --
  1562.                         - -      %m.ves; >
  1563.      <!ATTLIST veg      id       ID       #IMPLIED
  1564.                         -- TO DO: other attributes -- >
  1565.  
  1566.  
  1567. 10.1.3 Visual Event
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.                                June 16, 1988
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.                                   - 25 -
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                     <!-- 10.1.3  Visual Event -->
  1589.      <!ELEMENT (%e.ve;) -- Visual event: e.g., phrase mark, bar line --
  1590.                         - O      EMPTY >
  1591.      <!ATTLIST (%e.ve;) id       ID       #IMPLIED
  1592.                         -- TO DO: other attributes -- >
  1593.  
  1594.  
  1595. 10.1.4 Visual Event Reference
  1596.  
  1597.  
  1598.      <!-- 10.1.4.1  Visual Domain Reference to Visual Event -->
  1599.      <!ELEMENT ver      -- Visual event reference (includes veg|ves) --
  1600.                         - O      EMPTY    >
  1601.      <!ATTLIST ver      idr      IDREF    #REQUIRED -- ves|ve|geg same score --
  1602.                         shift    NUTOKEN  0         -- Transposition in steps --
  1603.                         -- TO DO: other event modifier attributes -- >
  1604.  
  1605.  
  1606.       <!-- 10.1.4.2  Visual Domain Reference to Core Event -->
  1607.      <!ELEMENT vcer     -- Visual domain core event reference --
  1608.                         - O      EMPTY    >
  1609.      <!ATTLIST vcer     idr      IDREF    #REQUIRED -- ces|ce|ceg in core --
  1610.                         shift    NUTOKEN  0         -- Transposition in steps --
  1611.                         -- TO DO: other event modifier attributes -- >
  1612.  
  1613.  
  1614. 10.2 Space
  1615.  
  1616.      The unit of space will be defined relative to the size  of  the  staff
  1617.      and  note  heads.  The actual size of the printed staff is not defined
  1618.      except perhaps as a global attribute of the visual section. A unit  of
  1619.      one  staff space for the vertical and one note head width for the hor-
  1620.      izontal will provide the basis for all spatial measurements.
  1621.  
  1622.      Spatial relationship will be representable  in  several  ways:  as  an
  1623.      absolute  position  on  a  line  (staff),  as a relative position from
  1624.      another object, and as a relative position from a logical (time) posi-
  1625.      tion  on  a  staff. Furthermore, for each of these possibilities there
  1626.      will be an explicit position  (specified  in  spatial  units)  and  an
  1627.      implicit  position.   The  implicit  position  will take the form of a
  1628.      non-numerical relationship to some other object, such  as  "above  the
  1629.      staff" or "between this note head and the one to the left".
  1630.  
  1631. 11 Analytical Domain
  1632.  
  1633.      The analytical section of the piece contains  any  analyses  that  may
  1634.      have  been produced. A work may have several analytical sections, each
  1635.      a different analysis (and hence  a  different  interpretation  of  the
  1636.      piece.)  The analytical section refers to the core for the majority of
  1637.      its musical material, but may also refer to performances  and  scores.
  1638.      The  analytical  section is intended to represent a structuring of the
  1639.      piece based on any style of analysis. The analysis could be  generated
  1640.  
  1641.  
  1642.  
  1643.                                June 16, 1988
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.                                   - 26 -
  1650.  
  1651.  
  1652.      by  a specialized music printing/editing system and returned to such a
  1653.      system for printing or display, or might take the ultimate form  of  a
  1654.      written  document.  It might even be generated automatically by a com-
  1655.      puter system.
  1656.  
  1657.      The analysis element is the top level of the  analysis  structure.  It
  1658.      represents  a presumably complete analysis of the piece, by a particu-
  1659.      lar analyst. If several analyses by  different  analysts  exist,  they
  1660.      will  each be is a separate analysis. The analysis can refer freely to
  1661.      any other elements of a work, thus allowing complex  relationships  to
  1662.      be represented.
  1663.  
  1664.  
  1665.                      <!-- 11  Analytical Domain -->
  1666.      <!ELEMENT analysis -- An analysis of a work --
  1667.                         - O      (bibdata?, voice+) >
  1668.      <!ENTITY % a.anal
  1669.        "core IDREFS #IMPLIED perform IDREFS #IMPLIED score IDREFS #IMPLIED" >
  1670.      <!ATTLIST analysis id       ID       #IMPLIED
  1671.                         %a.anal; >
  1672.  
  1673.  
  1674. 11.1 Voice
  1675.  
  1676.      The voice is analogous to the thread in the core. It will be  used  to
  1677.      represent  one  voice or melodic line of the piece. It is the counter-
  1678.      part of a passage of notes that have  the  same  stem  direction.  The
  1679.      division  of  music  into  voices  will be based on the voicing of the
  1680.      piece intended by the composer or analyst.
  1681.  
  1682.      A voice is made up of analytical event sequences, which are made up of
  1683.      analytical  events, analytical event references, and core event refer-
  1684.      ences. It also can contain gestural event references and visual  event
  1685.      references. It is through these references that the analytical section
  1686.      can arbitrarily structure any aspect of the piece in order  to  illus-
  1687.      trate a music theoretical idea.
  1688.  
  1689.  
  1690.                          <!-- 11.1  Voice -->
  1691.      <!ELEMENT voice    -- A single melody line (possibly polyphonic) --
  1692.                         - O      (aes)   >
  1693.      <!ENTITY % a.voice "" >
  1694.      <!ATTLIST voice    id       ID       #IMPLIED
  1695.                         %a.voice; >
  1696.  
  1697.  
  1698. 11.1.1 Analytical Event Sequence
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.                                June 16, 1988
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.                                   - 27 -
  1716.  
  1717.  
  1718.  
  1719.               <!-- 11.1.1  Analytical Event Sequence -->
  1720.      <!ENTITY % e.ae    "ae" -- TO DO: replace with real element types -- >
  1721.      <!ENTITY % m.aes   "(aes | aeg | %e.ae; | aer | ver | ger | cer)*" >
  1722.      <!ELEMENT aes      -- Analytical event sequence (multi-domain refs) --
  1723.                         O O      %m.aes; >
  1724.      <!ENTITY % a.aes   "class (motif | epmotif | esmotif | elision) motif" >
  1725.      <!ATTLIST aes      id       ID       #IMPLIED
  1726.                         %a.aes; >
  1727.  
  1728.  
  1729. 11.1.2 Analytical Event Group
  1730.  
  1731.                <!-- 11.1.2  Analytical Event Group -->
  1732.      <!ELEMENT aeg      -- Analytical event group (multi-domain refs) --
  1733.                         - -      %m.aes; >
  1734.      <!ENTITY % a.ae    "" >
  1735.      <!ATTLIST aeg      id       ID       #IMPLIED
  1736.                         %a.ae; >
  1737.  
  1738.  
  1739. 11.1.3 Analytical Event
  1740.  
  1741.  
  1742.                   <!-- 11.1.3  Analytical Event -->
  1743.      <!ENTITY % m.ae    "(%e.ae;|%e.ge;|%e.ve;)*" >
  1744.      <!ELEMENT (%e.ae;) -- Analytical event --
  1745.                         - O      %m.ae; >
  1746.      <!ATTLIST (%e.ae;) id       ID       #IMPLIED
  1747.                         %a.ae; >
  1748.  
  1749.  
  1750. 11.1.4 Analytical Event Reference
  1751.  
  1752.  
  1753.                      <!-- 11.1.4  References -->
  1754.      <!ELEMENT aer      -- Analytical event sequence reference --
  1755.                         - O      EMPTY    >
  1756.      <!ENTITY % a.aer   "" >
  1757.      <!ATTLIST aer      idr      IDREF    #REQUIRED -- ID of aes --
  1758.                         %a.aer; >
  1759.  
  1760.  
  1761. 12 Bibliographic
  1762.  
  1763.      The bibliographic entry is found at the top level (as  an  element  of
  1764.      work)  and  can  also be used at lower levels. It contains much of the
  1765.      bibliographic and discographic data necessary for the cataloging of  a
  1766.      piece.The  bibliographic  entry will contain the information necessary
  1767.      to make the Standard useful. Such items as title, author, issuer (pub-
  1768.      lisher),  date, and copyright will all be explicitly defined. In addi-
  1769.      tion, a miscellaneous area will be available  which  can  contain  any
  1770.      information that is not defined elsewhere. If desired, a bibliographic
  1771.      entry may be made for each performance in the gestural section, or for
  1772.  
  1773.  
  1774.  
  1775.                                June 16, 1988
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.                                   - 28 -
  1782.  
  1783.  
  1784.      each edition in the visual section.
  1785.  
  1786.      The attributes are explained in the SGML code comments.
  1787.  
  1788.      NOTE: We have not attempted to form an exhaustive  structure  for  the
  1789.      representation  of  complete  library  cataloging  information. Such a
  1790.      structure would extend the scope of the Standard beyond where we  feel
  1791.      it  should go at present. Since we are utilizing the machinery of SGML
  1792.      to implement this Standard, another committee could easily create such
  1793.      a  complete bibliographic element, and it could be readily included in
  1794.      music documents. We in fact strongly urge  the  Library  community  to
  1795.      initiate such a project.
  1796.  
  1797.  
  1798.                    <!-- 12  Bibliographic Data -->
  1799.      <!ENTITY % e.bib   "title | author | date | issuer | descript | copr">
  1800.      <!-- Explanation of bibliographic elements:
  1801.        title       Title of work, performance, score, or analysis
  1802.        author      Work: composer, librettist, computer
  1803.                    Performance: performer, arranger
  1804.                    Score: editor, copyist, arranger
  1805.                    Analysis: theorist
  1806.        issuer      Access information: e.g., publisher, catalog number
  1807.        date        Date of work, performance, score, or analysis
  1808.        copr        Copyright notice
  1809.        descript    Miscellaneous descriptive data: e.g., performance time
  1810.      -->
  1811.      <!ENTITY % d.bib   "<!ELEMENT (%e.bib;) - O (#PCDATA)>"> %d.bib;
  1812.      <!ENTITY % m.bib   "(%e.bib; | theme)*">
  1813.      <!ELEMENT bibdata  -- Bibliographic data applying to work as a whole --
  1814.                         - O      %m.bib; >
  1815.  
  1816.  
  1817. 12.1 Theme
  1818.  
  1819.      The theme will contain references to the core which pinpoint key  pas-
  1820.      sages  (or  famous  passages) for the purpose of identification of the
  1821.      work. It will allow a cataloging application, for instance, to quickly
  1822.      locate  and  then  display  or perform a well known section. This will
  1823.      make it easy for the user to verify that the correct  piece  has  been
  1824.      retrieved.
  1825.  
  1826.  
  1827.                          <!-- 12.1  Theme -->
  1828.      <!ENTITY % a.theme "">
  1829.      <!ELEMENT theme    -- Themes that best identify the work (e.g., incipit) --
  1830.                         - O      EMPTY    >
  1831.      <!ATTLIST theme    idr      IDREFS   #REQUIRED -- ID of analysis --
  1832.                         %a.theme; >
  1833.  
  1834.  
  1835. 13 Conformance
  1836.  
  1837.      The Standard will  define  several  levels  of  conformance  to  allow
  1838.  
  1839.  
  1840.  
  1841.                                June 16, 1988
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.                                   - 29 -
  1848.  
  1849.  
  1850.      applications  to  implement  subsets  of the language. There will be a
  1851.      canonical form and a "standard" level described.
  1852.  
  1853.      NOTE: The issue of conformance will be developed further  at  a  later
  1854.      date.
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.                                June 16, 1988
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.                                   - 30 -
  1914.  
  1915.  
  1916.                                     Annex A
  1917.  
  1918.                                Formal Definition
  1919.  
  1920.  
  1921. (This annex is normative and will become an integral part of the Standard.)
  1922. This  annex  contains the formal definition of a work, expressed as an SGML
  1923. document type definition.
  1924.  
  1925. NOTES
  1926.  
  1927. Because the SMDL is still under development, the SGML document type defini-
  1928. tion  (DTD)  is  presently  incomplete  in  a number of respects. These are
  1929. listed below, and will be updated with the SGML Formal Definition.
  1930.  
  1931. 1.      Little detail is provided on the actual encoding of an instance  of
  1932. a work.  As we are first attempting to identify the potential events and to
  1933. define their properties (attributes), the DTD acts  as  though  all  events
  1934. will be encoded with start-tags and end-tags, with all properties specified
  1935. using the SGML attribute notation.  The result is a lopsided definition  in
  1936. which there is only structure and no actual data.
  1937.  
  1938. This convention is satisfactory (even advantageous) while we are  designing
  1939. the  structure  and  semantics  of the SMDL.  It allows relationships to be
  1940. seen easily and requirements to be evaluated, without the intrusion of cod-
  1941. ing  considerations.   Once the design is complete and we understand all of
  1942. the information that must be represented, we will create a  concise  coding
  1943. scheme  to  replace  the  lower  levels of the structure.  (In SGML, such a
  1944. scheme is known as a "data content notation".)
  1945.  
  1946. 2.      Most attributes have not yet been defined.  As a  result,  many  of
  1947. the  ATTLIST  declarations appear identical to one another.  In such cases,
  1948. we expect that the lists will be differentiated by attributes that will  be
  1949. defined later.
  1950.  
  1951. 3.      The lowest-level gestural, visual, and  analytical  event  elements
  1952. (ge,  ve,  and ae) are temporary placeholders for lists of distinct element
  1953. types (for example, bar lines, clefs, etc.).  Eventually, the entity refer-
  1954. ences  to  lists  of  the distinct types will be completed to replace these
  1955. element names.  For now,  only  the  lowest-level  core  events  have  been
  1956. defined.
  1957.  
  1958. Moreover, as we are first attempting to define those attributes  which  all
  1959. events  have  in  common, a single ATTLIST is used in each domain.  Eventu-
  1960. ally, each event may have its own ATTLIST declaration.
  1961.  
  1962. 4.      There are many elements that have common  content  models  and,  at
  1963. least  for  the moment, common attribute lists.  As a matter of development
  1964. methodology, we felt it better to assume that elements that represent  dif-
  1965. ferent semantic constructs (e.g., tracks and parts) are likely to have dif-
  1966. ferent attributes when the design is complete, even though  they  may  have
  1967. identical structures.  If the presumption proves incorrect in any instance,
  1968. we will of course remove the redundancy when  finalizing  the  design,  but
  1969. premature optimization might cause us to overlook vital differences.
  1970.  
  1971.  
  1972.  
  1973.                                June 16, 1988
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.                                   - 31 -
  1980.  
  1981.  
  1982. 5.      For attributes that have been  defined,  particularly  those  whose
  1983. domain is a list of specific values, we have typically provided only a nom-
  1984. inal list of values. We expect that once the  overall  structure  is  firm,
  1985. experts  will  be  able  to contribute more complete lists.  Such attribute
  1986. domains can also be made user-extensible if that is desirable.
  1987.  
  1988.  
  1989. <!-- Public document type definition for music representation.
  1990.  
  1991.      Typical invocation:
  1992.      <!DOCTYPE work PUBLIC "-//ANSI X3V1.8M//DTD Musical Work//EN">
  1993.  
  1994.  
  1995. NOTE: The  section  heading  comments  identify  the  corresponding  clause
  1996. numbers in the body of this document.
  1997.  
  1998. -->
  1999.  
  2000.                 <!-- 7  Work as a Whole -->
  2001. <!ELEMENT work     -- Musical composition, piece, etc. --
  2002.                    - -      (bibdata?, workseg+, analysis*) >
  2003. <!ATTLIST work     source   -- Origin of this representation of the work --
  2004.                             (core | analysis | perform | score) #REQUIRED
  2005.                    companal -- Composer's analysis (may include core-like
  2006.                             controlling factors that distinguish the work)--
  2007.                             IDREF    #IMPLIED -- ID of analysis --
  2008.                    rtubase  -- Real Time Units per second (0=100,000,000) --
  2009.                             NUMBER   10000 >
  2010.  
  2011.  
  2012.                  <!-- 7.1  Work Segment -->
  2013. <!ELEMENT workseg  -- Sequential segment of a work: movement, act, etc. --
  2014.                    O O      ((workseg, (workseg | worksegr)+) |
  2015.                             (bibdata?, core, perform*, score*)) >
  2016. <!ATTLIST workseg  id       ID       #IMPLIED
  2017.                    class    -- E.g., movement, section, coda --
  2018.                             CDATA    #IMPLIED  -- don't care --
  2019.                    delay    -- E.g., 15 minute intermission --
  2020.                             CDATA    #IMPLIED  -- don't care -- >
  2021. <!ELEMENT worksegr -- Work segment reference --
  2022.                    - O      EMPTY    >
  2023. <!ATTLIST worksegr idr      IDREF    #REQUIRED -- ID of any work segment -- >
  2024.  
  2025.  
  2026.                       <!-- 8  Core -->
  2027. <!ELEMENT core     -- The essential music, common to all domains --
  2028.                    - O      (stress*, temposeq+, thread+) >
  2029. <!ATTLIST core     norm     -- Is core timing normalized? (7.5) --
  2030.                             (norm | nonnorm) nonnorm >
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.                                June 16, 1988
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.                                   - 32 -
  2046.  
  2047.  
  2048.  
  2049.                     <!-- 8.1  Thread -->
  2050. <!ELEMENT thread   -- Voice-like time-ordered sequence of events --
  2051.                    - O      (ces) >
  2052. <!ATTLIST thread   id       ID       #IMPLIED
  2053.                    temposeq IDREF    #IMPLIED
  2054.                    nominst  CDATA    #IMPLIED -- Nominal instrument --
  2055.                    -- TO DO: other attributes -- >
  2056.  
  2057.  
  2058.             <!-- 8.1.1  Core Event Sequence -->
  2059. <!ENTITY % FRAC    "NUMBERS" -- fraction: numerator, denominator? (=1) -- >
  2060. <!ENTITY % m.ces   "(ces|ceg|note|rest|grcevent|special|cer)*" >
  2061. <!ELEMENT ces      -- Core event sequence --
  2062.                    O O      (chordnm?, %m.ces;) >
  2063. <!ATTLIST ces      id       ID       #IMPLIED
  2064.                    factor   -- ces beats / sum of subelement beats --
  2065.                             %FRAC    "1 1"
  2066.                    stressid -- Beat cycle dynamic stress pattern --
  2067.                             IDREF    #IMPLIED -- Default: no change --
  2068.                    stressbt -- Beat # of stress pattern on which ces begins --
  2069.                             NUMBER   1        -- Not 1 only if anacrusis --
  2070.                    ornstyle -- Ornamentation style: e.g., period --
  2071.                             CDATA #IMPLIED -- Default: no ornamentation -- >
  2072.  
  2073.  
  2074.               <!-- 8.1.2  Core Event Group -->
  2075. <!ELEMENT ceg      -- Core event group --
  2076.                    - -      %m.ces; >
  2077. <!ATTLIST ceg      id       ID       #IMPLIED
  2078.                    -- TO DO: other attributes -- >
  2079.  
  2080.  
  2081.              <!-- 8.1.3.1  Notes and Rests -->
  2082. <!ELEMENT (note | rest)
  2083.                    -- Conventionally pitched time-stamped event --
  2084.                    - O      EMPTY >
  2085. <!ATTLIST (note | rest)
  2086.                    id       ID       #IMPLIED
  2087.                    %a.ctime;
  2088.                    -- TO DO: other attributes -- >
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.                                June 16, 1988
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.                                   - 33 -
  2112.  
  2113.  
  2114.  
  2115.               <!-- 8.1.3.2  Graced Event -->
  2116. <!ELEMENT grcevent -- Graced core event --
  2117.                    - O      ((grcpre, grcsubj) | (grcpre?, grcsubj, grcpost))>
  2118. <!ATTLIST grcevent id       ID       #IMPLIED >
  2119. <!ELEMENT (grcpre | grcpost)
  2120.                    -- Core event whose duration is not counted --
  2121.                    - O      %m.ces; >
  2122. <!ATTLIST (grcpre | grcpost)
  2123.                    id       ID       #IMPLIED
  2124.                    -- Synchronization with subject:
  2125.                       start-time in the case of grcpre
  2126.                       end-time in the case of grcpref --
  2127.                    grcsync  (lead | lag) lead >
  2128. <!ELEMENT grcsubj  -- Grace sequence subject: that which is graced --
  2129.                    O O      (note | rest | special | cer) >
  2130.  
  2131.  
  2132.               <!-- 8.1.3.3  Special Events -->
  2133. <!ELEMENT special  -- User-defined time-stamped event: content describes it --
  2134.                    - O      (#PCDATA) >
  2135. <!ATTLIST special  id       ID       #IMPLIED
  2136.                    %a.ctime;
  2137.                    -- TO DO: other attributes -- >
  2138.  
  2139.  
  2140.             <!-- 8.1.4  Core Event Reference -->
  2141. <!ELEMENT cer      -- Reference to core event, sequence, or group --
  2142.                    - O      EMPTY    >
  2143. <!ATTLIST cer      idr      IDREF    #REQUIRED -- ID of ces|ceg|ce --
  2144.                    shift    NUTOKEN  0         -- Transposition in steps --
  2145.                    -- TO DO: other event modifier attributes -- >
  2146.  
  2147.  
  2148.                  <!-- 8.1.5  Chord Name -->
  2149. <!ENTITY % d.chord "<!ELEMENT chordnm - O (#PCDATA)>"> %d.chord;
  2150.  
  2151.  
  2152.                      <!-- 8.2  Time -->
  2153. <!ENTITY % BEATS   "%FRAC;" -- Measure of music time (fractional) -- >
  2154. <!ENTITY % a.ctime   -- Core event time attributes (7.2) --
  2155.                      "musicdur %BEATS #CURRENT  tie IDREF #IMPLIED" >
  2156. <!-- Explanation of core time attributes:
  2157.  musicdur Duration of event in music time.
  2158.  tie      Succeeding event to which this one is tied (Default: not tied).-->
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.                                June 16, 1988
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.                                   - 34 -
  2178.  
  2179.  
  2180.  
  2181.                    <!-- 8.3  Stress -->
  2182. <!ELEMENT stress   -- Beat cycle definition; dynamic stress pattern --
  2183.                    - O      (beatnum, stresses)+ >
  2184. <!ATTLIST stress   id       ID       #IMPLIED
  2185.                    beatcnt  NUMBER   #REQUIRED -- Number of beats in cycle -->
  2186. <!ELEMENT beatnum  -- Beat number receiving agogic or dynamic stresses --
  2187.                    O O      (#PCDATA) >
  2188. <!ELEMENT stresses -- Stresses applied to specified beat --
  2189.                    O O      (#PCDATA) >
  2190.  
  2191.  
  2192.                     <!-- 8.4  Tempo -->
  2193. <!ELEMENT temposeq -- Relates music time to real time (may be imprecise) --
  2194.                    - O      (tempo+) >
  2195. <!ATTLIST temposeq id       ID       #IMPLIED >
  2196. <!ELEMENT tempo    -- Real time units per beat --
  2197.                    - O      (#PCDATA) >
  2198. <!ATTLIST tempo    id       ID       #IMPLIED
  2199.                    musicdur -- Duration of tempo setting in music time --
  2200.                             %BEATS   #CURRENT
  2201.                    setval   -- Precise final tempo: RTUs/beat (integer #RTU)
  2202.                                or % of earlier tempo (%FRAC idref) --
  2203.                             CDATA    #CURRENT
  2204.                    settext  -- Imprecise final tempo: moderato --
  2205.                             CDATA    #IMPLIED -- Default: use setval --
  2206.                    rateval  -- Precise rate of reaching final tempo --
  2207.                             -- Format: (LINEAR | FORMULA data) --
  2208.                             CDATA    #IMPLIED -- Default: immediate --
  2209.                    ratetext -- Imprecise rate specification: accel, ritard --
  2210.                             CDATA    #IMPLIED -- Default: use rateval --
  2211.                    strict   -- Strictness of interpretation: rubato --
  2212.                             CDATA    #IMPLIED -- Default: strict tempo --
  2213.                    holdtype -- Imprecise extension of counted duration --
  2214.                             (fullstop|long|medium|short|none) none
  2215.                    holddur  -- Precise duration of hold --
  2216.                             %BEATS   #CURRENT >
  2217.  
  2218.  
  2219.                  <!-- 9  Gestural Domain -->
  2220. <!ELEMENT perform  -- The gestures of a performance (MIDI) --
  2221.                    - O      (bibdata?, clicktrk*, track+) >
  2222. <!ATTLIST perform  id       ID       #IMPLIED
  2223.                    score    IDREFS   #IMPLIED
  2224.                    closure  -- Are all core events referenced? --
  2225.                             (closed, open) open >
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.                                June 16, 1988
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.                                   - 35 -
  2244.  
  2245.  
  2246.  
  2247.                     <!-- 9.1  Track -->
  2248. <!ELEMENT track    -- One instrument's time-ordered sequence of gestures --
  2249.                    - O      (ges)   >
  2250. <!ATTLIST track    id       ID       #IMPLIED
  2251.                    instrum  CDATA    #IMPLIED
  2252.                    clicktrk IDREF    #IMPLIED
  2253.                    -- TO DO: other attributes -- >
  2254.  
  2255.  
  2256.           <!-- 9.1.1  Gestural Event Sequence -->
  2257. <!ENTITY % e.ge    "ge" -- TO DO: replace with real element types -- >
  2258. <!ENTITY % m.ges   "(ges | geg | %e.ge; | ger | gcer)*" >
  2259. <!ELEMENT ges      -- Gestural event sequence (has core references) --
  2260.                    O O      %m.ges; >
  2261. <!ATTLIST ges      id       ID       #IMPLIED
  2262.                    -- TO DO: other attributes -- >
  2263.  
  2264.  
  2265.           <!-- 9.1.2  Gestural Event Group -->
  2266. <!ELEMENT geg      -- Gestural event group (has core references) --
  2267.                    - -      %m.ges; >
  2268. <!ATTLIST geg      id       ID       #IMPLIED
  2269.                    -- TO DO: other attributes -- >
  2270.  
  2271.  
  2272.                <!-- 9.1.3  Gestural Event -->
  2273. <!ENTITY % SECONDS "NUMBERS" -- Format: (seconds?, Real Time Units) -- >
  2274. <!ELEMENT (%e.ge;) -- Gestural event: e.g., controller setting, ad lib note --
  2275.                    - O      EMPTY >
  2276. <!ATTLIST ge       id       ID       #IMPLIED
  2277.                    start    -- Start time (Default: derived from core) --
  2278.                             %SECONDS #IMPLIED
  2279.                    duration -- (Default: derived from core) --
  2280.                             %SECONDS #IMPLIED
  2281.                    -- TO DO: other attributes -- >
  2282.  
  2283.  
  2284. <!-- 9.1.4.1  Gestural Domain Reference to Gestural Event -->
  2285. <!ELEMENT ger      -- Gestural event reference (includes geg|ges) --
  2286.                    - O      EMPTY    >
  2287. <!ATTLIST ger      idr      IDREF    #REQUIRED -- ges|ge|geg same perform --
  2288.                    start    -- Start time (Default: derived from core) --
  2289.                             %SECONDS #IMPLIED
  2290.                    duration -- (Default: derived from core) --
  2291.                             %SECONDS #IMPLIED
  2292.                    shift    NUTOKEN  0         -- Transposition in steps --
  2293.                    -- TO DO: other event modifier attributes -- >
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.                                June 16, 1988
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.                                   - 36 -
  2310.  
  2311.  
  2312.  
  2313. <!-- 9.1.4.2  Gestural Domain References to Core Events -->
  2314. <!ELEMENT gcer     -- Gestural domain core event reference --
  2315.                    - O      EMPTY    >
  2316. <!ATTLIST gcer     idr      IDREF    #REQUIRED -- ces|ce|ceg in core --
  2317.                    start    -- Start time (Default: derived from core) --
  2318.                             %SECONDS #IMPLIED
  2319.                    duration -- (Default: derived from core) --
  2320.                             %SECONDS #IMPLIED
  2321.                    shift    NUTOKEN  0         -- Transposition in steps --
  2322.                    -- TO DO: other event modifier attributes -- >
  2323.  
  2324.  
  2325.                   <!-- 9.2 Click Track -->
  2326. <!ELEMENT clicktrk -- Click track: ordered table of event start-times --
  2327.                    - O      (#PCDATA) >
  2328. <!ATTLIST clicktrk id       ID       #IMPLIED -- Default: generated --
  2329.                    nextbeat -- Track and time of next beat --
  2330.                             NMTOKENS #IMPLIED >
  2331.  
  2332.  
  2333.                 <!-- 10  Visual Domain -->
  2334. <!ELEMENT score    -- Visual representation of work (a la DARMS, MUSTRAN...) --
  2335.                    - O      (bibdata?, part+) >
  2336. <!ATTLIST score    id       ID       #IMPLIED
  2337.                    perform  IDREFS   #IMPLIED
  2338.                    closure  -- Are all core events referenced? --
  2339.                             (closed, open) open >
  2340.  
  2341.  
  2342.                     <!-- 10.1  Part -->
  2343. <!ELEMENT part     -- One instrument's portion of the system --
  2344.                    - O      (ves)   >
  2345. <!ATTLIST part     id       ID       #IMPLIED
  2346.                    clef     NAMES    "treble bass"
  2347.                    -- TO DO: other attributes -- >
  2348.  
  2349.  
  2350.           <!-- 10.1.1  Visual Event Sequence -->
  2351. <!ENTITY % e.ve    "ve" -- TO DO: replace with real element types -- >
  2352. <!ENTITY % m.ves   "(ves | veg | %e.ve; | ver | vcer)*" >
  2353. <!ELEMENT ves      -- Visual event sequence (has core references) --
  2354.                    O O      %m.ves; >
  2355. <!ATTLIST ves      id       ID       #IMPLIED
  2356.                    tuplet   -- Triplet (etc.) indicator for sequence --
  2357.                             CDATA    #IMPLIED  -- Not a tuplet --
  2358.                    cue      IDREF    #IMPLIED  -- ID of ves --
  2359.                    tsinst   NUMBERS  #IMPLIED  -- Time sig for instrument --
  2360.                    tscond   NUMBERS  #IMPLIED  -- Time sig for conductor --
  2361.                    -- TO DO: other attributes -- >
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.                                June 16, 1988
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.                                   - 37 -
  2376.  
  2377.  
  2378.  
  2379.             <!-- 10.1.2  Visual Event Group -->
  2380. <!ELEMENT veg      -- Visual event group (has core references) --
  2381.                    - -      %m.ves; >
  2382. <!ATTLIST veg      id       ID       #IMPLIED
  2383.                    -- TO DO: other attributes -- >
  2384.  
  2385.  
  2386.                <!-- 10.1.3  Visual Event -->
  2387. <!ELEMENT (%e.ve;) -- Visual event: e.g., phrase mark, bar line --
  2388.                    - O      EMPTY >
  2389. <!ATTLIST (%e.ve;) id       ID       #IMPLIED
  2390.                    -- TO DO: other attributes -- >
  2391.  
  2392.  
  2393. <!-- 10.1.4.1  Visual Domain Reference to Visual Event -->
  2394. <!ELEMENT ver      -- Visual event reference (includes veg|ves) --
  2395.                    - O      EMPTY    >
  2396. <!ATTLIST ver      idr      IDREF    #REQUIRED -- ves|ve|geg same score --
  2397.                    shift    NUTOKEN  0         -- Transposition in steps --
  2398.                    -- TO DO: other event modifier attributes -- >
  2399.  
  2400.  
  2401.  <!-- 10.1.4.2  Visual Domain Reference to Core Event -->
  2402. <!ELEMENT vcer     -- Visual domain core event reference --
  2403.                    - O      EMPTY    >
  2404. <!ATTLIST vcer     idr      IDREF    #REQUIRED -- ces|ce|ceg in core --
  2405.                    shift    NUTOKEN  0         -- Transposition in steps --
  2406.                    -- TO DO: other event modifier attributes -- >
  2407.  
  2408.  
  2409.                 <!-- 11  Analytical Domain -->
  2410. <!ELEMENT analysis -- An analysis of a work --
  2411.                    - O      (bibdata?, voice+) >
  2412. <!ENTITY % a.anal
  2413.   "core IDREFS #IMPLIED perform IDREFS #IMPLIED score IDREFS #IMPLIED" >
  2414. <!ATTLIST analysis id       ID       #IMPLIED
  2415.                    %a.anal; >
  2416.  
  2417.  
  2418.                     <!-- 11.1  Voice -->
  2419. <!ELEMENT voice    -- A single melody line (possibly polyphonic) --
  2420.                    - O      (aes)   >
  2421. <!ENTITY % a.voice "" >
  2422. <!ATTLIST voice    id       ID       #IMPLIED
  2423.                    %a.voice; >
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.                                June 16, 1988
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.                                   - 38 -
  2442.  
  2443.  
  2444.  
  2445.          <!-- 11.1.1  Analytical Event Sequence -->
  2446. <!ENTITY % e.ae    "ae" -- TO DO: replace with real element types -- >
  2447. <!ENTITY % m.aes   "(aes | aeg | %e.ae; | aer | ver | ger | cer)*" >
  2448. <!ELEMENT aes      -- Analytical event sequence (multi-domain refs) --
  2449.                    O O      %m.aes; >
  2450. <!ENTITY % a.aes   "class (motif | epmotif | esmotif | elision) motif" >
  2451. <!ATTLIST aes      id       ID       #IMPLIED
  2452.                    %a.aes; >
  2453.  
  2454.  
  2455.           <!-- 11.1.2  Analytical Event Group -->
  2456. <!ELEMENT aeg      -- Analytical event group (multi-domain refs) --
  2457.                    - -      %m.aes; >
  2458. <!ENTITY % a.ae    "" >
  2459. <!ATTLIST aeg      id       ID       #IMPLIED
  2460.                    %a.ae; >
  2461.  
  2462.  
  2463.              <!-- 11.1.3  Analytical Event -->
  2464. <!ENTITY % m.ae    "(%e.ae;|%e.ge;|%e.ve;)*" >
  2465. <!ELEMENT (%e.ae;) -- Analytical event --
  2466.                    - O      %m.ae; >
  2467. <!ATTLIST (%e.ae;) id       ID       #IMPLIED
  2468.                    %a.ae; >
  2469.  
  2470.  
  2471.                 <!-- 11.1.4  References -->
  2472. <!ELEMENT aer      -- Analytical event sequence reference --
  2473.                    - O      EMPTY    >
  2474. <!ENTITY % a.aer   "" >
  2475. <!ATTLIST aer      idr      IDREF    #REQUIRED -- ID of aes --
  2476.                    %a.aer; >
  2477.  
  2478.  
  2479.               <!-- 12  Bibliographic Data -->
  2480. <!ENTITY % e.bib   "title | author | date | issuer | descript | copr">
  2481. <!-- Explanation of bibliographic elements:
  2482.   title       Title of work, performance, score, or analysis
  2483.   author      Work: composer, librettist, computer
  2484.               Performance: performer, arranger
  2485.               Score: editor, copyist, arranger
  2486.               Analysis: theorist
  2487.   issuer      Access information: e.g., publisher, catalog number
  2488.   date        Date of work, performance, score, or analysis
  2489.   copr        Copyright notice
  2490.   descript    Miscellaneous descriptive data: e.g., performance time -->
  2491. <!ENTITY % d.bib   "<!ELEMENT (%e.bib;) - O (#PCDATA)>"> %d.bib;
  2492. <!ENTITY % m.bib   "(%e.bib; | theme)*">
  2493. <!ELEMENT bibdata  -- Bibliographic data applying to work as a whole --
  2494.                    - O      %m.bib; >
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.                                June 16, 1988
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.                                   - 39 -
  2508.  
  2509.  
  2510.  
  2511.                     <!-- 12.1  Theme -->
  2512. <!ENTITY % a.theme "">
  2513. <!ELEMENT theme    -- Themes that best identify the work (e.g., incipit) --
  2514.                    - O      EMPTY    >
  2515. <!ATTLIST theme    idr      IDREFS   #REQUIRED -- ID of analysis --
  2516.                    %a.theme; >
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.                                June 16, 1988
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.                                   - 40 -
  2574.  
  2575.  
  2576.                                   Annex B
  2577.  
  2578.                                Theory of Use
  2579.  
  2580. (This annex is informative and will not form an integral part of the  Stan-
  2581. dard.)
  2582.  
  2583. As a language, the Standard can be put to a wide variety  of  uses  ranging
  2584. >from  the  highly  appropriate to the completely pathological. It was, how-
  2585. ever, designed with a particular set of applications in mind, and  will  be
  2586. most  effective if used for these. Knowing the design assumptions will also
  2587. facilitate application of the Standard to unforeseen or unusual situations.
  2588. It  is  hoped  that  this annex will answer many of the questions that will
  2589. arise concerning applicability.
  2590.  
  2591. NOTE: This section will be developed further at a later date.
  2592.  
  2593. B.1 General Application
  2594.  
  2595.      In general, the Standard is intended as a storage and interchange for-
  2596.      mat for musical ideas. It is designed to be somewhat human readable so
  2597.      that a piece could theoretically be created by using a word  processor
  2598.      and  entering  the  encoded material directly. However, it is expected
  2599.      that it will be used mainly for automated processing in such areas  as
  2600.      music  printing,  library cataloging and storage, multimedia presenta-
  2601.      tions, teaching, and research. For other situations, such as live per-
  2602.      formance  or  sound  recording,  other  formats  are likely to be more
  2603.      applicable.
  2604.  
  2605.      A piece to be represented can originate from  almost  any  source.  An
  2606.      automated  composition program might generate a core and an associated
  2607.      gestural section. An interactive music printing system might  generate
  2608.      a  core and a visual section. A sequencer might capture a live perfor-
  2609.      mance and transcribe it into a core and performance section, and  then
  2610.      turn the piece over to a music printing system for the creation of the
  2611.      visual and analytical sections. There is much flexibility in  the  way
  2612.      the  Standard  can  be  used  and  the  situations  to which it can be
  2613.      applied. The only common element is the core, the others need not even
  2614.      be present.
  2615.  
  2616.      The gestural section is designed to be used for the representation  of
  2617.      computer  instrument  sequences.  This  does  not  mean  that  it is a
  2618.      sequencer format for internal use by sequencers. In fact it  would  be
  2619.      poorly suited for that application. It is for archiving and transport-
  2620.      ing music that has been, or will be, processed in some way by  a  com-
  2621.      puter  system.  A performance may be captured on a synthesizer, it may
  2622.      be interpreted from a MIDI  stream,  or  it  may  be  translated  from
  2623.      another  language,  such  as a MIDI sequence file format or MUSIC V. A
  2624.      sequencer might read a piece in the Standard,  translate  it  into  an
  2625.      internal data format, and then realize it in real time.
  2626.  
  2627.      The visual section will be used for representing scores of all  kinds.
  2628.      The  score  may  have  an  accompanying performance or it may not. The
  2629.      score may be entered or captured using a music printing system, or  it
  2630.  
  2631.  
  2632.  
  2633.                                June 16, 1988
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.                                   - 41 -
  2640.  
  2641.  
  2642.      may  be  translated  from DARMS or MUSTRAN. It might be retrieved as a
  2643.      display on a screen,  a  printed  page,  or  translated  into  another
  2644.      language.  Most  importantly  it  will  allow  systems of all kinds to
  2645.      interchange scores easily and accurately.
  2646.  
  2647.      The analytical section will be used to represent theoretical ideas  in
  2648.      a  structural format. Any sort of layering and grouping will be possi-
  2649.      ble, so various styles of analysis will be supported.  A  given  piece
  2650.      may  have several analyses (i.e. one Shenkerian, one classical), which
  2651.      could even refer to each other. An analysis of a piece with a circular
  2652.      score  could  refer  to the score and the performance in an attempt to
  2653.      relate the music to the shape of the score to the  vertiginous  effect
  2654.      on the performer.
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.                                June 16, 1988
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.                                   - 42 -
  2706.  
  2707.  
  2708.                                     Annex C
  2709.  
  2710.                       Explanation of Editorial Conventions
  2711.  
  2712.  
  2713.  
  2714.  
  2715. (This annex is informative and will not form an integral part of the  Stan-
  2716. dard.)   This document observes some of the editorial conventions of a for-
  2717. mal standard, but not yet with the strictness and consistency that will  be
  2718. required in the final document. Those conventions that are observed in this
  2719. revision are listed.
  2720.  
  2721. C.1 Definitions
  2722.  
  2723.      Definitions are contained in a  separate  clause.  Ours  is  presently
  2724.      incomplete  and  will probably remain that way for a while. Also, some
  2725.      of the definitions in it are not as precise as they  should  be.  When
  2726.      the clause is complete, the definitions will refer to one another in a
  2727.      top-down hierarchical order, without tautologies, and will define each
  2728.      term fully.
  2729.  
  2730. C.2 Structure
  2731.  
  2732.      Part Two is structured like a standard in that it observes the follow-
  2733.      ing conventions:
  2734.  
  2735.           Clause 0 is an informative introduction (that  is,  it  does  not
  2736.           contain requirements.)
  2737.  
  2738.           Clause 1 states what the  standard  includes,  and  its  expected
  2739.           uses.
  2740.  
  2741.           Clause 3 contains references to related standards.
  2742.  
  2743.           Clause 4 contains the definitions.
  2744.  
  2745.           Clause 5 describes the notational conventions used in the remain-
  2746.           ing clauses.
  2747.  
  2748.           The clauses from 6 until the end contain the actual requirements.
  2749.  
  2750.      There are also annexes (appendixes) containing  information  that  was
  2751.      segregated from the body of the standard for convenience.
  2752.  
  2753. C.3 Segregation
  2754.  
  2755.      Requirements are distinguished from definitions, examples, and  expla-
  2756.      natory notes and comments.
  2757.  
  2758.      Anything identified as a "NOTE" is there to aid in  understanding  the
  2759.      standard,  but  does  not change the requirements. At present, we also
  2760.      use notes to discuss matters relating to the development of the  stan-
  2761.      dard.
  2762.  
  2763.  
  2764.  
  2765.                                June 16, 1988
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.                                   - 43 -
  2772.  
  2773.  
  2774.      Annexes are designated either "normative" or "informative". The former
  2775.      contain  requirements  and  have  the same force and effect as if they
  2776.      were in the body of the standard. The latter  are  extended  notes  or
  2777.      tutorial information.
  2778.  
  2779. C.4 Language
  2780.  
  2781.      Some words have formal implications that may differ from casual usage.
  2782.      Those that are used in this document are as follows:
  2783.  
  2784.           C.4.1deprecated: Technically allowed, but only in rare situations
  2785.           a sensible thing to do. The opposite of "should".
  2786.  
  2787.           C.4.2must: Required by the language; unavoidable.
  2788.  
  2789.           C.4.3shall: Required by definition. (But not necessarily unavoid-
  2790.           able syntactically or semantically in the language.)
  2791.  
  2792.           C.4.4should: Recommended, but  not  mandatory.  The  opposite  of
  2793.           "deprecated."  (Within  a  requirement,  it  is  used in place of
  2794.           "shall" where there is some rare situation in which  it  wouldn't
  2795.           work or where it was too burdensome to check for compliance.)
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.                                June 16, 1988
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.                                   - 44 -
  2838.  
  2839.  
  2840.                                     Annex D
  2841.  
  2842.  
  2843.                              Guide to SGML Notation
  2844.  
  2845. (This annex is informative and will not form an integral part of the  Stan-
  2846. dard.)
  2847.  
  2848. For those unfamiliar with SGML, the following brief explanation will assist
  2849. in  understanding  the  code  that appears in this document. For a more in-
  2850. depth explanation, the ISO  standard  (ISO  8879-1986)  is  the  definitive
  2851. tutorial and reference on the subject.
  2852.  
  2853. NOTE: This description is currently "brief" to the  point  of  opacity.  We
  2854. plan to expand this section at a later date.
  2855.  
  2856. D.1 Structure
  2857.  
  2858.      SGML consists of three basic structural components. It  is  the  usual
  2859.      intent that these structures will contain data, but in our application
  2860.      there is only structure for the moment. Elements are structural build-
  2861.      ing  blocks which can be defined to contain data or other elements. An
  2862.      attribute list is associated with an element and contains values which
  2863.      describe  the element. Entities are a structural tool which allow por-
  2864.      tions of code to be referenced by a label from one or more  places  in
  2865.      the code.
  2866.  
  2867. D.2 Punctuation
  2868.  
  2869.      There are several punctuation marks that are  important.  Declarations
  2870.      (definitions)  are  surrounded  by <! ... > and comments to the reader
  2871.      are surrounded by -- ... --. For the purposes of  this  document,  the
  2872.      marks -    - and -O can be ignored. In each declaration, the following
  2873.      marks may occur: , this followed by the next, & this and the  next,  |
  2874.      this or the next, ? optional, + one or more, * zero or more.
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.                                June 16, 1988
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.                                   - 45 -
  2904.  
  2905.  
  2906.                                     Annex E
  2907.  
  2908.                                  Status Report
  2909.  
  2910. (This annex is informative and will not form an integral part of the  Stan-
  2911. dard.)
  2912.  
  2913. In the first meetings, the committee concentrated on the overall  structure
  2914. of  the SMDL. Many issues were touched upon to ensure that the basic design
  2915. would be flexible and powerful enough to handle the wide range of  material
  2916. demanded by the requirements specification.
  2917.  
  2918. More recently, the concentration  has  focused  on  the  core  and  related
  2919. issues,  as  this  seemed  the logical starting place. Subsequent work will
  2920. have to build from a basically finished core section. As of the most recent
  2921. meeting  (February  1  - 4, 1988) we have developed the core substantially,
  2922. although some work remains. We expect to finish this section  at  the  next
  2923. meeting,  and  proceed  to  the gestural and visual sections. It is assumed
  2924. that further revisions of the core will be necessary after  development  of
  2925. the other sections.
  2926.  
  2927. Because the work has focused on a particular area, the  preceding  document
  2928. is  uneven.  Some  areas have been discused down to minute detail, and some
  2929. are as yet merely suggestions of the direction in which to proceed. In par-
  2930. ticular  the  core  section is considerably fleshed out, but the others are
  2931. unfinished. As the meetings continue, we expect this document (parts 1  and
  2932. 2) to grow into a Draft Standard which will be complete in all areas.
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.                                 %%% 30 %%%
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.                                June 16, 1988
  2964.