728 lines
26 KiB
Plaintext
728 lines
26 KiB
Plaintext
|
||
February 15, 1988
|
||
|
||
|
||
{This document may be duplicated and distributed to others
|
||
except as noted. To contribute a document and/or to obtain
|
||
copies of other ANSI X3V1.8M Music Information Processing
|
||
Standards Committee documents, contact: X3V1.8M Secretariat,
|
||
c/o Craig R. Harris, The Computer Music Association, P.O.
|
||
Box 1634, San Francisco, California 94101-1634 USA.}
|
||
|
||
X3V1.8M/SD-6
|
||
Journal of Development, Part One:
|
||
Standard Music Description Language
|
||
-- Objectives and Methodology --
|
||
|
||
|
||
Editors: Charles F. Goldfarb
|
||
IBM Research
|
||
|
||
Steven R. Newcomb
|
||
Florida State University
|
||
|
||
|
||
0. Introduction
|
||
|
||
NOTE -- 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 esta-
|
||
blished by Part One.
|
||
|
||
NOTE -- This introduction appears in both parts of
|
||
the Journal of Development.
|
||
|
||
0.1. Purpose of the Document
|
||
The Journal of Development describes the status of the
|
||
Standard Music Description Language (SMDL) being
|
||
developed by ANSI X3V1.8M, the Music Information Pro-
|
||
cessing Standards (MIPS) Committee.
|
||
|
||
NOTE -- General information about the MIPS commit-
|
||
tee, including a guide to participation, can be
|
||
found in committee document X3V1.8M/SD-0.
|
||
|
||
The Journal is in two parts:
|
||
|
||
Part One describes the objectives of the project and
|
||
the development methodology employed.
|
||
|
||
Part Two describes the language design itself.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 2 -
|
||
|
||
|
||
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 in
|
||
detail by the committee, but only the editors' 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 text which represents
|
||
the consensus of the committee.
|
||
|
||
During the Journal of Development and working draft
|
||
stages, public comment is sought and considered, but
|
||
the process is informal. Eventually, when the commit-
|
||
tee is satisfied with a working draft, it will recom-
|
||
mend that X3V1.8 process the document as a "draft pro-
|
||
posal American National Standard." There will then
|
||
commence a formal public review and ballot, during
|
||
which the contributor of each comment will receive a
|
||
written reply.
|
||
|
||
0.3. Editorial Conventions
|
||
Formal standards can be complex documents in which
|
||
every word has both legal and technical significance.
|
||
Standards documents may also need to be translated into
|
||
other languages. For these reasons, editorial conven-
|
||
tions have been established to assure precision, accu-
|
||
racy, and clarity (albeit often at the expense of rea-
|
||
dability by the general public). The key principles
|
||
are:
|
||
|
||
(1) Precise and consistent definitions of terms.
|
||
|
||
(2) Distinguishing real requirements from mere commen-
|
||
tary, explanations, and examples -- and from
|
||
definitions.
|
||
|
||
(3) Avoidance of redundancy. (Repetition of a
|
||
requirement is normally a comment, 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 B of Part
|
||
Two for details.)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 3 -
|
||
|
||
|
||
1. Requirements for a Standard Music Description Language
|
||
(SMDL). The SMDL is being developed to meet the
|
||
requirements described in this clause.
|
||
|
||
1.1 General Needs
|
||
|
||
1.1.1 Book Publishing
|
||
Publishers need a way of representing musical examples
|
||
within a document (e.g. a music textbook), so that no
|
||
additional typesetting or formatting cost is incurred,
|
||
and no paste-ups need be done when either the text or
|
||
music portions of the document are edited.
|
||
|
||
1.1.2 Business Presentations
|
||
Makers of computer-mediated business presentations need
|
||
to integrate music into their productions, and their
|
||
productions need to be portable. Those who create
|
||
business presentations, especially those who create
|
||
business presentations of the kind that are now com-
|
||
monly done with a PC and a video projector, want to
|
||
incorporate music in such presentations, and they want
|
||
to be in a position to have the music reformatted
|
||
(i.e., rearranged) for different performing resources
|
||
"on the fly." The business of business presentations
|
||
is a large one and it can be expected to generate con-
|
||
siderable demand for computer music products, and, of
|
||
course, for music itself.
|
||
|
||
1.1.3 Computer-assisted Instruction
|
||
Computer assisted instruction which employs music as a
|
||
reinforcer, or which actually teaches music, needs to
|
||
be portable in order to maximize its marketability.
|
||
The people who create the instruction need to be able
|
||
to call upon databases of music written by other people
|
||
who wrote or transcribed the music using perhaps incom-
|
||
patible hardware and/or software systems.
|
||
|
||
1.1.4 Electronic Information Distribution
|
||
Electronic distributors of information (via videotex,
|
||
etc.) need to be able to include music as part of their
|
||
product mix.
|
||
|
||
1.1.5 Music Creation and Distribution
|
||
Composers, performers, and arrangers would be better
|
||
able to exploit the market for their creativity, and
|
||
their market would be better served and have a wider
|
||
variety of product to choose from, given the existence
|
||
of a lingua franca for music--a single representation
|
||
which is able to encompass the kind of information
|
||
which is available from printed music, as well as the
|
||
kind of information (gesture, nuance) which performers
|
||
add in any given performance.
|
||
|
||
1.1.6 Information Retrieval
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 4 -
|
||
|
||
|
||
Librarians and information retrieval specialists need a
|
||
standard representation of music data bases, including
|
||
the ability to identify musical works by themes as well
|
||
as conventional bibliographic data.
|
||
|
||
1.1.7 Musical Analysis and Criticism
|
||
Musicologists, reviewers, editors, and critics require
|
||
the ability to annotate and analyze musical works, and
|
||
to record their analyses in a manner that provides com-
|
||
plete flexibility in their choice of analytical tech-
|
||
nique, as well as precision in indicating musical pas-
|
||
sages and phenomena.
|
||
|
||
1.2 Specific Assumptions
|
||
Within the above broad categorization of application
|
||
needs, specific requirements have been identified.
|
||
|
||
1.2.1 User Interface
|
||
It is expected that the primary means of creating and
|
||
revising SMDL documents will be with specialized music
|
||
editors. However, it is also expected that direct
|
||
access with "dumb" text editors will also be necessary,
|
||
for example:
|
||
|
||
1. By programmers who are developing or maintaining
|
||
the specialized music editors.
|
||
|
||
2. By users who have incorporated SMDL into larger
|
||
documents for publication, and who must modify
|
||
them in an environment where a music editor is not
|
||
available.
|
||
|
||
1.2.2 Unique Representation
|
||
The representation of a musical work must contain a
|
||
"core" of information that can be encoded in a canoni-
|
||
cal form such that unambiguous comparisons can be made
|
||
between works. In other words, there must be a defined
|
||
portion of the representation that serves to distin-
|
||
guish a work from all other works.
|
||
|
||
***** section 1 TO BE COMPLETED: *****
|
||
***** Contributions are solicited! *****
|
||
|
||
|
||
2. The Role of SGML in the SMDL
|
||
|
||
NOTE -- The SMDL is intended to be an SGML
|
||
representation of music information. The nature
|
||
of SGML is such that this objective does not res-
|
||
trict the SMDL design in any practical way. The
|
||
purpose of this clause is to explain why that is
|
||
so.
|
||
|
||
2.1 Background
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 5 -
|
||
|
||
|
||
The Standard Generalized Markup Language (SGML) is an
|
||
internationally standardized language for document
|
||
description, published as International Standard ISO
|
||
8879 : 1986.
|
||
|
||
SGML has been adopted by a broad variety of organiza-
|
||
tions for a diverse range of applications.
|
||
|
||
-- The Association of American Publishers has adopted
|
||
SGML for use by authors submitting manuscripts to
|
||
publishers, and it has published applications of
|
||
the language for journals, books, articles,
|
||
mathematical formulae, and complex tables.
|
||
|
||
-- The U.S. Government, which is the world's largest
|
||
publisher, is a major user of SGML, and it is in
|
||
the process of formally adopting it as a Federal
|
||
Information Processing Standard. Agencies using
|
||
SGML range from the Internal Revenue Service,
|
||
which uses it for tax form preparation, training
|
||
manuals, and other publications, to the Defense
|
||
Department. The latter has adopted SGML as a
|
||
standard for documentation in its Computer
|
||
Assisted Logistical Support program, a project
|
||
that could see the expenditure of over a billion
|
||
dollars on SGML-based documentation support in the
|
||
next three years alone.
|
||
|
||
-- The IBM Corporation, on whose Generalized Markup
|
||
Language (GML) the SGML is based, is the world's
|
||
second largest publisher. It uses GML for over
|
||
90% of its publications.
|
||
|
||
-- The Oxford University Press is using SGML to
|
||
create an immense data base of the contents of the
|
||
Oxford English Dictionary and its many supple-
|
||
ments. It will be the base for the publication of
|
||
the New Oxford English Dictionary and many spe-
|
||
cialized dictionaries, and it will eventually be
|
||
available for online information retrieval.
|
||
|
||
Implementations of SGML for IBM and Macintosh personal
|
||
computers, DEC minicomputers, and IBM mainframes among
|
||
others, are already available, and more are under
|
||
development.
|
||
|
||
2.2 Document Representation with SGML
|
||
|
||
2.2.1 Structure
|
||
SGML allows a document to be described as a hierarchy
|
||
of logical elements. For example, a "book" may be
|
||
described as a sequence of "chapter" elements, each of
|
||
which contains a "title" element followed by one or
|
||
more "paragraph" elements.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 6 -
|
||
|
||
|
||
The title of a chapter might appear as:
|
||
|
||
<title>How Dorothy Returned to Oz</title>
|
||
|
||
and the first paragraph might appear as:
|
||
|
||
<p>When Dorothy returned to her room, there was a
|
||
tiny cameo lying on her dresser. She picked it
|
||
up, and it began to glow, while the tiny face on
|
||
it seemed to come to life.</p>
|
||
|
||
While this example may seem trivial, it illustrates the
|
||
beauty of SGML: an SGML document need not contain any
|
||
formatting instructions, but all the information about
|
||
the document needed to format it automatically (by
|
||
means of an application designed to do that) can be
|
||
placed within the document itself. Having created a
|
||
document expressed in SGML, the author or editor can
|
||
instruct a formatting program that, for example, all
|
||
chapter titles are to be centered on new pages, one
|
||
third of a page down, followed by a specified amount of
|
||
blank space. Thus, if the document is reprinted in a
|
||
journal or anthology with different formatting conven-
|
||
tions, no one needs to edit the document itself,
|
||
because a formatter can reformat it according to the
|
||
desired publishing style. SGML documents can contain
|
||
normal text characters, graphics, images, mathematical
|
||
formulae, and other specialized notations.
|
||
|
||
In the above example, the structure of this instance of
|
||
a book (a very short one!) was:
|
||
|
||
|
||
<book>
|
||
<chapter>
|
||
<title>
|
||
data ...
|
||
<para>
|
||
data ...
|
||
|
||
|
||
where "data" was those characters other than the markup
|
||
tags -- the "real" text of the document.
|
||
|
||
2.2.2 Data Content Notations
|
||
In our book, the data was a string of normal English
|
||
characters interpreted in the usual way. But consider
|
||
the following data:
|
||
|
||
three over four
|
||
|
||
This example could also be normal English text, but in
|
||
a different context it could be interpreted as the
|
||
equivalent of:
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 7 -
|
||
|
||
|
||
3/4
|
||
|
||
The interpretation of data characters in a specialized
|
||
manner like that described is called a "data content
|
||
notation." Data content notations are frequently used
|
||
in SGML documents to describe the content of elements
|
||
such as mathematical formulas and pictures.
|
||
|
||
However, the example could also have been represented
|
||
as an SGML structure that did not require a data con-
|
||
tent notation:
|
||
|
||
<fraction><numer>3<denom>4</fraction>
|
||
|
||
Here, "fraction" is an element (like "title" or "p");
|
||
it contains a numerator ("numer") and a denominator
|
||
("denom"). In other words, the structure is:
|
||
|
||
|
||
<fraction>
|
||
<numer>
|
||
data ...
|
||
<denom>
|
||
data ...
|
||
|
||
|
||
And, just as in our book, the data need no special
|
||
interpretation -- the formatting of "fraction" is what
|
||
specifies that the "numer" should be displayed above
|
||
the "denom".
|
||
|
||
The coding schemes conventionally used for musical
|
||
scores are essentially data content notations. In
|
||
them, for example, the letters "a" through "g" might
|
||
stand for notes of a particular pitch, while the digits
|
||
"4" and "8" might represent durations.
|
||
|
||
By using such a notation, an SGML document like our
|
||
book could contain a "song" element within (say) a
|
||
chapter:
|
||
|
||
<book><chapter><title>Some Obscure Songs</title>
|
||
<para>Here is a really obscure song:</para>
|
||
<song notation="DARMTRAN">4EDCDEEER</song>
|
||
|
||
Here, the "notation" attribute on the tag that intro-
|
||
duces the "song" element tells us that the data content
|
||
of the element is interpretable by the "DARMTRAN" nota-
|
||
tion. The formatting program could call a "DARMTRAN"
|
||
processor for that element in order to obtain the
|
||
typeset music.
|
||
|
||
2.2.3 Cross-references
|
||
Elements can have other attributes besides "notation."
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 8 -
|
||
|
||
|
||
One such attribute, called an "ID", allows a name to be
|
||
assigned to an individual element. Relationships
|
||
between other elements and that one can be expressed
|
||
with an "IDREF" (ID reference) attribute whose value is
|
||
the ID of that one. In the following example, a para-
|
||
graph contains a "songref" (song reference) element
|
||
that refers to the song whose ID is "song1":
|
||
|
||
<para>I am referring to <songref idref="song1"></songref>
|
||
when I speak of true obscurity.</para>
|
||
<song id="song1" notation="DARMTRAN" >T"Obscure Song"CDEFEDC</song>
|
||
|
||
The "songref" element has no data of its own; presum-
|
||
ably the formatting application will generate an
|
||
automatic reference based on material that is decoded
|
||
by the data content notation processor. (There seems
|
||
to be a title hidden in there, but only a DARMTRAN pro-
|
||
cessor would know for sure!)
|
||
|
||
An alternative technique might be to define "song" ele-
|
||
ments as containing a "title" and a "body", with only
|
||
the body being in the data content notation:
|
||
|
||
<song id="song1"><title>Obscure Song</title>
|
||
<body notation="DARMTRAN">CDEFEDC</body></song>
|
||
|
||
Now the formatting application can be smart enough on
|
||
its own (without the DARMTRAN processor) to extract the
|
||
content of the "title" element of the song and use it
|
||
to generate data for the "songref" element!
|
||
|
||
2.2.4 Data Content Notation Encoding
|
||
The data content notations in our examples were both
|
||
character coded. An advantage of a character coded
|
||
notation is that it can be typed at a non-graphics ter-
|
||
minal and printed in the form of a listing by non-
|
||
graphics printers. This can be particularly helpful to
|
||
programmers who write the friendly "front-ends" and
|
||
applications that create and process SMDL documents.
|
||
|
||
However, SGML documents also have the ability to con-
|
||
tain binary data content notations, e.g., photographs.
|
||
To a software developer, this may appear, at first
|
||
blush, to be the most appropriate for music representa-
|
||
tion. However, the distinction between the SMDL and a
|
||
representation that is internal to an application
|
||
should always be kept in mind. The SMDL representation
|
||
will be for the purpose of allowing applications with
|
||
DISSIMILAR internal representations to communicate with
|
||
one another. A binary encoded notation will not neces-
|
||
sarily be more convenient for a given application to
|
||
handle than a character coded one.
|
||
|
||
2.3 An SGML Design Tradeoff
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 9 -
|
||
|
||
|
||
There is obviously a tradeoff that must be made here
|
||
when designing an SGML application. A data content
|
||
notation, because it is designed specifically to
|
||
describe a certain kind of information, will likely
|
||
require fewer characters to express the same thing as a
|
||
general-purpose description language like SGML. (To
|
||
avoid any misapprehension that SGML is unacceptably
|
||
verbose, it should be noted that SGML has "markup
|
||
minimization" features that, if used, would have sub-
|
||
stantially reduced the amount of markup in the previous
|
||
examples.)
|
||
|
||
On the other hand, the more detail about an element
|
||
that is exposed at the SGML level, the greater the pos-
|
||
sibility of interaction with other parts of the docu-
|
||
ment (such as cross-references). Another benefit of
|
||
maximizing the use of SGML structure is that any tex-
|
||
tual information in the music could be handled in the
|
||
same way as any other text, and there would be the
|
||
least likelihood of conflict between the formatting
|
||
conventions for the text outside the music portion of a
|
||
document and the formatting conventions for the text
|
||
and music inside the music portion.
|
||
|
||
A document expressed in SGML may be visualized as a
|
||
tree, in which only the leaves contain data. The
|
||
flatter the tree structure, the more likely that a
|
||
notation will be required to interpret that data. But
|
||
whether the tree has one level or one hundred, it is
|
||
still an SGML document.
|
||
|
||
In creating SMDL as an application of SGML, therefore,
|
||
a range of possibilities present themselves:
|
||
|
||
1. The bare minimum of SGML structure could be used:
|
||
|
||
<symphony notation="SMDL">GGGEb</symphony>
|
||
|
||
2. SGML structure could be used for some levels, but
|
||
not for all of them. For example, SGML could be
|
||
used for the few highest level elements of the
|
||
tree where it might be useful to have cross-
|
||
references, etc., and where there is little effi-
|
||
ciency to be lost because there are so few
|
||
instances of them:
|
||
|
||
<symphony>
|
||
<movement id="first" notation="SMDL">GG</movement>
|
||
<movement id="second" notation="SMDL">GEb</movement>
|
||
</symphony>
|
||
|
||
|
||
3. SGML structure could be used right down to the
|
||
leaves.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 10 -
|
||
|
||
|
||
The choice between the above alternatives cannot be
|
||
made with certainty until the full set of information
|
||
to be represented in SMDL has been identified. The
|
||
final language will almost certainly be some mix of
|
||
SGML and a data content notation, but some difficult
|
||
design work will be needed to implement it. For one
|
||
thing, we will have to design (or adapt) a data content
|
||
notation.
|
||
|
||
In the interim, we can easily express the set of infor-
|
||
mation to be represented by using alternative #3, as it
|
||
does not require us to invent a notation at this time.
|
||
Once the full set of information is defined, we can
|
||
devise a coding scheme (data content notation) for the
|
||
leaves and appropriate levels of node, and leave the
|
||
remainder to be represented with SGML markup.
|
||
|
||
3. Design Philosophy
|
||
This clause describes the principles that are observed
|
||
in formulating the SMDL design.
|
||
|
||
3.1 Role of a Description Language
|
||
A description language (such as SMDL) is a method of
|
||
expressing certain material that falls within a range
|
||
that the language designers specify. A description
|
||
language does not make any demands on the material
|
||
other than that it be within its range, nor is there
|
||
any dynamic aspect to a description language.
|
||
|
||
English can be used to illustrate the concept of the
|
||
range of a language. English is a language that is
|
||
ideally suited for writing material such as this docu-
|
||
ment. English also lends itself beautifully to poetry.
|
||
Mathematics, on the other hand, can only poorly be
|
||
expressed in English (calculus and algebra are far
|
||
better), and music cannot usefully be represented at
|
||
all. Clearly, some material is within the range
|
||
addressed by English, and some is not. English imposes
|
||
a certain structure (grammar, vocabulary, spelling,
|
||
etc.) on its range of subject material, but does not
|
||
restrain the content.
|
||
|
||
3.2 Terminology
|
||
The terms for SMDL constructs are chosen with care, but
|
||
some may be different from conventional music terminol-
|
||
ogy, in the following ways:
|
||
|
||
1. The term may be used in a more restricted (or more
|
||
general) sense in the Standard than in common
|
||
music parlance.
|
||
|
||
2. The term may refer to an SMDL language construct
|
||
that corresponds to, but is not identical to, a
|
||
construct in music.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 11 -
|
||
|
||
|
||
3. The term may refer to a construct from another
|
||
discipline that is here being applied to music.
|
||
The term "thread," for example, refers to a con-
|
||
cept which does not have a counterpart in conven-
|
||
tional music terminology, but it is a metaphor
|
||
like the one used when speaking of the "thread" of
|
||
a story line or argument.
|
||
|
||
The terminology, like everything else in SMDL, is sub-
|
||
ject to review and revision, but for now we need "han-
|
||
dles" for various concepts, and these are workable.
|
||
|
||
3.3 Efficiency
|
||
It is intended that SMDL be able to express the bulk of
|
||
the material it is intended to represent in an elegant
|
||
and straightforward manner, with some thought given to
|
||
efficiency as well.
|
||
|
||
However, efficiency with respect to potential modifica-
|
||
tion is much less a concern, since any given instance
|
||
of a musical piece is static. The only criterion is
|
||
whether the versions existing both before and after the
|
||
change can be expressed correctly.
|
||
|
||
Dynamic efficiency is more the concern of designers of
|
||
the internal representations used by application
|
||
software that will read and create SMDL documents. (It
|
||
is especially easy for those of us who are software
|
||
developers to fall into the trap of thinking like pro-
|
||
grammers rather than language designers.)
|
||
|
||
3.4 Redundancy and Consistency
|
||
Our general approach is to avoid the possibility of
|
||
conflicting information in an SMDL document, which is
|
||
tantamount to avoiding redundancy. While it is recog-
|
||
nized that internal redundancy can serve as a vehicle
|
||
for error-checking, our belief is that it is the
|
||
responsibility of the originator of an SMDL document to
|
||
assure that it is error-free and conforms to the stan-
|
||
dard. A non-redundant design assures that the document
|
||
is internally consistent, and therefore processable,
|
||
even if it does not correctly express the intention of
|
||
the originator.
|
||
|
||
3.5 Economy of Constructs
|
||
We intend that the final language design be elegant, in
|
||
the sense of having no more constructs than are needed
|
||
to describe the full range of subject material. During
|
||
the design process, however, we prefer to err on the
|
||
side of defining too many constructs, rather than too
|
||
few, so that distinctions can easily be made as we gain
|
||
better understanding of the differences between
|
||
apparently similar things. We will, of course, remove
|
||
any duplications when finalizing the design, but
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- 12 -
|
||
|
||
|
||
premature optimization might cause us to overlook
|
||
important differences.
|
||
|