@c -*- coding: utf-8; mode: texinfo; -*-
@node Example templates
@chapter 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
beautiful printed scores!

@c bad node name for ancient notation to avoid confict
@menu
* Single staff::                
* Piano templates::             
* String quartet::              
* Vocal ensembles::             
* Ancient notation templates::  
* Jazz combo::                  
* Other templates::             
* Lilypond-book templates::     
@end menu


@node Single staff
@section Single staff
@subsection 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,ragged-right]
\version "2.7.39"
melody = \relative c' {
   \clef treble
   \key c \major
   \time 4/4

   a4 b c d
}

\score {
   \new Staff \melody
   \layout { }
   \midi { \tempo 4=60 }
}
@end lilypond

@subsection 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
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,ragged-right]
\version "2.7.39"
melody = \relative c' {
   \clef treble
   \key c \major
   \time 4/4

   a4 b c d
}

text = \lyricmode {
   Aaa Bee Cee Dee
}

\score{
   <<
      \new Voice = "one" {
         \autoBeamOff
         \melody
      }
      \new Lyrics \lyricsto "one" \text
   >>
   \layout { }
   \midi { \tempo 4=60 }
}
@end lilypond

@subsection Notes and chords

Want to prepare a lead sheet with a melody and chords?  Look no further!

@lilypond[quote,verbatim,ragged-right]
\version "2.7.39"
melody = \relative c' {
   \clef treble
   \key c \major
   \time 4/4

   f4 e8[ c] d4 g |
   a2 ~ a2 |
}

harmonies = \chordmode {
   c4:m f:min7 g:maj c:aug d2:dim b:sus
}

\score {
   <<
      \new ChordNames {
         \set chordChanges = ##t
         \harmonies
      }
   \new Staff \melody
   >>

   \layout{ }
   \midi { \tempo 4=60}
}
@end lilypond

@subsection Notes, lyrics, and chords.

This template allows you to prepare a song with melody, words, and chords.

@lilypond[quote,verbatim,ragged-right]
\version "2.7.39"
melody = \relative c' {
   \clef treble
   \key c \major
   \time 4/4

   a b c d
}

text = \lyricmode {
   Aaa Bee Cee Dee
}

harmonies = \chordmode {
   a2 c2
}

\score {
   <<
      \new ChordNames {
         \set chordChanges = ##t
         \harmonies
      }
   \new Voice = "one" {
      \autoBeamOff
      \melody
   }
   \new Lyrics \lyricsto "one" \text
   >>
   \layout { }
   \midi { \tempo 4=60 }
}
@end lilypond

@node Piano templates
@section Piano templates
@subsection Solo piano

Here is a simple piano staff.

@lilypond[quote,verbatim,ragged-right]
\version "2.7.39"
upper = \relative c'' {
   \clef treble
   \key c \major
   \time 4/4

   a b c d
}

lower = \relative c {
   \clef bass
   \key c \major
   \time 4/4

   a2 c
}

\score {
   \new PianoStaff <<
      \set PianoStaff.instrument = "Piano  "
      \new Staff = "upper" \upper
      \new Staff = "lower" \lower
   >>
   \layout { }
   \midi { \tempo 4=60 }
}
@end lilypond

@subsection 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,ragged-right]
\version "2.7.39"
melody = \relative c'' {
   \clef treble
   \key c \major
   \time 4/4

   a b c d
}

text = \lyricmode {
   Aaa Bee Cee Dee
}

upper = \relative c'' {
   \clef treble
   \key c \major
   \time 4/4

   a b c d
}

lower = \relative c {
   \clef bass
   \key c \major
   \time 4/4

   a2 c
}

\score {
   <<
      \new Voice = "mel" {
          \autoBeamOff
          \melody
      }
      \new Lyrics \lyricsto mel \text

      \new PianoStaff <<
         \new Staff = "upper" \upper
         \new Staff = "lower" \lower
      >>
   >>
   \layout {
      \context { \RemoveEmptyStaffContext }
   }
   \midi { \tempo 4=60 }
}
@end lilypond


