From rstrandh at common-lisp.net Wed Aug 2 01:53:51 2006 From: rstrandh at common-lisp.net (rstrandh) Date: Tue, 1 Aug 2006 21:53:51 -0400 (EDT) Subject: [gsharp-cvs] CVS gsharp Message-ID: <20060802015351.266D83D00D@common-lisp.net> Update of /project/gsharp/cvsroot/gsharp In directory clnet:/tmp/cvs-serv16910 Modified Files: gui.lisp Log Message: Implemented the name change suggested by Magnus Johansson: Insert Staff After -> Insert Staff Below Insert Staff Before -> Insert Staff Above --- /project/gsharp/cvsroot/gsharp/gui.lisp 2006/06/19 17:40:34 1.69 +++ /project/gsharp/cvsroot/gsharp/gui.lisp 2006/08/02 01:53:51 1.70 @@ -1242,13 +1242,13 @@ (make-fiveline-staff :name name :clef clef))) (:lyrics (make-lyrics-staff :name name))))) -(define-gsharp-command (com-insert-staff-before :name t) () - (add-staff-before-staff (accept 'score-pane:staff :prompt "Insert staff before staff") +(define-gsharp-command (com-insert-staff-above :name t) () + (add-staff-before-staff (accept 'score-pane:staff :prompt "Insert staff above staff") (acquire-new-staff) (current-buffer *application-frame*))) -(define-gsharp-command (com-insert-staff-after :name t) () - (add-staff-after-staff (accept 'score-pane:staff :prompt "Insert staff after staff") +(define-gsharp-command (com-insert-staff-below :name t) () + (add-staff-after-staff (accept 'score-pane:staff :prompt "Insert staff below staff") (acquire-new-staff) (current-buffer *application-frame*))) From rstrandh at common-lisp.net Wed Aug 2 02:14:44 2006 From: rstrandh at common-lisp.net (rstrandh) Date: Tue, 1 Aug 2006 22:14:44 -0400 (EDT) Subject: [gsharp-cvs] CVS gsharp Message-ID: <20060802021444.1D5654C040@common-lisp.net> Update of /project/gsharp/cvsroot/gsharp In directory clnet:/tmp/cvs-serv18840 Modified Files: gui.lisp modes.lisp Log Message: Implemented a name change suggested by Magnus Johansson: Insert Measure Bar -> Insert Barline --- /project/gsharp/cvsroot/gsharp/gui.lisp 2006/08/02 01:53:51 1.70 +++ /project/gsharp/cvsroot/gsharp/gui.lisp 2006/08/02 02:14:44 1.71 @@ -1117,7 +1117,7 @@ (define-gsharp-command com-lower () (decf (last-note (input-state *application-frame*)) 7)) -(define-gsharp-command com-insert-measure-bar () +(define-gsharp-command com-insert-barline () (let ((cursor (current-cursor)) (elements '())) (loop until (end-of-bar-p cursor) --- /project/gsharp/cvsroot/gsharp/modes.lisp 2006/06/19 17:40:34 1.19 +++ /project/gsharp/cvsroot/gsharp/modes.lisp 2006/08/02 02:14:44 1.20 @@ -10,7 +10,7 @@ (set-key `(com-delete-element ,*numeric-argument-marker*) 'global-gsharp-table '((#\d :control))) (set-key `(com-erase-element ,*numeric-argument-marker*) 'global-gsharp-table '((#\h :control))) -(set-key 'com-insert-measure-bar 'global-gsharp-table '(#\|)) +(set-key 'com-insert-barline 'global-gsharp-table '(#\|)) (set-key 'com-end-of-score 'global-gsharp-table '((#\> :shift :meta))) (set-key 'com-beginning-of-score 'global-gsharp-table '((#\< :shift :meta))) From rstrandh at common-lisp.net Wed Aug 2 02:47:17 2006 From: rstrandh at common-lisp.net (rstrandh) Date: Tue, 1 Aug 2006 22:47:17 -0400 (EDT) Subject: [gsharp-cvs] CVS gsharp/Doc Message-ID: <20060802024717.60E2F62048@common-lisp.net> Update of /project/gsharp/cvsroot/gsharp/Doc In directory clnet:/tmp/cvs-serv22603 Modified Files: beaming-algo.tex beaming.tex buffer.tex commands.tex gsharp.tex history.tex model.tex obseq.tex plans.tex release-notes.tex Log Message: Modified the documentation to reflect the recent name changes of certain commands. Also, fixed most of the problems in the documentation indicated (in private mail) by Magnus Johansson. --- /project/gsharp/cvsroot/gsharp/Doc/beaming-algo.tex 2004/02/16 15:46:22 1.1.1.1 +++ /project/gsharp/cvsroot/gsharp/Doc/beaming-algo.tex 2006/08/02 02:47:17 1.2 @@ -2,7 +2,7 @@ \chapter{The beaming algorithm} The beaming algorithm of {\gs} was inspired by the book by Ross. -Unfortunately, his method is not easily converted int an algorithm, +Unfortunately, his method is not easily converted into an algorithm, and his examples occasionally break his own rules. We thus had to invent our own algorithms that is as close to what we believe Ross intended as we could possibly achieve. @@ -46,7 +46,7 @@ In the description that follows, we use the {\gs} method of naming staff positions which is that we count in half staff steps above the lowest -line of the staff). For example The first ledger line below the staff has +line of the staff. For example, the first ledger line below the staff has position -2 and the upper line of the staff has position 8. The primary beam can not be lower than the middle staff line (position @@ -75,7 +75,7 @@ (position -2) we raise the beam a little, but it is still entirely on the middle staff line: \begin{itemize} - \item if the left note is also has position -2, both sides of the + \item if the left note also has position -2, both sides of the beam will straddle the middle line. \item if the left note has position -3, then the beam hangs the line on the left and straddles the line on the right. --- /project/gsharp/cvsroot/gsharp/Doc/beaming.tex 2004/02/16 15:46:23 1.1.1.1 +++ /project/gsharp/cvsroot/gsharp/Doc/beaming.tex 2006/08/02 02:47:17 1.2 @@ -1,8 +1,8 @@ \subsection Beaming -For the purpose of this section, a cluster is a collection of note -heads that share a stem. A beam group is a collection of clusters, -the stems of which are connected by beams. +For the purpose of this section, a cluster is a collection of +noteheads that share a stem. A beam group is a collection of +clusters, the stems of which are connected by beams. There are two phases to determining correct beaming. The first phase consists of deciding, for each beam group, whether it is to be beamed to --- /project/gsharp/cvsroot/gsharp/Doc/buffer.tex 2005/11/03 03:40:15 1.8 +++ /project/gsharp/cvsroot/gsharp/Doc/buffer.tex 2006/08/02 02:47:17 1.9 @@ -11,7 +11,7 @@ staff. The \emph{name}\index{clef!name of|}\index{name!of a clef|} of the clef is one of \lispobj{:treble}, \lispobj{:bass}, \lispobj{:c}, and \lispobj{:percussion}. The \emph{line number}\index{clef!line - number of|}\index{line number!of a clef|} of the clef indicates what + number of|}\index{line number!of a clef|} of the clef indicates the staff line on which the clef should be rendered. The name of the clef (except \lispobj{:percussion}) corresponds to a @@ -163,9 +163,9 @@ of the class \lispobj{staff} and indicates what staff the note is to be displayed on. -The \lispobj{head} argument indicates what kind of note-head is wanted +The \lispobj{head} argument indicates what kind of notehead is wanted in the form of one of the keywords \lispobj{:whole}, \lispobj{:half}, -and \lispobj{:filled}, or nil, where nil means that the note-head is +and \lispobj{:filled}, or nil, where nil means that the notehead is taken from the cluster to which the note belongs. The \lispobj{accidentals} argument indicates which, if any, @@ -190,9 +190,9 @@ %------------------------------------------------------------------- \subsection{Description} -A cluster is a roughly the same as a chord, in that it is a collection -of notes that share a stem (unless the note heads are whole note -heads, in which case there is no stem at all). +A cluster is roughly the same as a chord, in that it is a collection +of notes that share a stem (unless the noteheads are whole noteheads, +in which case there is no stem at all). %------------------------------------------------------------------- \subsection{Protocol classes and functions} --- /project/gsharp/cvsroot/gsharp/Doc/commands.tex 2004/07/24 06:41:54 1.4 +++ /project/gsharp/cvsroot/gsharp/Doc/commands.tex 2006/08/02 02:47:17 1.5 @@ -6,10 +6,8 @@ \hline Key & Command name & Description\\ \hline -\kbd{L} & Lower & Decrement the interval of pitch of\\ - & & the input state by one octave\\ -\kbd{H} & Higher & Increment the interval of pitch of\\ - & & the input state by one octave\\ +\kbd{L} & Lower & Move the insertion point one octave down\\ +\kbd{H} & Higher & Move the insertion point one octave up\\ \kbd{i.} & More Dots & Add another dot\\ \kbd{ix.} & Fewer Dots & Remove a dot\\ \kbd{i]} & More Rbeams & Add another beam to the right\\ @@ -53,7 +51,7 @@ \kbd{b} & Insert Note B & Insert a new cluster having a\\ & & single note B in it\\ \kbd{,} & Insert Rest & Insert a new rest element\\ -\kbd{|} & Insert Measure Bar & Insert a measure bar\\ +\kbd{|} & Insert Barline & Insert a barline\\ \kbd{SPC} & Insert Empty Cluster & Insert a new cluster with no notes\\ \kbd{C} & Add Note C & Add the note C to the current cluster\\ \kbd{D} & Add Note D & Add the note D to the current cluster\\ --- /project/gsharp/cvsroot/gsharp/Doc/gsharp.tex 2006/01/27 01:47:22 1.7 +++ /project/gsharp/cvsroot/gsharp/Doc/gsharp.tex 2006/08/02 02:47:17 1.8 @@ -198,15 +198,16 @@ \subsection{Other panes} In the upper-right corner, you will see a the pane that determines the -\emph{input state}\index{input state}\index{pane!input state|)} -The input state shows a stylized version of a notehead, possibly with -a stem, augmentation dots, and beaming information. If the stem is -down, all the new clusters entered will have their stems down. If the -stem is up, all the new clusters entered will have their stems up. If -the input state shows both a stem up and a stem down, all new -clusters will have a stem direction of \emph{auto}, indicating that -{\gs} will determine stem direction based on position of the notes on -the staff and beaming information. +\emph{input state}\index{input state}\index{pane!input state|)} The +input state shows a stylized version of a notehead, possibly with a +stem, augmentation dots, and beaming information. If the stem is +down, all the new clusters (a cluster is rougly the same thing as a +chord) entered will have their stems down. If the stem is up, all the +new clusters entered will have their stems up. If the input state +shows both a stem up and a stem down, all new clusters will have a +stem direction of \emph{auto}, indicating that {\gs} will determine +stem direction based on position of the notes on the staff and beaming +information. In the lower-right corner, you will see a pane that gives more detail about \emph{current element}\index{current @@ -432,12 +433,12 @@ \chapter{Operations on measures} -You add a measure bar at the cursor location by typing \kbd{|}. As +You add a barline at the cursor location by typing \kbd{|}. As with other element, the cursor will be positioned right after the -newly created measure bar. In fact, a measure bar is just like any +newly created barline. In fact, a barline is just like any other element as far as editing operations are concerned. -Thus, to delete a measure bar, you simply use the ordinary commands +Thus, to delete a barline, you simply use the ordinary commands for erasing or deleting elements. \chapter{Operations on staves} @@ -479,14 +480,14 @@ {\gs} imposes an \emph{order} on the staves of a score. This order is the one used to display the staves from top to bottom. There are two commands available for inserting new staves, \command{Insert Staff - After} to insert a staff \emph{after} an existing one, and \command{Insert - Staff Before} to insert a staff \emph{before} an existing one. + Below} to insert a staff \emph{below} an existing one, and \command{Insert + Staff Above} to insert a staff \emph{above} an existing one. In both cases, you will be prompted for some required information, in order for {\gs} to be able to create the new staff. First, you will -be prompted for an existing staff after which (in the case of -\command{Insert Staff After} or before which (in the case of -\command{Insert Staff Before} you would like to insert the new staff. +be prompted for an existing staff below which (in the case of +\command{Insert Staff Below} or above which (in the case of +\command{Insert Staff Above} you would like to insert the new staff. As usual, you can either click on a visual representation of the staff in the score pane (see section \ref{sec-score-pane}) or type its name in the minibuffer with completion (see section @@ -530,7 +531,7 @@ \chapter{Operations on layers} {\gs} organizes musical material into \emph{layers}\index{layer}. A -{\gs} layer corresponds roughly to a \emph{void}\index{voice} in +{\gs} layer corresponds roughly to a \emph{voice}\index{voice} in traditional music terminology. The reason a different term was chosen is that there might be some notations that require a voice to be split into several layers. Each layer can be displayed on one or more @@ -585,8 +586,8 @@ \section{Adding a new layer} Before adding a new layer, make sure you have created one of the -staves on which you would its material to be displayed (see section -\ref{sec-inserting-staff}). +staves on which you would like for its material to be displayed (see +section \ref{sec-inserting-staff}). Adding a new layer is done by issuing the command \command{Add Layer}. You will be prompted for a unique name of the new layer, @@ -642,12 +643,12 @@ itself, except that the implementation of the \emph{slice} is not a simple sequence of elements. -Instead, a \emph{slice} is a sequences of a user-invisible type called +Instead, a \emph{slice} is a sequence of a user-invisible type called a \emph{bar}. We introduced this additional type to simplify the -layout algorithm. A bar contains all the non-measure-bar elements -between two measure bars. The layout algorithm therefore does not -have to start by finding the measure bars in the sequence, but can -directly line up the material between measure bars. +layout algorithm. A bar contains all the non-barline elements +between two barlines. The layout algorithm therefore does not +have to start by finding the barlines in the sequence, but can +directly line up the material between barlines. The implementation of the model is actually spread out in three different files: @@ -721,7 +722,7 @@ \section{The importance of segments} The importance of the concept of a segment should now be clear. -If the user deletes a measure bar, all measures to the right of the +If the user deletes a barline, all measures to the right of the point of deletion \emph{within the same segment} must be recomputed, since the musical material will no longer line up the same way. Had the score been a single segment, we would have had to potentially @@ -741,7 +742,7 @@ last measure of the previous segment and the first measure of the next segment. To make it impossible for those slices to stick out arbitrarily far, we do not allow for head and tail slices to contain -measure bars. This limits the stick-out to the previous and the +barlines. This limits the stick-out to the previous and the next segments. We have not yet decided how to manage these slices. Probably, a modification would have to mark the previous or the next segment as damaged, or at least the last measure or the first measure @@ -910,7 +911,7 @@ The font used by {\gs} (called SDL, for Score Drawing Library), is created by a {\metafont} program that generates glyphs that are -magnified a factor four. The resulting \texttt{gf} filed is parsed by +magnified a factor four. The resulting \texttt{gf} file is parsed by a {\commonlisp} library that creates a {\clim} pixmap which contains an anti-aliased version of the glyph. --- /project/gsharp/cvsroot/gsharp/Doc/history.tex 2004/02/16 15:46:26 1.1.1.1 +++ /project/gsharp/cvsroot/gsharp/Doc/history.tex 2006/08/02 02:47:17 1.2 @@ -89,7 +89,7 @@ interface to {\xwin}; it did not lack any fundamental features such as classes and exceptions. -So, I re-implemented {\gs} in {\commonlisp} starting late 1998. I now no +So, I re-implemented {\gs} in {\commonlisp} starting late 1998. I then no longer had to worry about tracking a ``standard'' or whether my language implementation was going to be fast enough. And, I could safely use techniques from object-oriented programming without @@ -104,7 +104,7 @@ more advanced than such libraries for other languages, and which has a public specification. The only (major) problem was that it had no freely available implementation. {\commonlisp} vendors had versions that they -charged an arm an a leg for, and which would be unacceptable to {\gs} +charged an arm and a leg for, and which would be unacceptable to {\gs} anyway, since not freely available. I therefore decided to put the {\gs} project on hold in order to write --- /project/gsharp/cvsroot/gsharp/Doc/model.tex 2004/02/16 16:08:01 1.2 +++ /project/gsharp/cvsroot/gsharp/Doc/model.tex 2006/08/02 02:47:17 1.3 @@ -49,7 +49,7 @@ parts) is that a layer has a particular \emph{instrument} \index{instrument} assigned to it, whereas a part can have several different instruments, for instance when the same musician plays -several instruments (though not simultaneously). This different poses +several instruments (though not simultaneously). This difference poses no problem, because it is possible to organize {\gs} layers so that their musical material does not overlap in time, even though layers conceptually do. @@ -71,9 +71,9 @@ Each slice is a sequence of \emph{elements}\index{element}. There are different kinds of element, \emph{clusters}\index{cluster}, -\emph{silences}\index{silence}, and \emph{measure bars}\index{measure -bar}. For the remainder of this section, we ignore the possibility of -an element being a measure bar, since a measure bar does not have any +\emph{silences}\index{silence}, and \emph{barlines}\index{barline}. +For the remainder of this section, we ignore the possibility of +an element being a barline, since a barline does not have any interesting properties such as duration. In the body slice, the first element starts at time zero from the @@ -83,7 +83,7 @@ different, in that it is aligned from the \emph{end of the preceding slice}. \unimp{We do not yet have a head slice}. -Each element (except the measure bar) has a particular \emph{duration} +Each element (except the barline) has a particular \emph{duration} \index{duration}. The duration is indicated by a \emph{notehead} \index{notehead} and a \emph{number of dots}. \index{number of dots} \index{dots!number of|)} Notice that the notehead property exists even @@ -131,18 +131,17 @@ silence, and thus what character to use to display it and to determine spacing. -\section{Measure bar} +\section{Barline} -A measure bar is another kind of element. It has no interesting +A barline is another kind of element. It has no interesting properties in itself. Apart from being displayed, it is used to align musical material in different layers. Thus, {\gs} does not bother to -verify that each layer has the same duration between two measure -bars. It simply lines up every measure bar in every layer. If some +verify that each layer has the same duration between two barlines. +It simply lines up every measure bar in every layer. If some layer has a measure that has a shorter duration than the corresponding measure in a different layer, the shorter one will be padded by empty space so that they line up. -Also, {\gs} does not verify that there is the same number of measure -bars in each layer. When a layer runs out of measure bars, the -remaining ones are lined up without taking into account the layer that -ran out. +Also, {\gs} does not verify that there is the same number of barlines +in each layer. When a layer runs out of measure bars, the remaining +ones are lined up without taking into account the layer that ran out. --- /project/gsharp/cvsroot/gsharp/Doc/obseq.tex 2004/02/16 15:46:30 1.1.1.1 +++ /project/gsharp/cvsroot/gsharp/Doc/obseq.tex 2006/08/02 02:47:17 1.2 @@ -79,7 +79,7 @@ ;;; Given a cost method and two cost designators, compute the combined ;;; cost of the two cost designators. A cost designator is either a ;;; total cost, a sequence cost, and obseq element or nil. The cost -;;; designated by total cost or a sequences cost is the designator +;;; designated by total cost or a sequence cost is the designator ;;; itself. An obseq element designates the sequence cost of a ;;; sequence containing only that element. A designator of nil ;;; designates an empty sequence, or an empty sequence of sequences --- /project/gsharp/cvsroot/gsharp/Doc/plans.tex 2004/07/24 06:41:54 1.3 +++ /project/gsharp/cvsroot/gsharp/Doc/plans.tex 2006/08/02 02:47:17 1.4 @@ -215,7 +215,7 @@ \subsection{Other major projects} \begin{itemize} -\item presentations everywhere (note heads, clusters, beam groups). +\item presentations everywhere (noteheads, clusters, beam groups). Currently, McCLIM is a bit to slow for this. \item context menus on notes, etc \item allow mouse-based input of new notes by making staff steps --- /project/gsharp/cvsroot/gsharp/Doc/release-notes.tex 2004/07/24 06:41:54 1.6 +++ /project/gsharp/cvsroot/gsharp/Doc/release-notes.tex 2006/08/02 02:47:17 1.7 @@ -82,10 +82,10 @@ \subsection{Features added from 0.1} \begin{itemize} -\item The command for inserting a bar line (\kbd{|}) now works - correctlhy in that it insert the bar line where the cursor is and - not right before the next bar line. -\item Erasing and deleting a bar line now works as announced. +\item The command for inserting a barline (\kbd{|}) now works + correctlhy in that it insert the barline where the cursor is and + not right before the next barline. +\item Erasing and deleting a barline now works as announced. \item Rests get inserted on the current staff line. \item It is now possible to move rests vertically on their staff lines.