@example
\version @w{"@version{}"}
+
\header @{ @}
+
\score @{
@var{...compound music expression...} % all the music goes here!
\layout @{ @}
When LilyPond looks at this file, it takes the value of
@code{melody} (everything after the equals sign) and inserts it
whenever it sees @code{\melody}. There's nothing special about
-the names -- it could be @code{melody}, @code{global},
-@code{TimeKey},
-@code{pianorighthand}, or @code{foofoobarbaz}. For more details,
-see @ref{Saving typing with variables and functions}.
-Remember that you can use almost any name you like as long
-as it contains just alphabetic characters and is distinct from
-LilyPond command names. The exact
-limitations on variable names are detailed in
-@ruser{File structure}.
+the name -- it could be @code{melody}, @code{global},
+@code{keyTime}, @code{pianorighthand}, or something else.
+Remember that you can use almost any name you like as long as it
+contains just alphabetic characters and is distinct from LilyPond
+command names. For more details, see @ref{Saving typing with
+variables and functions}. The exact limitations on variable names
+are detailed in @ruser{File structure}.
@seealso
melody = \relative c'' { r4 d8\noBeam g, c4 r }
text = \lyricmode { And God said, }
upper = \relative c'' { <g d g,>2~ <g d g,> }
-lower = \relative c { b2 e2 }
+lower = \relative c { b2 e }
\score {
<<
r4 g8 g c4 c8 d |
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff {
f8 f c
}
r4 g8 g c4 c8 d |
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
- alignAboveContext = #"main" }
- { f8 f c }
+ alignAboveContext = #"main"
+ } { f8 f c }
>>
r4 |
}
musical, perhaps, but possible:
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
- { g8\( a b[ c b\) a] }
+ { g8\( a b[ c b\) a] g4 }
@end lilypond
In general, different kinds of brackets, bracket-like constructs,
@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.\)
+ r16[ g \times 2/3 { r16 e'8] }
+ g16( a \times 2/3 { b16 d) e' }
+ g8[( a \times 2/3 { b8 d') e'~] } |
+ \times 4/5 { e'32\( a b d' e' } a'4.\)
}
@end lilypond
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\key g \major
-% Voice "1" Voice "2"
-<< { g4 fis8( g) a4 g } \\ { d4 d d d } >>
+% Voice "1" Voice "2"
+<< { g4 fis8( g) a4 g } \\ { d4 d d d } >>
@end lilypond
Notice how the stems of the second voice now point down.
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\key d \minor
% Voice "1" Voice "2"
-<< { r4 g g4. a8 } \\ { d,2 d4 g } >>
-<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >>
-<< { a2. r4 } \\ { fis2. s4 } >>
+<< { r4 g g4. a8 } \\ { d,2 d4 g } >> |
+<< { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
+<< { a2. r4 } \\ { fis2. s4 } >> |
@end lilypond
It is not necessary to use a separate @code{<< \\ >>} construct
@cindex voices, naming
@cindex voices crossing brackets
@cindex slurs crossing brackets
-@cindex ties crossing brackest
+@cindex ties crossing brackets
This example has just two voices, but the same construct may be
used to encode three or more voices by adding more back-slash
\new Staff \relative c' {
% Main voice
c16 d e f
- % Voice "1" Voice "2" Voice "3"
- << { g4 f e } \\ { r8 e4 d c8~ } >>
- << { d2 e2 } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b4 c2 } >>
+ % Voice "1" Voice "2" Voice "3"
+ << { g4 f e } \\ { r8 e4 d c8~ } >> |
+ << { d2 e } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b c2 } >> |
}
@end lilypond
\voiceTwoStyle
r8 e4 d c8~
}
- >>
+ >> |
<< % Bar 2
% Voice 1 continues
- { d2 e2 }
+ { d2 e }
\\
% Voice 2 continues
- { c8 b16 a b8 g ~ g2 }
+ { c8 b16 a b8 g~ g2 }
\\
{
\voiceThreeStyle
- s4 b4 c2
+ s4 b c2
}
- >>
+ >> |
}
@end lilypond
\once \override NoteColumn #'force-hshift = #0.5
des2
}
- >>
- <c ees aes c>1
+ >> |
+ <c ees aes c>1 |
}
@end lilypond
\new Staff \relative c'' {
\key aes \major
<<
- { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
- >>
- <c ees aes c>1
+ { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des }
+ >> |
+ <c ees aes c>1 |
}
@end lilypond
{ aes2 f4 fes }
\\ % Omit Voice three
\\ % Voice four
- { <ees c>2 des2 }
- >>
- <c ees aes c>1
+ { <ees c>2 des }
+ >> |
+ <c ees aes c>1 |
}
@end lilypond
markup, ties, slurs, and dynamics:
@lilypond[quote,ragged-right,verbatim]
-\relative c'{
+\relative c' {
% Default behavior or behavior after \oneVoice
- c d8~ d e4( f g a) b-> c
+ c4 d8~ d e4( f | g4 a) b-> c |
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
-\relative c'{
+\relative c' {
\voiceOne
- c d8~ d e4( f g a) b-> c
+ c4 d8~ d e4( f | g4 a) b-> c |
\oneVoice
- c, d8~ d e4( f g a) b-> c
+ c,4 d8~ d e4( f | g4 a) b-> c |
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
-\relative c'{
+\relative c' {
\voiceTwo
- c d8~ d e4( f g a) b-> c
+ c4 d8~ d e4( f | g4 a) b-> c |
\oneVoice
- c, d8~ d e4( f g a) b-> c
+ c,4 d8~ d e4( f | g4 a) b-> c |
}
@end lilypond
% Start simultaneous section of three voices
<<
% Continue the main voice in parallel
- { g4 f e | d2 e2) | }
+ { g4 f e | d2 e) | }
% Initiate second voice
\new Voice {
% Set stems, etc., down
\new Voice {
% Set stems, etc, up
\voiceThree
- s2. | s4 b4 c2 |
+ s2. | s4 b c2 |
}
>>
}
\new Staff \relative c' {
c16^( d e f
<<
- { g4 f e | d2 e2) | }
+ { g4 f e | d2 e) | }
\new Voice {
\voiceTwo
- r8 e4 d c8~
+ r8 e4 d c8~ |
<<
- { c8 b16 a b8 g~ g2 }
+ { c8 b16 a b8 g~ g2 | }
\new Voice {
\voiceThree
- s4 b4 c2
+ s4 b c2 |
}
>>
}
% Initiate first voice
\new Voice {
\voiceOne
- c16^( d e f g4 f e | d2 e2) |
+ c16^( d e f g4 f e | d2 e) |
}
% Initiate second voice
\new Voice {
\new Voice {
% Set stems, etc, up
\voiceThree
- s1 | s4 b4 c2 |
+ s1 | s4 b c2 |
}
>>
@end lilypond
@lilypond[quote,verbatim,fragment]
<<
- \new Voice = "one" \relative c'' {
- \autoBeamOff
- \time 2/4
- c4 b8. a16 g4. f8 e4 d c2
+ \new Voice = "one" {
+ \relative c'' {
+ \autoBeamOff
+ \time 2/4
+ c4 b8. a16 | g4. f8 | e4 d | c2 |
+ }
}
\new Lyrics \lyricsto "one" {
- No more let sins and sor -- rows grow.
+ No more let | sins and | sor -- rows | grow. |
}
>>
@end lilypond
rather than music.
@lilypond[quote,verbatim]
-global = { \time 6/8 \partial 8 \key f \major}
+global = { \key f \major \time 6/8 \partial 8 }
+
SopOneMusic = \relative c'' {
- c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 | }
-SopTwoMusic = \relative c' {
- r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' | }
+ c8 | c8([ bes)] a a([ g)] f | f'4. b, | c4.~ c4
+}
SopOneLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, __ | }
+ Let | flee -- cy flocks the | hills a -- dorn, __
+}
+SopTwoMusic = \relative c' {
+ r8 | r4. r4 c8 | a'8([ g)] f f([ e)] d | e8([ d)] c bes'
+}
SopTwoLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, | }
+ Let | flee -- cy flocks the | hills a -- dorn,
+}
\score {
\new ChoirStaff <<
verses, set for SATB. In this case the words for all four
parts are the same. Note how we use variables to separate the
music notation and words from the staff structure. See too
-how a variable, which we have chosen to call @q{TimeKey}, is used
+how a variable, which we have chosen to call @q{keyTime}, is used
to hold several commands for use within the two staves. In other
examples this is often called @q{global}.
@lilypond[quote,verbatim]
-TimeKey = { \time 4/4 \partial 4 \key c \major}
-SopMusic = \relative c' { c4 | e4. e8 g4 g | a a g | }
-AltoMusic = \relative c' { c4 | c4. c8 e4 e | f f e | }
-TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 | }
-BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 | }
-VerseOne = \lyricmode {
- E -- | ter -- nal fa -- ther, | strong to save, | }
-VerseTwo = \lyricmode {
- O | Christ, whose voice the | wa -- ters heard, | }
-VerseThree = \lyricmode {
- O | Ho -- ly Spi -- rit, | who didst brood | }
-VerseFour = \lyricmode {
- O | Tri -- ni -- ty of | love and pow'r | }
+keyTime = { \key c \major \time 4/4 \partial 4 }
+
+SopMusic = \relative c' { c4 | e4. e8 g4 g | a4 a g }
+AltoMusic = \relative c' { c4 | c4. c8 e4 e | f4 f e }
+TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
+
+VerseOne =
+ \lyricmode { E -- | ter -- nal fa -- ther, | strong to save, }
+VerseTwo =
+ \lyricmode { O | Christ, whose voice the | wa -- ters heard, }
+VerseThree =
+ \lyricmode { O | Ho -- ly Spi -- rit, | who didst brood }
+VerseFour =
+ \lyricmode { O | Tri -- ni -- ty of | love and pow'r }
\score {
\new ChoirStaff <<
\new Staff <<
\clef "treble"
- \new Voice = "Sop" { \voiceOne \TimeKey \SopMusic }
+ \new Voice = "Sop" { \voiceOne \keyTime \SopMusic }
\new Voice = "Alto" { \voiceTwo \AltoMusic }
\new Lyrics \lyricsto "Sop" { \VerseOne }
\new Lyrics \lyricsto "Sop" { \VerseTwo }
>>
\new Staff <<
\clef "bass"
- \new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
+ \new Voice = "Tenor" { \voiceOne \keyTime \TenorMusic }
\new Voice = "Bass" { \voiceTwo \BassMusic }
>>
>>
}
@end lilypond
-@cindex verse and refrain
-
-We end with an example to show how we might code a solo verse which
-continues into a two-part refrain in two staves. The positioning
-of the sequential and simultaneous sections to achieve this within
-a single score is quite tricky, so follow the explanation carefully!
-
-Let's start with a score block containing a @code{ChoirStaff}, as
-we would like the brace to appear at the start of the chorus.
-Normally you would need angle brackets after @code{\new ChoirStaff}
-to bring in all the staves in parallel, but here we want to
-defer the parallelism during the solo so we use braces, although
-angle brackets here wouldn't hurt. Inside the @code{ChoirStaff} we
-want first the staff which will contain the verse. This must
-contain notes and lyrics in parallel, so here we need angle
-brackets around the @code{\new Voice} and @code{\new Lyrics} to
-start them at the same time:
-
-@lilypond[quote,verbatim,ragged-right]
-versenotes = \relative c'' {
- \clef "treble"
- \key g \major
- \time 3/4
- g g g | b b b |
-}
-versewords = \lyricmode {
- One two three four five six
-}
-\score {
- \new ChoirStaff {
- \new Staff <<
- \new Voice = "verse" {
- \versenotes \break
- }
- \new Lyrics \lyricsto verse {
- \versewords
- }
- >>
- }
-}
-@end lilypond
-
-That gives the verse line.
-
-Now we want to continue with refrainA on the same staff while a
-second staff is introduced in parallel with it for refrainB, so
-this is a parallel section which must be positioned immediately
-following the @code{\break} in the verse Voice. Yes, @emph{within}
-the verse Voice! Here's that parallel section. More staves
-could be introduced here in the same way.
-
-@example
-<<
- \refrainnotesA
- \new Lyrics \lyricsto verse @{
- \refrainwordsA
- @}
- \new Staff <<
- \new Voice = "refrainB" @{
- \refrainnotesB
- @}
- \new Lyrics \lyricsto "refrainB" @{
- \refrainwordsB
- @}
- >>
->>
-@end example
-
-Here's the final result with two staves in the chorus showing
-how the parallel section is positioned within the verse Voice:
-
-@lilypond[quote,verbatim, ragged-right]
-versenotes = \relative c'' {
- \clef "treble"
- \key g \major
- \time 3/4
- g g g | b b b |
-}
-refrainnotesA = \relative c'' {
- \time 2/4
- c c | g g \bar "|."
-}
-refrainnotesB = \relative c {
- \clef "bass"
- \key g \major
- c e | d d |
-}
-versewords = \lyricmode {
- One two three four five six
-}
-refrainwordsA = \lyricmode {
- la la la la
-}
-refrainwordsB = \lyricmode {
- dum dum dum dum
-}
-\score {
- \new ChoirStaff {
- \new Staff <<
- \new Voice = "verse" {
- \versenotes \break
- <<
- \refrainnotesA
- \new Lyrics \lyricsto "verse" {
- \refrainwordsA
- }
- \new Staff <<
- \new Voice = "refrainB" {
- \refrainnotesB
- }
- \new Lyrics \lyricsto "refrainB" {
- \refrainwordsB
- }
- >>
- >>
- }
- \new Lyrics \lyricsto "verse" {
- \versewords
- }
- >>
- }
-}
-@end lilypond
-
-@cindex book, example of using
-@funindex \book
-@funindex book
-
-However, although this is an interesting and useful exercise to
-help you to understand how sequential and simultaneous blocks work,
-in practice one would perhaps choose to code this as two
-@code{\score} blocks within an implicit @code{\book} block, as
-follows:
-
-@lilypond[quote,verbatim,ragged-right]
-versenotes = \relative c'' {
- \clef "treble"
- \key g \major
- \time 3/4
- g g g | b b b |
-}
-refrainnotesA = \relative c'' {
- \time 2/4
- c c | g g \bar "|."
-}
-refrainnotesB = \relative c {
- \clef "bass"
- \key g \major
- c e | d d |
-}
-versewords = \lyricmode {
- One two three four five six
-}
-refrainwordsA = \lyricmode {
- la la la la
-}
-refrainwordsB = \lyricmode {
- dum dum dum dum
-}
-\score {
- \new Staff <<
- \new Voice = "verse" {
- \versenotes
- }
- \new Lyrics \lyricsto "verse" {
- \versewords
- }
- >>
-}
-
-\score {
- \new ChoirStaff <<
- \new Staff <<
- \new Voice = "refrainA" {
- \refrainnotesA
- }
- \new Lyrics \lyricsto "refrainA" {
- \refrainwordsA
- }
- >>
- \new Staff <<
- \new Voice = "refrainB" {
- \refrainnotesB
- }
- \new Lyrics \lyricsto "refrainB" {
- \refrainwordsB
- }
- >>
- >>
-}
-@end lilypond
-
@seealso
Notation Reference: @ruser{Vocal music}.
following example:
@lilypond[quote,verbatim,relative=2,fragment]
-cis4 cis2. g4
+cis4 cis2. | a4 a2. |
@end lilypond
The input is rather sparse, but in the output, bar lines,
<< % start of simultaneous staves section
\time 2/4
\new Staff { % create RH staff
- \key g \minor
\clef "treble"
+ \key g \minor
\new Voice { % create voice for RH notes
\relative c'' { % start of RH notes
- d4 ees16 c8.
- d4 ees16 c8.
+ d4 ees16 c8. |
+ d4 ees16 c8. |
} % end of RH notes
} % end of RH voice
} % end of RH staff
\new Staff << % create LH staff; needs two simultaneous voices
- \key g \minor
\clef "bass"
+ \key g \minor
\new Voice { % create LH voice one
\voiceOne
\relative g { % start of LH voice one notes
- g8 <bes d> ees, <g c>
- g8 <bes d> ees, <g c>
+ g8 <bes d> ees, <g c> |
+ g8 <bes d> ees, <g c> |
} % end of LH voice one notes
} % end of LH voice one
\new Voice { % create LH voice two
\voiceTwo
\relative g { % start of LH voice two notes
- g4 ees
- g4 ees
+ g4 ees |
+ g4 ees |
} % end of LH voice two notes
} % end of LH voice two
>> % end of LH staff
<<
\new Staff \relative c'' {
\set Staff.instrumentName = #"Soprano"
- c4 c
- }
+ c2 c
+ }
\new Staff \relative c' {
- \set instrumentName = #"Alto" % Wrong!
- d4 d
- }
+ \set instrumentName = #"Alto" % Wrong!
+ d2 d
+ }
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
<<
\new Staff \relative c'' {
- ais4 aes
+ ais2 aes
}
\new Staff \relative c'' {
\set Staff.extraNatural = ##f
- ais4 aes
+ ais2 aes
}
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
<<
\new Staff \relative c'' {
- ais4 aes
+ ais2 aes
}
\new Staff \relative c'' {
\set Score.extraNatural = ##f
- ais4 aes
+ ais2 aes
}
>>
@end lilypond
value, not the most recently set value.
@lilypond[quote,verbatim,ragged-right,relative=1,fragment]
-c4
+c4 d
% make note heads smaller
\set fontSize = #-4
-d e
+e4 f |
% make note heads larger
\set fontSize = #2.5
-f g
+g4 a
% return to default size
\unset fontSize
-a b
+b4 c |
@end lilypond
We have now seen how to set the values of several different types of
@lilypond[quote,verbatim,ragged-right]
<<
- \new Staff
- \relative c'' {
- gis ges aes ais
+ \new Staff {
+ \relative c'' {
+ gis4 ges aes ais
+ }
}
- \new Staff \with { extraNatural = ##f }
- \relative c'' {
- gis ges aes ais
+ \new Staff \with { extraNatural = ##f } {
+ \relative c'' {
+ gis4 ges aes ais
+ }
}
>>
@end lilypond
\new Score \with { extraNatural = ##f } <<
\new Staff {
\relative c'' {
- gis ges aes ais
+ gis4 ges aes ais
}
}
\new Staff {
\relative c'' {
- gis ges aes ais
+ gis4 ges aes ais
}
}
>>
\remove Staff_symbol_engraver
}
\relative c' {
- c4
+ c4 d
\set fontSize = #-4 % make note heads smaller
- d e
+ e4 f |
\set fontSize = #2.5 % make note heads larger
- f g
+ g4 a
\unset fontSize % return to default size
- a b
+ b4 c |
}
@end lilypond
\new Staff <<
\new Voice \with {
\consists Ambitus_engraver
+ } {
+ \relative c'' {
+ \voiceOne
+ c4 a b g
+ }
}
- \relative c'' {
- \voiceOne
- c a b g
- }
- \new Voice
- \relative c' {
- \voiceTwo
- c e d f
+ \new Voice {
+ \relative c' {
+ \voiceTwo
+ c4 e d f
+ }
}
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
\new Staff \with {
- \consists Ambitus_engraver
- }
- <<
- \new Voice
- \relative c'' {
- \voiceOne
- c a b g
+ \consists Ambitus_engraver
+}
+<<
+ \new Voice {
+ \relative c'' {
+ \voiceOne
+ c4 a b g
+ }
}
- \new Voice
- \relative c' {
- \voiceTwo
- c e d f
+ \new Voice {
+ \relative c' {
+ \voiceTwo
+ c4 e d f
+ }
}
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
\score {
<<
- \new Staff <<
+ \new Staff {
\relative c'' {
- c a b g
+ c4 a b g
}
- >>
- \new Staff <<
+ }
+ \new Staff {
\relative c' {
- c a b g
+ c4 a b g
}
- >>
- \new Staff <<
+ }
+ \new Staff {
\clef "G_8"
\relative c' {
- c a b g
+ c4 a b g
}
- >>
- \new Staff <<
+ }
+ \new Staff {
\clef "bass"
\relative c {
- c a b g
+ c4 a b g
}
- >>
+ }
>>
\layout {
\context {
@example
\version @w{"@version{}"}
+
melody = \relative c' @{
- \clef treble
+ \clef "treble"
\key c \major
\time 4/4
a4 b c d
@example
\version @w{"@version{}"}
+
melody = \relative c' @{
- \clef treble
+ \clef "treble"
\key c \major
\time 4/4
a4 b c d
@example
\version @w{"@version{}"}
+
sopranoMusic = \relative c' @{
- \clef treble
+ \clef "treble"
\key c \major
\time 4/4
a4 b c d
@}
celloMusic = \relative c @{
- \clef bass
+ \clef "bass"
\key c \major
\time 4/4
d4 g fis8 e d4
@example
\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 @{ @}
@lilypond[quote,verbatim,ragged-right,addversion]
sopranoMusic = \relative c' {
- \clef treble
+ \clef "treble"
\key c \major
\time 4/4
a4 b c d
}
celloMusic = \relative c {
- \clef bass
+ \clef "bass"
\key c \major
\time 4/4
d4 g fis8 e d4
@c The following should appear as music without code
@lilypond[quote,ragged-right]
global = { \key d \major \time 4/4 }
+
sopranoMusic = \relative c'' {
\clef "treble"
r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
- Wor -- thy is the lamb that was slain
+ Wor -- thy | is the lamb | that was slain |
}
+
altoMusic = \relative a' {
\clef "treble"
r4 a2 a4 | fis4. fis8 a2 | g4 fis e2 |
}
altoWords = \sopranoWords
+
tenorMusic = \relative c' {
\clef "G_8"
r4 fis2 e4 | d4. d8 d2 | e4 a, cis2 |
}
tenorWords = \sopranoWords
+
bassMusic = \relative c' {
\clef "bass"
r4 d2 cis4 | b4. b8 fis2 | e4 d a'2 |
}
bassWords = \sopranoWords
+
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
+ 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
+ <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 {
Doing this gives for our ChoirStaff:
@example
- \new ChoirStaff <<
- \new Staff = "sopranos" <<
- \set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" @{
- \global
- \sopranoMusic
- @}
- >>
- \new Lyrics \lyricsto "sopranos" @{
- \sopranoWords
- @}
- \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
+\new ChoirStaff <<
+ \new Staff = "sopranos" <<
+ \set Staff.instrumentName = #"Soprano"
+ \new Voice = "sopranos" @{
+ \global
+ \sopranoMusic
+ @}
+ >>
+ \new Lyrics \lyricsto "sopranos" @{
+ \sopranoWords
+ @}
+ \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
Next we must work out the piano part. This is
for the three bars of the example above gives:
@lilypond[quote,verbatim,ragged-right,addversion]
-global = {
- \key d \major
- \time 4/4
-}
+global = { \key d \major \time 4/4 }
sopranoMusic = \relative c'' {
\clef "treble"
r4 d2 a4 | d4. d8 a2 | cis4 d cis2 |
}
sopranoWords = \lyricmode {
- Wor -- thy is the lamb that was slain
+ Wor -- thy | is the lamb | that was slain |
}
altoMusic = \relative a' {
\clef "treble"
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
+ 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
+ <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 {
title = "Jesu, meine Freude"
composer = "J S Bach"
@}
-TimeKey = @{
- \time 4/4
- \key c \minor
-@}
+keyTime = @{ \key c \minor \time 4/4 @}
ManualOneVoiceOneMusic = @{ s1 @}
ManualOneVoiceTwoMusic = @{ s1 @}
ManualTwoMusic = @{ s1 @}
part just one.
@example
- \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 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
Next we need to add a staff for the pedal organ.
Let's add this structure to the score block, and adjust the indenting.
We also add the appropriate clefs, ensure stems, ties and slurs in
each voice on the upper staff point to the right direction with
-@code{\voiceOne} and @code{\voiceTwo}, and enter the time signature
-and key to each staff using our predefined variable, @code{\TimeKey}.
+@code{\voiceOne} and @code{\voiceTwo}, and enter the key and time
+signature to each staff using our predefined variable, @code{\keyTime}.
@example
\score @{
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
- \TimeKey % set time signature and key
+ \keyTime % set key and time signature
\clef "treble"
\new Voice @{
\voiceOne
@}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
- \TimeKey
+ \keyTime
\clef "bass"
\new Voice @{
\ManualTwoMusic
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
- \TimeKey
+ \keyTime
\clef "bass"
\new Voice @{
\PedalOrganMusic
@} % end Score context
@end example
+@cindex stretchability of staves
+@cindex staves, stretchability
+
+The above layout of the organ staves is almost perfect; however,
+there is a slight defect which is not visible by looking at just a
+single system: The distance of the pedal staff to the left hand staff
+should behave approximately the same as the right hand staff to the
+left hand staff. In particular, the stretchability of staves in a
+@code{PianoStaff} context is limited (so that the distance between
+the staves for the left and right hand can't become too large), and
+the pedal staff should behave similarly.
+
+@cindex sub-properties
+@cindex properties, sub-properties
+@cindex graphical objects
+@cindex objects, graphical
+@cindex grobs
+
+Stretchability of staves can be controlled with the
+@code{next-staff-spacing} property of the @code{VerticalAxisGroup}
+@q{graphical object} (commonly called @q{grob}s within the lilypond
+documentation) -- don't worry about the details right now; this is
+fully explained later. For the curious, have a look at
+@ruser{Overview of modifying properties}. Currently, it is not
+possible to modify the @code{stretchability} sub-property only, we
+thus have to copy the other sub-properties also. Again, for the
+curious, you can find the default values in file
+@file{scm/@/define-grobs@/.scm} by looking up the definition of the
+@code{VerticalAxisGroup} grob. The value for @code{stretchability}
+is taken from the definition of the @code{PianoStaff} context (in
+file @file{ly/@/engraver-init@/.ly}) so that the values are
+identical.
+
+@example
+\score @{
+ << % PianoStaff and Pedal Staff must be simultaneous
+ \new PianoStaff <<
+ \new Staff = "ManualOne" <<
+ \keyTime % set key and time signature
+ \clef "treble"
+ \new Voice @{
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ @}
+ >> % end ManualOne Staff context
+ \new Staff = "ManualTwo" \with @{
+ \override VerticalAxisGroup
+ #'next-staff-spacing = #'((space . 9)
+ (minimum-distance . 8)
+ (padding . 1)
+ (stretchability . 5))
+ @} <<
+ \keyTime
+ \clef "bass"
+ \new Voice @{
+ \ManualTwoMusic
+ @}
+ >> % end ManualTwo Staff context
+ >> % end PianoStaff context
+ \new Staff = "PedalOrgan" <<
+ \keyTime
+ \clef "bass"
+ \new Voice @{
+ \PedalOrganMusic
+ @}
+ >> % end PedalOrgan Staff
+ >>
+@} % end Score context
+@end example
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
title = "Jesu, meine Freude"
composer = "J S Bach"
}
-TimeKey = {
- \time 4/4
- \key c \minor
-}
+keyTime = { \key c \minor \time 4/4 }
ManualOneVoiceOneMusic = \relative g' {
- g4 g f ees
- d2 c2
+ g4 g f ees |
+ d2 c |
}
ManualOneVoiceTwoMusic = \relative c' {
- ees16 d ees8~ ees16 f ees d c8 d~ d c~
- c c4 b8 c8. g16 c b c d
+ ees16 d ees8~ ees16 f ees d c8 d~ d c~ |
+ c8 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
+ c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
+ f16 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
+ r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
+ r16 g ees f g f g8 c,2 |
}
\score {
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
- \TimeKey % set time signature and key
+ \keyTime % set key and time signature
\clef "treble"
\new Voice {
\voiceOne
\ManualOneVoiceTwoMusic
}
>> % end ManualOne Staff context
- \new Staff = "ManualTwo" <<
- \TimeKey
+ \new Staff = "ManualTwo" \with {
+ \override VerticalAxisGroup
+ #'next-staff-spacing = #'((space . 9)
+ (minimum-distance . 8)
+ (padding . 1)
+ (stretchability . 5))
+ } <<
+ \keyTime
\clef "bass"
\new Voice {
\ManualTwoMusic
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
- \TimeKey
+ \keyTime
\clef "bass"
\new Voice {
\PedalOrganMusic
@lilypond[quote,verbatim,ragged-right]
hornNotes = \relative c'' { c4 b dis c }
+
\score {
{
\hornNotes
@lilypond[quote,verbatim,ragged-right]
fragmentA = \relative c'' { a4 a8. b16 }
fragmentB = \relative c'' { a8. gis16 ees4 }
+
violin = \new Staff {
- \fragmentA
- \fragmentA
- \fragmentB
- \fragmentA
+ \fragmentA \fragmentA |
+ \fragmentB \fragmentA |
}
+
\score {
{
\violin
@c TODO Avoid padtext - not needed with skylining
@lilypond[quote,verbatim,ragged-right]
dolce = \markup { \italic \bold dolce }
+
padText = { \once \override TextScript #'padding = #5.0 }
-fthenp=_\markup { \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
+fthenp =_\markup {
+ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
+}
+
violin = \relative c'' {
\repeat volta 2 {
- c4._\dolce b8 a8 g a b
+ c4._\dolce b8 a8 g a b |
\padText
- c4.^"hi there!" d8 e' f g d
- c,4.\fthenp b8 c4 c-.
+ c4.^"hi there!" d8 e' f g d |
+ c,4.\fthenp b8 c4 c-. |
}
}
+
\score {
{
\violin
}
-\layout { ragged-right=##t }
+ \layout { ragged-right = ##t }
}
@end lilypond
@example
violin = \relative c'' @{
\repeat volta 2 @{
- c4._\markup @{ \italic \bold dolce @} b8 a8 g a b
+ c4._\markup @{ \italic \bold dolce @} b8 a8 g a b |
\once \override TextScript #'padding = #5.0
- c4.^"hi there!" d8 e' f g d
- c,4.\markup @{ \dynamic f \italic \small @{ 2nd @}
- \hspace #0.1 \dynamic p @}
- b8 c4 c-.
+ c4.^"hi there!" d8 e' f g d |
+ c,4.\markup @{
+ \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p
+ @}
+ b8 c4 c-. |
@}
@}
@end example
@lilypond[quote,verbatim,ragged-right]
padText =
-#(define-music-function (parser location padding) (number?)
- #{
- \once \override TextScript #'padding = #$padding
- #})
+#(define-music-function
+ (parser location padding)
+ (number?)
+ #{
+ \once \override TextScript #'padding = $padding
+ #})
\relative c''' {
- c4^"piu mosso" b a b
+ c4^"piu mosso" b a b |
\padText #1.8
- c4^"piu mosso" d e f
+ c4^"piu mosso" d e f |
\padText #2.6
- c4^"piu mosso" fis a g
+ c4^"piu mosso" fis a g |
}
@end lilypond
@example
hornNotes = \relative c @{
\time 2/4
- r4 f8 a cis4 f e d
+ r4 f8 a | cis4 f | e4 d |
@}
@end example
@example
\include "horn-music.ly"
+
\header @{
instrument = "Horn in F"
@}
@lilypond[quote,ragged-right]
\transpose f c' \relative c {
\time 2/4
- r4 f8 a cis4 f e d
+ r4 f8 a | cis4 f | e4 d |
}
@end lilypond
\transpose f c' \relative c {
\time 2/4
\set Score.skipBars = ##t
- R2*3
- r4 f8 a cis4 f e d
+ R2*3 |
+ r4 f8 a | cis4 f | e4 d |
}
@end lilypond
@lilypond[quote,ragged-right]
\relative c <<
\new Staff {
+ \clef "treble"
\time 2/4
- R2*3
- r4 f8 a cis4 f e d
+ R2*3 |
+ r4 f8 a | cis4 f | e4 d |
}
\new Staff {
- \clef bass
- r4 d,8 f | gis4 c | b bes |
- a8 e f4 | g d | gis f |
+ \clef "bass"
+ \time 2/4
+ r4 d,8 f | gis4 c | b4 bes |
+ a8 e f4 | g4 d | gis4 f |
}
>>
@end lilypond