@subsection 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,ragged-right]
\version "2.7.39"
upper = \relative c'' {
   \clef treble
   \key c \major
   \time 4/4

   a b c d
}

lower = \relative c {
   \clef bass
   \key c \major
   \time 4/4

   a2 c
}

text = \lyricmode {
   Aaa Bee Cee Dee
}

\score {
  \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" }
    \context { \Lyrics \consists "Bar_engraver" }
  }
  \midi { \tempo 4=60 }
}
@end lilypond


@subsection 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,ragged-right]
\version "2.7.39"
upper = \relative c'' {
  \clef treble
  \key c \major
  \time 4/4

  a b c d
}

lower = \relative c {
  \clef bass
  \key c \major
  \time 4/4

  a2 c
}

dynamics = {
  s2\fff\> s4
  s\!\pp
}

pedal = {
  s2\sustainDown s2\sustainUp
}

\score {
  \new PianoStaff <<
    \new Staff = "upper" \upper
    \new Dynamics = "dynamics" \dynamics
    \new Staff = "lower" <<
      \clef bass
      \lower
    >>
    \new Dynamics = "pedal" \pedal
  >>
  \layout {
    \context {
      \type "Engraver_group"
      \name Dynamics
      \alias Voice % So that \cresc works, for example.
      \consists "Output_property_engraver"

      \override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
      pedalSustainStrings = #'("Ped." "*Ped." "*")
      pedalUnaCordaStrings = #'("una corda" "" "tre corde")

      \consists "Piano_pedal_engraver"
      \consists "Script_engraver"
      \consists "Dynamic_engraver"
      \consists "Text_engraver"

      \override TextScript #'font-size = #2
      \override TextScript #'font-shape = #'italic
      \override DynamicText #'extra-offset = #'(0 . 2.5)
      \override Hairpin #'extra-offset = #'(0 . 2.5)

      \consists "Skip_event_swallow_translator"

      \consists "Axis_group_engraver"
    }
    \context {
      \PianoStaff
      \accepts Dynamics
      \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"
      \name Dynamics
      \consists "Piano_pedal_performer"
    }
    \context {
      \PianoStaff
      \accepts Dynamics
    }
  }
}
@end lilypond


@node String quartet
@section String quartet
@subsection String quartet

This template demonstrates a string quartet.  It also uses a @code{\global}
section for time and key signatures.

@lilypond[quote,verbatim,ragged-right]
\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 "|."}}

\score {
   \new StaffGroup <<
      \new Staff << \global \violinOne >>
      \new Staff << \global \violinTwo >>
      \new Staff << \global \viola >>
      \new Staff << \global \cello >>
   >>
   \layout { }
   \midi { \tempo 4=60}
}
@end lilypond

@subsection 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

@subsection 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,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
   >>

   \layout {
      \context {
         % a little smaller so lyrics
         % can be closer to the staff
         \Staff
         \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
      }
   }
}
@end lilypond


@subsection 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

@subsection 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 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,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
  \override Voice.NoteHead #'style = #'neomensural
  \override Voice.Rest #'style = #'neomensural
  \set Staff.printKeyCancellation = ##f
  \cadenzaOn % turn off bar lines
  \skip 1*10
  \once \override Staff.BarLine #'transparent = ##f
  \bar "||"
  \skip 1*1 % need this extra \skip such that clef change comes
            % after bar line
  \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
  \key g \major
  \time 4/4
  \override Voice.NoteHead #'style = #'default
  \override Voice.Rest #'style = #'default

  % FIXME: setting printKeyCancellation back to #t must not
  % occur in the first bar after the incipit.  Dto. for forceClef.
  % Therefore, we need an extra \skip.
  \skip 1*1
  \set Staff.printKeyCancellation = ##t
  \set Staff.forceClef = ##f

  \skip 1*7 % the actual music

  % let finis bar go through all staves
  \override Staff.BarLine #'transparent = ##f

  % finis bar
  \bar "|."
}

