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