[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