discantusNotes = {
  \transpose c' c'' {
    \set Staff.instrument = "Discantus  "

    % incipit
    \clef "neomensural-c1"
    c'1. s2   % two bars
    \skip 1*8 % eight bars
    \skip 1*1 % one bar

    % main
    \clef "treble"
    d'2. d'4 |
    b e' d'2 |
    c'4 e'4.( d'8 c' b |
    a4) b a2 |
    b4.( c'8 d'4) c'4 |
    \once \override NoteHead #'transparent = ##t c'1 |
    b\breve |
  }
}

discantusLyrics = \lyricmode {
  % incipit
  IV-

  % main
  Ju -- bi -- |
  la -- te De -- |
  o, om --
  nis ter -- |
  ra, __ om- |
  "..." |
  -us. |
}

altusNotes = {
  \transpose c' c'' {
    \set Staff.instrument = "Altus  "

    % incipit
    \clef "neomensural-c3"
    r1        % one bar
    f1. s2    % two bars
    \skip 1*7 % seven bars
    \skip 1*1 % one bar

    % main
    \clef "treble"
    r2 g2. e4 fis g | % two bars
    a2 g4 e |
    fis g4.( fis16 e fis4) |
    g1 |
    \once \override NoteHead #'transparent = ##t g1 |
    g\breve |
  }
}

altusLyrics = \lyricmode {
  % incipit
  IV-

  % main
  Ju -- bi -- la -- te | % two bars
  De -- o, om -- |
  nis ter -- ra, |
  "..." |
  -us. |
}

tenorNotes = {
  \transpose c' c' {
    \set Staff.instrument = "Tenor  "

    % incipit
    \clef "neomensural-c4"
    r\longa   % four bars
    r\breve   % two bars
    r1        % one bar
    c'1. s2   % two bars
    \skip 1*1 % one bar
    \skip 1*1 % one bar

    % main
    \clef "treble_8"
    R1 |
    R1 |
    R1 |
    r2 d'2. d'4 b e' | % two bars
    \once \override NoteHead #'transparent = ##t e'1 |
    d'\breve |
  }
}

tenorLyrics = \lyricmode {
  % incipit
  IV-

  % main
  Ju -- bi -- la -- te | % two bars
  "..." |
  -us. |
}

bassusNotes = {
  \transpose c' c' {
    \set Staff.instrument = "Bassus  "

    % incipit
    \clef "bass"
    r\maxima  % eight bars
    f1. s2    % two bars
    \skip 1*1 % one bar

    % main
    \clef "bass"
    R1 |
    R1 |
    R1 |
    R1 |
    g2. e4 |
    \once \override NoteHead #'transparent = ##t e1 |
    g\breve |
  }
}

bassusLyrics = \lyricmode {
  % incipit
  IV-

  % main
  Ju -- bi- |
  "..." |
  -us. |
}

\score {
  \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 {
      \Score
      \override BarLine #'transparent = ##t
      \remove "System_start_delimiter_engraver"
    }
    \context {
      \Voice
      \override Slur #'transparent = ##t
    }
  }
}
@end lilypond



@node Jazz combo
@section 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
concert pitch; LilyPond will automatically transpose the key if the music
is within a @code{\transpose} section.

@c TODO must clean up this jazz combo example
@c   - transpositions stated in names (ie "trumpet in Bb" or whatever)
@c   - one global section, instead of "global" (time) and "key"
@c   - does it need those wierd macros?  sl, nsl, etc.
@c   - maybe ask Amelie Zapf to clean it up, or whether I should just
@c     make whatever changes I feel like.

