subset of Unicode is possible, as long as a mono-
space font is used to establish the y-coordinate as
text column.
4 SYNTAX OF THE tScore
INPUT FORMAT
Figure 2 shows the basic elements of the tScore input
format:
1. The reserved keyword “PARS”, followed by a
unique identifier, separates independent parts of
a score file.
2. The reserved keyword “T” marks the beginning of
a dedicated line of input text called time line.
3. Textual entries (of arbitrary format) in such a time
line link the text column of their appearance to
some instant of the chosen time domain.
4. The horizontal ranges between two neighbours of
this time instances can be sub-divided by excla-
mation marks. (The resulting ranges can further
be divided by dots, which is not shown in this ex-
ample.)
5. The reserved keyword “VOX”, followed by an
identifier, marks the beginning of a so-called
“voice-line”, which is used to construct a single
voice object. A voice is defined as a sequence
of adjacent, non-overlapping events. Each such
event is thus related to one particular voice and
one particular time instant as its coordinates.
One single lexical entity appearing in a voice line
has two-fold semantics: Firstly it declares the
mere existence of one single event with the co-
ordinates corresponding to its position in the text,
namely line and column number.
Secondly it defines the value of one of the events
parameters, namely the chosen main parameter.
1
6. Such an event-defining entity can appear at a text
column which is already defined by a temporal
mark in the time line, . . .
1
Two remarks:
First: The divisions of the horizontal text areas (numeric
constants dividing the whole time-line, exclamation marks
between the numbers, events between the exclamation
marks, parentheses between events, etc.) contribute only
with their mere number: A division by three(3) has the
same semantics independent of the numbers of concrete text
columns and appearing white space characters in between.
Second: the very last column of a time line may not carry
any event; any event starting at this time point must be no-
tated at the beginning of the corresponding system, which
is normally the next following in the score file.
7. . . . or it can appear in between, which defines a
further level of (“spontaneous”) sub-division of
the temporal interval.
8. In a voice line, arbitrarily nested round parenthe-
ses can be used for further sub-division: The “log-
ical time” is distributed evenly between all single
events and parenthesized expressions appearing in
one time segment. The same rule holds for the
contents of the latter, and hence recursively for ar-
bitrarily nestings.
9. The reserved keyword “P”, followed by an identi-
fier, starts a line which defines a further parameter
for the events of the current voice.
10. Parameter values follow some arbitrary syntax,
defined with the name of the parameter track.
They can, but need not, appear in every column
which is bound to an event. (But cannot define
new events and time instances of their own.)
11. Esp. overloading is easily possible, the lack of
which is a severe deficiency of nearly all compet-
ing systems. Here “f” is used for a pitch and for
an intensity, “>” for a diminuendo fork and an ar-
ticulation mark, and “(” as grouping in the event
defining line, as described above, and as sign for
legato in the parameter line.
12. The lexers for the different parameter tracks may
support arbitrarily defined “ascii art”.
5 FIRST PARSING PHASE AND
GENERIC SEMANTICS
The first parsing steps convert the two-dimensional
input, as described in the preceding section, into an
intermediate data model. In the technical sense, in
the sense of classical compiler construction, this data
model already plays the role of a “semantic model” .
Seen from the application’s viewpoint, it is not a se-
mantic model, but a generic and intermediate one, and
the real semantics will be constructed by subsequent
transformations, defined by the user. Figure 3 depicts
these both levels in an informal way.
More precise are the formulas in Table 1. Let S
be the set of all trimmed string values, and S
1
its sub-
set without the empty string, and Id the strings usable
as alphanumeric identifiers. The central notions are
those of an “event” E and a “voice” V .
The time points on this level of abstraction repre-
sent “mere syntactical time”. They are constructed as
the algebraic data type T
synt
, with certain consistency
conditions.
tScore:MakesComputersandHumansTalkAboutTime
179