]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/examples.itely
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / Documentation / user / examples.itely
index 864eb0412d24447c2ba74df1bfe022859db4b602..9bb3dede2af22e9ff3bc89035c8a1f3962271d54 100644 (file)
@@ -1,6 +1,6 @@
-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
 @node Example templates
-@chapter Example templates
+@appendix Example templates
 
 This section of the manual contains templates with the LilyPond score
 already set up for you.  Just add notes, run LilyPond, and enjoy
@@ -8,75 +8,26 @@ beautiful printed scores!
 
 @c bad node name for ancient notation to avoid confict
 @menu
-* Suggestions for writing LilyPond files::
-* Single staff::
-* Piano templates::
-* Small ensembles::
-* Vocal ensembles::
-* Ancient notation templates::
-* Jazz combo::
-* Other templates::
-* Lilypond-book templates::
+* Single staff::                
+* Piano templates::             
+* String quartet::              
+* Vocal ensembles::             
+* Ancient notation templates::  
+* Jazz combo::                  
+* Lilypond-book templates::     
 @end menu
 
-@c TODO explain \score{} ?  Maybe add a note to the tutorial?
-
-@node Suggestions for writing LilyPond files
-@section Suggestions for writing LilyPond files
-
-Now you're ready to begin writing larger LilyPond files -- not just the
-little examples in the tutorial, but whole pieces.  But how should you
-go about doing it?
-
-The best answer is ``however you want to do it.''  As long as LilyPond
-can understand your files and produces the output that you want, it
-doesn't matter what your files look like.  That said, sometimes we
-make mistakes when writing files.  If LilyPond can't understand your
-files, or produces output that you don't like, how do you fix the
-problem?
-
-Here are a few suggestions that can help you to avoid or fix
-problems:
-
-@itemize @bullet
-@item Include @code{\version} numbers in every file.  Note that all
-templates contain a @code{\version "2.3.22"} string.  We
-highly recommend that you always include the @code{\version}, no matter
-how small your file is.  Speaking from personal experience, it's
-quite frustrating to try to remember which version of LilyPond you were
-using a few years ago.  @code{convert-ly} requires you to declare
-which version of LilyPond you used.
-
-@item Include checks: See @ref{Bar check} and @ref{Octave check}.  If you
-include checks every so often, then if you make a mistake, you can pinpoint
-it quicker.  How often is ``every so often''?  It depends on the complexity
-of the music.  For very simple music, perhaps just once or twice.  For
-very complex music, every bar.
-
-@item One bar per line.  If there is anything complicated, either in the music
-itself or in the output you desire, it's often good to write only one bar
-per line.  Saving screen space by cramming eight bars per line just isn't
-worth it if you have to `debug' your files.
-
-@item Comment your files, with either bar numbers (every so often) or
-references to musical themes (``second theme in violins'', ``fourth
-variation'').  You may not need it when you're writing the piece for
-the first time, but if you want to go back and change something two
-or three years later, you won't know how your file is structured if you
-don't comment the file.
-
-@end itemize
 
 @node Single staff
-@section Single staff
-@subsection Notes only
+@appendixsec Single staff
+@appendixsubsec Notes only
 
 The first example gives you a staff with notes, suitable for a solo
 instrument or a melodic fragment.  Cut and paste this into a file,
 add notes, and you're finished!
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -92,7 +43,7 @@ melody = \relative c' {
 }
 @end lilypond
 
-@subsection Notes and lyrics
+@appendixsubsec Notes and lyrics
 
 The next example demonstrates a simple melody with lyrics.  Cut and
 paste, add notes, then words for the lyrics.  This example turns off
@@ -100,8 +51,8 @@ automatic beaming, which is common for vocal parts.  If you want to use
 automatic beaming, you'll have to change or comment out the relevant
 line.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -116,23 +67,23 @@ text = \lyricmode {
 
 \score{
    <<
-      \context Voice = one {
+      \new Voice = "one" {
          \autoBeamOff
          \melody
       }
-      \lyricsto "one" \new Lyrics \text
+      \new Lyrics \lyricsto "one" \text
    >>
    \layout { }
    \midi { \tempo 4=60 }
 }
 @end lilypond
 
-@subsection Notes and chords
+@appendixsubsec Notes and chords
 
 Want to prepare a lead sheet with a melody and chords?  Look no further!
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -148,11 +99,11 @@ harmonies = \chordmode {
 
 \score {
    <<
-      \context ChordNames {
+      \new ChordNames {
          \set chordChanges = ##t
          \harmonies
       }
-   \context Staff = one \melody
+   \new Staff \melody
    >>
 
    \layout{ }
@@ -160,12 +111,12 @@ harmonies = \chordmode {
 }
 @end lilypond
 
-@subsection Notes, lyrics, and chords.
+@appendixsubsec Notes, lyrics, and chords.
 
 This template allows you to prepare a song with melody, words, and chords.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 melody = \relative c' {
    \clef treble
    \key c \major
@@ -184,15 +135,15 @@ harmonies = \chordmode {
 
 \score {
    <<
-      \context ChordNames {
+      \new ChordNames {
          \set chordChanges = ##t
          \harmonies
       }
-   \context Voice = one {
+   \new Voice = "one" {
       \autoBeamOff
       \melody
    }
-   \lyricsto "one" \new Lyrics \text
+   \new Lyrics \lyricsto "one" \text
    >>
    \layout { }
    \midi { \tempo 4=60 }
@@ -200,13 +151,13 @@ harmonies = \chordmode {
 @end lilypond
 
 @node Piano templates
-@section Piano templates
-@subsection Solo piano
+@appendixsec Piano templates
+@appendixsubsec Solo piano
 
 Here is a simple piano staff.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 upper = \relative c'' {
    \clef treble
    \key c \major
@@ -224,23 +175,23 @@ lower = \relative c {
 }
 
 \score {
-   \context PianoStaff <<
+   \new PianoStaff <<
       \set PianoStaff.instrument = "Piano  "
-      \context Staff = upper \upper
-      \context Staff = lower \lower
+      \new Staff = "upper" \upper
+      \new Staff = "lower" \lower
    >>
    \layout { }
    \midi { \tempo 4=60 }
 }
 @end lilypond
 
-@subsection Piano and melody with lyrics
+@appendixsubsec Piano and melody with lyrics
 
 Here is a typical song format: one staff with the melody and lyrics, with
 piano accompaniment underneath.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 melody = \relative c'' {
    \clef treble
    \key c \major
@@ -271,15 +222,15 @@ lower = \relative c {
 
 \score {
    <<
-      \context Voice = mel {
+      \new Voice = "mel" {
           \autoBeamOff
           \melody
       }
-      \lyricsto mel \new Lyrics \text
+      \new Lyrics \lyricsto mel \text
 
-      \context PianoStaff <<
-         \context Staff = upper \upper
-         \context Staff = lower \lower
+      \new PianoStaff <<
+         \new Staff = "upper" \upper
+         \new Staff = "lower" \lower
       >>
    >>
    \layout {
@@ -290,13 +241,13 @@ lower = \relative c {
 @end lilypond
 
 
-@subsection Piano centered lyrics
+@appendixsubsec Piano centered lyrics
 
 Instead of having a full staff for the melody and lyrics, you can place
 the lyrics between the piano staff (and omit the separate melody staff).
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 upper = \relative c'' {
    \clef treble
    \key c \major
@@ -318,14 +269,13 @@ text = \lyricmode {
 }
 
 \score {
-  \context GrandStaff <<
-    \context Staff = upper {
-        \context Voice = singer \upper }
-    \lyricsto "singer" \new Lyrics \text
-    \context Staff = lower <<
+  \new GrandStaff <<
+    \new Staff = upper { \new Voice = "singer" \upper }
+    \new Lyrics \lyricsto "singer" \text
+    \new Staff = lower {
       \clef bass
       \lower
-    >>
+    }
   >>
   \layout {
     \context { \GrandStaff \accepts "Lyrics" }
@@ -336,15 +286,15 @@ text = \lyricmode {
 @end lilypond
 
 
-@subsection Piano centered dynamics
+@appendixsubsec Piano centered dynamics
 
 Many piano scores have the dynamics centered between the two
 staffs.  This requires a bit of tweaking to implement, but
 since the template is right here, you don't have to do the
 tweaking yourself.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 upper = \relative c'' {
   \clef treble
   \key c \major
@@ -371,23 +321,23 @@ pedal = {
 }
 
 \score {
-  \context PianoStaff <<
-    \context Staff=upper \upper
-    \context Dynamics=dynamics \dynamics
-    \context Staff=lower <<
+  \new PianoStaff <<
+    \new Staff = "upper" \upper
+    \new Dynamics = "dynamics" \dynamics
+    \new Staff = "lower" <<
       \clef bass
       \lower
     >>
-    \context Dynamics=pedal \pedal
+    \new Dynamics = "pedal" \pedal
   >>
   \layout {
     \context {
-      \type "Engraver_group_engraver"
+      \type "Engraver_group"
       \name Dynamics
       \alias Voice % So that \cresc works, for example.
       \consists "Output_property_engraver"
 
-      minimumVerticalExtent = #'(-1 . 1)
+      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
       pedalSustainStrings = #'("Ped." "*Ped." "*")
       pedalUnaCordaStrings = #'("una corda" "" "tre corde")
 
@@ -411,13 +361,18 @@ pedal = {
       \override VerticalAlignment #'forced-distance = #7
     }
   }
+}
+\score {
+  \new PianoStaff <<
+    \new Staff = "upper" << \upper \dynamics >>
+    \new Staff = "lower" << \lower \dynamics >>
+    \new Dynamics = "pedal" \pedal
+  >>
   \midi {
     \context {
-      \type "Performer_group_performer"
+      \type "Performer_group"
       \name Dynamics
       \consists "Piano_pedal_performer"
-      \consists "Span_dynamic_performer"
-      \consists "Dynamic_performer"
     }
     \context {
       \PianoStaff
@@ -428,45 +383,47 @@ pedal = {
 @end lilypond
 
 
-@node Small ensembles
-@section Small ensembles
-@subsection String quartet
+@node String quartet
+@appendixsec String quartet
+@appendixsubsec String quartet
 
 This template demonstrates a string quartet.  It also uses a @code{\global}
 section for time and key signatures.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
-global = {
-   \time 4/4
-   \key c \major
-}
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 
-violinOne = \relative c''{
-   \set Staff.instrument = "Violin 1  "
-   c2 d
-   e1
+global= {
+  \time 4/4
+  \key c \major
 }
 
-violinTwo = \relative c''{
-   \set Staff.instrument = "Violin 2  "
-   g2 g
-   g1
-}
+violinOne = \new Voice { \relative c''{
+  \set Staff.instrument = "Violin 1 "
 
-viola = \relative c'{
-   \set Staff.instrument = "Viola  "
-   \clef alto
-   e2 d
-   c1
-}
+  c2 d e1
 
-cello = \relative c'{
-   \set Staff.instrument = "Cello  "
-   \clef bass
-   c2 g
-   c,1
-}
+\bar "|." }}
+violinTwo = \new Voice { \relative c''{
+  \set Staff.instrument = "Violin 2 "
+
+  g2 f e1
+
+\bar "|." }}
+viola = \new Voice { \relative c' {
+  \set Staff.instrument = "Viola "
+  \clef alto
+
+  e2 d c1
+
+\bar "|." }}
+cello = \new Voice { \relative c' {
+  \set Staff.instrument = "Cello     "
+  \clef bass
+
+  c2 b a1
+
+\bar "|."}}
 
 \score {
    \new StaffGroup <<
@@ -480,19 +437,125 @@ cello = \relative c'{
 }
 @end lilypond
 
+@appendixsubsec String quartet parts
+
+The previous example produces a nice string quartet, but what if you
+needed to print parts?  This template demonstrates how to use the
+@code{\tag} feature to easily split a piece into individual parts.
+
+You need to split this template into separate files; the filenames
+are contained in comments at the beginning of each file.  @code{piece.ly}
+contains all the music definitions.  The other files -- @code{score.ly},
+@code{vn1.ly}, @code{vn2.ly}, @code{vla.ly}, and
+@code{vlc.ly} -- produce the appropiate part.
+
+@verbatim
+%%%%% piece.ly
+\version "2.7.39"
+
+global= {
+  \time 4/4
+  \key c \major
+}
+
+Violinone = \new Voice { \relative c''{
+  \set Staff.instrument = "Violin 1 "
+
+  c2 d e1
+
+\bar "|." }}   %*********************************
+Violintwo = \new Voice { \relative c''{
+  \set Staff.instrument = "Violin 2 "
+
+  g2 f e1
+
+\bar "|." }}   %*********************************
+Viola = \new Voice { \relative c' {
+  \set Staff.instrument = "Viola "
+  \clef alto
+
+  e2 d c1
+
+\bar "|." }}   %*********************************
+Cello = \new Voice { \relative c' {
+  \set Staff.instrument = "Cello     "
+  \clef bass
+
+  c2 b a1
+
+\bar "|."}}   %**********************************
+
+music = {
+  <<
+    \tag #'score \tag #'vn1 \new Staff { << \global \Violinone >> }
+    \tag #'score \tag #'vn2 \new Staff { << \global \Violintwo>> }
+    \tag #'score \tag #'vla \new Staff { << \global \Viola>> }
+    \tag #'score \tag #'vlc \new Staff { << \global \Cello>> }
+  >>
+}
+
+
+
+%%%%% score.ly
+\version "2.7.39"
+\include "piece.ly"
+#(set-global-staff-size 14)
+\score {
+  \new StaffGroup \keepWithTag #'score \music
+  \layout { }
+  \midi { \tempo 4 = 60 }
+}
+
+
+%%%%% vn1.ly
+\version "2.7.39"
+\include "piece.ly"
+\score {
+  \keepWithTag #'vn1 \music
+  \layout { }
+}
+
+
+%%%%% vn2.ly
+\version "2.7.39"
+\include "piece.ly"
+\score {
+  \keepWithTag #'vn2 \music
+  \layout { }
+}
+
+
+%%%%% vla.ly
+\version "2.7.39"
+\include "piece.ly"
+\score {
+  \keepWithTag #'vla \music
+  \layout { }
+}
+
+
+%%%%% vlc.ly
+\version "2.7.39"
+\include "piece.ly"
+\score {
+  \keepWithTag #'vlc \music
+  \layout { }
+}
+@end verbatim
+
 
 @node Vocal ensembles
-@section Vocal ensembles
+@appendixsec Vocal ensembles
 
-@subsection SATB vocal score
+@appendixsubsec SATB vocal score
 
 Here is a standard four-part SATB vocal score.  With larger ensembles,
 it's often useful to include a section which is included in all
 parts.  For example, the time signature and key signatures are almost
 always the same for all parts.
 
-@lilypond[quote,verbatim,raggedright]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
 global = {
    \key c \major
    \time 4/4
@@ -527,24 +590,25 @@ bassWords = \lyricmode {
 }
 
 \score {
-   \context ChoirStaff <<
-      \context Lyrics = sopranos { s1 }
-      \context Staff = women <<
-         \context Voice =
-           sopranos { \voiceOne << \global \sopMusic >> }
-         \context Voice =
-           altos { \voiceTwo << \global \altoMusic >> }
+   \new ChoirStaff <<
+      \new Lyrics = sopranos { s1 }
+      \new Staff = women <<
+         \new Voice =
+           "sopranos" { \voiceOne << \global \sopMusic >> }
+         \new Voice =
+           "altos" { \voiceTwo << \global \altoMusic >> }
       >>
-      \context Lyrics = altos { s1 }
-      \context Lyrics = tenors { s1 }
-      \context Staff = men <<
+      \new Lyrics = "altos" { s1 }
+      \new Lyrics = "tenors" { s1 }
+      \new Staff = men <<
          \clef bass
-         \context Voice =
-           tenors { \voiceOne <<\global \tenorMusic >> }
-         \context Voice =
-           basses { \voiceTwo <<\global \bassMusic >> }
+         \new Voice =
+           "tenors" { \voiceOne <<\global \tenorMusic >> }
+         \new Voice =
+           "basses" { \voiceTwo <<\global \bassMusic >> }
       >>
-      \context Lyrics = basses { s1 }
+      \new Lyrics = basses { s1 }
+
       \context Lyrics = sopranos \lyricsto sopranos \sopWords
       \context Lyrics = altos \lyricsto altos \altoWords
       \context Lyrics = tenors \lyricsto tenors \tenorWords
@@ -555,33 +619,134 @@ bassWords = \lyricmode {
       \context {
          % a little smaller so lyrics
          % can be closer to the staff
-         \Staff minimumVerticalExtent = #'(-3 . 3)
+         \Staff
+         \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
       }
    }
 }
 @end lilypond
 
 
+@appendixsubsec SATB vocal score and automatic piano reduction
+
+This template adds an automatic piano reduction to the SATB vocal
+score.  This demonstrates one of the strengths of LilyPond -- you
+can use a music definition more than once.  If you make any changes
+to the vocal notes (say, tenorMusic), then the changes will also
+apply to the piano reduction.
+
+@lilypond[quote,verbatim,ragged-right]
+\version "2.7.39"
+global = {
+   \key c \major
+   \time 4/4
+}
+
+sopMusic = \relative c'' {
+   c4 c c8[( b)] c4
+}
+sopWords = \lyricmode {
+   hi hi hi hi
+}
+
+altoMusic = \relative c' {
+   e4 f d e
+}
+altoWords =\lyricmode {
+   ha ha ha ha
+}
+
+tenorMusic = \relative c' {
+   g4 a f g
+}
+tenorWords = \lyricmode {
+   hu hu hu hu
+}
+
+bassMusic = \relative c {
+   c4 c g c
+}
+bassWords = \lyricmode {
+   ho ho ho ho
+}
+
+\score {
+  <<
+    \new ChoirStaff <<
+      \new Lyrics = sopranos { s1 }
+      \new Staff = women <<
+        \new Voice =
+          "sopranos" { \voiceOne << \global \sopMusic >> }
+        \new Voice =
+          "altos" { \voiceTwo << \global \altoMusic >> }
+      >>
+      \new Lyrics = "altos" { s1 }
+      \new Lyrics = "tenors" { s1 }
+      \new Staff = men <<
+        \clef bass
+        \new Voice =
+          "tenors" { \voiceOne <<\global \tenorMusic >> }
+        \new Voice =
+          "basses" { \voiceTwo <<\global \bassMusic >> }
+      >>
+      \new Lyrics = basses { s1 }
+
+      \context Lyrics = sopranos \lyricsto sopranos \sopWords
+      \context Lyrics = altos \lyricsto altos \altoWords
+      \context Lyrics = tenors \lyricsto tenors \tenorWords
+      \context Lyrics = basses \lyricsto basses \bassWords
+    >>
+  \new PianoStaff <<
+    \new Staff <<
+      \set Staff.printPartCombineTexts = ##f
+      \partcombine
+      << \global \sopMusic >>
+      << \global \altoMusic >>
+    >>
+    \new Staff <<
+      \clef bass
+      \set Staff.printPartCombineTexts = ##f
+      \partcombine
+      << \global \tenorMusic >>
+      << \global \bassMusic >>
+    >>
+   >>
+  >>
+  \layout {
+    \context {
+      % a little smaller so lyrics
+      % can be closer to the staff
+      \Staff
+        \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
+    }
+  }
+}
+@end lilypond
+
+
 @c bad node name to avoid node name confict
 @node Ancient notation templates
-@section Ancient notation templates
+@appendixsec Ancient notation templates
 
-@subsection Transcription of mensural music
+@appendixsubsec Transcription of mensural music
 
 When transcribing mensural music, an incipit at the beginning of the
 piece is useful to indicate the original key and tempo.  While today
 musicians are used to bar lines in order to faster recognize rhythmic
-patterns, bar lines where not yet invented during the period of
+patterns, bar lines were not yet invented during the period of
 mensural music; in fact, the meter often changed after every few
 notes.  As a compromise, bar lines are often printed between the
 staves rather than on the staves.
 
-@lilypond[quote,verbatim,linewidth=11.0\cm]
-\version "2.3.22"
+@lilypond[quote,verbatim,line-width=11.0\cm]
+\version "2.7.39"
 
 global = {
+  \set Score.skipBars = ##t
+
   % incipit
   \once \override Score.SystemStartBracket #'transparent = ##t
+  \override Score.SpacingSpanner #'spacing-increment = #1.0 % tight spacing
   \key f \major
   \time 2/2
   \once \override Staff.TimeSignature #'style = #'neomensural
@@ -597,6 +762,7 @@ global = {
   \bar ""
 
   % main
+  \revert Score.SpacingSpanner #'spacing-increment % CHECK: no effect?
   \cadenzaOff % turn bar lines on again
   \once \override Staff.Clef #'full-size-change = ##t
   \set Staff.forceClef = ##t
@@ -612,13 +778,7 @@ global = {
   \set Staff.printKeyCancellation = ##t
   \set Staff.forceClef = ##f
 
-  \skip 1*5
-
-  % last bar contains a brevis (i.e., spans 2 bars);
-  % therefore do not draw this particular bar
-  \cadenzaOn
-  \skip 1*2
-  \cadenzaOff
+  \skip 1*7 % the actual music
 
   % let finis bar go through all staves
   \override Staff.BarLine #'transparent = ##f
@@ -764,23 +924,23 @@ bassusLyrics = \lyricmode {
 }
 
 \score {
-  \context StaffGroup = choirStaff <<
-    \context Voice =
-      discantusNotes << \global \discantusNotes >>
-    \context Lyrics =
-      discantusLyrics \lyricsto discantusNotes { \discantusLyrics }
-    \context Voice =
-      altusNotes << \global \altusNotes >>
-    \context Lyrics =
-      altusLyrics \lyricsto altusNotes { \altusLyrics }
-    \context Voice =
-      tenorNotes << \global \tenorNotes >>
-    \context Lyrics =
-      tenorLyrics \lyricsto tenorNotes { \tenorLyrics }
-    \context Voice =
-      bassusNotes << \global \bassusNotes >>
-    \context Lyrics =
-      bassusLyrics \lyricsto bassusNotes { \bassusLyrics }
+  \new StaffGroup = choirStaff <<
+    \new Voice =
+      "discantusNotes" << \global \discantusNotes >>
+    \new Lyrics =
+      "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
+    \new Voice =
+      "altusNotes" << \global \altusNotes >>
+    \new Lyrics =
+      "altusLyrics" \lyricsto altusNotes { \altusLyrics }
+    \new Voice =
+      "tenorNotes" << \global \tenorNotes >>
+    \new Lyrics =
+      "tenorLyrics" \lyricsto tenorNotes { \tenorLyrics }
+    \new Voice =
+      "bassusNotes" << \global \bassusNotes >>
+    \new Lyrics =
+      "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
   >>
   \layout {
     \context {
@@ -797,9 +957,57 @@ bassusLyrics = \lyricmode {
 @end lilypond
 
 
+@appendixsubsec Gregorian transcription template
+
+This example demonstrates how to do modern transcription of Gregorian
+music.  Gregorian music has no measure, no stems; it uses only half and
+quarter noteheads, and special marks, indicating rests of different length.
+
+@lilypond[quote,verbatim,ragged-right]
+\include "gregorian-init.ly"
+\version "2.8.0"
+
+chant = \relative c' {
+  \set Score.timing = ##f
+  f4 a2 \divisioMinima
+  g4 b a2 f2 \divisioMaior
+  g4( f) f( g) a2 \finalis
+}
+
+verba = \lyricmode {
+  Lo -- rem ip -- sum do -- lor sit a -- met
+}
+
+\score {
+  \new Staff <<
+    \new Voice = "melody" {
+      \chant
+    }
+    \new Lyrics = "one" \lyricsto melody \verba
+  >>
+
+  \layout {
+    \context {
+      \Staff
+      \remove "Time_signature_engraver"
+      \remove "Bar_engraver"
+      \override Stem #'transparent = ##t
+    }
+    \context {
+      \Voice
+      \override Stem #'length = #0
+    }
+    \context {
+      \Score
+      barAlways = ##t
+    }
+  }
+}
+@end lilypond
+
 
 @node Jazz combo
-@section Jazz combo
+@appendixsec Jazz combo
 
 This is a much more complicated template, for a jazz ensemble.  Note that all
 instruments are notated in @code{\key c \major}.  This refers to the key in
@@ -814,18 +1022,22 @@ is within a @code{\transpose} section.
 @c     make whatever changes I feel like.
 
 @c FIXME: produces a warning ; key change merge.
-@c The `linewidth' argument is for the \header.
+@c The `line-width' argument is for the \header.
 
-@lilypond[quote,verbatim,raggedright,linewidth]
-\version "2.3.22"
+@lilypond[quote,verbatim,ragged-right,line-width]
+\version "2.7.39"
 \header {
   title = "Song"
   subtitle = "(tune)"
   composer = "Me"
   meter = "moderato"
   piece = "Swing"
-  tagline = "LilyPond example file by Amelie Zapf,
-             Berlin 07/07/2003"
+  tagline = \markup {
+    \column {
+      "LilyPond example file by Amelie Zapf,"
+      "Berlin 07/07/2003"
+    }
+  }
   texidoc = "Jazz tune for combo
              (horns, guitar, piano, bass, drums)."
 }
@@ -873,7 +1085,7 @@ trumpet = {
   \global
   \set Staff.instrument = #"Trumpet"
   \clef treble
-  \context Staff <<
+  <<
     \trpt
   >>
 }
@@ -890,7 +1102,7 @@ altosax = {
   \global
   \set Staff.instrument = #"Alto Sax"
   \clef treble
-  \context Staff <<
+  <<
     \alto
   >>
 }
@@ -907,7 +1119,7 @@ barisax = {
   \global
   \set Staff.instrument = #"Bari Sax"
   \clef treble
-  \context Staff <<
+  <<
     \bari
   >>
 }
@@ -924,7 +1136,7 @@ trombone = {
   \global
   \set Staff.instrument = #"Trombone"
   \clef bass
-  \context Staff <<
+  <<
     \tbone
   >>
 }
@@ -944,7 +1156,7 @@ guitar = {
   \global
   \set Staff.instrument = #"Guitar"
   \clef treble
-  \context Staff <<
+  <<
     \gtr
   >>
 }
@@ -976,26 +1188,26 @@ PianoRH = {
   \clef treble
   \global
   \set Staff.midiInstrument = "acoustic grand"
-  \context Staff <<
-    \context Voice = one \rhUpper
-    \context Voice = two \rhLower
+  <<
+    \new Voice = "one" \rhUpper
+    \new Voice = "two" \rhLower
   >>
 }
 PianoLH = {
   \clef bass
   \global
   \set Staff.midiInstrument = "acoustic grand"
-  \context Staff <<
-    \context Voice = one \lhUpper
-    \context Voice = two \lhLower
+  <<
+    \new Voice = "one" \lhUpper
+    \new Voice = "two" \lhLower
   >>
 }
 
 piano = {
-  \context PianoStaff <<
+  <<
     \set PianoStaff.instrument = #"Piano"
-    \context Staff = upper \PianoRH
-    \context Staff = lower \PianoLH
+    \new Staff = "upper" \PianoRH
+    \new Staff = "lower" \PianoLH
   >>
 }
 
@@ -1008,7 +1220,7 @@ bass = {
   \global
   \set Staff.instrument = #"Bass"
   \clef bass
-  \context Staff <<
+  <<
     \Bass
   >>
 }
@@ -1038,19 +1250,19 @@ drumContents = {
 
 \score {
   <<
-    \context StaffGroup = horns <<
-      \context Staff = trumpet \trumpet
-      \context Staff = altosax \altosax
-      \context ChordNames = barichords \bariharmony
-      \context Staff = barisax \barisax
-      \context Staff = trombone \trombone
+    \new StaffGroup = "horns" <<
+      \new Staff = "trumpet" \trumpet
+      \new Staff = "altosax" \altosax
+      \new ChordNames = "barichords" \bariharmony
+      \new Staff = "barisax" \barisax
+      \new Staff = "trombone" \trombone
     >>
 
-    \context StaffGroup = rhythm <<
-      \context ChordNames = chords \gtrharmony
-      \context Staff = guitar \guitar
-      \context PianoStaff = piano \piano
-      \context Staff = bass \bass
+    \new StaffGroup = "rhythm" <<
+      \new ChordNames = "chords" \gtrharmony
+      \new Staff = "guitar" \guitar
+      \new PianoStaff = "piano" \piano
+      \new Staff = "bass" \bass
       \new DrumStaff { \drumContents }
     >>
   >>
@@ -1069,9 +1281,15 @@ drumContents = {
 }
 @end lilypond
 
-@node Other templates
-@section Other templates
-@subsection All headers
+@ignore
+
+This isn't very useful, and only duplicates material in
+"global issues".  And if this info changes, this section often
+gets forgotten.
+
+@no de Other templates
+@se ction Other templates
+@su bsection All headers
 
 This template displays all available headers.  Some of them are only
 used in the Mutopia project; they don't affect the printed output at
@@ -1081,9 +1299,9 @@ music.  For example, Mutopia lists the composer of the famous D major
 violin concerto as TchaikovskyPI, whereas perhaps you wish to print
 "Petr Tchaikowski" on your music.
 
-@ The `linewidth' is for \header.
-@lilypond[quote,verbatim,raggedright,linewidth]
-\version "2.3.22"
+@ The `line-width' is for \header.
+@li lypond[quote,verbatim,ragged-right,line-width]
+\version "2.7.39"
 \header {
   dedication = "dedication"
   title = "Title"
@@ -1092,6 +1310,7 @@ violin concerto as TchaikovskyPI, whereas perhaps you wish to print
   composer = "Composer (xxxx-yyyy)"
   opus = "Opus 0"
   piece = "Piece I"
+  meter = "meter"
   instrument = "Instrument"
   arranger = "Arranger"
   poet = "Poet"
@@ -1113,134 +1332,37 @@ violin concerto as TchaikovskyPI, whereas perhaps you wish to print
 }
 
 \score {
+  { c'4 }
   \header {
     piece = "piece1"
     opus = "opus1"
   }
-  { c'4 }
 }
 
 \score {
+  { c'4 }
   \header {
     piece = "piece2"
     opus = "opus2"
   }
-  { c'4 }
-}
-@end lilypond
-
-@subsection Gregorian template
-
-This example demonstrates how to do modern transcriptions of Gregorian
-music.  Gregorian music has no measure, no stems; it uses only half and
-quarter notes, and two types of barlines, a short one indicating a rest,
-and a second one indicating a breath mark.
-
-@lilypond[quote,verbatim,raggedright]
-barOne = { \once \override Staff.BarLine #'bar-size = #2
-  \bar "|" }
-barTwo = { \once \override Staff.BarLine #'extra-offset = #'(0 . 2)
-  \once \override Staff.BarLine #'bar-size = #2
-  \bar "|" }
-chant = \relative c' {
-  \set Score.timing = ##f
-  \override Staff.Stem #'transparent = ##t
-
-  f4 a2 \barTwo
-  g4 a2 f2 \barOne
-  g4( f) f( g) a2
-}
-\score {
-  \chant
-  \layout{ }
-  \midi { \tempo 4=60 }
-}
-@end lilypond
-
-@subsection Bagpipe music
-
-Here is an example of bagpipe music.  It demonstrates a big strength of
-LilyPond, compared to graphical score editors: in LilyPond, you can
-very easily reuse small segments of music without writing them out
-completely.  This template defines a large number of small segments
-(@code{taor}, @code{grip}, @code{thrd}, etc), which can be reused easily.
-
-@c TODO - replace Bagpipe template with Andrew McNabb's work?
-
-@lilypond[quote,verbatim]
-taor = { \grace { g32[ d' g e'] } }
-grip = { \grace { g32[ b g ]    } }
-thrd = { \grace { g32[ d' c']   } }
-birl = { \grace { g32[ a g]     } }
-gstd = { \grace { g'32[ d' g]   } }
-fgg  = { \grace { f32[ g'32]    } }
-dblb = { \grace { g'32[ b d']   } }
-dblc = { \grace { g'32[ c' d']  } }
-dble = { \grace { g'32[ e' f']  } }
-dblf = { \grace { g'32[ f' g']  } }
-dblg = { \grace { g'32[ f']     } }
-dbla = { \grace { a'32[ g']     } }
-lgg  = { \grace { g32  } }
-lag  = { \grace { a32  } }
-cg   = { \grace { c'32 } }
-eg   = { \grace { e'32 } }
-gg   = { \grace { g'32 } }
-dg   = { \grace { d'32 } }
-hag  = { \grace { a'32 } }
-gefg = { \grace { g'32[ e' f']  } }
-efg  = { \grace { e'32[ f']     } }
-gdcg = { \grace { g'32[ d' c']  } }
-gcdg = { \grace { g'32[ c' d']  } }
-
-\transpose a a' {
-  #(add-grace-property 'Voice 'Stem 'length 6)
-  \time 6/8 \partial 4
-  \tieUp
-  \slurUp
-
-  f'4 |
-  \gg f'4 e'8 \thrd d'4. |
-  \eg a4.(a4) d'8 |
-  \gg d'4 f'8 \dble e'4. ( | \noBreak
-  e'8) d'4 \gg d'4 e'8 |
-
-  \break
-  \time 9/8
-  \dblf f'2.( f'4) d'8 |
-  \time 6/8
-  \dblg g'4 a'8 \gg a'4. |
-  \thrd d'4.( d'4) \eg a8 |
-  \time 9/8
-  \dble e'4 \lag e'8 \gg e'16[ d'8. e'8] \gg f'4 g'8 |
-
-  \break
-  \time 6/8
-  \gg f'4 e'8 \thrd d'4. |
-  \eg a4.( a4) d'8 |
-  \dblg g'4 a'8 \gg a'4. |
-  \thrd d'4.( d'4) f'8 |
-
-  \break
-  \dblg g'4 e'8( e'8) \dblf f'8.[ e'16] |
-  \thrd d'4.( d'4) \cg d'8 |
-  \gg c'4 e'8 \thrd d'4.( |
-  d'4.) \gdcg d'4.
 }
 @end lilypond
+@end ignore
 
 
 @node Lilypond-book templates
-@section Lilypond-book templates
+@appendixsec Lilypond-book templates
 
 These templates are for use with @code{lilypond-book}.  If you're not familiar
-with this program, please refer to @ref{Integrating text and music}.
+with this program, please refer to @ref{LilyPond-book}.
 
-@subsection LaTeX
+@appendixsubsec LaTeX
 
 You can include LilyPond fragments in a LaTeX document.
 
 @example
 \documentclass[]@{article@}
+
 \begin@{document@}
 
 Normal LaTeX text.
@@ -1261,7 +1383,7 @@ d4 c b a
 \end@{document@}
 @end example
 
-@subsection Texinfo
+@appendixsubsec Texinfo
 
 You can include LilyPond fragments in Texinfo; in fact, this entire manual
 is written in Texinfo.
@@ -1272,13 +1394,13 @@ is written in Texinfo.
 
 Texinfo text
 
-@@lilypond[verbatim,fragment,raggedright]
+@@lilypond[verbatim,fragment,ragged-right]
 a4 b c d
 @@end lilypond
 
 More Texinfo text
 
-@@lilypond[verbatim,fragment,raggedright]
+@@lilypond[verbatim,fragment,ragged-right]
 d4 c b a
 @@end lilypond