@c FIXME: produces a warning ; key change merge.
@c The `line-width' argument is for the \header.

@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"
  texidoc = "Jazz tune for combo
             (horns, guitar, piano, bass, drums)."
}

#(set-global-staff-size 16)
\include "english.ly"

%%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%%

sl = {
  \override NoteHead #'style = #'slash
  \override Stem #'transparent = ##t
}
nsl = {
  \revert NoteHead #'style
  \revert Stem #'transparent
}
cr = \override NoteHead #'style = #'cross
ncr = \revert NoteHead #'style

%% insert chord name style stuff here.

jzchords = { }


%%%%%%%%%%%% Keys'n'thangs %%%%%%%%%%%%%%%%%

global = {
  \time 4/4
}

Key = { \key c \major }

% ############ Horns ############

% ------ Trumpet ------
trpt = \transpose c d \relative c'' {
  \Key
  c1 c c
}
trpharmony = \transpose c' d {
  \jzchords
}
trumpet = {
  \global
  \set Staff.instrument = #"Trumpet"
  \clef treble
  \new Staff <<
    \trpt
  >>
}

% ------ Alto Saxophone ------
alto = \transpose c a \relative c' {
  \Key
  c1 c c
}
altoharmony = \transpose c' a {
  \jzchords
}
altosax = {
  \global
  \set Staff.instrument = #"Alto Sax"
  \clef treble
  \new Staff <<
    \alto
  >>
}

% ------ Baritone Saxophone ------
bari = \transpose c a' \relative c {
  \Key
  c1 c \sl d4^"Solo" d d d \nsl
}
bariharmony = \transpose c' a \chordmode {
  \jzchords s1 s d2:maj e:m7
}
barisax = {
  \global
  \set Staff.instrument = #"Bari Sax"
  \clef treble
  \new Staff <<
    \bari
  >>
}

% ------ Trombone ------
tbone = \relative c {
  \Key
  c1 c c
}
tboneharmony = \chordmode {
  \jzchords
}
trombone = {
  \global
  \set Staff.instrument = #"Trombone"
  \clef bass
  \new Staff <<
    \tbone
  >>
}

% ############ Rhythm Section #############

% ------ Guitar ------
gtr = \relative c'' {
  \Key
  c1 \sl b4 b b b \nsl c1
}
gtrharmony = \chordmode {
  \jzchords
  s1 c2:min7+ d2:maj9
}
guitar = {
  \global
  \set Staff.instrument = #"Guitar"
  \clef treble
  \new Staff <<
    \gtr
  >>
}

%% ------ Piano ------
rhUpper = \relative c'' {
  \voiceOne
  \Key
  c1 c c
}
rhLower = \relative c' {
  \voiceTwo
  \Key
  e1 e e
}

lhUpper = \relative c' {
  \voiceOne
  \Key
  g1 g g
}
lhLower = \relative c {
  \voiceTwo
  \Key
  c1 c c
}

PianoRH = {
  \clef treble
  \global
  \set Staff.midiInstrument = "acoustic grand"
  \new Staff <<
    \new Voice = "one" \rhUpper
    \new Voice = "two" \rhLower
  >>
}
PianoLH = {
  \clef bass
  \global
  \set Staff.midiInstrument = "acoustic grand"
  \new Staff <<
    \new Voice = "one" \lhUpper
    \new Voice = "two" \lhLower
  >>
}

piano = {
  \new PianoStaff <<
    \set PianoStaff.instrument = #"Piano"
    \new Staff = "upper" \PianoRH
    \new Staff = "lower" \PianoLH
  >>
}

% ------ Bass Guitar ------
Bass = \relative c {
  \Key
  c1 c c
}
bass = {
  \global
  \set Staff.instrument = #"Bass"
  \clef bass
  \new Staff <<
    \Bass
  >>
}

% ------ Drums ------
up = \drummode {
  hh4 <hh sn>4 hh <hh sn> hh <hh sn>4
  hh4 <hh sn>4
  hh4 <hh sn>4
  hh4 <hh sn>4
}

down = \drummode {
  bd4 s bd s bd s bd s bd s bd s
}

drumContents = {
  \global
  <<
    \set DrumStaff.instrument = #"Drums"
    \new DrumVoice { \voiceOne \up }
    \new DrumVoice { \voiceTwo \down }
  >>
}

%%%%%%%%% It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%

\score {
  <<
    \new StaffGroup = "horns" <<
      \new Staff = "trumpet" \trumpet
      \new Staff = "altosax" \altosax
      \new ChordNames = "barichords" \bariharmony
      \new Staff = "barisax" \barisax
      \new Staff = "trombone" \trombone
    >>

    \new StaffGroup = "rhythm" <<
      \new ChordNames = "chords" \gtrharmony
      \new Staff = "guitar" \guitar
      \new PianoStaff = "piano" \piano
      \new Staff = "bass" \bass
      \new DrumStaff { \drumContents }
    >>
  >>

  \layout {
    \context { \RemoveEmptyStaffContext }
    \context {
      \Score
      \override BarNumber #'padding = #3
      \override RehearsalMark #'padding = #2
      skipBars = ##t
    }
  }

  \midi { \tempo 4 = 75 }
}
@end lilypond

@node Other templates
@section Other templates
@subsection 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
all.  They are used if you want the piece to be listed with different
information in the Mutopia database than you wish to have printed on the
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 `line-width' is for \header.
@lilypond[quote,verbatim,ragged-right,line-width]
\version "2.7.39"
\header {
  dedication = "dedication"
  title = "Title"
  subtitle = "Subtitle"
  subsubtitle = "Subsubtitle"
  composer = "Composer (xxxx-yyyy)"
  opus = "Opus 0"
  piece = "Piece I"
  meter = "meter"
  instrument = "Instrument"
  arranger = "Arranger"
  poet = "Poet"
  texttranslator = "Translator"
  copyright = "public domain"

  % These are headers used by the Mutopia Project
  % http://www.mutopiaproject.org/
  mutopiatitle = ""
  mutopiacomposer = ""
  mutopiapoet = ""
  mutopiainstrument = ""
  date = "composer's dates"
  source = "urtext "
  maintainer = "your name here"
  maintainerEmail = "your email here"
  maintainerWeb = "your home page"
  lastupdated = "2004/Aug/26"
}

