2964 lines
103 KiB
Plaintext
2964 lines
103 KiB
Plaintext
|
|
|||
|
X3V1.8M/SD-7 Journal of Development
|
|||
|
Standard Music Description Language
|
|||
|
Part Two: Technical Description and Formal Definition
|
|||
|
Editor: Alan D. Talbot, New England Digital Corporation
|
|||
|
June 4, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 2 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
CONTENTS
|
|||
|
|
|||
|
0 Introduction 4
|
|||
|
0.1 Purpose of the Document 4
|
|||
|
0.2 Development Methodology 4
|
|||
|
0.3 Editorial Conventions 5
|
|||
|
1 Scope and Field of Application 5
|
|||
|
1.1 Scope 5
|
|||
|
1.2 Field of Application 6
|
|||
|
3 References 6
|
|||
|
4 Definitions 6
|
|||
|
5 Notation 8
|
|||
|
6 Structure and Content 8
|
|||
|
7 Work 9
|
|||
|
7.1 Work Segment 10
|
|||
|
7.2 Work Segment Reference 11
|
|||
|
8 Core 11
|
|||
|
8.1 Thread 12
|
|||
|
8.1.1 Core Event Sequence 13
|
|||
|
8.1.2 Core Event Group 14
|
|||
|
8.1.3 Core Events 14
|
|||
|
8.1.3.1 Notes and Rests 14
|
|||
|
8.1.3.2 Graced Events 15
|
|||
|
8.1.3.3 Special Events 16
|
|||
|
8.1.4 Core Event References 16
|
|||
|
8.2 Time 16
|
|||
|
8.2.1 Beat 16
|
|||
|
8.2.2 Duration 17
|
|||
|
8.3 Stress 17
|
|||
|
8.3.1 Beat Number 17
|
|||
|
8.3.2 Stresses 18
|
|||
|
8.3.3 Meter 18
|
|||
|
8.4 Tempo Sequence 18
|
|||
|
8.4.1 Tempo 18
|
|||
|
9 Gestural Domain 20
|
|||
|
9.1 Track 21
|
|||
|
9.1.1 Gestural Event Sequence 21
|
|||
|
9.1.2 Gestural Event Group 21
|
|||
|
9.1.3 Gestural Event 22
|
|||
|
9.1.4 Gestural Event Reference 22
|
|||
|
9.2 Click Track 22
|
|||
|
10 Visual Domain 23
|
|||
|
10.1 Part 23
|
|||
|
10.1.1 Visual Event Sequence 24
|
|||
|
10.1.2 Visual Event Group 24
|
|||
|
10.1.3 Visual Event 24
|
|||
|
10.1.4 Visual Event Reference 25
|
|||
|
10.2 Space 25
|
|||
|
11 Analytical Domain 25
|
|||
|
11.1 Voice 26
|
|||
|
11.1.1 Analytical Event Sequence 26
|
|||
|
11.1.2 Analytical Event Group 27
|
|||
|
11.1.3 Analytical Event 27
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 3 -
|
|||
|
|
|||
|
|
|||
|
11.1.4 Analytical Event Reference 27
|
|||
|
12 Bibliographic 27
|
|||
|
12.1 Theme 28
|
|||
|
13 Conformance 28
|
|||
|
Annex A 30
|
|||
|
Annex B 40
|
|||
|
B.1 General Application 40
|
|||
|
Annex C 42
|
|||
|
C.1 Definitions 42
|
|||
|
C.2 Structure 42
|
|||
|
C.3 Segregation 42
|
|||
|
C.4 Language 43
|
|||
|
Annex D 44
|
|||
|
D.1 Structure 44
|
|||
|
D.2 Punctuation 44
|
|||
|
Annex E 45
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 4 -
|
|||
|
|
|||
|
|
|||
|
0 Introduction
|
|||
|
|
|||
|
This is the second part of a two part document describing the work of
|
|||
|
ANSI X3V1.8M, the Music Information Processing Standards Committee
|
|||
|
(MIPS). The parts are known collectively as the Journal of Develop-
|
|||
|
ment.
|
|||
|
|
|||
|
"Part One: Objectives and Methodology" describes the objectives of the
|
|||
|
project and the development methodology employed.
|
|||
|
|
|||
|
"Part Two: Technical Description and Formal Definition" describes the
|
|||
|
language design itself, and provides a formal definition.
|
|||
|
|
|||
|
This document and the other Standing Documents comprise the output of
|
|||
|
the committee, while the other documents and material presented at the
|
|||
|
meetings provide the input.
|
|||
|
|
|||
|
NOTES
|
|||
|
|
|||
|
1. The Journal of Development is maintained in two parts only to
|
|||
|
facilitate maintenance by separate individuals; the two parts
|
|||
|
should always be read as a single document. There is much in Part
|
|||
|
Two, for example, that may seem confusing or contentious if it is
|
|||
|
not read in the context established by Part One.
|
|||
|
|
|||
|
2. This introduction appears in both parts of the Journal of
|
|||
|
Development.
|
|||
|
|
|||
|
3. General information about the MIPS committee, including a guide
|
|||
|
to participation, can be found in committee document X3V1.8M/SD-
|
|||
|
0.
|
|||
|
|
|||
|
0.1 Purpose of the Document
|
|||
|
|
|||
|
The Journal of Development describes the status of the Standard Music
|
|||
|
Description Language (SMDL) being developed by the Music Information
|
|||
|
Processing Standards (MIPS) Committee. It is intended as the technical
|
|||
|
and methodological design specification which will ultimately evolve
|
|||
|
into a Standard.
|
|||
|
|
|||
|
0.2 Development Methodology
|
|||
|
|
|||
|
Both parts are revised by their respective editors after each meeting
|
|||
|
of the committee. As a result, the documents never represent text
|
|||
|
that has been agreed on in detail by the committee, but only the edi-
|
|||
|
tors' best efforts to express the committee's ideas. Moreover, the
|
|||
|
ideas in the journal are subject to further study and revision and do
|
|||
|
not represent a final design.
|
|||
|
|
|||
|
Eventually, the design work will reach a point where all aspects of
|
|||
|
the language have been addressed, although not necessarily finalized.
|
|||
|
At that point, the Journal of Development will cease to be the vehicle
|
|||
|
that expresses the current language design. Instead, the committee
|
|||
|
will produce one or more successive "working drafts", consisting of
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 5 -
|
|||
|
|
|||
|
|
|||
|
text that has been agreed to.
|
|||
|
|
|||
|
During the Journal of Development and working draft stages, public
|
|||
|
comment is sought and considered, but the process is informal. When,
|
|||
|
eventually, the committee is satisfied with a working draft, it will
|
|||
|
recommend that X3V1.8 process the document as a "draft proposed Ameri-
|
|||
|
can National Standard". There will then commence a formal public
|
|||
|
review and ballot, during which all comments received will be
|
|||
|
responded to in writing.
|
|||
|
|
|||
|
0.3 Editorial Conventions
|
|||
|
|
|||
|
Formal standards can be complex documents in which every word has both
|
|||
|
legal and technical significance. They may also need to be translated
|
|||
|
into other languages. For these reasons, editorial conventions have
|
|||
|
been established to assure precision, accuracy, and clarity (albeit
|
|||
|
often at the expense of readability by the general public). The key
|
|||
|
principles are:
|
|||
|
|
|||
|
1. Precise and consistent definitions of terms.
|
|||
|
|
|||
|
2. Distinguishing real requirements from mere commentary, explana-
|
|||
|
tions, and examples -- and from definitions.
|
|||
|
|
|||
|
3. Avoidance of redundancy. (Repetition of a requirement is nor-
|
|||
|
mally expressed as a note, to avoid the question of which text
|
|||
|
governs if the "repetition" is imperfect.)
|
|||
|
|
|||
|
Part Two of the Journal of Development observes some of the editorial
|
|||
|
conventions of a formal standard, but not yet with the strictness and
|
|||
|
consistency that will be required in the final document. (See Annex C
|
|||
|
of Part 2 for details.)
|
|||
|
|
|||
|
1 Scope and Field of Application
|
|||
|
|
|||
|
This section defines the range of applicability of the Standard. It
|
|||
|
specifies the limits of what the Standard can be expected to
|
|||
|
represent, and what is outside the design criteria.
|
|||
|
|
|||
|
NOTE: In order to proceed in a timely fashion, we found it necessary
|
|||
|
to choose a subset of all possible music for the scope of the Stan-
|
|||
|
dard. As the design matures, we expect to expand the scope to meet any
|
|||
|
further needs of its users.
|
|||
|
|
|||
|
1.1 Scope
|
|||
|
|
|||
|
This Standard defines a language for the representation of music
|
|||
|
information, either alone, or in conjunction with text, graphics, or
|
|||
|
other information needed for publishing or business purposes. The
|
|||
|
language is known as the "Standard Music Description Language", or
|
|||
|
"SMDL".
|
|||
|
|
|||
|
NOTE: The Standard Music Description Language is an SGML application
|
|||
|
conforming to International Standard ISO 8879 -- Standard Generalized
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 6 -
|
|||
|
|
|||
|
|
|||
|
Markup Language.
|
|||
|
|
|||
|
The SMDL is capable of representing many (but not all) genres of
|
|||
|
music, and most (but not necessarily all) instances of works in those
|
|||
|
genres. The primary focus is on music that can reasonably be
|
|||
|
expressed in Standard Western Musical Notation.
|
|||
|
|
|||
|
NOTE: The scope as defined should encompass the vast majority of
|
|||
|
music. It does not exclude the use of special symbols that can be
|
|||
|
placed in the score, nor of modern notational practices. The only cri-
|
|||
|
terion is that the music be capable of representation as notes on a
|
|||
|
staff, regardless of whether it was actually written down that way, or
|
|||
|
even written down at all.
|
|||
|
|
|||
|
The SMDL is designed for flexibility and extensibility. There are no
|
|||
|
technical prohibitions against the use of some components without the
|
|||
|
whole, or against the use of user-defined components in conjunction
|
|||
|
with standardized ones. The Standard includes a conformance clause
|
|||
|
that identifies minimum and higher levels of support in terms of
|
|||
|
standardized language components and options for user extensions.
|
|||
|
|
|||
|
1.2 Field of Application
|
|||
|
|
|||
|
Pieces that are composed on computer devices, pieces that exist as
|
|||
|
printed scores, pieces that are performances recorded in a manner that
|
|||
|
permits machine transcription, and pieces that are already represented
|
|||
|
in some language, are all within the field of application of this
|
|||
|
Standard.
|
|||
|
|
|||
|
Pieces that have other sources, such as digital audio recordings, can
|
|||
|
be associated and synchronized with pieces described in SMDL. They can
|
|||
|
exist as elements in the same document as SMDL works, but will have
|
|||
|
their own representation (document type definition and data content
|
|||
|
notations).
|
|||
|
|
|||
|
3 References
|
|||
|
|
|||
|
ISO 8879, Information processing -- Text and office systems -- Stan-
|
|||
|
dard Generalized Markup Language (SGML).
|
|||
|
|
|||
|
X3V1.8M/SD-6 Journal of Development -- Standard Music Description
|
|||
|
Language -- Part One: Objectives and Methodology
|
|||
|
|
|||
|
4 Definitions
|
|||
|
|
|||
|
The following items are used in a number of places in the text but are
|
|||
|
not explicitly defined. They are essential to the understanding of the
|
|||
|
Standard, and many have been assigned meanings which differ from com-
|
|||
|
mon usage.
|
|||
|
|
|||
|
4.1 analytical domain: The portion of a work which contains music
|
|||
|
theoretical analyses.
|
|||
|
|
|||
|
4.2 analysis: A music theoretical analysis of the piece, such as a
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 7 -
|
|||
|
|
|||
|
|
|||
|
Shenkerian analysis. An examination of the piece as opposed to a ren-
|
|||
|
dition of the piece.
|
|||
|
|
|||
|
4.3 beat: A relative time unit that is used for measuring durations
|
|||
|
in the core.
|
|||
|
|
|||
|
NOTE: It should be the "felt" beat (tactus) if known. Otherwise, it
|
|||
|
can be chosen for convenience; for example, the smallest or most com-
|
|||
|
mon note value in the piece (i.e., 1/4, 1/8, 1/16, etc.)
|
|||
|
|
|||
|
4.4 bibliographic data: Identification information used to catalog
|
|||
|
and archive pieces of music (or any other works.)
|
|||
|
|
|||
|
4.5 core: The portion of a work that represents the basis of all of
|
|||
|
the performances, scores, and analyses. The logical musical material
|
|||
|
as opposed to the performance or score specific material.
|
|||
|
|
|||
|
NOTE: The core can be thought of mechanistically as the information
|
|||
|
which is most convenient to share in common among the other domains,
|
|||
|
and among multiple instances in the same domain. Philosophically, it
|
|||
|
can be thought of as the information that is necessary (and in the
|
|||
|
case of conventional Western music, sufficient) to distinguish the
|
|||
|
piece from all others.
|
|||
|
|
|||
|
4.6 gestural domain: The portion of a work that represents live per-
|
|||
|
formance data such as precise timing and dynamic fluctuation.
|
|||
|
|
|||
|
4.7 logical: The basic musical content of a piece of music, such as
|
|||
|
the time values, pitch values, and basic groupings such as chords and
|
|||
|
tuplets.
|
|||
|
|
|||
|
4.8 logical domain: The core.
|
|||
|
|
|||
|
4.9 markup minimization: The elimination of redundant verbiage in the
|
|||
|
actual representation of a work.
|
|||
|
|
|||
|
NOTE: SGML has been designed to allow this to happen naturally, so it
|
|||
|
is not necessary to consider it in the initial design of the Standard.
|
|||
|
|
|||
|
4.10 MIPS: Music Information Processing Standards Committee; ANSI
|
|||
|
X3V1.8M.
|
|||
|
|
|||
|
4.11 performance: A particular realization of a piece, either by
|
|||
|
mechanical means or by a musician.
|
|||
|
|
|||
|
4.12 piece: A musical composition.
|
|||
|
|
|||
|
4.13 real time unit: The basic unit of measurement of time in a work;
|
|||
|
the smallest representable division of time.
|
|||
|
|
|||
|
4.14 SGML: Standard Generalized Markup Language; a text markup
|
|||
|
language and structured design tool. SGML is an International Standard
|
|||
|
and is fully defined and described in ISO 8879-1986.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 8 -
|
|||
|
|
|||
|
|
|||
|
4.15 SMDL: Standard Music Description Language; this Standard.
|
|||
|
|
|||
|
4.16 score: A printed piece of music; an edition.
|
|||
|
|
|||
|
4.17 tuplet: A group of notes which occur in a different time frame
|
|||
|
than the surrounding notes; a time anomaly.
|
|||
|
|
|||
|
NOTE: A triplet, a quintuplet, and a duplet in compound meter are all
|
|||
|
tuplets.
|
|||
|
|
|||
|
4.18 visual domain: The portion of a work which represents the score;
|
|||
|
the music engraving information.
|
|||
|
|
|||
|
4.19 work: The SMDL representation of a piece.
|
|||
|
|
|||
|
NOTE: A work has four domains: core, gestural, visual, and analytical.
|
|||
|
In addition, bibliographic data can be associated with the work as a
|
|||
|
whole or with instances of any of the domains.
|
|||
|
|
|||
|
5 Notation
|
|||
|
|
|||
|
This Standard is expected to be an SGML application, and the develop-
|
|||
|
ment is proceding using SGML as a design tool. For this reason, the
|
|||
|
formal syntactic and structural definitions in this document are in
|
|||
|
SGML. A brief discussion of SGML syntax and semantics can be found in
|
|||
|
Annex D. A complete and definitive treatise on SGML is found in ISO
|
|||
|
8879-1986.
|
|||
|
|
|||
|
It is intended that the text describing each element and attribute
|
|||
|
will be a complete definition and explanation, but the formal language
|
|||
|
of the SGML coding provides the rigorous definitions underlying the
|
|||
|
text descriptions, and will show the mechanism behind each technique
|
|||
|
that is presented. For this reason, excerpts of the SGML encoding have
|
|||
|
been interspersed with the text at strategic points. It is recommended
|
|||
|
that the reader refer to the SGML in the text and in Annex A while
|
|||
|
reading the technical definitions.
|
|||
|
|
|||
|
NOTE: In the case of conflict between the SGML excerpts in the text
|
|||
|
and the formal specification in Annex A, the SGML in Annex A will
|
|||
|
govern.
|
|||
|
|
|||
|
6 Structure and Content
|
|||
|
|
|||
|
The Standard will be based on a hierarchical structure which describes
|
|||
|
a piece in terms of four basic sections: the underlying musical form,
|
|||
|
a set of performances (presumably to be reproduced by a machine), a
|
|||
|
set of scores in the form of Standard Western Music Notation, and a
|
|||
|
set of theoretical analyses. We feel this structure best reflects the
|
|||
|
conceptual divisions inherent in music in light of the uses to which
|
|||
|
the Standard will be put. These divisions may not represent the philo-
|
|||
|
sophically most elegant approach to the expression of musical ideas,
|
|||
|
but we feel they will they will be maximally useful. This separation
|
|||
|
of the whole into performance and score, and the extraction of the
|
|||
|
logical musical concepts, seems an unavoidable outcome of the way
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 9 -
|
|||
|
|
|||
|
|
|||
|
music has come to be performed and notated, and has long been present
|
|||
|
in Western music.
|
|||
|
|
|||
|
This hierarchical structure will be codified in terms of elements.
|
|||
|
Elements are basic structural building blocks which provide a frame-
|
|||
|
work and a means to relate and collect information. Each element has a
|
|||
|
related information set consisting of attributes. These will contain
|
|||
|
much of the actual data, as the element itself is basically a place
|
|||
|
holder. For instance, an event is an element, and may represent a
|
|||
|
note, in which case it will have attributes describing pitch, dura-
|
|||
|
tion, and possibly dynamic level. Attributes can be defined by the
|
|||
|
user as well as the designer. This allows almost unlimited flexibility
|
|||
|
in representing unusual material that may not have been foreseen dur-
|
|||
|
ing the design.
|
|||
|
|
|||
|
The representational scheme is based on the separation of the basic
|
|||
|
musical content (pitch, rhythm, harmony, etc.) from the purely perfor-
|
|||
|
mance oriented information (intonation, rhythmic interpretation) and
|
|||
|
the purely score oriented information (page layout, horizontal spac-
|
|||
|
ing, clef). This means simply that some process or machine must be
|
|||
|
able to separate the work into one or more of these categories for
|
|||
|
this Standard to represent it. (These divisions are discussed in
|
|||
|
detail in the following clauses.) This is not to say that the piece
|
|||
|
must originate in a separated form, only that it can be separated for
|
|||
|
the purpose of encoding in the Standard. While it is possible to ima-
|
|||
|
gine pieces which are not separable in this way, almost all works in
|
|||
|
all genres are in fact easily separable.
|
|||
|
|
|||
|
7 Work
|
|||
|
|
|||
|
NOTE: This and the following clauses are devoted to a detailed defini-
|
|||
|
tion of each element of the structure, and the information it con-
|
|||
|
tains. (A description of the applications of these elements is found
|
|||
|
in Annex B.) Some of the attributes have been defined and are
|
|||
|
described below, but some have not yet been addressed. The assumption
|
|||
|
is that every element will have an attribute list, containing at least
|
|||
|
an identification mark for reference by other elements. Additional
|
|||
|
items will be added to the attribute list as they are defined, but in
|
|||
|
the interests of top down design, we are concentrating on the overall
|
|||
|
structure first, leaving the myriad and obfuscating details for later.
|
|||
|
|
|||
|
The work is the top level of the hierarchy. The work encompasses the
|
|||
|
entire document, and is defined as the logical musical information,
|
|||
|
and all of the performances, scores, and analyses that stem from that
|
|||
|
musical information. If a "piece" actually has several versions which
|
|||
|
differ in basic ways, those versions must each be a separate work. All
|
|||
|
of the remaining elements are contained within the work.
|
|||
|
|
|||
|
The source is an attribute of a work which indicates what form the
|
|||
|
piece originated from. It distinguishes between a piece which was cap-
|
|||
|
tured from a MIDI stream, a piece which was entered from a printed
|
|||
|
score, and a piece which was composed and entered as logical informa-
|
|||
|
tion.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 10 -
|
|||
|
|
|||
|
|
|||
|
The composer analysis attribute, if present, indicates an analysis
|
|||
|
which was created by the composer.
|
|||
|
|
|||
|
NOTE: The intent is to label that information which is definitive as
|
|||
|
opposed to that which represents an opinion.
|
|||
|
|
|||
|
The rtu base is a time reference which specifies the order of magni-
|
|||
|
tude of the timing in the work. It specifies the number of real time
|
|||
|
units (rtu) per second.
|
|||
|
|
|||
|
NOTE: The intent is to allow a wide range of pieces to be realized
|
|||
|
with an implementation of limited precision. If 32 bits are used to
|
|||
|
hold time values, for instance, setting rtubase to 1 will give about
|
|||
|
100 years of time measurable to 1 second accuracy. Setting it to
|
|||
|
1,000,000 will give about 1 hour at 1 microsecond accuracy.
|
|||
|
|
|||
|
<!-- 7 Work as a Whole -->
|
|||
|
<!ELEMENT work -- Musical composition, piece, etc. --
|
|||
|
- - (bibdata?, workseg+, analysis*) >
|
|||
|
<!ATTLIST work source -- Origin of this representation of the work --
|
|||
|
(core | analysis | perform | score) #REQUIRED
|
|||
|
companal -- Composer's analysis (may include core-like
|
|||
|
controlling factors that distinguish the work)--
|
|||
|
IDREF #IMPLIED -- ID of analysis --
|
|||
|
rtubase -- Real Time Units per second (0=100,000,000) --
|
|||
|
NUMBER 10000 >
|
|||
|
|
|||
|
|
|||
|
7.1 Work Segment
|
|||
|
|
|||
|
The work segment is a structural device for dividing the work along
|
|||
|
major boundaries. Workseg is defined self-referentially so that
|
|||
|
repetitions and other constructs can be easily represented.
|
|||
|
|
|||
|
Movements of a symphony would be placed in separate segments, as would
|
|||
|
acts in an opera or any other divisions that affect all aspects of the
|
|||
|
piece (i.e. all parts, all instruments, etc.) The segment will also be
|
|||
|
used for making global changes such as key changes, time signature
|
|||
|
changes and instrumentation changes. If the piece changes key or time
|
|||
|
signature, that often affects every part and instrument, and indicates
|
|||
|
a major turning point in the music. In such cases, the material before
|
|||
|
the change should be in one segment, and the material after in
|
|||
|
another.
|
|||
|
|
|||
|
One very important use of the work segment will be in cases where the
|
|||
|
instrumentation changes. If the piece starts out with full orchestra,
|
|||
|
and later proceeds with only strings, then two segments should be used
|
|||
|
to separate the sections. This will greatly assist in maintaining a
|
|||
|
useful relationship between the threads in the core, the parts in the
|
|||
|
score, and the tracks in the performance.
|
|||
|
|
|||
|
Another use is to indicate the composer's intent. If the composer or
|
|||
|
the editor wants a major division in the work, the work segment can be
|
|||
|
used to indicate the division even though none of the above situations
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 11 -
|
|||
|
|
|||
|
|
|||
|
apply.
|
|||
|
|
|||
|
The class is a label indicating the use of the workseg. It is coded as
|
|||
|
a text string, not as a machine interpretable value.
|
|||
|
|
|||
|
The delay indicates the expected pause (if any) between the workseg
|
|||
|
and any following workseg. It is coded as a text string, not as a
|
|||
|
machine interpretable value.
|
|||
|
|
|||
|
|
|||
|
<!-- 7.1 Work Segment -->
|
|||
|
<!ELEMENT workseg -- Sequential segment of a work: movement, act, etc. --
|
|||
|
O O ((workseg, (workseg | worksegr)+) |
|
|||
|
(bibdata?, core, perform*, score*)) >
|
|||
|
<!ATTLIST workseg id ID #IMPLIED
|
|||
|
class -- E.g., movement, section, coda --
|
|||
|
CDATA #IMPLIED -- don't care --
|
|||
|
delay -- E.g., 15 minute intermission --
|
|||
|
CDATA #IMPLIED -- don't care -- >
|
|||
|
|
|||
|
|
|||
|
7.2 Work Segment Reference
|
|||
|
|
|||
|
The work segment reference is a structural tool to allow a work seg-
|
|||
|
ment to reference other work segments. This provides flexibility in
|
|||
|
creating repeats and loops, and allows analyses to refer to work seg-
|
|||
|
ments.
|
|||
|
|
|||
|
|
|||
|
<!-- 7.2 Work Segment Reference -->
|
|||
|
<!ELEMENT worksegr -- Work segment reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST worksegr idr IDREF #REQUIRED -- ID of any work segment -- >
|
|||
|
|
|||
|
|
|||
|
8 Core
|
|||
|
|
|||
|
The core is the basis for a work, and a work has one and only one
|
|||
|
core. The core contains such information as pitch, note value, har-
|
|||
|
monic groupings, phrasings, tuplets, etc. A piece for which a core is
|
|||
|
not producible can not be represented, and a piece with more than one
|
|||
|
core must be represented as more than one work. We will see, however,
|
|||
|
that several interpretations of the same basic piece can reside in the
|
|||
|
same work if they derive from the same core.
|
|||
|
|
|||
|
Let us take the example of a simple piano piece. We have a performance
|
|||
|
captured by a MIDI sequencer, and the score from which the performance
|
|||
|
was played. The core will contain an element for each note and rest in
|
|||
|
the score, thus representing the logical basis of the work. A given
|
|||
|
measure in the core may contain no notes, and the corresponding spot
|
|||
|
in the score may say "ad lib". At that point in the performance, there
|
|||
|
are several improvised notes. It is possible that another performance
|
|||
|
with a different improvised section, and another score which specifi-
|
|||
|
cally details a cadenza, might be included in this work and be based
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 12 -
|
|||
|
|
|||
|
|
|||
|
on the same core.
|
|||
|
|
|||
|
The normalized attribute states whether the core has been normalized.
|
|||
|
It may often be desirable that the core have a canonical (normalized)
|
|||
|
form. That is, that there be one particular form which will always be
|
|||
|
used for a given piece. (Note that the definition of the core does not
|
|||
|
provide orthoganality, so there are many ways that a given piece could
|
|||
|
be represented.) For such situations, an algorithm can be applied
|
|||
|
which translates any arbitrary core into a given canonical form. The
|
|||
|
user may create such an algorithm to fit the needs of the application,
|
|||
|
or the Standard Canonical Form can be generated using the Standard
|
|||
|
Algorithm. We plan to provide this Standard Algorithm both as a way
|
|||
|
of providing consistency between applications and as a model for other
|
|||
|
algorithms.
|
|||
|
|
|||
|
The normalization algorithm attribute states which algorithm has been
|
|||
|
used to normalize the core. If "standard" is used, it is expected that
|
|||
|
implementations will access the Standard Algorithm. If another algo-
|
|||
|
rithm is used it can be identified here, and may be implementation
|
|||
|
specific.
|
|||
|
|
|||
|
|
|||
|
<!-- 8 Core -->
|
|||
|
<!ELEMENT core -- The essential music, common to all domains --
|
|||
|
- O (stress*, temposeq+, thread+) >
|
|||
|
<!ATTLIST core norm -- Is core timing normalized? (7.5) --
|
|||
|
(norm | nonnorm) nonnorm >
|
|||
|
|
|||
|
|
|||
|
8.1 Thread
|
|||
|
|
|||
|
The thread is a sequence of musical events which lasts for the dura-
|
|||
|
tion of the piece. It is analogous to a track in a sequencer or on a
|
|||
|
multi-track tape deck. The purpose of the thread is to allow the core
|
|||
|
to be sectioned into concurrent streams of notes and other events,
|
|||
|
mostly for the sake of convenience. There is no assumption made about
|
|||
|
how the piece will be divided into threads, but logic suggests that
|
|||
|
parts in a score, tracks in a sequence, or voices would be the best
|
|||
|
choices of thread allocation.
|
|||
|
|
|||
|
The tempo sequence attribute indicates which tempo sequence is to be
|
|||
|
used for this thread.
|
|||
|
|
|||
|
The nominal instrument attribute records for posterity the instrument
|
|||
|
that the composer had in mind (in case anybody cares.) The point is
|
|||
|
that the gestural section, which contains the timbral information, may
|
|||
|
be an interpretation by someone other than the composer. This will be
|
|||
|
encoded as a text string, not as coded timbral data such as is found
|
|||
|
in the gestural section.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 13 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1 Thread -->
|
|||
|
<!ELEMENT thread -- Voice-like time-ordered sequence of events --
|
|||
|
- O (ces) >
|
|||
|
<!ATTLIST thread id ID #IMPLIED
|
|||
|
temposeq IDREF #IMPLIED
|
|||
|
nominst CDATA #IMPLIED -- Nominal instrument --
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
8.1.1 Core Event Sequence
|
|||
|
|
|||
|
A core event sequence is a collection of core events, other core event
|
|||
|
sequences, and core event groups. A core event sequence groups sequen-
|
|||
|
tial events, as in movements, measures or tuplets. These groups may be
|
|||
|
nested to any depth and combined in any way. Each thread is made up of
|
|||
|
a structure of core event sequences which is as complex as is neces-
|
|||
|
sary to represent the music completely.
|
|||
|
|
|||
|
The time factor attribute is a fraction which describes the relation-
|
|||
|
ship of the beat inside a given sequence and the beat surrounding (or
|
|||
|
underneath) the sequence. Time anomalies (such as triplets) will be
|
|||
|
represented by setting the time factor to the correct fraction. For
|
|||
|
example, if the beat of a piece falls on the quarter note (so quarter
|
|||
|
notes have a time value of 1) and an eighth note triplet is encoun-
|
|||
|
tered, the triplet could be expressed as a sequence of three notes of
|
|||
|
value 1 with a time factor of 1/3, or as a sequence of three notes of
|
|||
|
value 1/2 with a time factor of 2/3. It may turn out to be desirable
|
|||
|
to specify that every event sequence must contain an integral (non-
|
|||
|
fractional) number of beats. This would not be limiting since a common
|
|||
|
denominator can be found for any situation.
|
|||
|
|
|||
|
The stress id attribute is a reference to a stress pattern to use for
|
|||
|
this sequence.
|
|||
|
|
|||
|
The stress beat attribute is the offset (in beats) into the stress
|
|||
|
pattern at which the sequence starts. A common use for this would be
|
|||
|
for an anacrusis (pick-up measure).
|
|||
|
|
|||
|
The ornamentation style attribute is a text string which allows the
|
|||
|
composer or editor to record remarks on the ornamentation style of the
|
|||
|
sequence.
|
|||
|
|
|||
|
NOTE: This attribute should perhaps modify stress instead.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 14 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.1 Core Event Sequence -->
|
|||
|
<!ENTITY % FRAC "NUMBERS" -- fraction: numerator, denominator? (=1) -- >
|
|||
|
<!ENTITY % m.ces "(ces|ceg|note|rest|grcevent|special|cer)*" >
|
|||
|
<!ELEMENT ces -- Core event sequence --
|
|||
|
O O (chordnm?, %m.ces;) >
|
|||
|
<!ATTLIST ces id ID #IMPLIED
|
|||
|
factor -- ces beats / sum of subelement beats --
|
|||
|
%FRAC "1 1"
|
|||
|
stressid -- Beat cycle dynamic stress pattern --
|
|||
|
IDREF #IMPLIED -- Default: no change --
|
|||
|
stressbt -- Beat # of stress pattern on which ces begins --
|
|||
|
NUMBER 1 -- Not 1 only if anacrusis --
|
|||
|
ornstyle -- Ornamentation style: e.g., period --
|
|||
|
CDATA #IMPLIED -- Default: no ornamentation -- >
|
|||
|
|
|||
|
|
|||
|
8.1.2 Core Event Group
|
|||
|
|
|||
|
The core event group is a collection of events or sequences which are
|
|||
|
initiated simultaneously. A chord is a group which contains events
|
|||
|
(notes). A section of a thread may well be a group containing a
|
|||
|
sequence for each of several parallel voices. This is an alternative
|
|||
|
to placing each voice in a separate thread.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.2 Core Event Group -->
|
|||
|
<!ELEMENT ceg -- Core event group --
|
|||
|
- - %m.ces; >
|
|||
|
<!ATTLIST ceg id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
8.1.3 Core Events
|
|||
|
|
|||
|
The core event is the basic unit of the structure. Notes and rests are
|
|||
|
examples of core events, but other occurrences may also be represented
|
|||
|
as events. In general an event is some occurrence or item which has a
|
|||
|
single definable starting point in time, and a definable duration.
|
|||
|
|
|||
|
8.1.3.1 Notes and Rests
|
|||
|
|
|||
|
The note and the rest are the most common musical events. They are
|
|||
|
very similar in that they are simple events (as opposed to compound
|
|||
|
events like the graced event). The note has a pitch attribute which
|
|||
|
specifies its scale tone and octave.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 15 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.3.1 Notes and Rests -->
|
|||
|
<!ELEMENT (note | rest)
|
|||
|
-- Conventionally pitched time-stamped event --
|
|||
|
- O EMPTY >
|
|||
|
|
|||
|
<!ATTLIST (note | rest)
|
|||
|
id ID #IMPLIED
|
|||
|
%a.ctime;
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
8.1.3.2 Graced Events
|
|||
|
|
|||
|
The graced event is a compound event in that it consists of a main
|
|||
|
event ornamented by a "grace" modifier. The modifier is an event
|
|||
|
sequence which can either precede or follow the main event, and which
|
|||
|
will not consume time as will a normal sequence.
|
|||
|
|
|||
|
The preceding grace modifier is an event sequence which starts at a
|
|||
|
given time and proceeds until finished, at which time the grace sub-
|
|||
|
ject is started.
|
|||
|
|
|||
|
The grace subject is the main event. It starts after the preceding
|
|||
|
modifier and continues until the end of its duration, or until the
|
|||
|
start of a posterior modifier.
|
|||
|
|
|||
|
The posterior grace modifier starts at a given time after the main
|
|||
|
event has started, and proceeds until finished.
|
|||
|
|
|||
|
The grace synchronization attribute specifies the starting time
|
|||
|
offsets of the preceding and posterior modifiers. It is measured from
|
|||
|
the start time of the subject, and the end time of the subject,
|
|||
|
respectively.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.3.2 Graced Event -->
|
|||
|
<!ELEMENT grcevent -- Graced core event --
|
|||
|
- O ((grcpre, grcsubj) | (grcpre?, grcsubj, grcpost))>
|
|||
|
<!ATTLIST grcevent id ID #IMPLIED >
|
|||
|
<!ELEMENT (grcpre | grcpost)
|
|||
|
-- Core event whose duration is not counted --
|
|||
|
- O %m.ces; >
|
|||
|
<!ATTLIST (grcpre | grcpost)
|
|||
|
id ID #IMPLIED
|
|||
|
-- Synchronization with subject:
|
|||
|
start-time in the case of grcpre
|
|||
|
end-time in the case of grcpref --
|
|||
|
grcsync (lead | lag) lead >
|
|||
|
<!ELEMENT grcsubj -- Grace sequence subject: that which is graced --
|
|||
|
O O (note | rest | special | cer) >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 16 -
|
|||
|
|
|||
|
|
|||
|
8.1.3.3 Special Events
|
|||
|
|
|||
|
The special event contains user defined information about timed events
|
|||
|
other than conventional musical occurrences. Its content (other than
|
|||
|
starting time and duration) will be application specific.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.3.3 Special Events -->
|
|||
|
<!ELEMENT special -- User-defined time-stamped event: content describes it --
|
|||
|
- O (#PCDATA) >
|
|||
|
<!ATTLIST special id ID #IMPLIED
|
|||
|
%a.ctime;
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
8.1.4 Core Event References
|
|||
|
|
|||
|
Core events are accessed through core event references. These are
|
|||
|
pointers which allow the core to be referred to in arbitrarily complex
|
|||
|
ways by the performance, score, and analysis sections of the piece.
|
|||
|
This process will be explored in more depth in Theory of Use. This
|
|||
|
structure yields a very flexible system for organizing and referring
|
|||
|
to events.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.4 Core Event Reference -->
|
|||
|
<!ELEMENT cer -- Reference to core event, sequence, or group --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST cer idr IDREF #REQUIRED -- ID of ces|ceg|ce --
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
8.2 Time
|
|||
|
|
|||
|
It is in the core that the time of the piece is represented. By time
|
|||
|
we mean the rhythmic relationship of each event to all other events.
|
|||
|
This is not to be confused with tempo, which refers to the rate of
|
|||
|
progress of the piece. The time model has several components which
|
|||
|
combine to form a system which we hope will account for any situation
|
|||
|
within the scope of the Standard.
|
|||
|
|
|||
|
8.2.1 Beat
|
|||
|
|
|||
|
All time must be measured in relation to some base which is not open
|
|||
|
to interpretation. That base will be called the beat. The beat is
|
|||
|
defined to be that time interval which, at any given point in the
|
|||
|
piece, is small enough to divide without remainder into all existing
|
|||
|
subdivisions of the sequence, excluding time anomalies. This beat will
|
|||
|
only be assigned an absolute value in the gestural section; in the
|
|||
|
core it is simply a common reference. If the beat changes in meaning
|
|||
|
as the piece progresses, then the core will be sectioned into more
|
|||
|
than one sequence. Each sequence will specify the relation of its
|
|||
|
beat to an overall reference beat.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 17 -
|
|||
|
|
|||
|
|
|||
|
Since the beat is a relative measurement, the performance can be
|
|||
|
linked to any time base that is appropriate. The beat can be assigned
|
|||
|
a fixed duration, an algorithmically generated variable duration, or
|
|||
|
be related to a live recorded click track. Similarly the score can use
|
|||
|
any appropriate time signature for a given passage. The same piece
|
|||
|
could, for example, be scored in 4/4 as triplets or in 12/8 as
|
|||
|
straight eighths. Indeed, a score representation in each meter could
|
|||
|
refer to the same core.
|
|||
|
|
|||
|
8.2.2 Duration
|
|||
|
|
|||
|
Each core event will have a music duration (note value) attribute
|
|||
|
which is stated as a fraction of a beat. The time consumed by a core
|
|||
|
event sequence will be the sum of the durations of its events in
|
|||
|
beats. Accumulated time is therefore represented as the sum of dura-
|
|||
|
tional time, necessitating the definition of events which sound
|
|||
|
(notes), and events which do not (rests).
|
|||
|
|
|||
|
The model will support single events or tied events. Tied events are
|
|||
|
strings of events which are taken together to represent one event with
|
|||
|
a duration that is the sum of each of the individual durations. When a
|
|||
|
note starts sounding in one event sequence and continues into the
|
|||
|
next, the note is split into two tied events of the appropriate dura-
|
|||
|
tion. The tie attribute indicates that the event is tied, and to which
|
|||
|
subsequent event it is tied.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.2 Time -->
|
|||
|
<!ENTITY % BEATS "%FRAC;" -- Measure of music time (fractional) -- >
|
|||
|
<!ENTITY % a.ctime -- Core event time attributes (7.2) --
|
|||
|
"musicdur %BEATS #CURRENT tie IDREF #IMPLIED" >
|
|||
|
|
|||
|
|
|||
|
8.3 Stress
|
|||
|
|
|||
|
The stress element indicates how a passage is to be stressed dynami-
|
|||
|
cally. It consists of a set of template sequences that indicate which
|
|||
|
beats are to receive what stress. Stress can be dynamic, agogic (tempo
|
|||
|
related), or can be related to other user specified parameters.
|
|||
|
|
|||
|
The beat count attribute indicates the number of beats in the template
|
|||
|
cycle.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.3 Stress -->
|
|||
|
<!ELEMENT stress -- Beat cycle definition; dynamic stress pattern --
|
|||
|
- O (beatnum, stresses)+ >
|
|||
|
<!ATTLIST stress id ID #IMPLIED
|
|||
|
beatcnt NUMBER #REQUIRED -- Number of beats in cycle -->
|
|||
|
|
|||
|
|
|||
|
8.3.1 Beat Number
|
|||
|
|
|||
|
The beat number element marks a particular beat in a stress cycle as
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 18 -
|
|||
|
|
|||
|
|
|||
|
receiving stress.
|
|||
|
|
|||
|
|
|||
|
<!ELEMENT beatnum -- Beat number receiving agogic or dynamic stresses --
|
|||
|
O O (#PCDATA) >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
8.3.2 Stresses
|
|||
|
|
|||
|
The stresses element contains information on what kind of stress is to
|
|||
|
be applied to the beat with which it is associated.
|
|||
|
|
|||
|
|
|||
|
<!ELEMENT stresses -- Stresses applied to specified beat --
|
|||
|
O O (#PCDATA) >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
8.3.3 Meter
|
|||
|
|
|||
|
The concept of meter is expressible in the core by creating a stress
|
|||
|
template which models a measure. In 4/4 time, a template may have 4
|
|||
|
beats, and may mark the first as having maximum stress, and the third
|
|||
|
as having moderate stress. In the case of a complex metric situation,
|
|||
|
such as a measure of five which is felt as two and three, a nested
|
|||
|
structure of stress templates can be used to accurately indicate the
|
|||
|
feel. If ambiguity is desired however, the measure can be represented
|
|||
|
as simply five beats.
|
|||
|
|
|||
|
NOTE: The inclusion of the meter in the core reflects the philosophy
|
|||
|
that measures are a basic logical concept in music, rather than
|
|||
|
strictly a score related issue. This is certainly not true of all
|
|||
|
music, but the facility must be there for those pieces for which it is
|
|||
|
important.
|
|||
|
|
|||
|
8.4 Tempo Sequence
|
|||
|
|
|||
|
The tempo sequence element is a list of time stamped tempo modifica-
|
|||
|
tions which govern the tempo of the piece. Each thread refers to a
|
|||
|
particular tempo sequence; there can be several if the piece involves
|
|||
|
conflicting tempi.
|
|||
|
|
|||
|
|
|||
|
<!-- 8.4 Tempo -->
|
|||
|
<!ELEMENT temposeq -- Relates music time to real time (may be imprecise) --
|
|||
|
- O (tempo+) >
|
|||
|
<!ATTLIST temposeq id ID #IMPLIED >
|
|||
|
|
|||
|
|
|||
|
8.4.1 Tempo
|
|||
|
|
|||
|
The tempo element is the basic building block of the tempo sequence.
|
|||
|
It specifies a tempo change from the current tempo to a target tempo.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 19 -
|
|||
|
|
|||
|
|
|||
|
(The current tempo is the tempo in effect infinitesimally before the
|
|||
|
start time of the tempo element. The target tempo is the tempo in
|
|||
|
effect infinitesimally before the start time of the next tempo ele-
|
|||
|
ment.) The attributes have been defined to give a large degree of
|
|||
|
flexibility in specifying changes over time, and maintaining ambiguity
|
|||
|
and imprecision when desired.
|
|||
|
|
|||
|
The music duration attribute specifies the life of this tempo setting
|
|||
|
(the time until the next change) in beats.
|
|||
|
|
|||
|
The set value attribute specifies a precise target tempo, either abso-
|
|||
|
lutely in rtu's per beat or as a percentage of the current tempo.
|
|||
|
|
|||
|
The set text attribute specifies an imprecise target tempo. The value
|
|||
|
is represented as a text string, and presumably will be a common musi-
|
|||
|
cal expression such as "presto" or "moderato".
|
|||
|
|
|||
|
The rate value attribute specifies a precise formula for reaching the
|
|||
|
target tempo from the current tempo. It can be specified as "immedi-
|
|||
|
ate" (instant change at the start time of the tempo element), "linear"
|
|||
|
over the duration of the tempo element, or represented by a mathemati-
|
|||
|
cal formula in the form of a text string.
|
|||
|
|
|||
|
The rate text attribute specifies an imprecise formula for reaching
|
|||
|
the target tempo from the current tempo. The value is represented as a
|
|||
|
text string, and presumably will be a common musical expression such
|
|||
|
as "accelerando" or "ritardando".
|
|||
|
|
|||
|
The hold duration attribute specifies a precise pause in the counting
|
|||
|
of music time. Its value is absolute in beats. It can be used for a
|
|||
|
fermata, a full stop, or any other pause or interruption of the normal
|
|||
|
time flow of the piece, such as an unaccompanied solo cadenza. The
|
|||
|
hold starts at the starting time of the tempo element, and the tempo
|
|||
|
duration begins at the completion of the hold.
|
|||
|
|
|||
|
The hold type attribute specifies an imprecise pause in the counting
|
|||
|
of music time. It can be specified as "full stop", "long", "medium",
|
|||
|
"short", "none", in non-increasing order of length. The actual time
|
|||
|
value of these specifiers is implementation dependant. The hold starts
|
|||
|
at the starting time of the tempo element, and the tempo duration
|
|||
|
begins at the completion of the hold.
|
|||
|
|
|||
|
The strictness attribute specifies the precision with which the tempo
|
|||
|
should be followed during a realization of the piece. It is specified
|
|||
|
as "strict tempo", or represented by a text string containing a common
|
|||
|
musical expression such as "rubato".
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 20 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!ELEMENT tempo -- Real time units per beat --
|
|||
|
- O (#PCDATA) >
|
|||
|
<!ATTLIST tempo id ID #IMPLIED
|
|||
|
musicdur -- Duration of tempo setting in music time --
|
|||
|
%BEATS #CURRENT
|
|||
|
setval -- Precise final tempo: RTUs/beat (integer #RTU)
|
|||
|
or % of earlier tempo (%FRAC idref) --
|
|||
|
CDATA #CURRENT
|
|||
|
settext -- Imprecise final tempo: moderato --
|
|||
|
CDATA #IMPLIED -- Default: use setval --
|
|||
|
|
|||
|
rateval -- Precise rate of reaching final tempo --
|
|||
|
-- Format: (LINEAR | FORMULA data) --
|
|||
|
CDATA #IMPLIED -- Default: immediate --
|
|||
|
ratetext -- Imprecise rate specification: accel, ritard --
|
|||
|
CDATA #IMPLIED -- Default: use rateval --
|
|||
|
strict -- Strictness of interpretation: rubato --
|
|||
|
CDATA #IMPLIED -- Default: strict tempo --
|
|||
|
holdtype -- Imprecise extension of counted duration --
|
|||
|
(fullstop|long|medium|short|none) none
|
|||
|
holddur -- Precise duration of hold --
|
|||
|
%BEATS #CURRENT >
|
|||
|
|
|||
|
|
|||
|
9 Gestural Domain
|
|||
|
|
|||
|
The gestural section of the piece contains the performances. While
|
|||
|
each work has only one core, it may have several gestural sections,
|
|||
|
each a different performance (and hence different interpretation) of
|
|||
|
the piece, and each linked to a particular score The gestural section
|
|||
|
refers to the core for the majority of its musical material, but may
|
|||
|
have events of its own. Usually these events will be ad lib notes and
|
|||
|
performance control information such as volume or timbre selection.
|
|||
|
The gestural section is intended to represent data for an automated
|
|||
|
performance of the piece. That data could be generated by a live per-
|
|||
|
formance or by non-real-time composition, then returned to a syn-
|
|||
|
thesizer for realization.
|
|||
|
|
|||
|
The performance is the top level gestural element. Each performance
|
|||
|
typically realizes the entire piece.
|
|||
|
|
|||
|
The score attribute identifies a score in the visual domain which
|
|||
|
represents the edition which produced this performance, if such a
|
|||
|
score exists.
|
|||
|
|
|||
|
The closure attribute indicates whether every event in the core was
|
|||
|
realized in this performance.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 21 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 9 Gestural Domain -->
|
|||
|
<!ELEMENT perform -- The gestures of a performance (MIDI) --
|
|||
|
- O (bibdata?, clicktrk*, track+) >
|
|||
|
<!ATTLIST perform id ID #IMPLIED
|
|||
|
score IDREFS #IMPLIED
|
|||
|
closure -- Are all core events referenced? --
|
|||
|
(closed, open) open >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
9.1 Track
|
|||
|
|
|||
|
The track is analogous to the thread in the core. It will be used to
|
|||
|
drive one channel of sound output, or one instrument. It is the pre-
|
|||
|
cise counterpart of a track on a multi-track. Unlike the thread, the
|
|||
|
division of music into tracks may need to follow certain restraints
|
|||
|
imposed by the device that will perform the piece. For example a track
|
|||
|
may have to be limited to events which are to sound in the same tim-
|
|||
|
bre.
|
|||
|
|
|||
|
A track is made up of gestural event sequences, which are made up of
|
|||
|
gestural events, gestural event references, and core event references.
|
|||
|
It is through these core event references that the core becomes the
|
|||
|
basis of the gestural section. While it would be possible through the
|
|||
|
use of gestural events to represent a performance that was unrelated
|
|||
|
to the core, the intention is that the track will contain mostly per-
|
|||
|
formance control information, and refer to the core for most or all of
|
|||
|
the notes, rests, and other basic conceptual material.
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1 Track -->
|
|||
|
<!ELEMENT track -- One instrument's time-ordered sequence of gestures --
|
|||
|
- O (ges) >
|
|||
|
<!ATTLIST track id ID #IMPLIED
|
|||
|
instrum CDATA #IMPLIED
|
|||
|
clicktrk IDREF #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
9.1.1 Gestural Event Sequence
|
|||
|
|
|||
|
<!-- 9.1.1 Gestural Event Sequence -->
|
|||
|
<!ENTITY % e.ge "ge" -- TO DO: replace with real element types -- >
|
|||
|
<!ENTITY % m.ges "(ges | geg | %e.ge; | ger | gcer)*" >
|
|||
|
<!ELEMENT ges -- Gestural event sequence (has core references) --
|
|||
|
O O %m.ges; >
|
|||
|
<!ATTLIST ges id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
9.1.2 Gestural Event Group
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 22 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.2 Gestural Event Group -->
|
|||
|
<!ELEMENT geg -- Gestural event group (has core references) --
|
|||
|
- - %m.ges; >
|
|||
|
<!ATTLIST geg id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
9.1.3 Gestural Event
|
|||
|
|
|||
|
<!-- 9.1.3 Gestural Event -->
|
|||
|
<!ENTITY % SECONDS "NUMBERS" -- Format: (seconds?, Real Time Units) -- >
|
|||
|
<!ELEMENT (%e.ge;) -- Gestural event: e.g., controller setting, ad lib note --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST ge id ID #IMPLIED
|
|||
|
start -- Start time (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
duration -- (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
9.1.4 Gestural Event Reference
|
|||
|
|
|||
|
<!-- 9.1.4.1 Gestural Domain Reference to Gestural Event -->
|
|||
|
<!ELEMENT ger -- Gestural event reference (includes geg|ges) --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST ger idr IDREF #REQUIRED -- ges|ge|geg same perform --
|
|||
|
start -- Start time (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
duration -- (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.4.2 Gestural Domain References to Core Events -->
|
|||
|
<!ELEMENT gcer -- Gestural domain core event reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST gcer idr IDREF #REQUIRED -- ces|ce|ceg in core --
|
|||
|
start -- Start time (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
duration -- (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
9.2 Click Track
|
|||
|
|
|||
|
The click track is a gestural event sequence with an event to mark
|
|||
|
each beat in the piece. This element will provide a means for relating
|
|||
|
beats in the core to real time. Click tracks can have arbitrarily
|
|||
|
spaced events, so any kind of expressive performance can be
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 23 -
|
|||
|
|
|||
|
|
|||
|
represented. The click track will usually be generated by a transcrip-
|
|||
|
tion program in the process of creating a work from a live perfor-
|
|||
|
mance. Note that a click track does not need to be present, since a
|
|||
|
rhythmically exact performance can be generated from the core alone.
|
|||
|
|
|||
|
|
|||
|
<!-- 9.2 Click Track -->
|
|||
|
<!ELEMENT clicktrk -- Click track: ordered table of event start-times --
|
|||
|
- O (#PCDATA) >
|
|||
|
<!ATTLIST clicktrk id ID #IMPLIED -- Default: generated --
|
|||
|
nextbeat -- Track and time of next beat --
|
|||
|
NMTOKENS #IMPLIED >
|
|||
|
|
|||
|
|
|||
|
10 Visual Domain
|
|||
|
|
|||
|
The visual section of the piece contains the scores. While each work
|
|||
|
has only one core, it may have several scores, each a different edi-
|
|||
|
tion (and hence a different interpretation of the piece), and each
|
|||
|
linked to a particular performance. The visual section refers to the
|
|||
|
core for the majority of its musical material, but may have events of
|
|||
|
its own. Usually these events will be symbols that appear on the
|
|||
|
score aside from notes, rests, and accidentals. Such items as phrase
|
|||
|
markings, beams, accents, dynamic markings, and lyrics would be found
|
|||
|
here. The visual section is intended to represent the printed score in
|
|||
|
Standard Western Music Notation. The score could be generated by a
|
|||
|
music printing system and returned to such a system for printing or
|
|||
|
display.
|
|||
|
|
|||
|
The score element is the top level of the visual domain. Each score is
|
|||
|
a presumably complete edition of the piece.
|
|||
|
|
|||
|
The performance attribute specifies a performance in the gestural
|
|||
|
domain which was generated from this particular score (edition), if
|
|||
|
such a performance exists.
|
|||
|
|
|||
|
The closure attribute indicates whether every event in the core was
|
|||
|
notated in this score.
|
|||
|
|
|||
|
|
|||
|
<!-- 10 Visual Domain -->
|
|||
|
<!ELEMENT score -- Visual representation of work (a la DARMS, MUSTRAN...) --
|
|||
|
- O (bibdata?, part+) >
|
|||
|
<!ATTLIST score id ID #IMPLIED
|
|||
|
perform IDREFS #IMPLIED
|
|||
|
closure -- Are all core events referenced? --
|
|||
|
(closed, open) open >
|
|||
|
|
|||
|
|
|||
|
10.1 Part
|
|||
|
|
|||
|
The part is analogous to the thread in the core. It will be used to
|
|||
|
print one part of the score for one instrument. It is the precise
|
|||
|
counterpart of a staff in a score. The division of music into parts
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 24 -
|
|||
|
|
|||
|
|
|||
|
will be based on the desired appearance of the score.
|
|||
|
|
|||
|
A part is made up of visual event sequences, which are made up of
|
|||
|
visual events, visual event references, and core event references. It
|
|||
|
is through these core event references that the core becomes the basis
|
|||
|
of the visual section. While it would be possible through the use of
|
|||
|
visual events to represent a score that was unrelated to the core, the
|
|||
|
intention is that the part will contain mostly visual symbols, and
|
|||
|
refer to the core for most or all of the notes, rests, and other basic
|
|||
|
conceptual material.
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1 Part -->
|
|||
|
<!ELEMENT part -- One instrument's portion of the system --
|
|||
|
- O (ves) >
|
|||
|
<!ATTLIST part id ID #IMPLIED
|
|||
|
clef NAMES "treble bass"
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
10.1.1 Visual Event Sequence
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.1 Visual Event Sequence -->
|
|||
|
<!ENTITY % e.ve "ve" -- TO DO: replace with real element types -- >
|
|||
|
<!ENTITY % m.ves "(ves | veg | %e.ve; | ver | vcer)*" >
|
|||
|
<!ELEMENT ves -- Visual event sequence (has core references) --
|
|||
|
O O %m.ves; >
|
|||
|
<!ATTLIST ves id ID #IMPLIED
|
|||
|
tuplet -- Triplet (etc.) indicator for sequence --
|
|||
|
CDATA #IMPLIED -- Not a tuplet --
|
|||
|
cue IDREF #IMPLIED -- ID of ves --
|
|||
|
tsinst NUMBERS #IMPLIED -- Time sig for instrument --
|
|||
|
tscond NUMBERS #IMPLIED -- Time sig for conductor --
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
10.1.2 Visual Event Group
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.2 Visual Event Group -->
|
|||
|
<!ELEMENT veg -- Visual event group (has core references) --
|
|||
|
- - %m.ves; >
|
|||
|
<!ATTLIST veg id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
10.1.3 Visual Event
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 25 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.3 Visual Event -->
|
|||
|
<!ELEMENT (%e.ve;) -- Visual event: e.g., phrase mark, bar line --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST (%e.ve;) id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
10.1.4 Visual Event Reference
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.4.1 Visual Domain Reference to Visual Event -->
|
|||
|
<!ELEMENT ver -- Visual event reference (includes veg|ves) --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST ver idr IDREF #REQUIRED -- ves|ve|geg same score --
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.4.2 Visual Domain Reference to Core Event -->
|
|||
|
<!ELEMENT vcer -- Visual domain core event reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST vcer idr IDREF #REQUIRED -- ces|ce|ceg in core --
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
10.2 Space
|
|||
|
|
|||
|
The unit of space will be defined relative to the size of the staff
|
|||
|
and note heads. The actual size of the printed staff is not defined
|
|||
|
except perhaps as a global attribute of the visual section. A unit of
|
|||
|
one staff space for the vertical and one note head width for the hor-
|
|||
|
izontal will provide the basis for all spatial measurements.
|
|||
|
|
|||
|
Spatial relationship will be representable in several ways: as an
|
|||
|
absolute position on a line (staff), as a relative position from
|
|||
|
another object, and as a relative position from a logical (time) posi-
|
|||
|
tion on a staff. Furthermore, for each of these possibilities there
|
|||
|
will be an explicit position (specified in spatial units) and an
|
|||
|
implicit position. The implicit position will take the form of a
|
|||
|
non-numerical relationship to some other object, such as "above the
|
|||
|
staff" or "between this note head and the one to the left".
|
|||
|
|
|||
|
11 Analytical Domain
|
|||
|
|
|||
|
The analytical section of the piece contains any analyses that may
|
|||
|
have been produced. A work may have several analytical sections, each
|
|||
|
a different analysis (and hence a different interpretation of the
|
|||
|
piece.) The analytical section refers to the core for the majority of
|
|||
|
its musical material, but may also refer to performances and scores.
|
|||
|
The analytical section is intended to represent a structuring of the
|
|||
|
piece based on any style of analysis. The analysis could be generated
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 26 -
|
|||
|
|
|||
|
|
|||
|
by a specialized music printing/editing system and returned to such a
|
|||
|
system for printing or display, or might take the ultimate form of a
|
|||
|
written document. It might even be generated automatically by a com-
|
|||
|
puter system.
|
|||
|
|
|||
|
The analysis element is the top level of the analysis structure. It
|
|||
|
represents a presumably complete analysis of the piece, by a particu-
|
|||
|
lar analyst. If several analyses by different analysts exist, they
|
|||
|
will each be is a separate analysis. The analysis can refer freely to
|
|||
|
any other elements of a work, thus allowing complex relationships to
|
|||
|
be represented.
|
|||
|
|
|||
|
|
|||
|
<!-- 11 Analytical Domain -->
|
|||
|
<!ELEMENT analysis -- An analysis of a work --
|
|||
|
- O (bibdata?, voice+) >
|
|||
|
<!ENTITY % a.anal
|
|||
|
"core IDREFS #IMPLIED perform IDREFS #IMPLIED score IDREFS #IMPLIED" >
|
|||
|
<!ATTLIST analysis id ID #IMPLIED
|
|||
|
%a.anal; >
|
|||
|
|
|||
|
|
|||
|
11.1 Voice
|
|||
|
|
|||
|
The voice is analogous to the thread in the core. It will be used to
|
|||
|
represent one voice or melodic line of the piece. It is the counter-
|
|||
|
part of a passage of notes that have the same stem direction. The
|
|||
|
division of music into voices will be based on the voicing of the
|
|||
|
piece intended by the composer or analyst.
|
|||
|
|
|||
|
A voice is made up of analytical event sequences, which are made up of
|
|||
|
analytical events, analytical event references, and core event refer-
|
|||
|
ences. It also can contain gestural event references and visual event
|
|||
|
references. It is through these references that the analytical section
|
|||
|
can arbitrarily structure any aspect of the piece in order to illus-
|
|||
|
trate a music theoretical idea.
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1 Voice -->
|
|||
|
<!ELEMENT voice -- A single melody line (possibly polyphonic) --
|
|||
|
- O (aes) >
|
|||
|
<!ENTITY % a.voice "" >
|
|||
|
<!ATTLIST voice id ID #IMPLIED
|
|||
|
%a.voice; >
|
|||
|
|
|||
|
|
|||
|
11.1.1 Analytical Event Sequence
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 27 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.1 Analytical Event Sequence -->
|
|||
|
<!ENTITY % e.ae "ae" -- TO DO: replace with real element types -- >
|
|||
|
<!ENTITY % m.aes "(aes | aeg | %e.ae; | aer | ver | ger | cer)*" >
|
|||
|
<!ELEMENT aes -- Analytical event sequence (multi-domain refs) --
|
|||
|
O O %m.aes; >
|
|||
|
<!ENTITY % a.aes "class (motif | epmotif | esmotif | elision) motif" >
|
|||
|
<!ATTLIST aes id ID #IMPLIED
|
|||
|
%a.aes; >
|
|||
|
|
|||
|
|
|||
|
11.1.2 Analytical Event Group
|
|||
|
|
|||
|
<!-- 11.1.2 Analytical Event Group -->
|
|||
|
<!ELEMENT aeg -- Analytical event group (multi-domain refs) --
|
|||
|
- - %m.aes; >
|
|||
|
<!ENTITY % a.ae "" >
|
|||
|
<!ATTLIST aeg id ID #IMPLIED
|
|||
|
%a.ae; >
|
|||
|
|
|||
|
|
|||
|
11.1.3 Analytical Event
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.3 Analytical Event -->
|
|||
|
<!ENTITY % m.ae "(%e.ae;|%e.ge;|%e.ve;)*" >
|
|||
|
<!ELEMENT (%e.ae;) -- Analytical event --
|
|||
|
- O %m.ae; >
|
|||
|
<!ATTLIST (%e.ae;) id ID #IMPLIED
|
|||
|
%a.ae; >
|
|||
|
|
|||
|
|
|||
|
11.1.4 Analytical Event Reference
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.4 References -->
|
|||
|
<!ELEMENT aer -- Analytical event sequence reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ENTITY % a.aer "" >
|
|||
|
<!ATTLIST aer idr IDREF #REQUIRED -- ID of aes --
|
|||
|
%a.aer; >
|
|||
|
|
|||
|
|
|||
|
12 Bibliographic
|
|||
|
|
|||
|
The bibliographic entry is found at the top level (as an element of
|
|||
|
work) and can also be used at lower levels. It contains much of the
|
|||
|
bibliographic and discographic data necessary for the cataloging of a
|
|||
|
piece.The bibliographic entry will contain the information necessary
|
|||
|
to make the Standard useful. Such items as title, author, issuer (pub-
|
|||
|
lisher), date, and copyright will all be explicitly defined. In addi-
|
|||
|
tion, a miscellaneous area will be available which can contain any
|
|||
|
information that is not defined elsewhere. If desired, a bibliographic
|
|||
|
entry may be made for each performance in the gestural section, or for
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 28 -
|
|||
|
|
|||
|
|
|||
|
each edition in the visual section.
|
|||
|
|
|||
|
The attributes are explained in the SGML code comments.
|
|||
|
|
|||
|
NOTE: We have not attempted to form an exhaustive structure for the
|
|||
|
representation of complete library cataloging information. Such a
|
|||
|
structure would extend the scope of the Standard beyond where we feel
|
|||
|
it should go at present. Since we are utilizing the machinery of SGML
|
|||
|
to implement this Standard, another committee could easily create such
|
|||
|
a complete bibliographic element, and it could be readily included in
|
|||
|
music documents. We in fact strongly urge the Library community to
|
|||
|
initiate such a project.
|
|||
|
|
|||
|
|
|||
|
<!-- 12 Bibliographic Data -->
|
|||
|
<!ENTITY % e.bib "title | author | date | issuer | descript | copr">
|
|||
|
<!-- Explanation of bibliographic elements:
|
|||
|
title Title of work, performance, score, or analysis
|
|||
|
author Work: composer, librettist, computer
|
|||
|
Performance: performer, arranger
|
|||
|
Score: editor, copyist, arranger
|
|||
|
Analysis: theorist
|
|||
|
issuer Access information: e.g., publisher, catalog number
|
|||
|
date Date of work, performance, score, or analysis
|
|||
|
copr Copyright notice
|
|||
|
descript Miscellaneous descriptive data: e.g., performance time
|
|||
|
-->
|
|||
|
<!ENTITY % d.bib "<!ELEMENT (%e.bib;) - O (#PCDATA)>"> %d.bib;
|
|||
|
<!ENTITY % m.bib "(%e.bib; | theme)*">
|
|||
|
<!ELEMENT bibdata -- Bibliographic data applying to work as a whole --
|
|||
|
- O %m.bib; >
|
|||
|
|
|||
|
|
|||
|
12.1 Theme
|
|||
|
|
|||
|
The theme will contain references to the core which pinpoint key pas-
|
|||
|
sages (or famous passages) for the purpose of identification of the
|
|||
|
work. It will allow a cataloging application, for instance, to quickly
|
|||
|
locate and then display or perform a well known section. This will
|
|||
|
make it easy for the user to verify that the correct piece has been
|
|||
|
retrieved.
|
|||
|
|
|||
|
|
|||
|
<!-- 12.1 Theme -->
|
|||
|
<!ENTITY % a.theme "">
|
|||
|
<!ELEMENT theme -- Themes that best identify the work (e.g., incipit) --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST theme idr IDREFS #REQUIRED -- ID of analysis --
|
|||
|
%a.theme; >
|
|||
|
|
|||
|
|
|||
|
13 Conformance
|
|||
|
|
|||
|
The Standard will define several levels of conformance to allow
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 29 -
|
|||
|
|
|||
|
|
|||
|
applications to implement subsets of the language. There will be a
|
|||
|
canonical form and a "standard" level described.
|
|||
|
|
|||
|
NOTE: The issue of conformance will be developed further at a later
|
|||
|
date.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 30 -
|
|||
|
|
|||
|
|
|||
|
Annex A
|
|||
|
|
|||
|
Formal Definition
|
|||
|
|
|||
|
|
|||
|
(This annex is normative and will become an integral part of the Standard.)
|
|||
|
This annex contains the formal definition of a work, expressed as an SGML
|
|||
|
document type definition.
|
|||
|
|
|||
|
NOTES
|
|||
|
|
|||
|
Because the SMDL is still under development, the SGML document type defini-
|
|||
|
tion (DTD) is presently incomplete in a number of respects. These are
|
|||
|
listed below, and will be updated with the SGML Formal Definition.
|
|||
|
|
|||
|
1. Little detail is provided on the actual encoding of an instance of
|
|||
|
a work. As we are first attempting to identify the potential events and to
|
|||
|
define their properties (attributes), the DTD acts as though all events
|
|||
|
will be encoded with start-tags and end-tags, with all properties specified
|
|||
|
using the SGML attribute notation. The result is a lopsided definition in
|
|||
|
which there is only structure and no actual data.
|
|||
|
|
|||
|
This convention is satisfactory (even advantageous) while we are designing
|
|||
|
the structure and semantics of the SMDL. It allows relationships to be
|
|||
|
seen easily and requirements to be evaluated, without the intrusion of cod-
|
|||
|
ing considerations. Once the design is complete and we understand all of
|
|||
|
the information that must be represented, we will create a concise coding
|
|||
|
scheme to replace the lower levels of the structure. (In SGML, such a
|
|||
|
scheme is known as a "data content notation".)
|
|||
|
|
|||
|
2. Most attributes have not yet been defined. As a result, many of
|
|||
|
the ATTLIST declarations appear identical to one another. In such cases,
|
|||
|
we expect that the lists will be differentiated by attributes that will be
|
|||
|
defined later.
|
|||
|
|
|||
|
3. The lowest-level gestural, visual, and analytical event elements
|
|||
|
(ge, ve, and ae) are temporary placeholders for lists of distinct element
|
|||
|
types (for example, bar lines, clefs, etc.). Eventually, the entity refer-
|
|||
|
ences to lists of the distinct types will be completed to replace these
|
|||
|
element names. For now, only the lowest-level core events have been
|
|||
|
defined.
|
|||
|
|
|||
|
Moreover, as we are first attempting to define those attributes which all
|
|||
|
events have in common, a single ATTLIST is used in each domain. Eventu-
|
|||
|
ally, each event may have its own ATTLIST declaration.
|
|||
|
|
|||
|
4. There are many elements that have common content models and, at
|
|||
|
least for the moment, common attribute lists. As a matter of development
|
|||
|
methodology, we felt it better to assume that elements that represent dif-
|
|||
|
ferent semantic constructs (e.g., tracks and parts) are likely to have dif-
|
|||
|
ferent attributes when the design is complete, even though they may have
|
|||
|
identical structures. If the presumption proves incorrect in any instance,
|
|||
|
we will of course remove the redundancy when finalizing the design, but
|
|||
|
premature optimization might cause us to overlook vital differences.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 31 -
|
|||
|
|
|||
|
|
|||
|
5. For attributes that have been defined, particularly those whose
|
|||
|
domain is a list of specific values, we have typically provided only a nom-
|
|||
|
inal list of values. We expect that once the overall structure is firm,
|
|||
|
experts will be able to contribute more complete lists. Such attribute
|
|||
|
domains can also be made user-extensible if that is desirable.
|
|||
|
|
|||
|
|
|||
|
<!-- Public document type definition for music representation.
|
|||
|
|
|||
|
Typical invocation:
|
|||
|
<!DOCTYPE work PUBLIC "-//ANSI X3V1.8M//DTD Musical Work//EN">
|
|||
|
|
|||
|
|
|||
|
NOTE: The section heading comments identify the corresponding clause
|
|||
|
numbers in the body of this document.
|
|||
|
|
|||
|
-->
|
|||
|
|
|||
|
<!-- 7 Work as a Whole -->
|
|||
|
<!ELEMENT work -- Musical composition, piece, etc. --
|
|||
|
- - (bibdata?, workseg+, analysis*) >
|
|||
|
<!ATTLIST work source -- Origin of this representation of the work --
|
|||
|
(core | analysis | perform | score) #REQUIRED
|
|||
|
companal -- Composer's analysis (may include core-like
|
|||
|
controlling factors that distinguish the work)--
|
|||
|
IDREF #IMPLIED -- ID of analysis --
|
|||
|
rtubase -- Real Time Units per second (0=100,000,000) --
|
|||
|
NUMBER 10000 >
|
|||
|
|
|||
|
|
|||
|
<!-- 7.1 Work Segment -->
|
|||
|
<!ELEMENT workseg -- Sequential segment of a work: movement, act, etc. --
|
|||
|
O O ((workseg, (workseg | worksegr)+) |
|
|||
|
(bibdata?, core, perform*, score*)) >
|
|||
|
<!ATTLIST workseg id ID #IMPLIED
|
|||
|
class -- E.g., movement, section, coda --
|
|||
|
CDATA #IMPLIED -- don't care --
|
|||
|
delay -- E.g., 15 minute intermission --
|
|||
|
CDATA #IMPLIED -- don't care -- >
|
|||
|
<!ELEMENT worksegr -- Work segment reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST worksegr idr IDREF #REQUIRED -- ID of any work segment -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 8 Core -->
|
|||
|
<!ELEMENT core -- The essential music, common to all domains --
|
|||
|
- O (stress*, temposeq+, thread+) >
|
|||
|
<!ATTLIST core norm -- Is core timing normalized? (7.5) --
|
|||
|
(norm | nonnorm) nonnorm >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 32 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1 Thread -->
|
|||
|
<!ELEMENT thread -- Voice-like time-ordered sequence of events --
|
|||
|
- O (ces) >
|
|||
|
<!ATTLIST thread id ID #IMPLIED
|
|||
|
temposeq IDREF #IMPLIED
|
|||
|
nominst CDATA #IMPLIED -- Nominal instrument --
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.1 Core Event Sequence -->
|
|||
|
<!ENTITY % FRAC "NUMBERS" -- fraction: numerator, denominator? (=1) -- >
|
|||
|
<!ENTITY % m.ces "(ces|ceg|note|rest|grcevent|special|cer)*" >
|
|||
|
<!ELEMENT ces -- Core event sequence --
|
|||
|
O O (chordnm?, %m.ces;) >
|
|||
|
<!ATTLIST ces id ID #IMPLIED
|
|||
|
factor -- ces beats / sum of subelement beats --
|
|||
|
%FRAC "1 1"
|
|||
|
stressid -- Beat cycle dynamic stress pattern --
|
|||
|
IDREF #IMPLIED -- Default: no change --
|
|||
|
stressbt -- Beat # of stress pattern on which ces begins --
|
|||
|
NUMBER 1 -- Not 1 only if anacrusis --
|
|||
|
ornstyle -- Ornamentation style: e.g., period --
|
|||
|
CDATA #IMPLIED -- Default: no ornamentation -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.2 Core Event Group -->
|
|||
|
<!ELEMENT ceg -- Core event group --
|
|||
|
- - %m.ces; >
|
|||
|
<!ATTLIST ceg id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.3.1 Notes and Rests -->
|
|||
|
<!ELEMENT (note | rest)
|
|||
|
-- Conventionally pitched time-stamped event --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST (note | rest)
|
|||
|
id ID #IMPLIED
|
|||
|
%a.ctime;
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 33 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.3.2 Graced Event -->
|
|||
|
<!ELEMENT grcevent -- Graced core event --
|
|||
|
- O ((grcpre, grcsubj) | (grcpre?, grcsubj, grcpost))>
|
|||
|
<!ATTLIST grcevent id ID #IMPLIED >
|
|||
|
<!ELEMENT (grcpre | grcpost)
|
|||
|
-- Core event whose duration is not counted --
|
|||
|
- O %m.ces; >
|
|||
|
<!ATTLIST (grcpre | grcpost)
|
|||
|
id ID #IMPLIED
|
|||
|
-- Synchronization with subject:
|
|||
|
start-time in the case of grcpre
|
|||
|
end-time in the case of grcpref --
|
|||
|
grcsync (lead | lag) lead >
|
|||
|
<!ELEMENT grcsubj -- Grace sequence subject: that which is graced --
|
|||
|
O O (note | rest | special | cer) >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.3.3 Special Events -->
|
|||
|
<!ELEMENT special -- User-defined time-stamped event: content describes it --
|
|||
|
- O (#PCDATA) >
|
|||
|
<!ATTLIST special id ID #IMPLIED
|
|||
|
%a.ctime;
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.4 Core Event Reference -->
|
|||
|
<!ELEMENT cer -- Reference to core event, sequence, or group --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST cer idr IDREF #REQUIRED -- ID of ces|ceg|ce --
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.1.5 Chord Name -->
|
|||
|
<!ENTITY % d.chord "<!ELEMENT chordnm - O (#PCDATA)>"> %d.chord;
|
|||
|
|
|||
|
|
|||
|
<!-- 8.2 Time -->
|
|||
|
<!ENTITY % BEATS "%FRAC;" -- Measure of music time (fractional) -- >
|
|||
|
<!ENTITY % a.ctime -- Core event time attributes (7.2) --
|
|||
|
"musicdur %BEATS #CURRENT tie IDREF #IMPLIED" >
|
|||
|
<!-- Explanation of core time attributes:
|
|||
|
musicdur Duration of event in music time.
|
|||
|
tie Succeeding event to which this one is tied (Default: not tied).-->
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 34 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 8.3 Stress -->
|
|||
|
<!ELEMENT stress -- Beat cycle definition; dynamic stress pattern --
|
|||
|
- O (beatnum, stresses)+ >
|
|||
|
<!ATTLIST stress id ID #IMPLIED
|
|||
|
beatcnt NUMBER #REQUIRED -- Number of beats in cycle -->
|
|||
|
<!ELEMENT beatnum -- Beat number receiving agogic or dynamic stresses --
|
|||
|
O O (#PCDATA) >
|
|||
|
<!ELEMENT stresses -- Stresses applied to specified beat --
|
|||
|
O O (#PCDATA) >
|
|||
|
|
|||
|
|
|||
|
<!-- 8.4 Tempo -->
|
|||
|
<!ELEMENT temposeq -- Relates music time to real time (may be imprecise) --
|
|||
|
- O (tempo+) >
|
|||
|
<!ATTLIST temposeq id ID #IMPLIED >
|
|||
|
<!ELEMENT tempo -- Real time units per beat --
|
|||
|
- O (#PCDATA) >
|
|||
|
<!ATTLIST tempo id ID #IMPLIED
|
|||
|
musicdur -- Duration of tempo setting in music time --
|
|||
|
%BEATS #CURRENT
|
|||
|
setval -- Precise final tempo: RTUs/beat (integer #RTU)
|
|||
|
or % of earlier tempo (%FRAC idref) --
|
|||
|
CDATA #CURRENT
|
|||
|
settext -- Imprecise final tempo: moderato --
|
|||
|
CDATA #IMPLIED -- Default: use setval --
|
|||
|
rateval -- Precise rate of reaching final tempo --
|
|||
|
-- Format: (LINEAR | FORMULA data) --
|
|||
|
CDATA #IMPLIED -- Default: immediate --
|
|||
|
ratetext -- Imprecise rate specification: accel, ritard --
|
|||
|
CDATA #IMPLIED -- Default: use rateval --
|
|||
|
strict -- Strictness of interpretation: rubato --
|
|||
|
CDATA #IMPLIED -- Default: strict tempo --
|
|||
|
holdtype -- Imprecise extension of counted duration --
|
|||
|
(fullstop|long|medium|short|none) none
|
|||
|
holddur -- Precise duration of hold --
|
|||
|
%BEATS #CURRENT >
|
|||
|
|
|||
|
|
|||
|
<!-- 9 Gestural Domain -->
|
|||
|
<!ELEMENT perform -- The gestures of a performance (MIDI) --
|
|||
|
- O (bibdata?, clicktrk*, track+) >
|
|||
|
<!ATTLIST perform id ID #IMPLIED
|
|||
|
score IDREFS #IMPLIED
|
|||
|
closure -- Are all core events referenced? --
|
|||
|
(closed, open) open >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 35 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1 Track -->
|
|||
|
<!ELEMENT track -- One instrument's time-ordered sequence of gestures --
|
|||
|
- O (ges) >
|
|||
|
<!ATTLIST track id ID #IMPLIED
|
|||
|
instrum CDATA #IMPLIED
|
|||
|
clicktrk IDREF #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.1 Gestural Event Sequence -->
|
|||
|
<!ENTITY % e.ge "ge" -- TO DO: replace with real element types -- >
|
|||
|
<!ENTITY % m.ges "(ges | geg | %e.ge; | ger | gcer)*" >
|
|||
|
<!ELEMENT ges -- Gestural event sequence (has core references) --
|
|||
|
O O %m.ges; >
|
|||
|
<!ATTLIST ges id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.2 Gestural Event Group -->
|
|||
|
<!ELEMENT geg -- Gestural event group (has core references) --
|
|||
|
- - %m.ges; >
|
|||
|
<!ATTLIST geg id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.3 Gestural Event -->
|
|||
|
<!ENTITY % SECONDS "NUMBERS" -- Format: (seconds?, Real Time Units) -- >
|
|||
|
<!ELEMENT (%e.ge;) -- Gestural event: e.g., controller setting, ad lib note --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST ge id ID #IMPLIED
|
|||
|
start -- Start time (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
duration -- (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.4.1 Gestural Domain Reference to Gestural Event -->
|
|||
|
<!ELEMENT ger -- Gestural event reference (includes geg|ges) --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST ger idr IDREF #REQUIRED -- ges|ge|geg same perform --
|
|||
|
start -- Start time (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
duration -- (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 36 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 9.1.4.2 Gestural Domain References to Core Events -->
|
|||
|
<!ELEMENT gcer -- Gestural domain core event reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST gcer idr IDREF #REQUIRED -- ces|ce|ceg in core --
|
|||
|
start -- Start time (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
duration -- (Default: derived from core) --
|
|||
|
%SECONDS #IMPLIED
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 9.2 Click Track -->
|
|||
|
<!ELEMENT clicktrk -- Click track: ordered table of event start-times --
|
|||
|
- O (#PCDATA) >
|
|||
|
<!ATTLIST clicktrk id ID #IMPLIED -- Default: generated --
|
|||
|
nextbeat -- Track and time of next beat --
|
|||
|
NMTOKENS #IMPLIED >
|
|||
|
|
|||
|
|
|||
|
<!-- 10 Visual Domain -->
|
|||
|
<!ELEMENT score -- Visual representation of work (a la DARMS, MUSTRAN...) --
|
|||
|
- O (bibdata?, part+) >
|
|||
|
<!ATTLIST score id ID #IMPLIED
|
|||
|
perform IDREFS #IMPLIED
|
|||
|
closure -- Are all core events referenced? --
|
|||
|
(closed, open) open >
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1 Part -->
|
|||
|
<!ELEMENT part -- One instrument's portion of the system --
|
|||
|
- O (ves) >
|
|||
|
<!ATTLIST part id ID #IMPLIED
|
|||
|
clef NAMES "treble bass"
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.1 Visual Event Sequence -->
|
|||
|
<!ENTITY % e.ve "ve" -- TO DO: replace with real element types -- >
|
|||
|
<!ENTITY % m.ves "(ves | veg | %e.ve; | ver | vcer)*" >
|
|||
|
<!ELEMENT ves -- Visual event sequence (has core references) --
|
|||
|
O O %m.ves; >
|
|||
|
<!ATTLIST ves id ID #IMPLIED
|
|||
|
tuplet -- Triplet (etc.) indicator for sequence --
|
|||
|
CDATA #IMPLIED -- Not a tuplet --
|
|||
|
cue IDREF #IMPLIED -- ID of ves --
|
|||
|
tsinst NUMBERS #IMPLIED -- Time sig for instrument --
|
|||
|
tscond NUMBERS #IMPLIED -- Time sig for conductor --
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 37 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.2 Visual Event Group -->
|
|||
|
<!ELEMENT veg -- Visual event group (has core references) --
|
|||
|
- - %m.ves; >
|
|||
|
<!ATTLIST veg id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.3 Visual Event -->
|
|||
|
<!ELEMENT (%e.ve;) -- Visual event: e.g., phrase mark, bar line --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST (%e.ve;) id ID #IMPLIED
|
|||
|
-- TO DO: other attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.4.1 Visual Domain Reference to Visual Event -->
|
|||
|
<!ELEMENT ver -- Visual event reference (includes veg|ves) --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST ver idr IDREF #REQUIRED -- ves|ve|geg same score --
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 10.1.4.2 Visual Domain Reference to Core Event -->
|
|||
|
<!ELEMENT vcer -- Visual domain core event reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST vcer idr IDREF #REQUIRED -- ces|ce|ceg in core --
|
|||
|
shift NUTOKEN 0 -- Transposition in steps --
|
|||
|
-- TO DO: other event modifier attributes -- >
|
|||
|
|
|||
|
|
|||
|
<!-- 11 Analytical Domain -->
|
|||
|
<!ELEMENT analysis -- An analysis of a work --
|
|||
|
- O (bibdata?, voice+) >
|
|||
|
<!ENTITY % a.anal
|
|||
|
"core IDREFS #IMPLIED perform IDREFS #IMPLIED score IDREFS #IMPLIED" >
|
|||
|
<!ATTLIST analysis id ID #IMPLIED
|
|||
|
%a.anal; >
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1 Voice -->
|
|||
|
<!ELEMENT voice -- A single melody line (possibly polyphonic) --
|
|||
|
- O (aes) >
|
|||
|
<!ENTITY % a.voice "" >
|
|||
|
<!ATTLIST voice id ID #IMPLIED
|
|||
|
%a.voice; >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 38 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.1 Analytical Event Sequence -->
|
|||
|
<!ENTITY % e.ae "ae" -- TO DO: replace with real element types -- >
|
|||
|
<!ENTITY % m.aes "(aes | aeg | %e.ae; | aer | ver | ger | cer)*" >
|
|||
|
<!ELEMENT aes -- Analytical event sequence (multi-domain refs) --
|
|||
|
O O %m.aes; >
|
|||
|
<!ENTITY % a.aes "class (motif | epmotif | esmotif | elision) motif" >
|
|||
|
<!ATTLIST aes id ID #IMPLIED
|
|||
|
%a.aes; >
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.2 Analytical Event Group -->
|
|||
|
<!ELEMENT aeg -- Analytical event group (multi-domain refs) --
|
|||
|
- - %m.aes; >
|
|||
|
<!ENTITY % a.ae "" >
|
|||
|
<!ATTLIST aeg id ID #IMPLIED
|
|||
|
%a.ae; >
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.3 Analytical Event -->
|
|||
|
<!ENTITY % m.ae "(%e.ae;|%e.ge;|%e.ve;)*" >
|
|||
|
<!ELEMENT (%e.ae;) -- Analytical event --
|
|||
|
- O %m.ae; >
|
|||
|
<!ATTLIST (%e.ae;) id ID #IMPLIED
|
|||
|
%a.ae; >
|
|||
|
|
|||
|
|
|||
|
<!-- 11.1.4 References -->
|
|||
|
<!ELEMENT aer -- Analytical event sequence reference --
|
|||
|
- O EMPTY >
|
|||
|
<!ENTITY % a.aer "" >
|
|||
|
<!ATTLIST aer idr IDREF #REQUIRED -- ID of aes --
|
|||
|
%a.aer; >
|
|||
|
|
|||
|
|
|||
|
<!-- 12 Bibliographic Data -->
|
|||
|
<!ENTITY % e.bib "title | author | date | issuer | descript | copr">
|
|||
|
<!-- Explanation of bibliographic elements:
|
|||
|
title Title of work, performance, score, or analysis
|
|||
|
author Work: composer, librettist, computer
|
|||
|
Performance: performer, arranger
|
|||
|
Score: editor, copyist, arranger
|
|||
|
Analysis: theorist
|
|||
|
issuer Access information: e.g., publisher, catalog number
|
|||
|
date Date of work, performance, score, or analysis
|
|||
|
copr Copyright notice
|
|||
|
descript Miscellaneous descriptive data: e.g., performance time -->
|
|||
|
<!ENTITY % d.bib "<!ELEMENT (%e.bib;) - O (#PCDATA)>"> %d.bib;
|
|||
|
<!ENTITY % m.bib "(%e.bib; | theme)*">
|
|||
|
<!ELEMENT bibdata -- Bibliographic data applying to work as a whole --
|
|||
|
- O %m.bib; >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 39 -
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<!-- 12.1 Theme -->
|
|||
|
<!ENTITY % a.theme "">
|
|||
|
<!ELEMENT theme -- Themes that best identify the work (e.g., incipit) --
|
|||
|
- O EMPTY >
|
|||
|
<!ATTLIST theme idr IDREFS #REQUIRED -- ID of analysis --
|
|||
|
%a.theme; >
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 40 -
|
|||
|
|
|||
|
|
|||
|
Annex B
|
|||
|
|
|||
|
Theory of Use
|
|||
|
|
|||
|
(This annex is informative and will not form an integral part of the Stan-
|
|||
|
dard.)
|
|||
|
|
|||
|
As a language, the Standard can be put to a wide variety of uses ranging
|
|||
|
>from the highly appropriate to the completely pathological. It was, how-
|
|||
|
ever, designed with a particular set of applications in mind, and will be
|
|||
|
most effective if used for these. Knowing the design assumptions will also
|
|||
|
facilitate application of the Standard to unforeseen or unusual situations.
|
|||
|
It is hoped that this annex will answer many of the questions that will
|
|||
|
arise concerning applicability.
|
|||
|
|
|||
|
NOTE: This section will be developed further at a later date.
|
|||
|
|
|||
|
B.1 General Application
|
|||
|
|
|||
|
In general, the Standard is intended as a storage and interchange for-
|
|||
|
mat for musical ideas. It is designed to be somewhat human readable so
|
|||
|
that a piece could theoretically be created by using a word processor
|
|||
|
and entering the encoded material directly. However, it is expected
|
|||
|
that it will be used mainly for automated processing in such areas as
|
|||
|
music printing, library cataloging and storage, multimedia presenta-
|
|||
|
tions, teaching, and research. For other situations, such as live per-
|
|||
|
formance or sound recording, other formats are likely to be more
|
|||
|
applicable.
|
|||
|
|
|||
|
A piece to be represented can originate from almost any source. An
|
|||
|
automated composition program might generate a core and an associated
|
|||
|
gestural section. An interactive music printing system might generate
|
|||
|
a core and a visual section. A sequencer might capture a live perfor-
|
|||
|
mance and transcribe it into a core and performance section, and then
|
|||
|
turn the piece over to a music printing system for the creation of the
|
|||
|
visual and analytical sections. There is much flexibility in the way
|
|||
|
the Standard can be used and the situations to which it can be
|
|||
|
applied. The only common element is the core, the others need not even
|
|||
|
be present.
|
|||
|
|
|||
|
The gestural section is designed to be used for the representation of
|
|||
|
computer instrument sequences. This does not mean that it is a
|
|||
|
sequencer format for internal use by sequencers. In fact it would be
|
|||
|
poorly suited for that application. It is for archiving and transport-
|
|||
|
ing music that has been, or will be, processed in some way by a com-
|
|||
|
puter system. A performance may be captured on a synthesizer, it may
|
|||
|
be interpreted from a MIDI stream, or it may be translated from
|
|||
|
another language, such as a MIDI sequence file format or MUSIC V. A
|
|||
|
sequencer might read a piece in the Standard, translate it into an
|
|||
|
internal data format, and then realize it in real time.
|
|||
|
|
|||
|
The visual section will be used for representing scores of all kinds.
|
|||
|
The score may have an accompanying performance or it may not. The
|
|||
|
score may be entered or captured using a music printing system, or it
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 41 -
|
|||
|
|
|||
|
|
|||
|
may be translated from DARMS or MUSTRAN. It might be retrieved as a
|
|||
|
display on a screen, a printed page, or translated into another
|
|||
|
language. Most importantly it will allow systems of all kinds to
|
|||
|
interchange scores easily and accurately.
|
|||
|
|
|||
|
The analytical section will be used to represent theoretical ideas in
|
|||
|
a structural format. Any sort of layering and grouping will be possi-
|
|||
|
ble, so various styles of analysis will be supported. A given piece
|
|||
|
may have several analyses (i.e. one Shenkerian, one classical), which
|
|||
|
could even refer to each other. An analysis of a piece with a circular
|
|||
|
score could refer to the score and the performance in an attempt to
|
|||
|
relate the music to the shape of the score to the vertiginous effect
|
|||
|
on the performer.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 42 -
|
|||
|
|
|||
|
|
|||
|
Annex C
|
|||
|
|
|||
|
Explanation of Editorial Conventions
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
(This annex is informative and will not form an integral part of the Stan-
|
|||
|
dard.) This document observes some of the editorial conventions of a for-
|
|||
|
mal standard, but not yet with the strictness and consistency that will be
|
|||
|
required in the final document. Those conventions that are observed in this
|
|||
|
revision are listed.
|
|||
|
|
|||
|
C.1 Definitions
|
|||
|
|
|||
|
Definitions are contained in a separate clause. Ours is presently
|
|||
|
incomplete and will probably remain that way for a while. Also, some
|
|||
|
of the definitions in it are not as precise as they should be. When
|
|||
|
the clause is complete, the definitions will refer to one another in a
|
|||
|
top-down hierarchical order, without tautologies, and will define each
|
|||
|
term fully.
|
|||
|
|
|||
|
C.2 Structure
|
|||
|
|
|||
|
Part Two is structured like a standard in that it observes the follow-
|
|||
|
ing conventions:
|
|||
|
|
|||
|
Clause 0 is an informative introduction (that is, it does not
|
|||
|
contain requirements.)
|
|||
|
|
|||
|
Clause 1 states what the standard includes, and its expected
|
|||
|
uses.
|
|||
|
|
|||
|
Clause 3 contains references to related standards.
|
|||
|
|
|||
|
Clause 4 contains the definitions.
|
|||
|
|
|||
|
Clause 5 describes the notational conventions used in the remain-
|
|||
|
ing clauses.
|
|||
|
|
|||
|
The clauses from 6 until the end contain the actual requirements.
|
|||
|
|
|||
|
There are also annexes (appendixes) containing information that was
|
|||
|
segregated from the body of the standard for convenience.
|
|||
|
|
|||
|
C.3 Segregation
|
|||
|
|
|||
|
Requirements are distinguished from definitions, examples, and expla-
|
|||
|
natory notes and comments.
|
|||
|
|
|||
|
Anything identified as a "NOTE" is there to aid in understanding the
|
|||
|
standard, but does not change the requirements. At present, we also
|
|||
|
use notes to discuss matters relating to the development of the stan-
|
|||
|
dard.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 43 -
|
|||
|
|
|||
|
|
|||
|
Annexes are designated either "normative" or "informative". The former
|
|||
|
contain requirements and have the same force and effect as if they
|
|||
|
were in the body of the standard. The latter are extended notes or
|
|||
|
tutorial information.
|
|||
|
|
|||
|
C.4 Language
|
|||
|
|
|||
|
Some words have formal implications that may differ from casual usage.
|
|||
|
Those that are used in this document are as follows:
|
|||
|
|
|||
|
C.4.1deprecated: Technically allowed, but only in rare situations
|
|||
|
a sensible thing to do. The opposite of "should".
|
|||
|
|
|||
|
C.4.2must: Required by the language; unavoidable.
|
|||
|
|
|||
|
C.4.3shall: Required by definition. (But not necessarily unavoid-
|
|||
|
able syntactically or semantically in the language.)
|
|||
|
|
|||
|
C.4.4should: Recommended, but not mandatory. The opposite of
|
|||
|
"deprecated." (Within a requirement, it is used in place of
|
|||
|
"shall" where there is some rare situation in which it wouldn't
|
|||
|
work or where it was too burdensome to check for compliance.)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 44 -
|
|||
|
|
|||
|
|
|||
|
Annex D
|
|||
|
|
|||
|
|
|||
|
Guide to SGML Notation
|
|||
|
|
|||
|
(This annex is informative and will not form an integral part of the Stan-
|
|||
|
dard.)
|
|||
|
|
|||
|
For those unfamiliar with SGML, the following brief explanation will assist
|
|||
|
in understanding the code that appears in this document. For a more in-
|
|||
|
depth explanation, the ISO standard (ISO 8879-1986) is the definitive
|
|||
|
tutorial and reference on the subject.
|
|||
|
|
|||
|
NOTE: This description is currently "brief" to the point of opacity. We
|
|||
|
plan to expand this section at a later date.
|
|||
|
|
|||
|
D.1 Structure
|
|||
|
|
|||
|
SGML consists of three basic structural components. It is the usual
|
|||
|
intent that these structures will contain data, but in our application
|
|||
|
there is only structure for the moment. Elements are structural build-
|
|||
|
ing blocks which can be defined to contain data or other elements. An
|
|||
|
attribute list is associated with an element and contains values which
|
|||
|
describe the element. Entities are a structural tool which allow por-
|
|||
|
tions of code to be referenced by a label from one or more places in
|
|||
|
the code.
|
|||
|
|
|||
|
D.2 Punctuation
|
|||
|
|
|||
|
There are several punctuation marks that are important. Declarations
|
|||
|
(definitions) are surrounded by <! ... > and comments to the reader
|
|||
|
are surrounded by -- ... --. For the purposes of this document, the
|
|||
|
marks - - and -O can be ignored. In each declaration, the following
|
|||
|
marks may occur: , this followed by the next, & this and the next, |
|
|||
|
this or the next, ? optional, + one or more, * zero or more.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
- 45 -
|
|||
|
|
|||
|
|
|||
|
Annex E
|
|||
|
|
|||
|
Status Report
|
|||
|
|
|||
|
(This annex is informative and will not form an integral part of the Stan-
|
|||
|
dard.)
|
|||
|
|
|||
|
In the first meetings, the committee concentrated on the overall structure
|
|||
|
of the SMDL. Many issues were touched upon to ensure that the basic design
|
|||
|
would be flexible and powerful enough to handle the wide range of material
|
|||
|
demanded by the requirements specification.
|
|||
|
|
|||
|
More recently, the concentration has focused on the core and related
|
|||
|
issues, as this seemed the logical starting place. Subsequent work will
|
|||
|
have to build from a basically finished core section. As of the most recent
|
|||
|
meeting (February 1 - 4, 1988) we have developed the core substantially,
|
|||
|
although some work remains. We expect to finish this section at the next
|
|||
|
meeting, and proceed to the gestural and visual sections. It is assumed
|
|||
|
that further revisions of the core will be necessary after development of
|
|||
|
the other sections.
|
|||
|
|
|||
|
Because the work has focused on a particular area, the preceding document
|
|||
|
is uneven. Some areas have been discused down to minute detail, and some
|
|||
|
are as yet merely suggestions of the direction in which to proceed. In par-
|
|||
|
ticular the core section is considerably fleshed out, but the others are
|
|||
|
unfinished. As the meetings continue, we expect this document (parts 1 and
|
|||
|
2) to grow into a Draft Standard which will be complete in all areas.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
%%% 30 %%%
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
June 16, 1988
|
|||
|
|