]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'dev/kainhofer' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into...
authorReinhold Kainhofer <reinhold@kainhofer.com>
Wed, 28 Nov 2007 15:00:11 +0000 (16:00 +0100)
committerReinhold Kainhofer <reinhold@kainhofer.com>
Wed, 28 Nov 2007 15:00:11 +0000 (16:00 +0100)
29 files changed:
Documentation/user/changing-defaults.itely
Documentation/user/educational.itely
Documentation/user/expressive.itely
Documentation/user/fundamental.itely
Documentation/user/input.itely
Documentation/user/introduction.itely
Documentation/user/music-glossary.tely
Documentation/user/non-music.itely
Documentation/user/pitches.itely
Documentation/user/policy.txt
Documentation/user/repeats.itely
Documentation/user/rhythms.itely
Documentation/user/simultaneous.itely
Documentation/user/spacing.itely
Documentation/user/staff.itely
Documentation/user/templates.itely
Documentation/user/text.itely
Documentation/user/tutorial.itely
Documentation/user/tweaks.itely
Documentation/user/vocal.itely
Documentation/user/working.itely
Documentation/user/writing-texinfo.txt
THANKS
buildscripts/add_html_footer.py
input/manual/editorial-headword.ly [new file with mode: 0644]
input/manual/pitches-headword.ly
input/manual/repeats-headword.ly [new file with mode: 0644]
input/manual/rhythms-headword.ly
ly/property-init.ly

index 6576a993d0412fddf2bae7124100da9bf6102039..13030bc702ab018014de27b581040e778e7d641b 100644 (file)
@@ -1361,7 +1361,7 @@ Contexts can have properties, which are usually named in
 @code{studlyCaps}.  They mostly control the translation from
 music to notatino, eg. @code{localKeySignature} (for determining
 whether to print accidentals), @code{measurePosition} (for
-determining when to print a barline).  Context properties can
+determining when to print a bar line).  Context properties can
 change value over time while interpreting a piece of music;
 @code{measurePosition} is an obvious example of
 this.  Context properties are modified with @code{\set}.
index 7765be81bdb19f6a57e765498ce299a0c420d767..ac1d513dba9172fbf3910df6207bce2fa12d0474 100644 (file)
@@ -9,6 +9,9 @@
 @node Editorial annotations
 @section Editorial annotations
 
+@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
+{editorial-headword.ly}
+
 @menu
 * Inside the staff::            
 * Outside the staff::           
index 1c27bd1a0f8dbc45dcc6744da5f52e762f03dc30..87d205d3d1514464359c23577713729a82dabe86 100644 (file)
@@ -237,8 +237,8 @@ example:
 A hairpin normally starts at the left edge of the beginning note
 and ends on the right edge of the ending note.  If the ending note
 falls on the downbeat, the hairpin ends on the immediately
-preceding barline.  This may be modified by setting the
-@code{hairpinToBarline} property,
+preceding bar line.  This may be modified by setting the
+@code{hairpinToBar line} property,
 @cindex Hairpin
 
 @lilypond[quote,ragged-right,fragment,verbatim,relative=2]
index 122b1506b7f07cf5c169333a6203db8629e1831b..6b2b1d7f082aa3ef8f3b182fca4266b8e3d08163 100644 (file)
@@ -4,12 +4,12 @@
 @node Fundamental concepts
 @chapter Fundamental concepts
 
+
 @menu
 * How LilyPond files work::     
 * Voices contain music::        
-* TODO new sec fundamental::    
+* Contexts and engravers::      
 * Extending the templates::     
-* Scores and parts::            
 @end menu
 
 
@@ -18,7 +18,7 @@
 
 The LilyPond input format is quite free-form, giving experienced
 users a lot of flexibility to structure their files however they
-wish.  However, this flexibility can make things confusing for new
+wish.  But this flexibility can make things confusing for new
 users.  This section will explain some of this structure, but may
 gloss over some details in favor of simplicity.  For a complete
 description of the input format, see @ruser{File structure}.
@@ -27,6 +27,7 @@ description of the input format, see @ruser{File structure}.
 * Introduction to the LilyPond file structure::  
 * Score is a (single) compound musical expression::  
 * Nesting Music Expressions::   
+* On the un-nestedness of brackets and ties::  
 @end menu
 
 @node Introduction to the LilyPond file structure
@@ -109,7 +110,12 @@ such as
 Some people put some of those commands outside the @code{\score}
 block -- for example, @code{\header} is often placed above the
 @code{\score}.  That's just another shorthand that LilyPond
-accepts.
+accepts.  Two more commands you have not previously seen are
+@code{\layout @{ @}} and @code{\midi @{@}}.  If these appear as 
+shown they will cause LilyPond to produce a printed output and a 
+MIDI out respectively.  They are described fully in the
+Notation Reference - @ruser{Score layout} and 
+@ruser{Creating MIDI files}.  
 
 @smallspace
 
@@ -124,7 +130,7 @@ melody = \relative c' @{
 @}
 
 \score @{
-  @{ \melody @}
+  \melody
 @}
 @end example
 
@@ -140,9 +146,8 @@ alphabetic characters.  For more details, see
 
 @seealso
 
-For a complete definition of the input format, see @ruser{File
-structure}.
-
+For a complete definition of the input format, see
+@ruser{File structure}.
 
 @node Score is a (single) compound musical expression
 @subsection Score is a (single) compound musical expression
@@ -163,11 +168,11 @@ there @emph{is} no mystery.  This line explains it all:
 @end quotation
 
 @noindent
