[climacs-cvs] CVS update: papers/ilc2005/syntax/climacssyntax.tex
Christophe Rhodes
crhodes at common-lisp.net
Mon May 23 14:26:16 UTC 2005
Update of /project/climacs/cvsroot/papers/ilc2005/syntax
In directory common-lisp.net:/tmp/cvs-serv17345
Modified Files:
climacssyntax.tex
Log Message:
A bit more explanation of tablature, following feedback from members of
the group here.
Date: Mon May 23 16:26:15 2005
Author: crhodes
Index: papers/ilc2005/syntax/climacssyntax.tex
diff -u papers/ilc2005/syntax/climacssyntax.tex:1.23 papers/ilc2005/syntax/climacssyntax.tex:1.24
--- papers/ilc2005/syntax/climacssyntax.tex:1.23 Mon May 23 15:57:22 2005
+++ papers/ilc2005/syntax/climacssyntax.tex Mon May 23 16:26:15 2005
@@ -202,8 +202,8 @@
in a specialized array, this will net a worst case space efficiency of
four bytes of every byte in the file. However, the time advantages of
this representation outweigh the space inefficiency. Searching for an
-individual character in a sequence of characters encoded in UTF-8 (or
-other variable-length encoding) is $O(n)$, because each individual
+individual character in a sequence of $n$ characters encoded in UTF-8
+(or other variable-length encoding) is $O(n)$, because each individual
character must be examined to determine the number of octets which are
stored to represent that character.
@@ -315,7 +315,7 @@
framework. Firstly, and most importantly, ISO Prolog \cite{ISOProlog}
is not a context-free grammar: \textit{terms} have an implicit
priority affecting their parse.\footnote{Formally, the grammar could
- be made context-free by introducing 1200 new production rules.} The
+ be made context-free by introducing 2400 new production rules.} The
implementation of Earley's algorithm, however, was able to address
this additional complexity with no difficulty.
@@ -402,25 +402,29 @@
|}}
\caption{An extract from `Lachrime by I. D.' from \textit{A New
Booke of Tabliture}, published by William Barley (London,
- 1596), E1r, and its \TabCode\ encoding.}
+ 1596), E1r, and its \TabCode\ encoding. The parenthesized
+ characters encode the lines joining and spanning the example,
+ while the individual punctuation characters refer to the
+ fingering marks.}
\label{fig:barley}
\end{center}
\end{figure*}
\TabCode\ \cite{tabcode} is a textual format for description of lute
-tablature. In its simplest form, it is a sequence of
-whitespace-delimited independent words, where each word represents
-either a set of frets to depress and strings to be sounded, or
-alternatively some element of musical notation (such as a barline);
-figure \ref{fig:besfantlach} shows a fragment of manuscript, and
-demonstrates its \TabCode\ encoding. It is also possible to encode
-more complex elements of lute tablature notation in \TabCode:
-ornaments, fingering marks, beaming, connecting lines and other
-complex elements can all be accommodated (see figure \ref{fig:barley}
-for examples of some of these more complex elements). \TabCode\ has
-been used to produce scholarly editions of lute works \cite{Weiss} and
-to assist in computer-based musicological studies (as in
-\cite{ecolm-graz} for example).
+tablature, a form of musical notation. In its simplest form, it is a
+sequence of whitespace-delimited independent words, where each word
+represents either a set of string--fret coordinates for the player's
+left hand specifying the note or chord to be played or alternatively
+some other element of musical notation (such as a barline); figure
+\ref{fig:besfantlach} shows a fragment of tablature, and demonstrates
+its \TabCode\ encoding. It is also possible to encode more complex
+elements of lute tablature notation in \TabCode: ornaments, fingering
+marks, beaming, connecting lines and other complex elements can all be
+accommodated (see figure \ref{fig:barley} for examples of some of
+these more complex elements). \TabCode\ has been used to produce
+scholarly editions of lute works \cite{Weiss} and to assist in
+computer-based musicological studies (as in \cite{ecolm-graz} for
+example).
The \TabCode\ language itself has developed to provide a terse and
intuitive encoding of tablature, rather than a well-formed grammar for
@@ -442,15 +446,17 @@
\end{center}
\end{figure}
-More complex to model are beams and connecting lines, which have their
-own semi-independent identity, despite being encoded in \TabCode\ as
+More complex to model are beams\footnote{the term `beam' is used for
+ the grid-like representation of repeated rhythm signs, adapted from
+ standard music notation.} and connecting lines, which have their own
+semi-independent identity, despite being encoded in \TabCode\ as
modifiers to individual tokens. In particular, the existence of beams
and connecting lines means that we cannot parse a buffer into a
sequence of tabwords and thence into hypothetical higher-level
structures such as \texttt{beamed-group} and \texttt{connected-pair},
because these higher-level structures can overlap in non-trivial ways,
-as in figure \ref{fig:board}. Instead, we deal with these modifiers by
-invoking a parser on the sequence of parsed buffer elements to
+as in figure \ref{fig:board}. Instead, we deal with these modifiers
+by invoking a parser on the sequence of parsed buffer elements to
generate parallel sequences of beams, connecting lines and other such
tablature elements.
@@ -490,13 +496,13 @@
unchanged for most editing operations.
To assist the editorial process, we have also implemented MIDI audio
-feedback: in addition to a command to render the entire tablature, we
-provide several gestures to play individual chords: one intended for
-use during the initial entry of the encoding, to act as a rapid
-error-detection aid, and a motion command and mouse gesture to assist
-revision and navigation. At present, this MIDI support is based on
-Apple's CoreMIDI framework on Mac OS X; a port to alsa-lib on Linux is
-in progress.
+feedback: in addition to a command to render the entire tablature in
+sound, we provide several gestures to play individual chords: one
+intended for use during the initial entry of the encoding, to act as a
+rapid error-detection aid, and a motion command and mouse gesture to
+assist revision and navigation. At present, this MIDI support is
+based on Apple's CoreMIDI framework on Mac OS X; a port to alsa-lib on
+Linux is in progress.
\section{Future Work and Conclusions}
\label{sec:conclusions}
More information about the Climacs-cvs
mailing list