next up previous contents
Next: MIDI Tuning Technique Up: Intonation Software Previous: Intonation Software

The Score Description Language

Before diving into the details of the Score Description Language, we will give an example of a score fragment in traditional and SDL notation. Figure (removed due to latex2html problems) is the traditional notation for the first phrase of Bach's realization of the chorale O Welt, ich muss dich lassen [1, 205]. Figure 4.1 is the SDL notation for the same phrase.


  
Figure 4.1: SDL notation for a phrase of a Bach chorale
\begin{figure}
\center
\begin{verbatim}
4 35.0

0 q,D5,_ q,Bb4,_ q,C5,_ e,D5,-1 ...
 ...,-1 q,F4,0 q,F4,0 ;
3 q,D3,-1 q,C3,-1 q,F3,0 q,Bb2,0 ;\end{verbatim}\end{figure}

Table 4.1 shows the syntax (in Backus-Naur Form) for the score description language. The definitions of the elements Integer and Real is not repeated here since they are defined conventionally.


 

 
Table 4.1: Score description language syntax
Score ::= NumParts Tempo System*
NumParts ::= Integer
Tempo ::= Real
System ::= Part* ;
Part ::= PartNum Event*
PartNum ::= Integer
Event ::= Note | Rest
Rest ::= Duration
Note ::= Duration , Pitch , Intonation
Duration ::= t | T | s | S | e | E | q | Q | h | H | w | W
Pitch ::= Letter Accidental* Register
Letter ::= A | B | C | D | E | F | G
Accidental ::= b | #
Register ::= Integer
Intonation ::= Integer | _


We will define the semantics of this language by explaining the rather simple manner in which it corresponds to traditional notation. A Score is a score for NumParts monophonic parts, at Tempo quarter notes per minute. A System has no musical meaning; it is merely a syntactic convenience to break up the input into short lines. Each Part consists of sequential events, each of which has a Duration. A Part with PartNum not between 0 and $\mbox{\textit{NumParts}}-1$inclusive is ignored.

A Duration can have the following values: thirty-second, sixteenth, eighth, quarter, half, whole. These are indicated by the first letter of their name. A Duration can be ``dotted'' by using the capitalized version of the base duration. For example a dotted eighth is indicated by `E' and a normal eighth by `e.' A Rest consists solely of a Duration, but a Note has a Pitch and an Intonation annotation.

A Pitch is indicated in the same manner used throughout this work, except that, due to the constraints of the ASCII character set, the flat sign (\ensuremath{\flat}) is replaced by a lowercase bee (`b'). Intonation can be an integer, indicating a subscript to be used in just triadic tuning, or it can be an underscore (`_'), indicating 12TET. Thus the example in Figure 4.1 starts in 12TET and switches to just triadic tuning.

This language is bare-bones; for example, there are no provisions for bar lines, slurs, articulations, or dynamics. Nonetheless, it does provide enough information for simple MIDI file realizations and score following of a piece.


next up previous contents
Next: MIDI Tuning Technique Up: Intonation Software Previous: Intonation Software
Ben Denckla
8/29/1997