-You may find it useful to review @ref{Music expressions
-explained}.  In that section, we saw how to build big music
-expressions from small pieces -- we started from notes, then
-chords, etc.  Now we're going to start from a big music expression
-and work our way down.
+You may find it useful to review
+@ref{Music expressions explained}.  In that section, we saw how to
+build big music expressions from small pieces -- we started from
+notes, then chords, etc.  Now we're going to start from a big
+music expression and work our way down.
 
 @example
 \score @{
@@ -182,8 +187,9 @@ and work our way down.
 
 A whole Wagner opera would easily double the length of this
 manual, so let's just add a singer and piano.  We don't need a
-@code{GrandStaff} for this ensemble, so we shall remove it.  We
-@emph{do} need a singer and a piano, though.
+@code{GrandStaff} for this ensemble, which simply groups a number
+of staves together with a brace at the left, so we shall remove 
+it.  We @emph{do} need a singer and a piano, though.
 
 @example
 \score @{
@@ -201,7 +207,11 @@ manual, so let's just add a singer and piano.  We don't need a
 
 Remember that we use @code{<<} and @code{>>} to show simultaneous
 music.  And we definitely want to show the vocal part and piano
-part at the same time, not one after the other!
+part at the same time, not one after the other!  However, the
+@code{<< .. >>} construct is not really necessary for the Singer
+staff, as it contains only one music expression, but Staves often
+do require simultaneous Voices within them, so using @code{<< .. >>}
+rather than braces is a good habit to adopt.
 
 @example
 \score @{
@@ -209,8 +219,8 @@ part at the same time, not one after the other!
     <<
       \new Staff = "singer" <<
         \new Voice = "vocal" @{ @}
+        \addlyrics @{ @}
       >>
-      \new Lyrics \lyricsto vocal \new Lyrics @{ @}
       \new PianoStaff = "piano" <<
         \new Staff = "upper" @{ @}
         \new Staff = "lower" @{ @}
@@ -242,17 +252,17 @@ long, and it would be harder to understand what was happening.  So
 let's use variables instead.
 
 @example
-melody = @{ @}
-text   = @{ @}
-upper  = @{ @}
-lower  = @{ @}
+melody = \relative c'' @{ @}
+text   = \lyricmode @{ @}
+upper  = \relative c'' @{ @}
+lower  = \relative c @{ @}
 \score @{
   @{
     <<
       \new Staff = "singer" <<
         \new Voice = "vocal" @{ \melody @}
+        \addlyrics @{ \text @}
       >>
-      \new Lyrics \lyricsto vocal \new Lyrics @{ \text @}
       \new PianoStaff = "piano" <<
         \new Staff = "upper" @{ \upper @}
         \new Staff = "lower" @{ \lower @}
@@ -266,8 +276,14 @@ lower  = @{ @}
 @noindent
 Remember that you can use almost any name you like as long
 as it contains just alphabetic characters.  The exact
-limitations on variable names are detailed in @ruser{File
-structure}.
+limitations on variable names are detailed in
+@ruser{File structure}.
+
+Be careful about the difference between notes, which are introduced
+with @code{\relative}, and lyrics, which are introduced with
+@code{\lyricmode}.  These are essential to tell LilyPond
+to interpret the following content as music and text
+respectively.
 
 When writing (or reading) a @code{\score} section, just take it
 slowly and carefully.  Start with the outer layer, then work on
@@ -279,10 +295,10 @@ on the same horizontal position in your text editor.
 @node Nesting Music Expressions
 @subsection Nesting Music Expressions
 
-New staves do not have to all be declared at the beginning; 
+It is not essential to declare all staves at the beginning; 
 they may be introduced temporarily at any point.  This is
 particularly useful for creating ossia sections 
-(see @rglos{ossia}).  Here's a simple example showing how
+(see @rglos{ossia}).  Here is a simple example showing how
 to introduce a new staff temporarily for the duration of
 three notes:
 
@@ -321,36 +337,91 @@ as follows:
 }
 @end lilypond
 
+This example uses @code{\with}, which will be explained more 
+fully later.  It is a means of modifying the default behaviour
+of a Staff.  Here it says that the new staff should be placed
+above the staff called @qq{main} instead of the default position
+which is below.
+
 Ossia are often written without clef and without
 time signature and are usually in a smaller font.
-These require commands which
+These require further commands which
 have not yet been introduced.  See ...
+
 TODO Add ref to tweaks section where this example should
 be placed and explained.
 
-@lilypond[verbatim,quote,ragged-right]
-\new Staff = "main" {
-  \relative g' {
-    r4 g8 g c4 c8 d |
-    e4
-    <<  % Start main and ossia in parallel
-      { r8 f c c }  % Main music
-      \new Staff \with {  % Start ossia staff
-        \remove "Clef_engraver"
-        \remove "Time_signature_engraver"
-        % Reduce size of notes and staff
-        fontSize = #-2
-        \override StaffSymbol #'staff-space = #(magstep -2)
-        alignAboveContext = "main"  % Place above main staff
-      }
-      { s8 f f c }  % Ossia music
-    >>  % End parallel music
-    r4 |
-  }
-}
+@node On the un-nestedness of brackets and ties
+@subsection On the un-nestedness of brackets and ties
+
+You have already met a number of different types of bracket in
+writing the input file to LilyPond.  These obey different rules
+which can be confusing at first.  Before we explain the rules 
+let's first review the different types of bracket.
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .3 .7 
+@headitem Bracket Type
+  @tab Function
+@item @code{@{ .. @}}
+  @tab Encloses a sequential segment of music
+@item @code{< .. >}
+  @tab Encloses the notes of a chord
+@item @code{<< .. >>}
+  @tab Encloses concurrent or simultaneous sections 
+@item @code{( .. )}
+  @tab Marks the start and end of a slur
+@item @code{\( .. \)}
+  @tab Marks the start and end of a phrase mark
+@item @code{[ .. ]}
+  @tab Marks the start and end of a manual beam
+@end multitable
+
+To these we should add other constructs which generate lines
+between or across notes: ties (marked by a tilde, @code{~}),
+tuplets written as @code{\times x/y @{..@}}, and grace notes
+written as @code{\grace@{..@}}.
+
+Outside LilyPond, the conventional use of brackets requires 
+the different types to be properly nested, like this, 
+@code{<< [ @{ ( .. ) @} ] >>}, with the closing brackets being
+encountered in exactly the opposite order to the opening 
+brackets.  This @strong{is} a requirement for the three types of 
+bracket described by the word @q{Encloses} in the table above - 
+they must nest properly.
+However, the remaining brackets, described with the word 
+@q{Marks} in the table above together with ties and tuplets,
+do @strong{not} have to nest
+properly with any of the brackets.  In fact, these are not 
+brackets in the sense that
+they enclose something - they are simply markers to indicate
+where something starts and ends.
+
+So, for example, a phrasing slur can start before a manually
+inserted beam and end before the end of the beam - not very
+musical, perhaps, but possible:
+
+@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+ { g8\( a b[ c b\) a] }
 @end lilypond
 
+In general, different kinds of brackets, and those implied by
+tuplets, ties and grace notes, may be mixed freely.
+This example shows a beam extending into a tuplet (line 1),
+a slur extending into a tuplet (line 2),
+a beam and a slur extending into a tuplet, a tie crossing
+two tuplets, and a phrasing slur extending out of a tuplet
+(lines 3 and 4).
 
+@lilypond[quote,verbatim,fragment,ragged-right]
+{
+  r16[ g16 \times 2/3 {r16 e'8] }
+  g16( a \times 2/3 {b d) e' }
+  g8[( a \times 2/3 {b d') e'~]}
+  \times 4/5 {e'32\( a b d' e'} a'4.\)
+}
+@end lilypond
 
 
 @node Voices contain music
@@ -375,18 +446,18 @@ of all LilyPond's concepts.
 @cindex Voice context
 
 The lowest, most fundamental or innermost layers in a LilyPond 
-score are called Voices.  Voices are sometimes
-called @q{layers} in other notation packages.  In LilyPond they
-are called @q{Voice contexts}.
+score are called @q{Voice contexts} or just @q{Voices} for short.
+Voices are sometimes called @q{layers} in other notation 
+packages.
 
 In fact, a Voice layer or context is the only one which can
 contain music.  If a Voice context is not explicitly declared
 one is created automatically.  Some instruments such as an 
-Oboe can play only one note at a time and music written for
+Oboe can play only one note at a time.  Music written for
 such instruments is monophonic and requires just a single
 voice.  Instruments which can play more than one note at a
 time like the piano will often require multiple voices to
-encode the different concurent notes and rhythms they are
+encode the different concurrent notes and rhythms they are
 capable of playing.  
 
 A single voice can contain many notes in a chord, of course,
@@ -429,25 +500,23 @@ must have the same duration.  Neither can they be written
 as sequential notes, as they must start at the same time.
 This section of the bar requires three voices, and the
 normal practice would be to write the whole bar as three
-voices, as shown here, where we have coloured the three
-voices differently.
+voices, as shown here, where we have used different noteheads
+and colors for the three voices.
 
 @c The following should appear as music without code
+@c The three voice styles should be defined in -init
 @lilypond[quote,ragged-right]
 \new Staff \relative c'' {
   \key aes \major
   <<
     { \voiceOne
-      \override NoteHead #'color = #red
-      \override Stem #'color = #red
+      \voiceOneStyle 
       c2 aes4. bes8 } \\
     { \voiceTwo
-      \override NoteHead #'color = #blue
-      \override Stem #'color = #blue
+      \voiceTwoStyle
       aes2 f4 fes } \\
     { \voiceFour
-      \override NoteHead #'color = #green
-      \override Stem #'color = #green
+      \voiceThreeStyle
       \once \override NoteColumn #'force-hshift = #0 <ees c>2
       \once \override NoteColumn #'force-hshift = #0.5 des2 }
   >> |
@@ -482,8 +551,8 @@ used to encode three or more voices by adding more back-slash
 separators.
 
 The Voice contexts bear the names @code{"1"}, @code{"2"}, etc.  
-In each of these contexts, vertical direction of slurs, stems, ties,
-dynamics etc., is set appropriately.
+In each of these contexts, the vertical direction of slurs, 
+stems, ties, dynamics etc., is set appropriately.
 
 @lilypond[quote,verbatim,fragment]
 \new Staff \relative c' {
@@ -496,12 +565,12 @@ dynamics etc., is set appropriately.
 @end lilypond
 
 These voices are all separate from the main voice that contains
-the notes just outside the @code{<< \\ >>} construct.  Let's call
+the notes just outside the @code{<< .. >>} construct.  Let's call
 this the @emph{simultaneous construct}.  Slurs and ties may only
 connect notes within the same voice, so slurs and ties cannot go
-into or out of a simultaneous construct.  construct.  Conversely,
+into or out of a simultaneous construct.  Conversely,
 parallel voices from separate simultaneous constructs on the same
-staff are the same voice.  Other voice- related properties also
+staff are the same voice.  Other voice-related properties also
 carry across simultaneous constructs.  Here is the same example,
 with different colors and noteheads for each voice.  Note that
 changes in one Voice do not affect other voices, but they do
@@ -527,19 +596,30 @@ blue triangle voice.
 }
 @end lilypond
 
+The commands @code{\voiceXXXStyle} are mainly intended for use in
+educational documents such as this one.  They modify the color
+of the notehead, the stem and the beams, and the style of the
+notehead, so that the voices may be easily distinguished.
+Voice one is set to red diamonds, voice two to blue triangles,
+voice three to green crossed circles, and voice four (not used
+here) to magenta crosses.  We shall see later how commands like 
+these may be created by the user.
+TODO: add ref to appropriate section in Tweaks
+
 Polyphony does not change the relationship of notes within a
-@code{\relative @{ @}} block.  Each note is calculated relative to
-the note immediately preceding it, or to the first note of the
-preceding chord.
+@code{\relative @{ @}} block.  Each note is still calculated 
+relative to the note immediately preceding it, or to the first 
+note of the preceding chord.  So in
 
 @example
-\relative @{ noteA << <noteB noteC> \\ noteD >> noteE @}
+\relative c' @{ noteA << < noteB noteC > \\ noteD >> noteE @}
 @end example
 
-@code{noteB} is relative to @code{noteA}
-@code{noteC} is relative to @code{noteB}, not @code{noteA};
+@noindent
+@code{noteB} is relative to @code{noteA}                      @*
+@code{noteC} is relative to @code{noteB}, not @code{noteA};   @*
 @code{noteD} is relative to @code{noteB}, not @code{noteA} or
-@code{noteC}.
+@code{noteC}.                                                 @*
 @code{noteE} is relative to @code{noteD}, not @code{noteA}
 
 We are now in a position to return to the first example from
@@ -560,8 +640,10 @@ enter the music of the first bar in three voices:
 
 @cindex stem down
 @cindex stem up
-@funindex \stemDown
-@funindex \stemUp
+@funindex \voiceOne
+@funindex \voiceTwo
+@funindex \voiceThree
+@funindex \voiceFour
 
 The stem directions are automatically assigned with the
 odd-numbered voices taking upward stems and the even-numbered
@@ -571,8 +653,8 @@ of music.  We can correct this
 by telling LilyPond that this third voice is really a fourth
 voice, with stems going down, using the @code{\voiceFour} 
 command.  There are also corresponding @code{\voiceOne},
-@code{\voiceTwo} and @code{voiceThree} commands.
-This result in the following:
+@code{\voiceTwo}, and @code{voiceThree} 
+commands.  This results in the following:
 
 @lilypond[quote,verbatim,fragment,ragged-right]
 \new Staff \relative c'' {
@@ -599,47 +681,17 @@ LilyPond provides several ways to adjust the horizontal placing
 of notes.  We are not quite ready yet to see how to correct this,
 so we shall leave this problem until a later section (see ... )
 
-FIXME: Move the following words and example into Tweaks or
-somewhere more suitable, leaving just a ref here. -td
-
-Ways or correcting horizontal placings are described fully 
-in the Notation Reference.  
-We introduce just one here, the @code{force-hshift} property of 
-@code{NoteColumn}.  The lower two notes of the first chord (i.e,
-those in the third voice) should not be shifted away from the
-note column of the higher two notes.  To correct this we set
-@code{force-hshift} of these notes to zero.  
-The lower note of the second chord is best placed just to the 
-right of the higher notes.  We achieve this by setting
-@code{force-hshift} of this note to 0.5, ie half a notehead's 
-width to the right of the note column of the higher notes.
-
-Here's the final result:
-    
-@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
-  \key aes \major
-  << 
-    { c2 aes4. bes8 } \\ 
-    { aes2 f4 fes   } \\ 
-    { \stemDown
-      \once \override NoteColumn #'force-hshift = #0 <ees c>2
-      \once \override NoteColumn #'force-hshift = #0.5 des2 
-    }
-  >> |
-  <c ees aes c>1 |
-}
-@end lilypond
+TODO link.
 
 @node Explicitly instantiating voices
 @subsection Explicitly instantiating voices
 
 Voice contexts can also be created manually
 inside a @code{<< >>} block to create polyphonic music, using
-@code{\voiceOne}, up to @code{\voiceFour} to automatically assign
-the directions of stems, slurs, etc.
+@code{\voiceOne} ... @code{\voiceFour} to indicate the required
+directions of stems, slurs, etc.
 
-Specifically, the construct @code{<< \\  >>} which we used in
+Specifically, the construct @code{<< \\ >>} which we used in
 the previous section:
 
 @example
@@ -666,12 +718,41 @@ generate a horizontal shift for each voice when this is required
 to avoid clashes of note heads.  The command @code{\oneVoice} 
 reverts the settings back to the normal values for a single voice.
 
+Let us see in some simple examples exactly what effect 
+@code{\oneVoice}, @code{\voiceOne} and @code{voiceTwo} have on
+markup, ties, slurs, and dynamics:
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{ 
+  c-"default" d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  \voiceOne
+  c-"\\voiceOne" d8 ~ d e4 ( f g a ) b-> c
+  \oneVoice
+  c,-"\\oneVoice" d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
+@lilypond[quote,ragged-right,verbatim]
+\relative c'{
+  \voiceTwo
+  c-"\\voiceTwo" d8 ~ d e4 ( f g a ) b-> c
+  \oneVoice
+  c,-"\\oneVoice" d8 ~ d e4 ( f g a ) b-> c
+}
+@end lilypond
+
 An expression that appears directly inside a @code{<< >>} belongs
-to the main voice.  This is useful when extra voices appear while
-the main voice is playing.  Here is a more correct rendition of
-the example from the previous section.  The red diamond-shaped
-notes demonstrate that the main melody is now in a single
-voice context, permitting a phrasing slur to be drawn over them.
+to the main voice (but, note, @strong{not} in a @code{<< \\ >>}
+construct).  This is useful when extra voices appear while the
+main voice is playing.  Here is a more correct rendition of the
+example from the previous section.  The red diamond-shaped notes
+demonstrate that the main melody is now in a single voice context,
+permitting a phrasing slur to be drawn over them.
 
 @lilypond[quote,ragged-right,verbatim]
 \new Staff \relative c' {
@@ -744,18 +825,19 @@ as here:
 @end lilypond
 
 
-
 @node Voices and vocals
 @subsection Voices and vocals
 
 Vocal music presents a special difficulty: we need to combine two
 expressions -- notes and lyrics.
 
-You have already seen the @code{\lyricsAdd@{@}} command, which
-handles simple cases for you.  However, this technique is
-very limited.  For most music, you must explicitly link the lyrics
-to the notes with @code{\lyricsto@{@}}, using the name assigned
-to the Voice.
+You have already seen the @code{\addlyricsd@{@}} command, which
+handles simple scores well.  However, this technique is
+quite limited.  For more complex music, you must introduce the
+lyrics in a @code{Lyrics} context using @code{\new Lyrics} and
+explicitly link
+the lyrics to the notes with @code{\lyricsto@{@}}, using the 
+name assigned to the Voice.
 
 @lilypond[quote,verbatim,fragment]
 <<
@@ -770,10 +852,16 @@ to the Voice.
 >>
 @end lilypond
 
+The automatic beaming which LilyPond uses by default works well
+for instrumental music, but not so well for music with lyrics,
+where beaming is either not required at all or is used to indicate
+melismata in the lyrics.  In the example above we use the command
+@code{\autoBeamOff} to turn off the automatic beaming.
+
 Let us reuse the earlier example from Judas Maccabæus to 
 illustrate this more flexible technique.  We first recast
 it to use variables so the music and lyrics can be separated
-from the staff structure.  We also introduce a choirstaff 
+from the staff structure.  We also introduce a ChoirStaff 
 bracket.  The lyrics themselves must be introduced with 
 @code{\lyricmode} to ensure they are interpreted as lyrics
 rather than music.
@@ -857,46 +945,508 @@ VerseFour  = \lyricmode {
 }
 @end lilypond
 
-@node TODO new sec fundamental
-@section TODO new sec fundamental
+@node Contexts and engravers
+@section Contexts and engravers
 
-blh blah
+Contexts and engravers have been mentioned informally
+in earlier sections; we now must look at 
+these concepts in more detail, as they are important
+in the fine-tuning of LilyPond output.
 
 
 @menu
-* On the un-nestedness of brackets and ties::  
+* Contexts explained::          
+* Creating contexts::           
+* Engravers::                   
+* Modifying contexts::          
 @end menu
 
-@c my name start sucking the more docs I write. -gp
-@node On the un-nestedness of brackets and ties
-@subsection On the un-nestedness of brackets and ties
+@node Contexts explained
+@subsection Contexts explained
 
-Different kinds of brackets and ties may be mixed freely,
+When music is printed, many notational elements which do not 
+appear explicitly in the input file must be added to the
+output.  For example, compare the input and output of the 
+following example:
 
-TODO: improve this example
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
+@end lilypond
 
-@lilypond[quote,verbatim,fragment,ragged-right]
-{
-  r16[ g16 \times 2/3 {r16 e'8] }
-  g16( a \times 2/3 {b d e') }
-  g8[( a \times 2/3 {b d') e'~]}
-  \times 4/5 {e'32\( a b d' e'} a'4.\)
+The input is rather sparse, but in the output, bar lines, 
+accidentals, clef, and time signature have been added.  When 
+LilyPond @emph{interprets} the input the musical information 
+is inspected in time order, similar to reading a score from left 
+to right.  While reading the input, the program remembers where 
+measure boundaries are, and which pitches require explicit 
+accidentals.  This information must be held on several levels.  
+For example, the effect of an accidental is limited
+to a single staff, while a bar line must be synchronized across 
+the entire score.
+
+Within LilyPond, these rules and bits of information are grouped
+in @emph{Contexts}.  We have already met the @context{Voice} 
+context. 
+Others are the @context{Staff} and @context{Score} contexts.  
+Contexts are hierarchical to reflect the heirarchical nature of 
+a musical score.  
+For example: a @context{Staff} context can contain many 
+@context{Voice} contexts, and a @context{Score} context can 
+contain many @context{Staff} contexts.
+
+@quotation
+@image{context-example,5cm,,}
+@end quotation
+
+Each context has the responsibility for enforcing some notation rules,
+creating some notation objects and maintaining the associated
+properties.  For example, the @context{Voice} context may introduce an
+accidental and then the @context{Staff} context maintains the rule to
+show or suppress the accidental for the remainder of the measure.
+
+As another example, the synchronization of bar lines is, by default, 
+handled in the @context{Score} context.
+However, in some music we may not want the bar lines to be
+synchronized -- consider a polymetric score in 4/4 and 3/4 time.
+In such cases, we must modify the default settings of the 
+@context{Score} and @context{Staff} contexts.
+
+For very simple scores, contexts are created implicitly, and you need
+not be aware of them.  For larger pieces, such as anything with more
+than one staff, they must be
+created explicitly to make sure that you get as many staves as you
+need, and that they are in the correct order.  For typesetting pieces
+with specialized notation, it is usual to modify existing, or
+even to define totally new, contexts.
+
+In addition to the @context{Score,} @context{Staff} and 
+@context{Voice} contexts there are contexts which fit between
+the score and staff levels to control staff groups, such as the
+@context{PianoStaff} and @context{ChoirStaff} contexts.  There
+are also alternative staff and voice contexts, and contexts for
+lyrics, percussion, fret boards, figured bass, etc.  A complete
+list is shown in the Notation Reference.
+TODO: Add link
+
+The names of all context types are formed from one or more 
+words, each word being capitalised and joined immediately to the 
+preceding word with no hyphen or underscore, e.g., 
+@context{GregorianTranscriptionStaff}.
+
+@node Creating contexts
+@subsection Creating contexts
+
+There can be only one top level context: the @context{Score} 
+context.  This is created with the @code{\score} command, 
+or, in simple scores, it is created automatically.
+
+For scores with only one voice and one staff, the 
+@context{Voice} and @context{Staff} contexts may be left to be 
+created automatically, but for more complex scores it is 
+necessary to create them by hand.  
+The simplest command that does this is @code{\new}.  
+It is prepended to a music expression, for example
+
+@funindex \new
+@cindex new contexts
+@cindex Context, creating
+
+@example
+\new @var{type} @var{music expression}
+@end example
+
+@noindent
+where @var{type} is a context name (like @code{Staff} or
+@code{Voice}).  This command creates a new context, and starts
+interpreting the @var{music expression} within that context.
+
+Note that there is no @code{\new Score % Invalid!} command;
+the single top-level @context{Score} context is introduced 
+with @code{\score}.  This is because there can be only one 
+@context{Score} context, whereas there may be multiple 
+@context{Staff} and @context{Voice} contexts - each created 
+by @code{\new}.
+
+The @code{\new} command may also give a identifying name to the 
+context to distinguish it from other contexts of the same type,
+
+@example
+\new @var{type} = @var{id} @var{music}
+@end example
+
+Note the distinction between the name of the context type,
+@context{Staff}, @context{Voice}, etc, and
+the identifying name of a particular instance of that type,
+which can be any sequence of letters invented by the user.
+The identifying name is used to refer back to that particular
+instance of a context.  We saw this in use in the section on 
+lyrics in @ref{Voices and vocals}.
+
+
+@node Engravers
+@subsection Engravers
+
+Every mark on the printed output of a score produced by LilyPond
+is produced by an @code{Engraver}.  Thus there is an engraver
+to print staves, one to print noteheads, one for stems, one for
+beams, etc, etc.  In total there are over 120 such engravers!
+Fortunately, for most scores it is not necessary to know about 
+more than a few, and for simple scores you do not need to know 
+about any.  
+
+Engravers live and operate in Contexts.
+Engravers such as the @code{Metronome_mark_engraver}, whose
+action and output applies to the score as a whole, operate in
+the highest level context - the @context{Score} context.
+
+The @code{Clef_engraver} and @code{Key_engraver} are to be
+found in every Staff Context, as different staves may require 
+different clefs and keys.
+
+The @code{Note_heads_engraver} and @code{Stem_engraver} live
+in each @context{Voice} context, the lowest level context of all.
+
+Each engraver processes the particular objects associated
+with its function, and maintains the properties that relate
+to that function.  These properties, like the properties
+associated with contexts, may be modified to change the
+operation of the engraver or the appearance of those elements
+in the printed score.
+   
+Engravers all have compound names formed from words which
+describe their function.  Just the first word is capitalised, 
+and the remainder are joined to it with underscores.  Thus
+the @code{Staff_symbol_engraver} is responsible for creating the
+lines of the staff, the @code{Clef_engraver} determines and sets
+the pitch reference point on the staff by drawing a clef symbol.
+
+Here are some of the most common engravers together with their
+function.  You will see it is easy to guess the function from 
+the name, or vice versa.
+
+@multitable @columnfractions .3 .7 
+@headitem Engraver
+  @tab Function
+@item Accidental_engraver
+  @tab Makes accidentals, cautionary and suggested accidentals
+@item Beam_engraver
+  @tab Engraves beams
+@item Clef_engraver
+  @tab Engraves clefs
+@item Dynamic_engraver
+  @tab Creates hairpins and dynamic texts
+@item Key_engraver
+  @tab Creates the key signature
+@item Metronome_mark_engraver
+  @tab Engraves metronome marking
+@item Note_heads_engraver
+  @tab Engraves noteheads
+@item Rest_engraver
+  @tab Engraves rests
+@item Staff_symbol_engraver
+  @tab Engraves the five (by default) lines of the staff
+@item Stem_engraver
+  @tab Creates stems and single-stem tremulos
+@end multitable
+
+@smallspace
+
+We shall see later how the output of LilyPond can be changed
+by modifying the action of Engravers.
+  
+
+@node Modifying contexts
+@subsection Modifying contexts
+
+@cindex context properties
+@funindex \set
+@funindex \unset
+
+Contexts are responsible for holding the values of a number of
+context @emph{properties}.  Many of them can be changed to
+influence the interpretation of the input and so change the
+appearance of the output.  They are changed by the 
+@code{\set} command.  This takes the form
+
+@example
+\set @emph{ContextName}.@emph{propertyName} = @emph{value}
+@end example
+
+Where the @emph{ContextName} is usually @context{Score},
+@context{Staff} or @context{Voice}.  It may be omitted,
+in which case @context{Voice} is assumed.
+
+The names of context properties consist of words joined
+together with no hyphens or underscores, all except the
+first having a capital letter.  Here are a few examples
+of some commonly used ones.  There are many more.
+
+@c attempt to force this onto a new page
+@need 50
+@multitable @columnfractions .2 .2 .6 
+@headitem propertyName
+  @tab Value
+  @tab Function
+@item extraNatural
+  @tab ##t or ##f
+  @tab If true (##t), set extra natural signs before accidentals
+@item currentBarNumber
+  @tab Integer
+  @tab Set the current bar number
+@item doubleSlurs
+  @tab ##t or ##f
+  @tab If true (##t), print slurs both above and below notes
+@item instrumentName
+  @tab Text
+  @tab Set the name to be placed at the start of the staff
+@item fontSize
+  @tab Number
+  @tab Increase or decrease the font size
+@item stanza
+  @tab Text
+  @tab Set the text to print before the start of a verse
+@end multitable
+
+@smallspace   
+
+Before we can set any of these properties we need to know
+which context they operate in.  Sometimes this is obvious,
+but occasionally it can be tricky.  If the wrong context
+is specified, no error message is produced, but the expected
+action will not be taken.  For example, the 
+@code{instrumentName} clearly lives in the Staff context, since
+it is the staff that is to be named.
+In this example the first staff is labelled, but the second,
+Alto, staff is not, because we omitted the context name.
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    \set Staff.instrumentName = "Soprano"
+    c4 c
+ }
+  \new Staff \relative c' {
+  \set instrumentName = "Alto"
+  d4 d 
+ }
+>>
+@end lilypond
+
+Remember the default context name is Voice, so the second
+@code{\set} command set the property @code{instrumentName} in the
+Voice context to @qq{Alto}, but as LilyPond does not look
+for any such property in the @context{Voice} context, no 
+further action took place.  this is not an error, and no error 
+message is logged in the log file.
+
+Similarly, if the property name is mis-spelt no error message 
+is produced, and clearly the expected action cannot be performed.
+If fact, you can set any (fictitious) @q{property} using any 
+name you like in any context that exists by using the 
+@code{\set} command.  But if the name is not
+known to LilyPond it will not cause any action to be taken.
+
+The @code{instrumentName} property will take effect only
+if it is set in the @context{Staff} context, but
+some properties can be set in more than one context.
+For example, the property @code{extraNatural} is by
+default set to ##t (true) for all staves.  
+If it is set to ##f (false) in the @context{Staff} context 
+it applies just to the accidentals on that staff.  
+If it is set to false in the @context{Score} context
+it applies to all staves.
+
+So this turns of extra naturals in one staff:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais4 aes
+ }
+  \new Staff \relative c'' {
+    \set Staff.extraNatural = ##f
+    ais4 aes
+ }
+>>
+@end lilypond
+
+@noindent
+and this turns them off in all staves:
+
+@lilypond[quote,verbatim,ragged-right]
+<<
+  \new Staff \relative c'' {
+    ais4 aes
+ }
+  \new Staff \relative c'' {
+    \set Score.extraNatural = ##f
+    ais4 aes
+ }
+>>
+@end lilypond
+
+The value of every property set in this way can be reset
+to its original value with the @code{\unset} command.
+The @code{\set} and @code{\unset} commands can appear anywhere
+in the input file and will take effect from the time they are
+encountered until the end of the score or until the property is 
+@code{\set} or @code{\unset} again.  Let's try changing the 
+font size, which affects the size of the note heads (among 
+other things) several times.
+
+@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
+c4 
+\set fontSize = #-4   % make noteheads smaller
+d e
+\set fontSize = #2.5  % make noteheads larger
+f g
+\unset fontSize       % return to original size
+a b
+@end lilypond
+
+We have now seen how to set the values of several different
+types of property.  Note that integers and numbers are alway 
+preceded by a hash sign, @code{#}, while a true or false value 
+is specified by ##t and ##f, with two hash signs.  A text 
+property should be enclosed in double quotation signs, as above, 
+although we shall see later that text can actually be specified
+in a much more general way by using the very powerful 
+@code{markup} command. 
+
+
+@funindex \with
+
+Context properties may also be set at the time the context is
+created.  Sometimes this is a clearer way of specifying a 
+property value if it is to remain fixed for the duration of
+the context.  When a context is created with a @code{\new}
+command it may be immediately followed by a 
+@code{\with @{ .. @}} block in which the property values are
+set.  For example, if we wish to suppress the printing of
+extra naturals for the duration of a staff we would write:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+  extraNatural = ##f
+}
+\relative c' {
+  gis ges aes ais
 }
 @end lilypond
 
-TODO... add more info?  Fluff up the first sentence?
+In effect this overrides the default value of the property.  It
+may still be changed dynamically using @code{\set} and 
+@code{\unset}.
+
+
+@cindex Engravers, adding
+@cindex Engravers, removing
+
+@funindex \consists
+@funindex \remove
+
+We have seen that contexts each contain several engravers, each
+of which is responsible for producing a particular part of the
+output, like barlines, staves, note heads, stems, etc.  If an
+engraver is removed from a context it can no longer produce its
+output.  This is a crude way of modifying the output, but it
+can sometimes be useful.  
+
+To remove an engraver we can use the @code{\with} command placed
+immediately after the context creation command, as in the 
+previous section.
+
+As an 
+illustration let's repeat an example from the previous 
+section with the staff lines removed.  Remember that the 
+staff lines are produced by the Staff_symbol_engraver.
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+  \remove Staff_symbol_engraver
+}
+\relative c' {
+  c4 
+  \set fontSize = #-4  % make noteheads smaller
+  d e
+  \set fontSize = #2.5  % make noteheads larger
+  f g
+  \unset fontSize  % return to original size
+  a b
+}
+@end lilypond
+
+@cindex ambitus engraver
+
+Engravers can also be added to contexts.  The command
+to do this is 
+
+@code{\consists @emph{Engraver_name}},
+
+placed inside a @code{\with} block.  Some vocal scores
+have an @rglos{ambitus} placed at the beginning of a
+staff to indicate the range of notes in that staff.
+The ambitus is produced by the @code{Ambitus_engraver},
+which is not normally included in any context.  If
+we add it to the @context{Voice} context it calculates
+the range from that voice only:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff <<
+  \new Voice \with {
+    \consists Ambitus_engraver
+  }
+  \relative c'' { 
+    \voiceOne
+    c a b g 
+  }
+  \new Voice
+  \relative c' {
+    \voiceTwo
+    c e d f
+  }
+>>
+@end lilypond
+
+@noindent
+but if we add the Ambitus engraver to the 
+@context{Staff} context it calculates the range from all
+the notes in all the voices on that staff:
+
+@lilypond[quote,verbatim,ragged-right]
+\new Staff \with {
+    \consists Ambitus_engraver
+  }
+  <<
+  \new Voice
+  \relative c'' { 
+    \voiceOne
+    c a b g 
+  }
+  \new Voice
+  \relative c' {
+    \voiceTwo
+    c e d f
+  }
+>>
+@end lilypond
 
 
 @node Extending the templates
 @section Extending the templates
 
-You've read the tutorial, you know how to write music.  But how can you
-get the staves that you want?  The templates are ok, but what if you
-want something that isn't covered?
+You've read the tutorial, you know how to write music, you 
+understand the fundamental concepts.  But how can you
+get the staves that you want?  Well, you can find lots of 
+templates (see @ref{Templates}) which may give you a start.  
+But what
+if you want something that isn't covered there?  Read on.
 
 @menu
 * Soprano and cello::           
-* TODO another example of extending templates::  
+* Four-part SATB vocal score::  
+* Building a score from scratch::  
 @end menu
 
 @node Soprano and cello
@@ -921,7 +1471,7 @@ text = \lyricmode @{
   Aaa Bee Cee Dee
 @}
 
-\score@{
+\score @{
   <<
     \new Voice = "one" @{
       \autoBeamOff
@@ -947,9 +1497,9 @@ melody = \relative c' @{
 @}
 
 \score @{
-\new Staff \melody
-\layout @{ @}
-\midi @{ @}
+  \new Staff \melody
+  \layout @{ @}
+  \midi @{ @}
 @}
 @end example
 
@@ -994,7 +1544,7 @@ celloMusic = \relative c @{
   d4 g fis8 e d4
 @}
 
-\score@{
+\score @{
   <<
     \new Voice = "one" @{
       \autoBeamOff
@@ -1018,20 +1568,21 @@ want the cello part to appear under the soprano part, we need to add
 @noindent
 underneath the soprano stuff.  We also need to add @code{<<} and
 @code{>>} around the music -- that tells LilyPond that there's
-more than one thing (in this case, @code{Staff}) happening at once.  The
-@code{\score} looks like this now
+more than one thing (in this case, two @code{Staves}) happening 
+at once.  The @code{\score} looks like this now
 
+@c Indentation in this example is deliberately poor
 @example
-\score@{
+\score @{
   <<
-    <<
-      \new Voice = "one" @{
-        \autoBeamOff
-        \sopranoMusic
-      @}
-      \new Lyrics \lyricsto "one" \sopranoLyrics
-    >>
-    \new Staff \celloMusic
+  <<
+    \new Voice = "one" @{
+      \autoBeamOff
+      \sopranoMusic
+    @}
+    \new Lyrics \lyricsto "one" \sopranoLyrics
+  >>
+  \new Staff \celloMusic
   >>
   \layout @{ @}
   \midi @{ @}
@@ -1064,7 +1615,7 @@ celloMusic = \relative c {
   d4 g fis8 e d4
 }
 
-\score{
+\score {
   <<
     <<
       \new Voice = "one" {
@@ -1081,137 +1632,442 @@ celloMusic = \relative c {
 @end lilypond
 
 
-@node TODO another example of extending templates
-@subsection TODO another example of extending templates
+@node Four-part SATB vocal score
+@subsection Four-part SATB vocal score
 
-TODO: somebody else fill this in.  You guys like vocal stuff,
-right?  Get to it.  :)  -gp
+Most vocal scores of music written for four-part mixed choir 
+with orchestral accompaniment such as Mendelssohn's Elijah or
+Handel's Messiah have the choral music and words on four
+staves, one for each of SATB, with a piano reduction of the
+orchestral accompaniment underneath.  Here's an example
+from Handel's Messiah:
 
+@c The following should appear as music without code
+@lilypond[quote,ragged-right]
+\version "2.11.23"
+global = { \key d \major \time 4/4 }
+sopMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopWords = \lyricmode {
+  Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+}
+altoWords = \sopWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4 |
+  <d fis d'>4. <d fis d'>8 <a d a'>2 |
+  <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4 |
+  <b b'>4. <b' b'>8 <fis fis'>2 |
+  <e e'>4 <d d'> <a' a'>2 |
+}
 
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = "Soprano"
+        \new Voice = "sopranos" { \global \sopMusic }
+      >>
+      \new Lyrics \lyricsto "sopranos" { \sopWords }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = "Alto"
+        \new Voice = "altos" { \global \altoMusic }
+      >>
+      \new Lyrics \lyricsto "altos" { \altoWords }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = "Tenor"
+        \new Voice = "tenors" { \global \tenorMusic }
+      >>
+      \new Lyrics \lyricsto "tenors" { \tenorWords }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = "Bass"
+        \new Voice = "basses" { \global \bassMusic }
+      >>
+      \new Lyrics \lyricsto "basses" { \bassWords }
+    >>  % end ChoirStaff
 
-@node Scores and parts
-@section Scores and parts
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = "Piano  "
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
+}
+@end lilypond
 
-TODO: this is really old stuff from the really old tutorial.
-Rewrite, fix, etc.  Or maybe delete entirely.  -gp
+None of the templates provides this layout exactly.  The
+nearest is @q{SATB vocal score and automatic piano reduction},
+but we shall need to change the layout and add a piano
+accompaniment which is not derived automatically from the
+vocal parts.  The variables holding the music and words for
+the vocal parts are fine, but we shall need to add variables for
+the piano reduction.
+
+The order in which the contexts appear in the ChoirStaff of
+the template do not correspond with the order in the vocal 
+score shown above.  We need to rearrange them so there are
+four staves with the words written directly underneath the
+notes for each part.
+All the voices should be @code{voiceOne}, which is
+the default, so the @code{\voiceXXX} commands can be removed.
+We also need to specify the tenor clef for the tenors.
+The way in which lyrics are specified has also been simplified
+as we have not yet encountered the method used in the template.
+We've also added the names of each staff.
+
+Doing this gives for our ChoirStaff:
 
-In orchestral music, all notes are printed twice.  Once in a part for
-the musicians, and once in a full score for the conductor.  Variables can
-be used to avoid double work.  The music is entered once, and stored in
-a variable.  The contents of that variable is then used to generate
-both the part and the full score.
+@example
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = "Soprano"
+        \new Voice = "sopranos" @{ \global \sopMusic @}
+      >>
+      \new Lyrics \lyricsto "sopranos" @{ \sopWords @}
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = "Alto"
+        \new Voice = "altos" @{ \global \altoMusic @}
+      >>
+      \new Lyrics \lyricsto "altos" @{ \altoWords @}
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = "Tenor"
+        \new Voice = "tenors" @{ \global \tenorMusic @}
+      >>
+      \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = "Bass"
+        \new Voice = "basses" @{ \global \bassMusic @}
+      >>
+      \new Lyrics \lyricsto "basses" @{ \bassWords @}
+    >>  % end ChoirStaff
+@end example
 
-It is convenient to define the notes in a special file.  For example,
-suppose that the file @file{horn-music.ly} contains the following part
-of a horn/@/bassoon duo
+Next we must work out the piano part.  This is
+easy - we just pull out the piano part from the
+@q{Solo piano} template:
 
 @example
-hornNotes = \relative c @{
-  \time 2/4
-  r4 f8 a cis4 f e d
-@}
+\new PianoStaff <<
+  \set PianoStaff.instrumentName = "Piano  "
+  \new Staff = "upper" \upper
+  \new Staff = "lower" \lower
+>>
 @end example
 
-@noindent
-Then, an individual part is made by putting the following in a file
+and add the variable definitions for @code{upper}
+and @code{lower}.
+
+The ChoirStaff and PianoStaff must be combined
+using angle brackets as we want them to be
+stacked one above the other:
 
 @example
-\include "horn-music.ly"
-\header @{
-  instrument = "Horn in F"
-@}
+<<  % combine ChoirStaff and PianoStaff one above the other 
+  \new ChoirStaff <<
+    \new Staff = "sopranos" <<
+      \new Voice = "sopranos" @{ \global \sopMusic @}
+    >>
+    \new Lyrics \lyricsto "sopranos" @{ \sopWords @}
+    \new Staff = "altos" <<
+      \new Voice = "altos" @{ \global \altoMusic @}
+    >>
+    \new Lyrics \lyricsto "altos" @{ \altoWords @}
+    \new Staff = "tenors" <<
+      \clef "G_8"  % tenor clef
+      \new Voice = "tenors" @{ \global \tenorMusic @}
+    >>
+    \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+    \new Staff = "basses" <<
+      \clef "bass"
+      \new Voice = "basses" @{ \global \bassMusic @}
+    >>
+    \new Lyrics \lyricsto "basses" @{ bassWords @}   
+  >>  % end ChoirStaff
 
-@{
- \transpose f c' \hornNotes
-@}
+  \new PianoStaff <<
+    \set PianoStaff.instrumentName = "Piano  "
+    \new Staff = "upper" \upper
+    \new Staff = "lower" \lower
+  >>
+>>
 @end example
 
-The line
+Combining all these together and adding the music
+for the three bars of the example above gives:
 
-@example
-\include "horn-music.ly"
-@end example
+@lilypond[quote,verbatim,ragged-right]
+\version "2.11.23"
+global = { \key d \major \time 4/4 }
+sopMusic = \relative c'' {
+  \clef "treble"
+  r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
+}
+sopWords = \lyricmode {
+  Wor -- thy is the lamb that was slain
+}
+altoMusic = \relative a' {
+  \clef "treble"
+  r4 a2 a4 | fis4. fis8 a2 | g4 fis fis2 |
+}
+altoWords = \sopWords
+tenorMusic = \relative c' {
+  \clef "G_8"
+  r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
+}
+tenorWords = \sopWords
+bassMusic = \relative c' {
+  \clef "bass"
+  r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
+}
+bassWords = \sopWords
+upper = \relative a' {
+  \clef "treble"
+  \global
+  r4 <a d fis>2 <a e' a>4 |
+  <d fis d'>4. <d fis d'>8 <a d a'>2 |
+  <g cis g'>4 <a d fis> <a cis e>2 |
+}
+lower = \relative c, {
+  \clef "bass"
+  \global
+  <d d'>4 <d d'>2 <cis cis'>4 |
+  <b b'>4. <b' b'>8 <fis fis'>2 |
+  <e e'>4 <d d'> <a' a'>2 |
+}
 
-@noindent
-substitutes the contents of @file{horn-music.ly} at this position in
-the file, so @code{hornNotes} is defined afterwards.  The command
-@code{\transpose f@tie{}c'} indicates that the argument, being
-@code{\hornNotes}, should be transposed by a fifth upwards.  Sounding
-@code{f} is denoted by notated @code{c'}, which corresponds with the
-tuning of a normal French Horn in@tie{}F.  The transposition can be seen
-in the following output
+\score {
+  <<  % combine ChoirStaff and PianoStaff in parallel
+    \new ChoirStaff <<
+      \new Staff = "sopranos" <<
+        \set Staff.instrumentName = "Soprano"
+        \new Voice = "sopranos" { \global \sopMusic }
+      >>
+      \new Lyrics \lyricsto "sopranos" { \sopWords }
+      \new Staff = "altos" <<
+        \set Staff.instrumentName = "Alto"
+        \new Voice = "altos" { \global \altoMusic }
+      >>
+      \new Lyrics \lyricsto "altos" { \altoWords }
+      \new Staff = "tenors" <<
+        \set Staff.instrumentName = "Tenor"
+        \new Voice = "tenors" { \global \tenorMusic }
+      >>
+      \new Lyrics \lyricsto "tenors" { \tenorWords }
+      \new Staff = "basses" <<
+        \set Staff.instrumentName = "Bass"
+        \new Voice = "basses" { \global \bassMusic }
+      >>
+      \new Lyrics \lyricsto "basses" { \bassWords }
+    >>  % end ChoirStaff
 
-@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
-  \time 2/4
-  r4 f8 a cis4 f e d
+    \new PianoStaff <<
+      \set PianoStaff.instrumentName = "Piano  "
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
+    >>
+  >>
 }
 @end lilypond
-
-In ensemble pieces, one of the voices often does not play for many
-measures.  This is denoted by a special rest, the multi-measure
-rest.  It is entered with a capital @code{R} followed by a duration
-(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note,
-etc.).  By multiplying the
-duration, longer rests can be constructed.  For example, this rest
-takes 3@tie{}measures in 2/4 time
+  
+
+@node Building a score from scratch
+@subsection Building a score from scratch
+
+After gaining some facility with writing LilyPond code you
+may find that it is easier to build a score from scratch
+rather than modifying one of the templates.  You can also
+develop your own style this way to suit the sort of music you
+like.  Let's see how to put together the score for an organ 
+prelude as an example.
+
+We begin with a header section.  Here go the title, name
+of composer, etc, then come any variable definitions, and
+finally the score block.  Let's start with these in outline
+and fill in the details later.
+
+We'll use the first two bars of Bach's prelude
+based on @emph{Jesu, meine Freude} which is written for two
+manuals and pedal organ.  The top manual part has two voices,
+the lower and pedal organ one each.  So we need four
+music definitions and one to define the time signature
+and key:
 
 @example
-R2*3
+\version "2.11.23"
+\header @{
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+@}
+TimeKey = @{ \time 4/4 \key c \minor @}
+ManualOneVoiceOneMusic = @{s1@}
+ManualOneVoiceTwoMusic = @{s1@}
+ManualTwoMusic = @{s1@}
+PedalOrganMusic = @{s1@}
+
+\score @{
+@}
 @end example
 
-When printing the part, multi-rests
-must be condensed.  This is done by setting a run-time variable
+For now we've just used a spacer note, @code{s1},
+instead of the real music.  We'll add that later.
+
+Next let's see what should go in the score block.
+We simply mirror the staff structure we want.
+Organ music is usually written on three staves,
+one for each manual and one for the pedals.  The
+manual staves should be bracketed together so we
+need to use a PianoStaff for them.  The first
+manual part needs two voices and the second manual
+part just one.
 
 @example
-\set Score.skipBars = ##t
+  \new PianoStaff <<
+    \new Staff = "ManualOne" <<
+      \new Voice @{ \ManualOneVoiceOneMusic @}
+      \new Voice @{ \ManualOneVoiceTwoMusic @}
+    >>  % end ManualOne Staff context
+    \new Staff = "ManualTwo" <<
+      \new Voice @{ \ManualTwoMusic @}
+    >>  % end ManualTwo Staff context
+  >>  % end PianoStaff context
 @end example
 
-@noindent
-This command sets the property @code{skipBars} in the
-@code{Score} context to true (@code{##t}).  Prepending the rest and
-this option to the music above, leads to the following result
+Next we need to add a staff for the pedal organ.
+This goes underneath the PianoStaff, but it must
+be simultaneous with it, so we need angle brackets
+round the two.  Missing these out would generate
+an error in the log file.  It's a common mistake 
+which you'll make sooner or later!  Try copying
+the final example at the end of this section,
+remove these angle brackets, and compile it to
+see what errors it generates.
 
-@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
-  \time 2/4
-  \set Score.skipBars = ##t
-  R2*3
-  r4 f8 a cis4 f e d
-}
-@end lilypond
+@example
+<<  % PianoStaff and Pedal Staff must be simultaneous
+  \new PianoStaff <<
+    \new Staff = "ManualOne" <<
+      \new Voice @{ \ManualOneVoiceOneMusic @}
+      \new Voice @{ \ManualOneVoiceTwoMusic @}
+    >>  % end ManualOne Staff context
+    \new Staff = "ManualTwo" <<
+      \new Voice @{ \ManualTwoMusic @}
+    >>  % end ManualTwo Staff context
+  >>  % end PianoStaff context
+  \new Staff = "PedalOrgan" <<
+    \new Voice @{ \PedalOrganMusic @}
+  >>
+>>
+@end example
 
+It is not strictly necessary to use the simultaneous construct
+@code{<<  >>} for the manual two staff and the pedal organ staff,
+since they contain only one music expression, but it does no harm
+and always using angle brackets after @code{\new Staff} is a good
+habit to cultivate in case there are multiple voices.  
 
-The score is made by combining all of the music together.  Assuming
-that the other voice is in @code{bassoonNotes} in the file
-@file{bassoon-music.ly}, a score is made with
+Let's add this structure to the score block, and adjust the
+indenting.  We also add the appropriate clefs, ensure the
+second voice stems point down with @code{\voiceTwo} and
+enter the time signature and key to each staff using our
+predefined variable, @code{\TimeKey}.
 
 @example
-\include "bassoon-music.ly"
-\include "horn-music.ly"
-
-<<
-  \new Staff \hornNotes
-  \new Staff \bassoonNotes
->>
+\score @{
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \TimeKey  % set time signature and key
+        \clef "treble"
+        \new Voice @{ \ManualOneVoiceOneMusic @}
+        \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @}
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" <<
+        \TimeKey
+        \clef "bass"
+        \new Voice @{ \ManualTwoMusic @}
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \TimeKey
+      \clef "bass"
+      \new Voice @{ \PedalOrganMusic @}
+    >>  % end PedalOrgan Staff
+  >>
+@}  % end Score context
 @end example
 
-@noindent
-leading to
+That completes the structure.  Any three-staff organ music
+will have a similar structure, although the number of voices
+may vary.  All that remains now 
+is to add the music, and combine all the parts together.
 
-@lilypond[quote,ragged-right]
-\relative c <<
-  \new Staff {
-    \time 2/4 R2*3
-    r4 f8 a cis4 f e d
-  }
-  \new Staff {
-    \clef bass
-    r4 d,8 f | gis4 c | b bes |
-    a8 e f4 | g d | gis f
+@lilypond[quote,verbatim,ragged-right]
+\version "2.11.23"
+\header {
+  title = "Jesu, meine Freude"
+  composer = "J S Bach"
+}
+TimeKey = { \time 4/4 \key c \minor }
+ManualOneVoiceOneMusic = \relative g' {
+  g4 g f ees | d2 c2 |
+}
+ManualOneVoiceTwoMusic = \relative c' {
+  ees16 d ees8~ ees16 f ees s c8 d~ d c~ |
+  c c4 b8 c8. g16 c b c d |
+}
+ManualTwoMusic = \relative c' {
+  c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
+  f ees f d g aes g f ees d e8~ ees16 f ees d |
+}
+PedalOrganMusic = \relative c {
+  r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
+  r16 g ees f g f g8 c,2 |
   }
->>
-@end lilypond
 
+\score {
+  <<  % PianoStaff and Pedal Staff must be simultaneous
+    \new PianoStaff <<
+      \new Staff = "ManualOne" <<
+        \TimeKey  % set time signature and key
+        \clef "treble"
+        \new Voice { \ManualOneVoiceOneMusic }
+        \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
+      >>  % end ManualOne Staff context
+      \new Staff = "ManualTwo" <<
+        \TimeKey
+        \clef "bass"
+        \new Voice { \ManualTwoMusic }
+      >>  % end ManualTwo Staff context
+    >>  % end PianoStaff context
+    \new Staff = "PedalOrgan" <<
+      \TimeKey
+      \clef "bass"
+      \new Voice { \PedalOrganMusic }
+    >>  % end PedalOrgan Staff
+  >>
+}  % end Score context
+@end lilypond
 
 
index 7220aaf663de0c2dd4a7ae55c7d56bdacb2b1e70..5527175a52bbccea311caecdca5099b881a159d3 100644 (file)
@@ -13,6 +13,9 @@
 This section deals with general lilypond input syntax issues,
 rather than specific notation.
 
+FIXME: don't complain about anything in this chapter.  It's still
+under heavy development.
+
 @menu
 * Input files::                 
 * Common syntax issues TODO name?::  
@@ -553,6 +556,9 @@ TODO: staff spaces, #UP #DOWN #LEFT #RIGHT.  Maybe move into tweaks?
 @menu
 * Displaying LilyPond notation::  
 * Skipping corrected music::    
+* context list FIXME::          
+* another thing FIXME::         
+* Input modes FIXME::           
 @end menu
 
 @node Displaying LilyPond notation
@@ -629,4 +635,197 @@ In polyphonic music, @code{Score.skipTypesetting} will affect all
 voices and staves, saving even more time.
 
 
+@node context list FIXME
+@subsection context list FIXME
+
+>> > > - list of contexts: my *danger unmaintainable* 
+>> > > alarm just went off.  I'm 
+
+I knew it would... And leaving out some of them is perfectly fine
+with me.
+I do think that a list like this, with the main contexts and a
+brief
+description of  what they do (perhaps also with a note about what
+default
+behaviour is associated with each of them, but this may be
+unmanageable),
+should be there, and then we could simply list the remaining ones
+without
+further explanation and with links to the IR.
+
+
+The Master Of All Contexts
+==========================
+
+    * Score
+        This is the top level notation context. No other context
+can
+        contain a Score context. This context handles the
+        administration of time signatures. It also makes sure that
+        items such as clefs, time signatures, and key-signatures
+are
+        aligned across staves.
+        You cannot explicitly instantiate a Score context (since
+it is
+        not contained in any other context). It is instantiated
+        automatically when an output definition (a \score or
+\layout
+        block) is processed. 
+        (it should also be made clear somewhere what the
+difference is between
+        \score and \Score).
+
+Top-level contexts: Staff containers
+====================================
+    * StaffGroup
+        Groups staves while adding a bracket on the left side,
+        grouping the staves together. The bar lines of the
+contained
+        staves are connected vertically. StaffGroup only consists
+of a
+        collection of staves, with a bracket in front and spanning
+bar
+        lines.
+    * ChoirStaff
+        Identical to StaffGroup except that the contained staves
+are
+        not connected vertically.
+    * GrandStaff
+        A group of staves, with a brace on the left side, grouping
+the
+        staves together. The bar lines of the contained staves are
+        connected vertically.
+    * PianoStaff
+        Just like GrandStaff but with a forced distance between
+the
+        staves, so cross staff beaming and slurring can be used.
+    * DrumStaff
+        Handles typesetting for percussion. Can contain DrumVoice
+    * InnerStaffGroup
+    * InnerChoirStaff
+
+Staff-level contexts
+====================
+    * Staff
+        Handles clefs, bar lines, keys, accidentals. It can
+contain
+        Voice contexts.
+    * RhythmicStaff
+        Like Staff but for printing rhythms. Pitches are
+        ignored; the notes are printed on one line.
+    * TabStaff
+        Context for generating tablature. By default lays the
+music
+        expression out as a guitar tablature, printed on six
+lines.
+    * VaticanaStaff
+        Same as Staff, except that it is accommodated for
+        typesetting a piece in gregorian style. 
+    * MensuralStaff
+        Same as Staff, except that it is accommodated for
+        typesetting a piece in mensural style. 
+
+Voice-level (bottom) contexts
+=============================
+What is generated by default here?  The voice-level contexts
+initiate
+certain properties and start engravers. 
+
+    * Voice 
+        Corresponds to a voice on a staff. This context handles
+the
+        conversion of dynamic signs, stems, beams, super- and
+        subscripts, slurs, ties, and rests.
+        You have to instantiate this explicitly if you want to
+have
+        multiple voices on the same staff. 
+        Bottom context.
+    * VaticanaVoice
+        Same as Voice, except that it is accommodated for
+        typesetting a piece in gregorian style.  
+    * MensuralVoice
+        Same as Voice, except that it is accommodated for
+        typesetting a piece in mensural style. 
+    * Lyrics
+        Corresponds to a voice with lyrics. Handles the printing
+of a
+        single line of lyrics.
+        Bottom context.
+    * DrumVoice
+        A voice on a percussion staff.
+    * FiguredBass
+         
+    * ChordNames
+        Typesets chord names.  This context is a `bottom' context;
+it
+        cannot contain other contexts.
+
+------------------------------
+Then the following, which I don't know what to do with:
+
+    * TabVoice
+    * GregorianTranscriptionVoice
+    * GregorianTranscriptionStaff
+
+    * FretBoards
+        Engraves fretboards from chords. Not easy... Not
+documented.
+    * NoteNames
+
+    * CueVoice Not documented
+    * Global
+        Hard coded entry point for LilyPond. Cannot be tuned.
+    * Devnull
+        Silently discards all musical information given to this
+context.
+
+
+@node another thing FIXME
+@subsection another thing FIXME
+
+Another thing that is needed, is an overview of the various naming
+conventions: 
+
+    scheme functions: lowercase-with-hyphens (incl. one-word
+names)
+    scheme functions: ly:plus-scheme-style
+    music events, music classes and music properties:
+as-scheme-functions
+    Grob interfaces: scheme-style
+    backend properties: scheme-style (but X and Y!)
+    contexts (and MusicExpressions and grobs): Capitalized or
+CamelCase
+    context properties: lowercaseFollowedByCamelCase
+    engravers:
+Capitalized_followed_by_lowercase_and_with_underscores
+
+Which of these are conventions and which are rules?
+Which are rules of the underlying language, and which are
+LP-specific?
+
+
+@node Input modes FIXME
+@subsection Input modes FIXME
+
+\notemode
+
+\notemode turns the front end of LilyPond into note mode
+(which is the default parsing mode).
+It's certainly useful in certain situations, for example if you
+are in \lyricmode or \chordmode or ... and want to insert
+something that only can be done with \notemode syntax.
+
+See for example
+http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00418.html
+http://lists.gnu.org/archive/html/lilypond-user/2007-03/msg00218.html
+http://lists.gnu.org/archive/html/lilypond-user/2006-12/msg00236.html
+http://lists.gnu.org/archive/html/lilypond-user/2006-11/msg00061.html
+
+
+\chords
+\drums
+\fretmode ?
+
+
+
 
index bad65e6894215c083177eb718d08490fd2c32d27..13e448287394ffee1bfb78e3df483a5b56316c0c 100644 (file)
@@ -569,14 +569,18 @@ The syntax is also the user-interface for LilyPond, hence it is easy
 to type
 
 @example
-c'4 d'8
+@{
+  c'4 d'8
+@}
 @end example
 
 @noindent
 a quarter note C1 (middle C) and an eighth note D1 (D above middle C)
 
-@lilypond[quote,fragment]
-c'4 d'8
+@lilypond[quote]
+{
+  c'4 d'8
+}
 @end lilypond
 
 On a microscopic scale, such syntax is easy to use.  On a larger
@@ -651,8 +655,11 @@ of music engraving into a computer program.  Thanks to all that hard
 work, the program can now be used to perform useful tasks.  The
 simplest application is printing notes.
 
-@lilypond[quote,relative=1,fragment]
-\time 2/4 c4 c g'4 g a4 a g2
+@lilypond[quote,relative=1]
+{
+  \time 2/4
+  c4 c g'4 g a4 a g2
+}
 @end lilypond
 
 @noindent
index f7a2df6f4a1786dd3e452a733eee0012027f6b9a..816d120de34a6e51a35a2b8a5721385637a89428 100644 (file)
@@ -189,7 +189,6 @@ Languages in this order.
 * chromatic scale::             
 * chromaticism::                
 * church mode::                 
-* church rest::                 
 * clef::                        
 * cluster::                     
 * comma::                       
@@ -311,7 +310,7 @@ Languages in this order.
 * motif::                       
 * motive::                      
 * movement::                    
-* multibar rest::               
+* multi-measure rest::          
 * mixolydian mode::             
 * natural sign::                
 * neighbour tones::             
@@ -1347,25 +1346,6 @@ FI: moodi, kirkkosävellaji.
 @ref{diatonic scale}.
 
 
-@node church rest
-@section church rest
-
-ES: compases de espera (estilo de la iglesia),
-I: pausa multipla (della cappella),
-F: pause multiple (style de l'église),
-NL: meermaats rust (?),
-D: Kirchenpause,
-DK: flertaktspause (?),
-S: flertaktspaus (?),
-FI: usean tahdin mittainen tauko (?).
-
-LilyPond-specific term for an older style of multibar rests.  Instead of a long bar with a number, @q{church rest}s use a combination of longa, breve and whole rests to indicate the duration (in measures) of a rest.
-
-@seealso
-
-@ref{multibar rest}.
-
-
 @node clef
 @section clef
 
@@ -4161,27 +4141,36 @@ Greater musical works like @ref{symphony} and
 independant pieces called movements.
 
 
-@node multibar rest
-@section multibar rest
+@node multi-measure rest
+@section multi-measure rest
 
 ES: compases de espera,
 I: pausa multipla,
 F: pause multiple,
 NL: meermaats rust,
-D: mehrtaktige Pause,
+D: mehrtaktige Pause, Kirchenpause,
 DK: flertaktspause,
 S: flertaktspaus,
 FI: usean tahdin mittainen tauko.
 
+Multi-measure rests are conventionally typeset with a combination of longa,
+breve and whole rests for shorter and a long horizontal bar for longer
+spans of rest, with a number above to indicate the duration (in measures)
+of the rest. The former style is called @q{Kirchenpausen} in German, as a
+reminiscence of its use in Renaissance vocal polyphony. 
+
 @lilypond[fragment,ragged-right]
 \relative c'' {
   a1
   \set Score.skipBars = ##t R1*3
   a1
+  \set Score.skipBars = ##t R1*122
+  a1
 }
 @end lilypond
 
 
+
 @node mixolydian mode
 @section mixolydian mode
 
index 3f3b00c22f7fff7f7cf19bffeb6c0c5f163c6c1c..c908b20346737d8e3d943b339454da5b5b1b7837 100644 (file)
@@ -482,6 +482,7 @@ output.  Players that are known to work include
 * Creating MIDI files::         
 * MIDI block::                  
 * MIDI instrument names::       
+* What goes into the MIDI?  FIXME::  
 @end menu
 
 @node Creating MIDI files
@@ -633,4 +634,55 @@ the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
 instrument is used.
 
 
+@node What goes into the MIDI?  FIXME
+@subsection What goes into the MIDI?  FIXME
+
+@menu
+* Repeats and MIDI::            
+@end menu
+
+@node Repeats and MIDI
+@unnumberedsubsubsec Repeats and MIDI
+
+@cindex expanding repeats
+@funindex \unfoldRepeats
+
+With a little bit of tweaking, all types of repeats can be present
+in the MIDI output.  This is achieved by applying the
+@code{\unfoldRepeats} music function.  This function changes all
+repeats to unfold repeats.
+
+@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
+\unfoldRepeats {
+  \repeat tremolo 8 {c'32 e' }
+  \repeat percent 2 { c''8 d'' }
+  \repeat volta 2 {c'4 d' e' f'}
+  \alternative {
+    { g' a' a' g' }
+    {f' e' d' c' }
+  }
+}
+\bar "|."
+@end lilypond
+
+When creating a score file using @code{\unfoldRepeats} for MIDI,
+it is necessary to make two @code{\score} blocks: one for MIDI
+(with unfolded repeats) and one for notation (with volta, tremolo,
+and percent repeats).  For example,
+
+@example
+\score @{
+  @var{..music..}
+  \layout @{ .. @}
+@}
+\score @{
+  \unfoldRepeats @var{..music..}
+  \midi @{ .. @}
+@}
+@end example
+
+
+
+
+
 
index c7eb9991aba2ef51932ea2398624ca9c89ac148c..f1b3b0bf7efea4804f823aede2739ab5603d7f60 100644 (file)
@@ -326,7 +326,7 @@ ceses4 ces cis c
 
 @seealso
 
-Music glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
+Music Glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
 @rglos{double flat}.
 
 Notation Reference: @ref{Automatic accidentals},
@@ -961,7 +961,7 @@ scale:
 
 @seealso
 
-Music glossary: @rglos{church mode}, @rglos{scordatura}.
+Music Glossary: @rglos{church mode}, @rglos{scordatura}.
 
 Snippets: @lsrdir{pitches},
 FIXME link to snippet 248,
index 20b2d09382cab49a016f0536c38191d0d95bc86c..329b72427ec6a20f6bbfb894b12b3afebd2a1643 100644 (file)
@@ -8,11 +8,22 @@ There are four parts to the documentation: the Learning Manual,
 the Notation Reference, the Program Reference, and the Music
 Glossary.
 
-* Learning Manual: long, chatty, friendly explanations go here.
-  This is aimed at users learning something for the first time --
-  not necessarily just learning lilypond notation, but also things
-  like learning how to deal with projects, tweaking, preparing parts
-  for orchestras, etc.  Less formal language may be used here.
+* Learning Manual:
+  The LM is written in a tutorial style which introduces the most
+  important concepts, structure and syntax of the elements of a
+  LilyPond score in a carefully graded sequence of steps.
+  Explanations of all musical concepts used in the Manual can be
+  found in the Music Glossary, and readers are assumed to have no
+  prior knowledge of LilyPond.  The objective is to take readers to
+  a level where the Notation Reference can be understood and
+  employed to both adapt the templates in the Appendix to their
+  needs and to begin to construct their own scores.  Commonly used
+  tweaks are introduced and explained.  Examples are provided
+  throughout which, while being focussed on the topic being
+  introduced, are long enough to seem real in order to retain the
+  readers' interest.  Each example builds on the previous material,
+  and comments are used liberally.  Every new aspect is thoroughly
+  explained before it is used.
 
 Users are encouraged to read the complete Learning Manual from
 start-to-finish.
@@ -68,7 +79,7 @@ main docs
 * You _must_ include a @seealso.  The order of items inside the
   @seealso section is
 
-    Music glossary: @rglos{foo}, @rglos{bar}.
+    Music Glossary: @rglos{foo}, @rglos{bar}.
 
     Learning Manual: @rlearning{baz}, @rlearning{foozle}
 
@@ -76,7 +87,7 @@ main docs
 
     Application Usage: @rprogram{blah}.
 
-    Installed files: @file{path/to/dir/blahz}.
+    Installed Files: @file{path/to/dir/blahz}.
 
     Snippets: @lsrdir{section}, @lsr{specific/example-name.ly}.
       (if there is only one entry, omit a final period.  If there
@@ -87,6 +98,9 @@ main docs
 
   ("Snippets" is REQUIRED; the others are optional)
 
+  Any new concepts or links which require an explanation should go
+  as a full sentence(s) in the main text.
+
 * To create links, use @ref{} if the link is within the same
   manual.
 
@@ -115,6 +129,8 @@ main docs
     - list of specific terms:
 canceled
 simultaenous    NOT concurrent
+measure: the unit of music
+bar line: the symbol delimiting a measure
 
 
 
index 8b406e9816a2d2fbfa1d72c74d0a4d06747ab87a..31f1e87fcc98d262ac32dd8db06e72a839236213 100644 (file)
@@ -9,6 +9,9 @@
 @node Repeats
 @section Repeats
 
+@lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
+{repeats-headword.ly}
+
 Repetition is a central concept in music, and multiple notations
 exist for repetitions.
 
@@ -26,7 +29,6 @@ Blah blah
 * Normal repeats::              
 * Repeat syntax::               
 * Manual repeat commands::      
-* Repeats and MIDI::            
 @end menu
 
 @node Normal repeats
@@ -247,46 +249,6 @@ Internals Reference: @internalsref{VoltaBracket},
 @internalsref{RepeatedMusic}, @internalsref{VoltaRepeatedMusic},
 and @internalsref{UnfoldedRepeatedMusic}.
 
-@node Repeats and MIDI
-@unnumberedsubsubsec Repeats and MIDI
-
-@cindex expanding repeats
-@funindex \unfoldRepeats
-
-With a little bit of tweaking, all types of repeats can be present
-in the MIDI output.  This is achieved by applying the
-@code{\unfoldRepeats} music function.  This function changes all
-repeats to unfold repeats.
-
-@lilypond[quote,verbatim,fragment,line-width=8.0\cm]
-\unfoldRepeats {
-  \repeat tremolo 8 {c'32 e' }
-  \repeat percent 2 { c''8 d'' }
-  \repeat volta 2 {c'4 d' e' f'}
-  \alternative {
-    { g' a' a' g' }
-    {f' e' d' c' }
-  }
-}
-\bar "|."
-@end lilypond
-
-When creating a score file using @code{\unfoldRepeats} for MIDI,
-it is necessary to make two @code{\score} blocks: one for MIDI
-(with unfolded repeats) and one for notation (with volta, tremolo,
-and percent repeats).  For example,
-
-@example
-\score @{
-  @var{..music..}
-  \layout @{ .. @}
-@}
-\score @{
-  \unfoldRepeats @var{..music..}
-  \midi @{ .. @}
-@}
-@end example
-
 
 @node Other repeats
 @subsection Other repeats
index eaa218fcccec2c60d5bbefee9f8fbd60b25fcfa5..c00b26c1b50fab80245886276591d564bb83ed61 100644 (file)
@@ -1623,7 +1623,6 @@ Snippets: @lsrdir{rhythms}
 @unnumberedsubsubsec Bar lines
 
 @cindex Bar lines
-@cindex Barlines
 @funindex \bar
 @cindex measure lines
 @cindex repeat bars
index bdde104910e8db7bebfe9d41c815185528cff29c..b550f1a240630078661478257d867fdb9fad4044 100644 (file)
@@ -188,6 +188,19 @@ voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)
 @funindex \voiceFour
 @code{\voiceFour}.
 
+@funindex \voiceNeutralStyle
+@funindex \voiceOneStyle
+@funindex \voiceTwoStyle
+@funindex \voiceThreeStyle
+@funindex \voiceFourStyle
+@example
+\voiceNeutralStyle
+\voiceOneStyle
+\voiceTwoStyle
+\voiceThreeStyle
+\voiceFourStyle
+@end example
+
 @funindex \shiftOn
 @code{\shiftOn},
 @funindex \shiftOnn
index 2c874d6bb7467673a3eff504407a8c40a1ce1b70..3f91ccb39db1b95947c4cd6958c91af4cbec417a 100644 (file)
@@ -725,9 +725,9 @@ sections without notes (note that it does not scan for rests; it scans for
 the absence of notes.  This is so that single-staff polyphony with rests in one
 of the parts does not throw off the @code{Page_turn_engraver}).  When it finds
 a sufficiently long section without notes, the @code{Page_turn_engraver} will
-insert an @code{\allowPageTurn} at the final barline in that section, unless
-there is a @q{special} barline (such as a double bar), in which case the
-@code{\allowPageTurn} will be inserted at the final @q{special} barline in
+insert an @code{\allowPageTurn} at the final bar line in that section, unless
+there is a @q{special} bar line (such as a double bar), in which case the
+@code{\allowPageTurn} will be inserted at the final @q{special} bar line in
 the section.
 
 @funindex minimumPageTurnLength
index 83fe965754c3efb8e68a8458517d2f226c7bd8df..b4312b46ab91eb0dd5db1442cf26a8080e614331 100644 (file)
@@ -62,7 +62,7 @@ at the left, and bar lines are connected between the staves.
 @end lilypond
 
 @item
-In a @internalsref{StaffGroup}, the barlines will be drawn through
+In a @internalsref{StaffGroup}, the bar lines will be drawn through
 all the staves, but the group is started with a bracket.
 
 @lilypond[verbatim,ragged-right,quote]
@@ -101,9 +101,9 @@ bar lines are not connected.
 In addition to these four staff group types, other groupings can
 be produced by changing various properties. E.g., the
 @q{Mensurstriche} layout common in Renaissance music, with
-barlines running between but not through the staves, can be
+bar lines running between but not through the staves, can be
 produced from a @code{StaffGroup} or @code{GrandStaff} context if
-the barlines are made transparent in the @code{Staff} itself, with
+the bar lines are made transparent in the @code{Staff} itself, with
 the command @code{\override Staff.BarLine #'transparent = ##t}
 
 @cindex staff, nested
index 0e0f99a14b627b5a230f1721d4990e5624a475d0..f5517998aae7ad160e43ad4dd60d7ad9f3633e5d 100644 (file)
@@ -1079,7 +1079,7 @@ bassusLyrics = \lyricmode {
       \override Slur #'transparent = ##t
 
       % Comment in the below "\remove" command to allow line
-      % breaking also at those barlines where a note overlaps
+      % breaking also at those bar lines where a note overlaps
       % into the next bar.  The command is commented out in this
       % short example score, but especially for large scores, you
       % will typically yield better line breaking and thus improve
index 17565664d92acb5ff7a851d8c6ffc74895ea0bec..893316a23aac496ba6003d35db57e73d819d8b67 100644 (file)
@@ -18,22 +18,6 @@ languages), simply insert the characters directly into the
 lilypond file.  The file must be saved as UTF-8.  For more
 information, see @ref{Text encoding}.
 
-@lilypond[fragment,ragged-right,staffsize=16,quote]
-c'4^\markup { bla \bold bla }
-@end lilypond
-
-@lilypond[fragment,ragged-right,staffsize=16,quote]
-c'4^\markup { bla \bold bla }
-@end lilypond
-
-@lilypond[fragment,ragged-right,staffsize=16,quote]
-c'4^\markup { bla \bold bla }
-@end lilypond
-
-@lilypond[fragment,ragged-right,staffsize=16,quote]
-c'4^\markup { bla \bold bla }
-@end lilypond
-
 @menu
 * Writing text::                
 * Text markup::                 
index 446ae6e672a1becbc3dc1794db764762b32fe1e4..5769244075bc473fba08305831c0a87e9bd71295 100644 (file)
@@ -7,29 +7,6 @@
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@ignore
-
-Tutorial Specification:
-
-The LM is written in a tutorial style which introduces the
-most important concepts, structure and syntax of the
-elements of a LilyPond score in a carefully graded sequence
-of steps.  Explanations of all musical concepts used in the
-Manual can be found in the Music Glossary, and readers are
-assumed to have no prior knowledge of LilyPond.  The
-objective is to take readers to a level where the Notation
-Reference can be understood and employed to both adapt the
-templates in the Appendix to their needs and to begin to
-construct their own.  Commonly used tweaks are introduced
-and explained.  Examples are provided throughout which,
-while being focussed on the topic being introduced, are long
-enough to seem real in order to retain the readers'
-interest.  Each example builds on the previous material, and
-comments are used liberally.  Every new aspect is thoroughly
-explained before it is used.
-
-@end ignore
-
 @ignore
 Tutorial guidelines:  (different from policy.txt!)
 - unless you have a really good reason, use either
@@ -44,7 +21,7 @@ Tutorial guidelines:  (different from policy.txt!)
   correct Dutch naming, but let's not confuse people with this
   until we get to the Basic notation chapter.
 
-- Add "Music glossary: @rglos{foo}" to the _top_ of the relevant
+- Add "Music Glossary: @rglos{foo}" to the _top_ of the relevant
   portions of the tutorial.
 
 @end ignore
@@ -222,15 +199,15 @@ values are useful.
 
 @subheading Pitches
 
-Music glossary: @rglos{pitch}, @rglos{interval},
+Music Glossary: @rglos{pitch}, @rglos{interval},
 @rglos{scale}, @rglos{middle C}, @rglos{octave},
 @rglos{accidental}.
 
 The easiest way to enter notes is by using @code{\relative} mode.
-In this mode, the octave is chosen automatically by assuming the 
-following note is always to be placed closest to the previous note,
-i.e., it is to be placed in the octave which is within three 
-staff spaces of the previous note.  We begin by entering the most 
+In this mode, the octave is chosen automatically by assuming the
+following note is always to be placed closest to the previous
+note, i.e., it is to be placed in the octave which is within three
+staff spaces of the previous note.  We begin by entering the most
 elementary piece of music, a @notation{scale}, in which every note
 is within just one staff space of the previous note.
 
@@ -244,8 +221,8 @@ is within just one staff space of the previous note.
 The initial note is @notation{middle C}.  Each successive note is
 placed closest to the previous note -- in other words, the first
 @code{c} is the closest C to middle C.  This is followed by the
-closest D to the previous note.  We can create melodies which
-have larger intervals:
+closest D to the previous note.  We can create melodies which have
+larger intervals, still using only @code{\relative} mode:
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c' {
@@ -290,10 +267,10 @@ above the B, and an A, G or F will be assumed to be below.
 @end lilypond
 
 Exactly the same happens even when any of these notes are
-sharpened or flatted.  @notation{Accidentals} are @strong{totally
-ignored} in the calculation of relative position.  Precisely the
-same staff space counting is done from a note at any other
-position on the staff.
+sharpened or flattened.  @notation{Accidentals} are
+@strong{totally ignored} in the calculation of relative position.
+Precisely the same staff space counting is done from a note at any
+other position on the staff.
 
 To add intervals that are larger than three staff spaces, we can
 raise the @notation{octave} by adding a single quote @code{'} (or
@@ -317,14 +294,19 @@ this.
 
 @subheading Durations (rhythms)
 
-Music glossary: @rglos{beam}, @rglos{duration}, @rglos{whole note},
-@rglos{half note}, @rglos{quarter note}, @rglos{dotted note}.
+Music Glossary: @rglos{beam}, @rglos{duration},
+@rglos{whole note}, @rglos{half note}, @rglos{quarter note},
+@rglos{dotted note}.
 
 The @notation{duration} of a note is specified by a number after
 the note name.  @code{1} for a @notation{whole note}, @code{2} for
 a @notation{half note}, @code{4} for a @notation{quarter note} and
 so on.  @notation{Beams} are added automatically.
 
+If you do not specify a duration, the previous duration is used
+for the next note.  The duration of the first note defaults to a
+quarter.
+
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
   a1
@@ -333,13 +315,9 @@ so on.  @notation{Beams} are added automatically.
 }
 @end lilypond
 
-@noindent
-If you do not specify a duration, the previous duration is used
-for the next note.  The duration of the first note defaults to a
-quarter.
-
-To create @notation{dotted notes}, add a dot @code{.} to the duration
-number.
+To create @notation{dotted notes}, add a dot @code{.} to the
+duration number.  The duration of a dotted note must be stated
+explicitly (i.e., with a number).
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -351,9 +329,10 @@ number.
 
 @subheading Rests
 
-Music glossary: @rglos{rest}.
+Music Glossary: @rglos{rest}.
 
-A @notation{rest} is entered just like a note with the name @code{r}:
+A @notation{rest} is entered just like a note with the name
+@code{r}:
 
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
@@ -365,7 +344,7 @@ A @notation{rest} is entered just like a note with the name @code{r}:
 
 @subheading Time signature
 
-Music glossary: @rglos{time signature}.
+Music Glossary: @rglos{time signature}.
 
 The @notation{time signature} can be set with the @code{\time}
 command:
@@ -384,7 +363,7 @@ command:
 
 @subheading Clef
 
-Music glossary: @rglos{clef}.
+Music Glossary: @rglos{clef}.
 
 The @notation{clef} can be set using the @code{\clef} command:
 
@@ -418,12 +397,11 @@ Here is a small example showing all these elements together:
 
 @seealso
 
-Notation Reference: @ruser{Writing pitches}, @ruser{Writing rhythms},
-@ruser{Writing rests}, @ruser{Time signature}, @ruser{Clef}.
+Notation Reference: @ruser{Writing pitches},
+@ruser{Writing rhythms}, @ruser{Writing rests},
+@ruser{Time signature}, @ruser{Clef}.
 
 
-@c HERE's where I started
-
 @node Working on text files
 @subsection Working on text files
 
@@ -468,8 +446,8 @@ thumb is to indent code blocks with either a tab or two spaces:
 @end example
 
 @item
-@strong{Expressions:}
-Every piece of LilyPond input needs to have @strong{@{ curly
+@strong{Expressions}:
+every piece of LilyPond input needs to have @strong{@{ curly
 braces @}} placed around the input.  These braces tell LilyPond
 that the input is a single music expression, just like parentheses
 @code{()} in mathematics.  The braces should be surrounded by a
@@ -484,7 +462,7 @@ single music expression.
 @cindex block comment
 @item
 @strong{Comments}:
-A comment is a remark for the human reader of the music input; it
+a comment is a remark for the human reader of the music input; it
 is ignored while parsing, so it has no effect on the printed
 output.  There are two types of comments.  The percent symbol
 @code{%} introduces a line comment; anything after @code{%} on
@@ -508,9 +486,6 @@ fragment shows possible uses for comments:
 
 @end itemize
 
-There are more tips for constructing input files in
-@ref{Suggestions for writing LilyPond files}.
-
 
 @node How to read the tutorial
 @subsection How to read the tutorial
@@ -559,6 +534,13 @@ you have a starting template for experiments.  To see exactly the
 same output (line-width and all), copy everything from @qq{Start
 cut-&-pastable section} to the bottom of the file.
 
+@seealso
+
+
+There are more tips for constructing input files in
+@ref{Suggestions for writing LilyPond files}.
+
+
 
 @node Single staff notation
 @section Single staff notation
@@ -581,16 +563,16 @@ on one staff.
 
 @subheading Accidentals
 
-Music glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
+Music Glossary: @rglos{sharp}, @rglos{flat}, @rglos{double sharp},
 @rglos{double flat}, @rglos{accidental}.
 
-A @notation{sharp} pitch is made by adding @code{is} to the name, and
-a @notation{flat} pitch by adding @code{es}.  As you might expect, a
-@notation{double sharp} or @notation{double flat} is made by adding
-@code{isis} or @code{eses}.  This syntax derived from note
-naming conventions in Nordic and Germanic languages, like German
-and Dutch.  To use other names for @notation{accidentals}, see
-@ruser{Note names in other languages}.
+A @notation{sharp} pitch is made by adding @code{is} to the name,
+and a @notation{flat} pitch by adding @code{es}.  As you might
+expect, a @notation{double sharp} or @notation{double flat} is
+made by adding @code{isis} or @code{eses}.  This syntax is derived
+from note naming conventions in Nordic and Germanic languages,
+like German and Dutch.  To use other names for
+@notation{accidentals}, see @ruser{Note names in other languages}.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 cis1 ees fisis, aeses
@@ -599,7 +581,8 @@ cis1 ees fisis, aeses
 @cindex key signature, setting
 @subheading Key signatures
 
-Music glossary: @rglos{key signature}, @rglos{major}, @rglos{minor}.
+Music Glossary: @rglos{key signature}, @rglos{major},
+@rglos{minor}.
 
 The @notation{key signature} is set with the command @code{\key}
 followed by a pitch and @code{\major} or @code{\minor}.
@@ -615,25 +598,26 @@ a
 
 @subheading Warning: key signatures and pitches
 
-Music glossary: @rglos{accidental}, @rglos{key signature},
+Music Glossary: @rglos{accidental}, @rglos{key signature},
 @rglos{pitch}, @rglos{flat}, @rglos{natural}, @rglos{sharp},
 @rglos{transposition}.
 
 To determine whether to print an @notation{accidental}, LilyPond
 examines the pitches and the @notation{key signature}.  The key
-signature only affects the @emph{printed} accidentals, not the note's
-@notation{pitch}!  This is a feature that often causes confusion to
-newcomers, so let us explain it in more detail.
+signature only affects the @emph{printed} accidentals, not the
+note's @notation{pitch}!  This is a feature that often causes
+confusion to newcomers, so let us explain it in more detail.
 
 LilyPond makes a sharp distinction between musical content and
 layout.  The alteration (@notation{flat}, @notation{natural} or
 @notation{sharp}) of a note is part of the pitch, and is therefore
-musical content.  Whether an accidental (a @emph{printed} flat, natural
-or sharp sign) is printed in front of the corresponding note is a
-question of layout.  Layout is something that follows rules, so
-accidentals are printed automatically according to those rules.  The
-pitches in your music are works of art, so they will not be added
-automatically, and you must enter what you want to hear.
+musical content.  Whether an accidental (a @emph{printed} flat,
+natural or sharp sign) is printed in front of the corresponding
+note is a question of layout.  Layout is something that follows
+rules, so accidentals are printed automatically according to those
+rules.  The pitches in your music are works of art, so they will
+not be added automatically, and you must enter what you want to
+hear.
 
 In this example:
 
@@ -665,10 +649,11 @@ accidentals can be printed according to different rules, see
 
 @seealso
 
-Notation Reference: @ruser{Accidentals},
-@ruser{Automatic accidentals}, @ruser{Key signature}.
+Notation Reference: @ruser{Note names in other languages},
+@ruser{Accidentals}, @ruser{Automatic accidentals},
+@ruser{Key signature}.
 
-Music glossary: @rglos{Pitch names}.
+Music Glossary: @rglos{Pitch names}.
 
 
 @node Ties and slurs
@@ -677,7 +662,7 @@ Music glossary: @rglos{Pitch names}.
 @cindex ties
 @subheading Ties
 
-Music glossary: @rglos{tie}.
+Music Glossary: @rglos{tie}.
 
 A @notation{tie} is created by appending a tilde @code{~} to the
 first note being tied.
@@ -690,11 +675,11 @@ c4 ~ c8 a8 ~ a2
 @cindex slurs
 @subheading Slurs
 
-Music glossary: @rglos{slur}.
+Music Glossary: @rglos{slur}.
 
-A @notation{slur} is a curve drawn across many notes.  The starting
-note and ending note are marked with @code{(} and @code{)}
-respectively.
+A @notation{slur} is a curve drawn across many notes.  The
+starting note and ending note are marked with @code{(} and
+@code{)} respectively.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 d4( c16) cis( d e c cis d) e( d4)
@@ -704,12 +689,12 @@ d4( c16) cis( d e c cis d) e( d4)
 @cindex phrasing slurs
 @subheading Phrasing slurs
 
-Music glossary: @rglos{phrasing}, @rglos{legato}.
+Music Glossary: @rglos{phrasing}, @rglos{legato}.
 
 Slurs to indicate longer @notation{phrasing} can be entered with
-@code{\(} and @code{\)}.  You can have both @notation{legato} slurs and
-phrasing slurs at the same time, but you cannot have simultaneous legato
-slurs or simultaneous phrasing slurs.
+@code{\(} and @code{\)}.  You can have both @notation{legato}
+slurs and phrasing slurs at the same time, but you cannot have
+simultaneous legato slurs or simultaneous phrasing slurs.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 a8(\( ais b c) cis2 b'2 a4 cis,\)
@@ -720,13 +705,13 @@ a8(\( ais b c) cis2 b'2 a4 cis,\)
 @cindex slurs versus ties
 @subheading Warnings: slurs vs. ties
 
-Music glossary: @rglos{articulation}, @rglos{slur}, @rglos{tie}.
+Music Glossary: @rglos{articulation}, @rglos{slur}, @rglos{tie}.
 
-A @notation{slur} looks like a @notation{tie}, but it has a different
-meaning.  A tie simply makes the first note longer, and can only be
-used on pairs of notes with the same pitch.  Slurs indicate the
-@notation{articulation} of notes, and can be used on larger groups of
-notes.  Slurs and ties can be nested.
+A @notation{slur} looks like a @notation{tie}, but it has a
+different meaning.  A tie simply makes the first note longer, and
+can only be used on pairs of notes with the same pitch.  Slurs
+indicate the @notation{articulation} of notes, and can be used on
+larger groups of notes.  Slurs and ties can be nested.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 c2~( c8 fis fis4 ~ fis2 g2)
@@ -746,7 +731,7 @@ Notation Reference: @ruser{Ties}, @ruser{Slurs},
 @cindex staccato
 @subheading Articulations
 
-Music glossary: @rglos{articulation}.
+Music Glossary: @rglos{articulation}.
 
 Common @notation{articulations} can be added to a note using a
 dash @code{-} and a single character:
@@ -758,20 +743,21 @@ c-. c-- c-> c-^ c-+ c-_
 @cindex fingering
 @subheading Fingerings
 
-Music glossary: @rglos{fingering}.
+Music Glossary: @rglos{fingering}.
 
-Similarly, @notation{fingering} indications can be added to a note using
-a dash (@code{-}) and the digit to be printed:
+
+Similarly, @notation{fingering} indications can be added to a note
+using a dash (@code{-}) and the digit to be printed:
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 c-3 e-5 b-2 a-1
 @end lilypond
 
 Articulations and fingerings are usually placed automatically, but
-you can specify a direction using @code{^} (up) or @code{_}
-(down).  You can also use multiple articulations on the same note.
-However, in most cases it is best to let LilyPond determine the
-articulation directions.
+you can specify a direction by replacing the dash (@code{-}) with
+@code{^} (up) or @code{_} (down).  You can also use multiple
+articulations on the same note.  However, in most cases it is best
+to let LilyPond determine the articulation directions.
 
 @lilypond[verbatim,quote,ragged-right,fragment,relative=2]
 c_-^1 d^. f^4_2-> e^-_+
@@ -779,7 +765,7 @@ c_-^1 d^. f^4_2-> e^-_+
 
 @subheading Dynamics
 
-Music glossary: @rglos{dynamics}, @rglos{crescendo},
+Music Glossary: @rglos{dynamics}, @rglos{crescendo},
 @rglos{decrescendo}.
 
 @notation{Dynamic} signs are made by adding the markings (with a
@@ -807,8 +793,6 @@ c2\< c2\ff\> c2 c2\!
 Notation Reference: @ruser{Articulations},
 @ruser{Fingering instructions}, @ruser{Dynamics}.
 
-Music glossary: @rglos{Dynamics}.
-
 
 @node Adding text
 @subsection Adding text
@@ -837,7 +821,7 @@ Notation Reference: @ruser{Writing text}.
 @node Automatic and manual beams
 @subsection Automatic and manual beams
 
-Music glossary: @rglos{beam}.
+Music Glossary: @rglos{beam}.
 
 @cindex beams, by hand
 All @notation{beams} are drawn automatically:
@@ -868,7 +852,7 @@ Notation Reference: @ruser{Automatic beams}, @ruser{Manual beams}.
 @cindex partial measure
 @subheading Partial measure
 
-Music glossary: @rglos{anacrusis}.
+Music Glossary: @rglos{anacrusis}.
 
 A pickup (or @notation{anacrusis}) is entered with the keyword
 @code{\partial}.  It is followed by a duration: @code{\partial 4}
@@ -883,7 +867,7 @@ f8 c2 d
 @cindex triplets
 @subheading Tuplets
 
-Music glossary: @rglos{note value}, @rglos{triplet}.
+Music Glossary: @rglos{note value}, @rglos{triplet}.
 
 @notation{Tuplets} are made with the @code{\times} keyword.  It
 takes two arguments: a fraction and a piece of music.  The
@@ -903,7 +887,8 @@ Triplets make notes occupy 2/3 of their notated duration, so a
 @cindex appoggiatura
 @subheading Grace notes
 
-Music glossary: @rglos{grace notes}, @rglos{appoggiatura}.
+Music Glossary: @rglos{grace notes}, @rglos{acciacccatura},
+@rglos{appoggiatura}.
 
 @notation{Grace notes} are created with the @code{\grace} command,
 although they can also be created by prefixing a music expression
@@ -969,7 +954,7 @@ one).  The result is another music expression:
 
 @subheading Simultaneous music expressions: multiple staves
 
-Music glossary: @rglos{polyphony}.
+Music Glossary: @rglos{polyphony}.
 
 This technique is useful for @notation{polyphonic} music.  To
 enter music with more voices or more staves, we combine
@@ -1020,8 +1005,8 @@ staff.
 
 This mechanism is similar to mathematical formulas: a big formula
 is created by composing small formulas.  Such formulas are called
-expressions, and their definition is recursive so you can make
-arbitrarily complex and large expressions.  For example,
+expressions, and they can contain other music expressions, so you
+can make arbitrarily complex and large expressions.  For example,
 
 @example
 1
@@ -1080,7 +1065,7 @@ creates a bigger music expression.  In this way it resembles the
 minus sign in mathematics.  The formula @math{(4+5)} is an
 expression, so @math{-(4+5)} is a bigger expression.
 
-Time signatures entered in one staff affects all other
+Time signatures entered in one staff affect all other
 staves@footnote{This behavior may be changed if desired; for
 details, see @ruser{Polymetric notation}.}.  On the other hand,
 the key signature of one staff does @emph{not} affect other
@@ -1089,8 +1074,8 @@ staves.
 @lilypond[verbatim,quote,ragged-right]
 \relative c'' {
   <<
-    \new Staff { \clef treble \time 3/4 c }
-    \new Staff { \clef bass \key d \major c,, }
+    \new Staff { \clef treble \key d \major \time 3/4 c }
+    \new Staff { \clef bass c,, }
   >>
 }
 @end lilypond
@@ -1104,7 +1089,7 @@ staves.
 @cindex staff switch, manual
 @cindex cross staff voice, manual
 
-Music glossary: @rglos{brace}.
+Music Glossary: @rglos{brace}.
 
 Piano music is typeset in two staves connected by a
 @notation{brace}.
@@ -1140,7 +1125,7 @@ Notation Reference: @ruser{Piano music}.
 
 @cindex chords
 
-Music glossary: @rglos{chord}.
+Music Glossary: @rglos{chord}.
 
 @notation{Chords} can be made by surrounding pitches with single
 angle brackets.  Angle brackets are the symbols @code{<} and
@@ -1237,7 +1222,7 @@ This section introduces vocal music and simple song sheets.
 @cindex lyrics
 @cindex songs
 
-Music glossary: @rglos{lyrics}.
+Music Glossary: @rglos{lyrics}.
 
 Here is the start of the melody to a nursery
 rhyme, @qq{Girls and boys come out to play}:
@@ -1274,7 +1259,7 @@ show that the music and lyrics are to occur at the same time.
 @node Aligning lyrics to a melody
 @subsection Aligning lyrics to a melody
 
-Music glossary: @rglos{melisma}, @rglos{extender line}.
+Music Glossary: @rglos{melisma}, @rglos{extender line}.
 
 @cindex melisma
 @cindex extender line
@@ -1301,10 +1286,10 @@ bright as day}.  Let's extend it:
 
 We see the extra lyrics do not align properly with the notes.  The
 word @q{shine} should be sung on two notes, not one.  This is
-called a @notation{melisma}, a single syllable sung to more than one
-note.  There are several ways to spread a syllable over multiple
-notes, the simplest being to add a slur across them (see @ref{Ties
-and slurs}):
+called a @notation{melisma}, a single syllable sung to more than
+one note.  There are several ways to spread a syllable over
+multiple notes, the simplest being to add a slur across them (see
+@ref{Ties and slurs}):
 
 @lilypond[verbatim,quote,ragged-right]
 <<
@@ -1326,10 +1311,10 @@ Here we have also used manual beaming (the square brackets @code{[
 (see @ref{Automatic and manual beams}).
 
 If a syllable extends over several notes or a single very long
-note an @notation{extender line} is usually drawn from the syllable
-extending under all the notes for that syllable.  It is entered as
-two underscores @code{__}.  Here is an example from the first
-three bars of Dido's Lament, from Purcell's Dido and Ã†neas:
+note an @notation{extender line} is usually drawn from the
+syllable extending under all the notes for that syllable.  It is
+entered as two underscores @code{__}.  Here is an example from the
+first three bars of Dido's Lament, from Purcell's Dido and Ã†neas:
 
 @lilypond[verbatim,quote,ragged-right]
 <<
@@ -1647,9 +1632,9 @@ places.  The following example uses the above variables:
 @subsection After the tutorial
 
 After finishing the tutorial, you should probably try writing a
-piece or two.  Start by adding notes to one of the @ref{Templates}.
-If you need any notation that was not covered in the
-tutorial, look at the Notation Reference, starting with
+piece or two.  Start by adding notes to one of the
+@ref{Templates}.  If you need any notation that was not covered in
+the tutorial, look at the Notation Reference, starting with
 @ruser{Musical notation}.  If you want to write for an instrument
 ensemble that is not covered in the templates, take a look at
 @ref{Extending the templates}.
index c03cacf1bf6846ac957ee3a4ea86fd6500e53c01..91c2b3bfcdf3a16c2c301dcc684f538042d31bea 100644 (file)
@@ -588,3 +588,74 @@ FIXME write this.
 
 FIXME discuss \tweak
 
+
+
+FIXME: Move the following words and example into Tweaks or
+somewhere more suitable, leaving just a ref here. -td
+
+Ways of correcting horizontal placings are described fully 
+in the Notation Reference.  
+We introduce just one here, the @code{force-hshift} property of 
+@code{NoteColumn}.  The lower two notes of the first chord (i.e,
+those in the third voice) should not be shifted away from the
+note column of the higher two notes.  To correct this we set
+@code{force-hshift} of these notes to zero.  
+The lower note of the second chord is best placed just to the 
+right of the higher notes.  We achieve this by setting
+@code{force-hshift} of this note to 0.5, ie half a notehead's 
+width to the right of the note column of the higher notes.
+
+Here's the final result:
+    
+@lilypond[quote,verbatim,fragment,ragged-right]
+\new Staff \relative c'' {
+  \key aes \major
+  << 
+    { c2 aes4. bes8 } \\ 
+    { aes2 f4 fes   } \\ 
+    { \voiceFour
+      \once \override NoteColumn #'force-hshift = #0 <ees c>2
+      \once \override NoteColumn #'force-hshift = #0.5 des2 
+    }
+  >> |
+  <c ees aes c>1 |
+}
+@end lilypond
+
+
+
+
+FIXME:
+- There is a section in the manual on \set vs \override (3.3.7),
+which is incomplete.  First it doesn't mention \overrideProperty,
+nor does it mention properties which are not capitalized at all.
+And it should explain that \override should be used to set
+properties with hyphenated names, like auto-knee-gap.  (I had to
+experiment to find out how to do this.)
+
+
+FIXME: moved from fundamental, dumped here at random.
+
+@lilypond[verbatim,quote,ragged-right]
+\new Staff = "main" {
+  \relative g' {
+    r4 g8 g c4 c8 d |
+    e4
+    <<  % Start main and ossia in parallel
+      { r8 f c c }  % Main music
+      \new Staff \with {  % Start ossia staff
+        \remove "Clef_engraver"
+        \remove "Time_signature_engraver"
+        % Reduce size of notes and staff
+        fontSize = #-2
+        \override StaffSymbol #'staff-space = #(magstep -2)
+        alignAboveContext = "main"  % Place above main staff
+      }
+      { s8 f f c }  % Ossia music
+    >>  % End parallel music
+    r4 |
+  }
+}
+@end lilypond
+
+
index 282fe54396b158083197a6e76cd123cbcd01c38a..e610c14589acd399a8ed527801f7a25c8280e7f0 100644 (file)
@@ -44,7 +44,8 @@ not perform such calculations by default; to enable it, use
 \override Score.PaperColumn #'keep-inside-line = ##t
 @end example
 
-To make lyrics avoid barlines as well, use
+To make lyrics avoid bar lines as well, use
+
 @example
 \layout @{
   \context @{
@@ -193,6 +194,8 @@ accented and special characters (such as the heart symbol or slanted quotes),
 simply insert the characters directly into the input file and save
 it with utf-8 encoding.  See @ref{Text encoding}, for more info.
 
+FIXME: quotes.
+
 @lilypond[quote,ragged-right,fragment,verbatim]
 \relative { e4 f e d e f e2 }
 \addlyrics { He said: Ã¢â‚¬Å“Let my peo ple goâ€\9d. }
index e917368e5bf377a45fde8e27d1e8c6ecdba63f42..242ce1f5d39a9b0b9037da700fd41c20092e750f 100644 (file)
@@ -19,6 +19,7 @@ this chapter.
 @menu
 * Suggestions for writing LilyPond files::  
 * When things don't work::      
+* Scores and parts::            
 @end menu
 
 
@@ -675,3 +676,131 @@ example.
 @end itemize
 
 
+
+@node Scores and parts
+@section Scores and parts
+
+TODO: this is really old stuff from the really old tutorial.
+Rewrite, fix, etc.  Or maybe delete entirely.  -gp
+Include section on tags   -td
+and then move to section 5. Working ...  -td
+
+In orchestral music, all notes are printed twice.  Once in a part for
+the musicians, and once in a full score for the conductor.  Variables can
+be used to avoid double work.  The music is entered once, and stored in
+a variable.  The contents of that variable is then used to generate
+both the part and the full score.
+
+It is convenient to define the notes in a special file.  For example,
+suppose that the file @file{horn-music.ly} contains the following part
+of a horn/@/bassoon duo
+
+@example
+hornNotes = \relative c @{
+  \time 2/4
+  r4 f8 a cis4 f e d
+@}
+@end example
+
+@noindent
+Then, an individual part is made by putting the following in a file
+
+@example
+\include "horn-music.ly"
+\header @{
+  instrument = "Horn in F"
+@}
+
+@{
+ \transpose f c' \hornNotes
+@}
+@end example
+
+The line
+
+@example
+\include "horn-music.ly"
+@end example
+
+@noindent
+substitutes the contents of @file{horn-music.ly} at this position in
+the file, so @code{hornNotes} is defined afterwards.  The command
+@code{\transpose f@tie{}c'} indicates that the argument, being
+@code{\hornNotes}, should be transposed by a fifth upwards.  Sounding
+@code{f} is denoted by notated @code{c'}, which corresponds with the
+tuning of a normal French Horn in@tie{}F.  The transposition can be seen
+in the following output
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+In ensemble pieces, one of the voices often does not play for many
+measures.  This is denoted by a special rest, the multi-measure
+rest.  It is entered with a capital @code{R} followed by a duration
+(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note,
+etc.).  By multiplying the
+duration, longer rests can be constructed.  For example, this rest
+takes 3@tie{}measures in 2/4 time
+
+@example
+R2*3
+@end example
+
+When printing the part, multi-rests
+must be condensed.  This is done by setting a run-time variable
+
+@example
+\set Score.skipBars = ##t
+@end example
+
+@noindent
+This command sets the property @code{skipBars} in the
+@code{Score} context to true (@code{##t}).  Prepending the rest and
+this option to the music above, leads to the following result
+
+@lilypond[quote,ragged-right]
+\transpose f c' \relative c {
+  \time 2/4
+  \set Score.skipBars = ##t
+  R2*3
+  r4 f8 a cis4 f e d
+}
+@end lilypond
+
+
+The score is made by combining all of the music together.  Assuming
+that the other voice is in @code{bassoonNotes} in the file
+@file{bassoon-music.ly}, a score is made with
+
+@example
+\include "bassoon-music.ly"
+\include "horn-music.ly"
+
+<<
+  \new Staff \hornNotes
+  \new Staff \bassoonNotes
+>>
+@end example
+
+@noindent
+leading to
+
+@lilypond[quote,ragged-right]
+\relative c <<
+  \new Staff {
+    \time 2/4 R2*3
+    r4 f8 a cis4 f e d
+  }
+  \new Staff {
+    \clef bass
+    r4 d,8 f | gis4 c | b bes |
+    a8 e f4 | g d | gis f
+  }
+>>
+@end lilypond
+
+
index 6e91aa6f955e375c1ac78a94689442581d0f8f83..015f3cb85d9fa761718a9db99b70b6480d009882 100644 (file)
@@ -46,7 +46,7 @@ commands.
   circumstances.
 
 * Inspirational headwords are produced with
-  @lilypondfile[ragged-right,line-width=16\cm,staffsize=16,quote]
+  @lilypondfile[quote,ragged-right,line-width=16\cm,staffsize=16]
   {pitches-headword.ly}
 
 * Avoid long stretches of input code.  Noone is going to read them
diff --git a/THANKS b/THANKS
index 508ff2513f3c4acce48422a91f6b5dc0b0bb1687..cf407e860330afb7bde7a755dc33137d3b050b8e 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -21,6 +21,16 @@ Maximilian Albert
 Milan Zamazal
 Reinhold Kainhofer - musicxml2ly development
 
+GRAND DOCUMENTATION PROJECT
+Trevor Daniels     - main Rewriter
+Eyolf Ã˜strem       - main Rewriter
+Kurt Kroon         - Glossary updates
+Alard de Boer      - Formatting
+Ralph Palmer       - Formatting
+Michael Rasmussen  - Formatting
+Trevor Baca        - Inspirational Headwords
+
+
 TRANSLATORS
 
 Francisco Vila
index 1721ad71872a4484c1e2e7c7cb4b63f97c012007..0ef42e1833bd6974af1cf967ac4abf4150597535 100644 (file)
@@ -94,7 +94,7 @@ splitted_docs_re = re.compile ('Documentation/user/out-www/(lilypond|music-gloss
 # Get rid of symlinks in GNUmakefile.in (local-WWW-post)
 def replace_symlinks_urls (s, prefix):
     if splitted_docs_re.match (prefix):
-        s = re.sub ('(href|src)="(lily-.*?|.*?-flat-.*?)"', '\\1="../\\2"', s)
+        s = re.sub ('(href|src)="(lily-.*?|.*?-flat-.*?|context-example.*?)"', '\\1="../\\2"', s)
     source_path = os.path.join (os.path.dirname (prefix), 'source')
     if not os.path.islink (source_path):
         return s
diff --git a/input/manual/editorial-headword.ly b/input/manual/editorial-headword.ly
new file mode 100644 (file)
index 0000000..12d7fa8
--- /dev/null
@@ -0,0 +1,119 @@
+\version "2.11.34"
+\include "english.ly"
+
+% NR 1.7 Editorial annotations
+
+% Beethoven, Op. 31, No. 3
+% Piano sonata 18, Movt II, Scherzo
+% Measures 9 - 14
+
+\paper {
+  #(define dump-extents #t)
+  indent = 0\mm
+  ragged-right = ##t
+  line-width = 16\cm
+  force-assignment = #""
+  line-width = #(- line-width (* mm  3.000000))
+}
+
+\layout { }
+
+\new PianoStaff <<
+
+   % RH Staff
+   \new Staff {
+      \clef treble
+      \key af \major
+      \time 2/4
+      \set Staff.fingeringOrientations = #'(up up)
+      \set Score.currentBarNumber = #9
+      \partial 8
+      <af''-4 c''>8 \staccato
+      |
+      \set doubleSlurs = ##t
+      <bf''-5 df''-2>4 (
+      <af''-4 c''>8 \staccato )
+      \noBeam
+      c''8-5 \staccato \pp
+      |
+      \set doubleSlurs = ##f
+      bf'8.. (
+      af'32-1
+      g'8-2 ) \staccato
+      f'8-3 \staccato
+      |
+      e'4-2
+      r8
+      \once \override Script #'script-priority = #-100
+      \afterGrace
+         f'8 ( \trill ^ \markup { \finger "3-5-3-5" }
+         { e'16-2 [ f'16-3 ] }
+      |
+      g'8..-5
+      f'32
+      e'8-3 ) \staccato
+      d'8-2 \staccato
+      |
+      c'4-3
+      r8
+      r16.
+      c'32-3 \pp
+      |
+      c'8-2
+      r16.
+      c'32
+      c'8
+      r16.
+      c'32
+      |
+      c'8
+   }
+   
+   % LH Staff
+   \new Staff {
+      \key af \major
+      \clef treble
+      \override Fingering #'direction = #down
+      \set Staff.fingeringOrientations = #'(down down)
+      \partial 8
+      <af' af>8 \staccato
+      \set doubleSlurs = ##t
+      <g'-2 ef'-3>4 (
+      <af' af>8 ) \staccato
+      \noBeam
+      \clef bass
+      c'8-1 \staccato
+      |
+      \set doubleSlurs = ##f
+      bf8.. (
+      af32
+      g8-1 ) \staccato
+      f8 \staccato
+      |
+      e4-3
+      r8
+      \afterGrace
+         f8 ( \trill _ \markup { \finger "2-1" }
+         { e16-3 [ f16 ] }
+      |
+      g8..-1
+      f32
+      e8-3 ) \staccato
+      d8-2 \staccato
+      |
+      c4-3
+      r8
+      r16.
+      c32-3
+      |
+      c8-2
+      r16.
+      c32
+      c8
+      r16.
+      c32
+      |
+      c8
+   }
+
+>>
index abeca9094a4818194dfafff913221889a8cd73e8..7937eb844a64ff5d49c27cd324d13051d9a1d092 100644 (file)
@@ -1,6 +1,135 @@
-\version "2.11.32"
+\version "2.11.34"
 \include "english.ly"
 
-\markup{ Example removed temporarily}
+% NR 1.1 Pitches
 
+% L. v. Beethoven 
+% Piano sonata 21 - Dem Grafen von Waldstein Gewidmet
+% chorale at measures 34 - 40+
 
+\layout {
+   \context {
+      \Score
+      \override SpacingSpanner #'base-shortest-duration = 
+         #(ly:make-moment 1 20) 
+   }
+}
+
+\new PianoStaff <<
+
+   % RH Staff
+   \new Staff <<
+
+      % RH Voice 1
+      \new Voice {
+         \set Score.currentBarNumber = #34
+         \voiceOne
+         gs''2 ( ^ \markup \italic { dolce e molto ligato }
+         fs''4
+         e''4
+         |
+         ds''2
+         cs''2 )
+         |
+         ds''2 (
+         e''4
+         fs''4
+         |
+         <gs'' e''>2
+         <fs'' ds''>2 )
+         |
+         \oneVoice
+         \clef bass
+         <gs' e' b>2 (
+         <fs' ds' a>4
+         <e' cs' gs>4
+         |
+         <ds' bs fs>2
+         <cs' a e>2 )
+         |
+         \voiceOne
+         b2 %(
+         cs'4
+         ds'4
+         |
+         \clef treble
+         <e' gs>4 %)
+      }
+
+      % RH Voice 2
+      \new Voice {
+         \voiceTwo
+         \override Staff.DynamicLineSpanner #'staff-padding = #2.5
+         <e'' b'>2 \p
+         <ds'' a'>4
+         <cs'' gs'>4
+         |
+         <bs' fs'>2
+         e'2
+         |
+         \once \override TextScript #'staff-padding = #2.5
+         <b'! a'>2 _ \markup \italic { cresc. }
+         b'4
+         <e'' cs''>4
+         |
+         b'2. ( \sf \>
+         a'4 ) 
+         |
+         \clef bass
+         s1 \p
+         |
+         s1
+         |
+         <gs e>4 (
+         <a fs>2. )
+         |
+         s4
+      }
+
+   >>
+
+   % LH Staff
+   \new Staff {
+      \override Staff.SustainPedalLineSpanner #'staff-padding = #5
+      <gs' e'>2 ( \sustainDown
+      <fs' ds' b>4 \sustainUp
+      <e' cs'>4
+      |
+      <ds' bs gs>2
+      <cs' a>2 ) \sustainDown
+      |
+      \clef bass
+      \slurDown
+      <ds' b! a fs>2 ( \sustainUp
+      <e' b gs>4
+      <fs' cs' a>4 \sustainDown
+      |
+      \clef treble
+      \voiceOne
+      <<
+         {
+            <gs' e'>2
+            <fs' ds'>2 )
+         }
+         \new Voice {
+            \voiceTwo
+            b1 \sustainUp
+         }
+      >>
+      \oneVoice
+      |
+      %\break
+      \clef bass
+      <gs e>2 ( 
+      <fs ds b,>4
+      <e cs>4
+      |
+      <ds bs, gs,>2
+      <cs a,>2 ) \sustainDown
+      |
+      <b,! b,,!>1 ( \sustainUp
+      |
+      <e e,>4 )
+   }
+
+>>
diff --git a/input/manual/repeats-headword.ly b/input/manual/repeats-headword.ly
new file mode 100644 (file)
index 0000000..3e933c8
--- /dev/null
@@ -0,0 +1,132 @@
+\version "2.11.34"
+\include "english.ly"
+
+% NR 1.7 Repeats
+
+% Beethoven, Op. 57
+% Piano sonata 23 - Dem Grafen Franz von Brunswick Gewidmet
+% Movt II, Andante con moto
+% Measures 9 - 16
+
+\paper {
+  #(define dump-extents #t)
+  indent = 0\mm
+  ragged-right = ##t
+  line-width = 16\cm
+  force-assignment = #""
+  line-width = #(- line-width (* mm  3.000000))
+}
+
+\layout { }
+
+#(set-global-staff-size 18)
+
+\new PianoStaff <<
+
+   \new Staff = RH {
+      \clef bass
+      \key df \major
+      \time 2/4
+      \set Score.currentBarNumber = #9
+      \bar "|:"
+      <af ef c>4 (
+      <af g c>8..
+      <af ef c>32
+      |
+      <af f df>8. )
+      <df' af f>16 (
+      <c' af gf>8
+      <df' af f>8 )
+      |
+      <af ef c>4 (
+      <af gf c>8..
+      <af ef c>32
+      |
+      <af f df>8. )
+      \slurDown
+      <f' af f>16 (
+      <<
+         {
+            \voiceTwo
+            gf8
+            f8 )
+         }
+         \new Voice {
+            \voiceOne
+            <f' af>16
+            ef'16
+            <df' af>8
+         }
+      >>
+      \oneVoice
+      |
+      <af ef c>4 (
+      <af gf c>8..
+      <af ef c>32
+      \clef treble
+      |
+      <af' df' af>8. )
+      <af' f' df'>16 (
+      <af' ef' c'>16
+      gf'16
+      <f' df' af>8 )
+      |
+      \slurUp
+      <ef' bf gf>4
+      \change Staff = LH
+      \voiceOne
+      <af ef c>4
+      |
+      <df' f df>4.
+      \change Staff = RH
+      \oneVoice
+      r8
+      \clef bass
+      \bar ":|"
+   }
+
+   \new Staff = LH {
+      \clef bass
+      \key df \major
+      \time 2/4
+      <af, gf,>4 (
+      <af, ef,>8..
+      <af, gf,>32
+      |
+      <af, f,>8. )
+      <af, df,>16 (
+      <af, ef,>8
+      <af, df,>8 )
+      |
+      <af, gf,>4 (
+      <af, ef,>8..
+      <af, gf,>32
+      |
+      <af, f,>8. )
+      <af, df,>16 (
+      <af, c,>8
+      <af, df,> )
+      |
+      <af, gf,>4 (
+      <af, ef,>8..
+      <af, gf,>32
+      |
+      <f f,>8. )
+      <df df,>16 (
+      <ef ef,>8
+      <f f,>8 )
+      |
+      \voiceTwo
+      gf,4  (
+      af,4 ~ )
+      |
+      af,16. [ ( 
+      gf,32
+      f,16.
+      ef,32 ]
+      df,8 )
+      \oneVoice
+      r8
+   }
+   
+>>
index f1ea43845521cbef460b037fff416f7bf3105177..4c9ff368b81f29004de9cdad8ee273e859fe9184 100644 (file)
-\version "2.11.33"
+\version "2.11.34"
+\include "english.ly"
 
-\layout {
-   \context { \Score
-      \override NonMusicalPaperColumn #'line-break-system-details =
-      #'((alignment-offsets . (0 -14 -32 -46)))
-   }
+% NR 1.2 Rhythms
+
+% Beethoven, Op. 81a
+% Piano sonata 26 - Das Lebewohl
+% Movt II - Abwesenheit
+% Measures 31 - 34
+
+\paper {
+  #(define dump-extents #t)
+  indent = 0\mm
+  ragged-right = ##t
+  line-width = 16\cm
+  force-assignment = #""
+  line-width = #(- line-width (* mm  3.000000))
 }
 
-\new Score <<
-   \set Score.proportionalNotationDuration = #(ly:make-moment 1 96)
-   \set Score.autoBeaming = ##f
-   \set Score.tupletFullLength = ##t
-   \override Score.TupletBracket #'staff-padding = #5
-   \new StaffGroup <<
-      \new RhythmicStaff {
-         \time 4/8
-         c64 [
-         c64
-         c16
-         c64
-         c64
-         c64
-         c64
-         c16
-         c64
-         c64 ]
-         c64 [
-         \set stemLeftBeamCount = #4
-         \set stemRightBeamCount = #4
-         c64
-         \set stemLeftBeamCount = #4
-         \set stemRightBeamCount = #3
-         c64
-         c32.
-         c64
-         c64
-         c64
-         c64
-         c64
-         \set stemRightBeamCount = #4
-         c64
-         \set stemLeftBeamCount = #4
-         \set stemRightBeamCount = #3
-         c64
-         \set stemRightBeamCount = #2
-         c32.
-         \time 1/8
-         \set stemLeftBeamCount = #2
-         c64
-         c64
-         c16
-         c64
-         c64 ]
-      }
-      \new RhythmicStaff {
-         \set stemLeftBeamCount = #0
-         c16 [ ]
-         r8.
-         \times 2/3 {
-            c16 [
-            c16
-            c16
-            c16
-            c16
-            c16
-         }
-         \times 2/3 {
-            c32
-            c32
-            c32
-            c32
-            c32 ]
-            r32
-         }
-      }
-   >>
-   \new StaffGroup <<
-      \new RhythmicStaff {
-         \times 4/5 {
-            \set stemLeftBeamCount = #0
-            c32 [ ]
-            r16.
-            \set stemLeftBeamCount = #2
-            c16. [
-            c32
-            \set stemRightBeamCount = #3
-            c32 ] 
-            r32
-         }
-         \times 8/11 {
-            c16. [
-            c8
-            c8 ]
-         }
-         c8
-      }
-      \new RhythmicStaff {
-         \times 2/3 {
-            c16 [
-            c8. ]
-            c4
-            r4
+\layout { }
+
+#(set-global-staff-size 16)
+\new PianoStaff <<
+
+   % RH Staff
+   \new Staff {
+      \clef treble
+      \key c \minor
+      \time 2/4
+      \set Score.currentBarNumber = #31
+
+      <c'' c'>8 (
+      <g'' g'>8 )
+      ~
+      <g'' g'>8 (
+      <a'' a'>16
+      <f'' f'>16 )
+
+      |
+
+      \afterGrace
+         <f'' f'>8 (
+         {
+            e''16 [
+            f''16
+            e''16
+            d''16 ]
          }
-         \times 4/5 {
-            r16
-            \set stemLeftBeamCount = #2
-            \set stemRightBeamCount = #0
-            c16. [ ]
+      <e''! e'>16
+      <f'' f'>16 )
+      <g'' g'>16 ( \staccato
+      <a'' a'>16 ) \staccato
+      <bf'' bf'>32  (
+      <b'' b'>32 )
+      <b'' b'>32 (
+      <c''' c''>32 )
+
+      |
+
+      b''32 (
+      c'''32
+      d'''32
+      c'''32 )
+      g''8 (
+      ~
+      g''32 [
+      a''64
+      g''64 ) ]
+
+      a''64 ( [
+      g''64 )
+      bf''64 (
+      a''64 ) ]
+
+      bf''64 ( [
+      a''64 )
+      c'''64 (
+      b''64 ) ]
+
+      c'''128 ( [
+      b''128
+      d'''128
+      c'''128
+      f'''64
+      f''64 ) ]
+      
+      |
+
+      \afterGrace
+         <f'' f'>8 (
+         {
+            e''16 [
+            f''16
+            e''16
+            d''16 ]
          }
-      }
-   >>
+      <e''! e'>16
+      <f'' f'>16 )
+      <g'' g'>16 ( \staccato
+      <af''! af'!>16 ) \staccato
+      <bf'' bf'>32  (
+      <b'' b'>32 )
+      <b'' b'>32 (
+      <c''' c''>32 )
+   }
+
+   % LH Staff
+   \new Staff {
+      \clef bass
+      \key c \minor
+      \time 2/4
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      <a f>32
+      c'32
+      <a f>32
+      c'32
+
+      |
+      
+      <bf g>32
+      c'32
+      <bf g>32
+      c'32
+
+      <bf g>32
+      c'32
+      <bf g>32
+      c'32
+
+      <bf g>32
+      c'32
+      <a f>32
+      c'32
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      |
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+
+      <a f>32
+      c'32
+      <a f>32
+      c'32
+
+      |
+      
+      <bf! g>32
+      c'32
+      <bf g>32
+      c'32
+
+      <bf g>32
+      c'32
+      <bf g>32
+      c'32
+
+      <bf g>32
+      c'32
+      <af! f>32
+      c'32
+
+      <g e>32
+      c'32
+      <g e>32
+      c'32
+   }
+
 >>
index 257227dd415dec554af2907f00fe6c80f30e7aa7..8ca7f8c284678bf57d6c6cb77a68374133ab54dd 100644 (file)
@@ -100,6 +100,37 @@ voiceTwo = #(context-spec-music (make-voice-props-set 1) 'Voice)
 voiceThree =#(context-spec-music (make-voice-props-set 2) 'Voice)
 voiceFour = #(context-spec-music (make-voice-props-set 3) 'Voice)
 
+voiceOneStyle = {
+  \override NoteHead #'style = #'diamond
+  \override NoteHead #'color = #red
+  \override Stem #'color = #red
+  \override Beam #'color = #red
+}
+voiceTwoStyle = {
+  \override NoteHead #'style = #'triangle
+  \override NoteHead #'color = #blue
+  \override Stem #'color = #blue
+  \override Beam #'color = #blue
+}
+voiceThreeStyle = {
+  \override NoteHead #'style = #'xcircle
+  \override NoteHead #'color = #green
+  \override Stem #'color = #green
+  \override Beam #'color = #green
+}
+voiceFourStyle = {
+  \override NoteHead #'style = #'cross
+  \override NoteHead #'color = #magenta
+  \override Stem #'color = #magenta
+  \override Beam #'color = #magenta
+}
+voiceNeutralStyle = {
+  \revert NoteHead #'style
+  \revert NoteHead #'color
+  \revert Stem #'color
+  \revert Beam #'color
+}
+
        
 tiny = 
 \set fontSize = #-2
@@ -216,29 +247,4 @@ textSpannerUp = \override TextSpanner #'direction = #UP
 textSpannerDown = \override TextSpanner #'direction = #DOWN
 textSpannerNeutral = \revert TextSpanner #'direction
 
-%  used in the LM -- signficantly clarifies examples.
-voiceOneStyle = {
-  \override NoteHead #'style = #'diamond
-  \override NoteHead #'color = #red
-  \override Stem #'color = #red
-  \override Beam #'color = #red
-}
-voiceTwoStyle = {
-  \override NoteHead #'style = #'triangle
-  \override NoteHead #'color = #blue
-  \override Stem #'color = #blue
-  \override Beam #'color = #blue
-}
-voiceThreeStyle = {
-  \override NoteHead #'style = #'xcircle
-  \override NoteHead #'color = #green
-  \override Stem #'color = #green
-  \override Beam #'color = #green
-}
-voiceNeutralStyle = {
-  \revert NoteHead #'style
-  \revert NoteHead #'color
-  \revert Stem #'color
-  \revert Beam #'color
-}