Update of /project/gsharp/cvsroot/gsharp/Doc
In directory common-lisp.net:/tmp/cvs-serv3392
Modified Files:
buffer.tex
Log Message:
Improvements to the documentation of buffer protocols.
Date: Mon Oct 31 19:23:47 2005
Author: rstrandh
Index: gsharp/Doc/buffer.tex
diff -u gsharp/Doc/buffer.tex:1.4 gsharp/Doc/buffer.tex:1.5
--- gsharp/Doc/buffer.tex:1.4 Mon Oct 31 15:42:34 2005
+++ gsharp/Doc/buffer.tex Mon Oct 31 19:23:47 2005
@@ -67,11 +67,6 @@
The reader accepts this syntax, except that the slots can come in any
arbitrary order.
-In version 2 of the external representation, a clef was written like
-this :
-
-\texttt{[K \textit{name} \textit{lineno} ]}
-
%===================================================================
\section{The staff protocol}
@@ -100,13 +95,13 @@
\Defclass {fiveline-staff}
-This class is a subclass of \texttt{staff} and is used to represent an
+This class is a subclass of \lispobj{staff}, and is used to represent an
ordinary five-line staff for displaying notes.
\Definitarg {:clef}
This value must always be supplied, and must be an instance of the
-class \texttt{clef}. The clef of a five-line staff indicates where
+class \lispobj{clef}. The clef of a five-line staff indicates where
on the staff notes are to be displayed.
\Definitarg {:keysig}
@@ -114,12 +109,12 @@
This initarg is used to represent the key signature of the staff. The
value is a vector with seven elements, where each element corresponds
to a note of the scale (C, D, E, F, G, A, B), and is a keyword
-(\texttt{:natural}, \texttt{:sharp}, or \texttt{:flat}) indicating
+(\lispobj{:natural}, \lispobj{:sharp}, or \lispobj{:flat}) indicating
whether staff positions corresponding to that note of the scale should
be altered. The default value for this initarg is a vector with seven
elements, each begin the object \lispobj{:natural}.
-\Defun {make-fiveline-staff} {name \optional (clef \texttt(make-clef :treble))}
+\Defun {make-fiveline-staff} {name \optional (clef \lispobj(make-clef :treble))}
\Defgeneric {clef} {fiveline-staff}
@@ -131,6 +126,11 @@
Return the key signature of the staff. With \lispobj{setf}, change
the key signature of the staff.
+\Defclass {lyrics-staff}
+
+This class is a subclass of \lispobj{staff}, and is used to represent a
+staff for displaying lyrics.
+
%-------------------------------------------------------------------
\subsection{External representation}
@@ -142,10 +142,10 @@
The reader accepts this syntax, except that the slots can come in any
arbitrary order.
-In version 2 of the external representation, a staff was written like
-this :
+A lyrics staff is printed (by \lispobj{print-object}) like this in
+version 3 of the external representation:
-\texttt{[= \textit{clef} \textit{keysig} ]}
+\texttt{[L :name \textit{name} ]}
%===================================================================
\section{The keysig protocol}
@@ -154,3 +154,39 @@
keysig would be a read-only object.
%===================================================================
+\section{The note protocol}
+
+%-------------------------------------------------------------------
+\subsection{Description}
+
+Notes are immutable objects. For that reason, if you want to change
+some characteristics of a note in a cluster, you have to delete the
+note from the cluster and create one with the characteristics you
+would like.
+
+%-------------------------------------------------------------------
+\subsection{Protocol classes and functions}
+
+\Defclass{note}
+
+The protocol class for notes.
+
+
+%-------------------------------------------------------------------
+\subsection{External representation}
+
+A note is printed (by \lispobj{print-object}
+
+\Definitarg{:cluster}
+
+This initarg determines the cluster to which the note belongs. The
+default value for this initarg is \lispobj{nil} indicating that the
+note currently does not belong to any cluster.
+
+\Definitarg{:pitch}
+
+This initarg is mandatory, and determines the pitch of the note.
+A pitch is indicated as an integer between 0 and 127, where 0 means a
+C in the lowest octave possible.
+
+\Definitarg{:staff}
\ No newline at end of file