\score {
  { c'4 }
  \header {
    piece = "piece1"
    opus = "opus1"
  }
}

\score {
  { c'4 }
  \header {
    piece = "piece2"
    opus = "opus2"
  }
}
@end lilypond

@subsection Gregorian transcription 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,ragged-right]
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{
    \context {
      \Staff
      \remove "Time_signature_engraver"
    }
  }
  \midi { \tempo 4=60 }
}
@end lilypond


@node Lilypond-book templates
@section Lilypond-book templates

These templates are for use with @code{lilypond-book}.  If you're not familiar
with this program, please refer to @ref{LilyPond-book}.

@subsection LaTeX

You can include LilyPond fragments in a LaTeX document.

@example
\documentclass[]@{article@}

\begin@{document@}

Normal LaTeX text.

\begin@{lilypond@}
\relative c'' @{
a4 b c d
@}
\end@{lilypond@}

More LaTeX text.

\begin@{lilypond@}
\relative c'' @{
d4 c b a
@}
\end@{lilypond@}
\end@{document@}
@end example

@subsection Texinfo

You can include LilyPond fragments in Texinfo; in fact, this entire manual
is written in Texinfo.

@example
\input texinfo
@@node Top

Texinfo text

@@lilypond[verbatim,fragment,ragged-right]
a4 b c d
@@end lilypond

More Texinfo text

@@lilypond[verbatim,fragment,ragged-right]
d4 c b a
@@end lilypond

@@bye
@end example
