Standard Music Description Language (SMDL)
ISO/IEC DIS 10743


9 Gestural, Visual, and Analytical Domains

The architecture of the gestural, visual, and analytical domains (respectively represented by the perform, score, and analysis architectural forms) is largely undefined by this International Standard, because the generality, power, and flexibility of the HyTime International Standard's information addressing facilities makes a constrained architecture for these domains unnecessary .

The perform, score, and analysis architectural forms are all derived from the HyTime ilink architectural form. Each of them links itself tothe cantus element to which it corresponds.

9.1 HyTime ilink attributes (a.ilink)

(An SMDL parameter entity , a.ilink, is provided below in order to avoid defining some of the HyTime ilink architectural form' s attr ibutes explicitly and redundantly in the attribute list definitions of perform, score, and analysis.)

<!entity % a.ilink "
--HyTime ilink attributes, except anchrole. --
id ID #IMPLIED --Default: none --
linkends
--Linkends. Constraint: one anchor per anchor role.
If one is omitted, ilink element is first anchor.
Constraint: No HyTime reftype constraints, but
application designers can constrain element
types with reftype attribute. --
IDREFS #REQUIRED
extra
--External access traversal rule. Constraint: one
per anchor or one for all. lextype( ( "E" | "I" |
"A" | "N" | "P"), ( s+, ( "E" | "I" | "A" | "N" |
"P"))*). --
NAMES #IMPLIED --Default: no HyTime traversal --
intra
--Internal access traversal rule. Constraint: one
per anchor or one fo rall. lextype( ( "E" | "I" |
"A" | "N" | "P"), ( s+, ( "E" | "I" | "A" | "N" |
"P"))*). --
NAMES #IMPLIED --Default: no HyTime traversal --
endterms
--Linkend term information. Constraint: one per
anchor or one for all. reftype(HyBrid). --
IDREFS #IMPLIED --Default: none --
aggtrav
--Traversal of agglink anchors: agg or members.
Constraint: one per anchor or one for all.
lextype( ( "AGG" | "MEM" | "COR"), ( s+, ("AGG" |
"MEM" | "COR"))*). --
NAMES agg
--HyTime conloc attribute. --
conloc
--ID of element to be used in place of, or as content
of, this element (see HyTime International Standard). --
IDREF #CONREF "
>

9.2 Gestural Domain (perform)

The perform element links exactly one performance to one or more corresponding cantus elements. The performance can be in any notation, and it must appearin a "performance notation container" element, which may appearin the content of the perform element. This "performance notation container" element can (but need not) be in the content of the perform element.

NOTE 52
Examples of notations for performances include NIFF , MIDI files and digital audio recordings.

HyTime ilink-form elements in the content of the perform element can be used to illustrate the correspondences between the performance and the cantus at any level of detail. At the least detailed level, the perform architectural form itself is derived from the HyTime ilink architectural form, and it forms the bond between itself, the "performance notation container" element, and the cantus element(s) to which the perfor mance as a whole corresponds.

The "performance notation container" element need not be in the content of the perform element. It must use a HyTime notation attribute to indicate the data content notation used, and it must have a unique identifier. The perform element specifies the "performance notation container" element as its linkend corresponding to the performance token in the value of its anchrole attribute.

<!element perform --ANY >
<!attlist perform
SMDL NAME "perform"
anchrole
--Anchor roles. Constraint: one per anchor.
lextype( ( NAME, s+, ( RNI, "AGG")?), ( s+, NAME,
s+, ( RNI, "AGG")?)+). --
CDATA #FIXED "perform notation #AGG cantus #AGG"
%a.ilink;
--authorty attributes --
>

9.3 Visual Domain (score)

The score element links exactly one printable and/or displayable edition corresponding to one or more cantus elements. The edition can be in any notation, and it must appearin a "edition notation container" element, which may appearin the content of the score element. This "edition notation container" element can (but need not) be in the content of the score element.

NOTE 53
Examples of notations for editions include NIFF, SPDL, GIF , and JPEG.

HyTime ilink-form elements in the content of the score element can be used to illustrate the correspondences between the edition and the cantus at any level of detail. At the least detailed level, the score architectural form itself is der ived from the HyTime ilink architectural form, and it forms the bond between itself, the "edition notation container" element, and the cantus element(s) to which the edition as a whole corresponds.

The "edition notation container" element need not be in the content of the score element. It must use a HyTime notation attribute to indicate the data content notation used, and it must have a unique identifier. The score element specifies the "edition notation container" element as its linkend corresponding to the edition token in the value of its anchrole attribute.

<!element score --ANY >
<!attlist score
SMDL NAME "score"
anchrole
--Anchor roles. Constraint: one per anchor.
lextype( ( NAME, s+, ( RNI, "AGG")?), ( s+, NAME,
s+, ( RNI, "AGG")?)+). --
CDATA #FIXED "score edition #AGG cantus #AGG"
%a.ilink;
--authorty attributes --
>

9.4 Analytical Domain (analysis)

The structure of the analysis architectural form is completely in the province of the music theorist(s), musicologist, or music critic who create(s) it. Such an author can use the full power of the HyTime addressing and linking facilities to make extremely precise observations and comparisions regarding all of the information in cantuses, performances, and scores. The analysis architectural form itself is derived from the HyTime ilink architectural form, and it specifies in its linkends attribute the cantus element(s) to which the analysis as a whole corresponds.

<!element analysis --ANY >
<!attlist analysis
SMDL NAME "analysis"
anchrole
--Anchor roles. Constraint: one per anchor.
lextype( ( NAME, s+, ( RNI, "AGG")?), ( s+, NAME,
s+, ( RNI, "AGG")?)+). --
CDATA #FIXED "analysis #AGG cantus #AGG"
%a.ilink;
>


[ Index | Previous Paragraph | Next Paragraph ]