+@c -*- coding: latin-1; mode: texinfo; -*-
@node Example templates
@chapter Example templates
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
+* Suggestions for writing LilyPond files::
* Single staff::
+* Piano templates::
+* String quartet::
+* Vocal ensembles::
+* Ancient notation templates::
+* Jazz combo::
+* Other templates::
+* Lilypond-book templates::
@end menu
-@c more sections to come soon.
+@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.4.0"} 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
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[verbatim]
-
+@lilypond[quote,verbatim,raggedright]
+\version "2.4.0"
melody = \relative c' {
-\clef treble
-\key c \major
-\time 4/4
+ \clef treble
+ \key c \major
+ \time 4/4
- a4 b c d
+ a4 b c d
}
-\score{
- \new Staff \melody
- \paper { }
- \midi { \tempo 4=60 }
+\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, you'll have to change or comment out the relevant
line.
-@lilypond[verbatim]
-
+@lilypond[quote,verbatim,raggedright]
+\version "2.4.0"
melody = \relative c' {
-\clef treble
-\key c \major
-\time 4/4
+ \clef treble
+ \key c \major
+ \time 4/4
- a4 b c d
+ a4 b c d
}
-text = \lyrics {
- Aaa Bee Cee Dee
+text = \lyricmode {
+ Aaa Bee Cee Dee
}
\score{
- <<
- \context Voice = one {
- \set Staff.autoBeaming = ##f
+ <<
+ \context Voice = one {
+ \autoBeamOff
+ \melody
+ }
+ \lyricsto "one" \new Lyrics \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,raggedright]
+\version "2.4.0"
+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 {
+ <<
+ \context ChordNames {
+ \set chordChanges = ##t
+ \harmonies
+ }
+ \context Staff = one \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,raggedright]
+\version "2.4.0"
+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 {
+ <<
+ \context ChordNames {
+ \set chordChanges = ##t
+ \harmonies
+ }
+ \context Voice = one {
+ \autoBeamOff
\melody
+ }
+ \lyricsto "one" \new Lyrics \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,raggedright]
+\version "2.4.0"
+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 {
+ \context PianoStaff <<
+ \set PianoStaff.instrument = "Piano "
+ \context Staff = upper \upper
+ \context 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,raggedright]
+\version "2.4.0"
+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 {
+ <<
+ \context Voice = mel {
+ \autoBeamOff
+ \melody
+ }
+ \lyricsto mel \new Lyrics \text
+
+ \context PianoStaff <<
+ \context Staff = upper \upper
+ \context 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,raggedright]
+\version "2.4.0"
+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 {
+ \context GrandStaff <<
+ \context Staff = upper {
+ \context Voice = singer \upper }
+ \lyricsto "singer" \new Lyrics \text
+ \context 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,raggedright]
+\version "2.4.0"
+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 {
+ \context PianoStaff <<
+ \context Staff=upper \upper
+ \context Dynamics=dynamics \dynamics
+ \context Staff=lower <<
+ \clef bass
+ \lower
+ >>
+ \context Dynamics=pedal \pedal
+ >>
+ \layout {
+ \context {
+ \type "Engraver_group_engraver"
+ \name Dynamics
+ \alias Voice % So that \cresc works, for example.
+ \consists "Output_property_engraver"
+
+ minimumVerticalExtent = #'(-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 {
+ \context PianoStaff <<
+ \context Staff=upper << \upper \dynamics >>
+ \context Staff=lower << \lower \dynamics >>
+ \context Dynamics=pedal \pedal
+ >>
+ \midi {
+ \context {
+ \type "Performer_group_performer"
+ \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,raggedright]
+\version "2.4.0"
+
+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.4.0"
+
+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 vn1) \new Staff { << \global \Violinone >> }
+ \tag #'(score vn2) \new Staff { << \global \Violintwo>> }
+ \tag #'(score vla) \new Staff { << \global \Viola>> }
+ \tag #'(score vlc) \new Staff { << \global \Cello>> }
+ >>
+}
+
+
+
+%%%%% score.ly
+\version "2.4.0"
+\include "piece.ly"
+#(set-global-staff-size 14)
+\score {
+ \new StaffGroup \keepWithTag #'score \music
+ \layout { }
+ \midi { \tempo 4 = 60 }
+}
+
+
+%%%%% vn1.ly
+\version "2.4.0"
+\include "piece.ly"
+\score {
+ \keepWithTag #'vn1 \music
+ \layout { }
+}
+
+
+%%%%% vn2.ly
+\version "2.4.0"
+\include "piece.ly"
+\score {
+ \keepWithTag #'vn2 \music
+ \layout { }
+}
+
+
+%%%%% vla.ly
+\version "2.4.0"
+\include "piece.ly"
+\score {
+ \keepWithTag #'vla \music
+ \layout { }
+}
+
+
+%%%%% vlc.ly
+\version "2.4.0"
+\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,raggedright]
+\version "2.4.0"
+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 {
+ \context ChoirStaff <<
+ \context Lyrics = sopranos { s1 }
+ \context Staff = women <<
+ \context Voice =
+ sopranos { \voiceOne << \global \sopMusic >> }
+ \context Voice =
+ altos { \voiceTwo << \global \altoMusic >> }
+ >>
+ \context Lyrics = altos { s1 }
+ \context Lyrics = tenors { s1 }
+ \context Staff = men <<
+ \clef bass
+ \context Voice =
+ tenors { \voiceOne <<\global \tenorMusic >> }
+ \context Voice =
+ basses { \voiceTwo <<\global \bassMusic >> }
+ >>
+ \context 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 minimumVerticalExtent = #'(-3 . 3)
}
- \lyricsto "one" \new Lyrics \text
+ }
+}
+@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,raggedright]
+\version "2.4.0"
+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
+}
+
+\layout {
+ \context {
+ % a little smaller so lyrics
+ % can be closer to the staff
+ \Staff
+ minimumVerticalExtent = #'(-3 . 3)
+ }
+}
+
+<<
+ \context ChoirStaff
+ <<
+ \context Lyrics = sopranos { s1 }
+ \context Staff = women <<
+ \context Voice =
+ sopranos { \voiceOne << \global \sopMusic >> }
+ \context Voice =
+ altos { \voiceTwo << \global \altoMusic >> }
+ >>
+ \context Lyrics = altos { s1 }
+ \context Lyrics = tenors { s1 }
+ \context Staff = men <<
+ \clef bass
+ \context Voice =
+ tenors { \voiceOne <<\global \tenorMusic >> }
+ \context Voice =
+ basses { \voiceTwo <<\global \bassMusic >> }
+ >>
+ \context 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 >>
+ >>
+ >>
+>>
+@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 where 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.4.0"
+
+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 {
+ \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 }
+ >>
+ \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 `linewidth' argument is for the \header.
+
+@lilypond[quote,verbatim,raggedright,linewidth]
+\version "2.4.0"
+\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
+ \context 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
+ \context 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
+ \context Staff <<
+ \bari
+ >>
+}
+
+% ------ Trombone ------
+tbone = \relative c {
+ \Key
+ c1 c c
+}
+tboneharmony = \chordmode {
+ \jzchords
+}
+trombone = {
+ \global
+ \set Staff.instrument = #"Trombone"
+ \clef bass
+ \context 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
+ \context 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"
+ \context Staff <<
+ \context Voice = one \rhUpper
+ \context Voice = two \rhLower
+ >>
+}
+PianoLH = {
+ \clef bass
+ \global
+ \set Staff.midiInstrument = "acoustic grand"
+ \context Staff <<
+ \context Voice = one \lhUpper
+ \context Voice = two \lhLower
+ >>
+}
+
+piano = {
+ \context PianoStaff <<
+ \set PianoStaff.instrument = #"Piano"
+ \context Staff = upper \PianoRH
+ \context Staff = lower \PianoLH
+ >>
+}
+
+% ------ Bass Guitar ------
+Bass = \relative c {
+ \Key
+ c1 c c
+}
+bass = {
+ \global
+ \set Staff.instrument = #"Bass"
+ \clef bass
+ \context 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 {
+ <<
+ \context StaffGroup = horns <<
+ \context Staff = trumpet \trumpet
+ \context Staff = altosax \altosax
+ \context ChordNames = barichords \bariharmony
+ \context Staff = barisax \barisax
+ \context Staff = trombone \trombone
+ >>
+
+ \context StaffGroup = rhythm <<
+ \context ChordNames = chords \gtrharmony
+ \context Staff = guitar \guitar
+ \context PianoStaff = piano \piano
+ \context Staff = bass \bass
+ \new DrumStaff { \drumContents }
+ >>
>>
- \paper { }
+
+ \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 `linewidth' is for \header.
+@lilypond[quote,verbatim,raggedright,linewidth]
+\version "2.4.0"
+\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 {
+ \header {
+ piece = "piece1"
+ opus = "opus1"
+ }
+ { c'4 }
+}
+
+\score {
+ \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?
+@c http://www.mcnabbs.org/andrew/linux/lilypond-ghb/
+
+@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
+@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,raggedright]
+a4 b c d
+@@end lilypond
+More Texinfo text
+@@lilypond[verbatim,fragment,raggedright]
+d4 c b a
+@@end lilypond
+@@bye
+@end example