Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes..
@end ignore
@c \version "2.12.0"
@cindex variables
-Another great shorthand is the ability to define variables. All
-the templates use this
+Another great shorthand is the ability to define variables, as
+shown in @ref{Organizing pieces with variables}. All the
+templates use this:
@example
melody = \relative c' @{
@ref{Music expressions explained}. In that section, we saw how to
build big music expressions from small pieces -- we started from
notes, then chords, etc. Now we're going to start from a big
-music expression and work our way down.
-
-@example
-\score @{
- @{ % this brace begins the overall compound music expression
- \new StaffGroup <<
- @var{...insert the whole score of a Wagner opera in here...}
- >>
- @} % this brace ends the overall compound music expression
- \layout @{ @}
-@}
-@end example
-
-A whole Wagner opera would easily double the length of this
-manual, so let's just add a singer and piano. We don't need a
+music expression and work our way down. For simplicity, we'll use
+just a singer and piano in our example. We don't need a
@code{StaffGroup} for this ensemble, which simply groups a number
-of staves together with a bracket at the left, so we shall remove
-it. We @emph{do} need a singer and a piano, though.
+of staves together with a bracket at the left, but we do need
+staves for a singer and a piano, though.
@example
\score @{
@}
@end example
+Here we have given names to the staves -- @qq{singer} and
+@qq{piano}. This is not essential here, but it is a useful habit
+to cultivate so that you can see at a glance what each stave is
+for.
+
Remember that we use @code{<< ... >>} instead of @code{@{ ... @}} to
-show simultaneous music. And we definitely want to show the vocal
-part and piano part at the same time, not one after the other! Note
-that the @code{<< ... >>} construct is not really necessary for the
-Singer staff, as it contains only one sequential music expression;
-however, using @code{<< ... >>} instead of braces is still necessary
-if the music in the Staff is made of two simultaneous expressions,
-e.g. two simultaneous Voices, or a Voice with lyrics. We'll add some
-real music later; for now let's just put in some dummy notes and
-lyrics.
+show simultaneous music. This causes the vocal part and piano part
+to appear one above the other in the score. The @code{<< ... >>}
+construct would not be necessary for the Singer staff in the example
+above if it were going to contain only one sequential music
+expression, but @code{<< ... >>} rather than braces is necessary if
+the music in the Staff is to contain two or more simultaneous
+expressions, e.g. two simultaneous Voices, or a Voice with lyrics.
+We're going to have a voice with lyrics, so angle brackets are
+required. We'll add some real music later; for now let's just put
+in some dummy notes and lyrics. If you've forgotten how to add lyrics
+you may wish to review @code{\addlyrics} in @ref{Setting simple songs}.
@lilypond[verbatim,quote,ragged-right]
\score {
notes, not necessarily vocal notes -- for example, a violin
generally plays one voice) and some lyrics. We also have a piano
staff: it contains an upper staff (right hand) and a lower staff
-(left hand).
+(left hand), although the lower staff has yet to be given a bass
+clef.
At this stage, we could start filling in notes. Inside the curly
braces next to @code{\new Voice = "vocal"}, we could start writing
But if we did that, the @code{\score} section would get pretty
long, and it would be harder to understand what was happening. So
let's use variables instead. These were introduced at the end
-of the previous section, remember? So, adding a few notes, we
-now have a piece of real music:
+of the previous section, remember? To ensure the contents of the
+@code{text} variable are interpreted as lyrics we preface them with
+@code{\lyricmode}. Like @code{\addlyrics}, this switches the input
+mode to lyrics. Without that, LilyPond would try to interpret the
+contents as notes, which would generate errors. (Several other
+input modes are available, see @ruser{Input modes}.)
+
+So, adding a few notes and a bass clef for the left hand, we now
+have a piece of real music:
@lilypond[verbatim,quote,ragged-right]
melody = \relative c'' { r4 d8\noBeam g, c4 r }
}
@end lilypond
-
-Be careful about the difference between notes, which are introduced
-with @code{\relative} or which are directly included in a music
-expression, and lyrics, which are introduced with
-@code{\lyricmode}. These are essential to tell LilyPond
-to interpret the following content as music and text
-respectively.
-
When writing (or reading) a @code{\score} section, just take it
slowly and carefully. Start with the outer level, then work on
each smaller level. It also really helps to be strict with
@cindex bracket types
@cindex brackets, enclosing vs. marking
-You have already met a number of different types of bracket in
-writing the input file to LilyPond. These obey different rules
-which can be confusing at first. Before we explain the rules
-let's first review the different types of bracket.
+You have already met a number of different types of bracket and
+bracket-like constructs in writing the input file to LilyPond.
+These obey different rules which can be confusing at first.
+Let's first review the different types of brackets and bracket-like
+constructs.
@c attempt to force this onto a new page
@need 50
opposite order to the opening brackets. This @strong{is} a
requirement for the three types of bracket described by the word
@q{Encloses} in the table above -- they must nest properly. However,
-the remaining brackets, described with the word @q{Marks} in the table
-above together with ties and tuplets, do @strong{not} have to nest
-properly with any of the brackets. In fact, these are not brackets in
+the remaining bracket-like constructs, described with the word
+@q{Marks} in the table above together with ties and tuplets, do
+@strong{not} have to nest properly with any of the brackets or
+bracket-like constructs. In fact, these are not brackets in
the sense that they enclose something -- they are simply markers to
indicate where something starts and ends.
{ g8\( a b[ c b\) a] }
@end lilypond
-In general, different kinds of brackets, and those implied by
-tuplets, ties and grace notes, may be mixed freely.
-This example shows a beam extending into a tuplet (line 1),
-a slur extending into a tuplet (line 2),
-a beam and a slur extending into a tuplet, a tie crossing
-two tuplets, and a phrasing slur extending out of a tuplet
-(lines 3 and 4).
+In general, different kinds of brackets, bracket-like constructs,
+and those implied by tuplets, ties and grace notes, may be mixed
+freely. This example shows a beam extending into a tuplet (line 1),
+a slur extending into a tuplet (line 2), a beam and a slur
+extending into a tuplet, a tie crossing two tuplets, and a
+phrasing slur extending out of a tuplet (lines 3 and 4).
@lilypond[quote,verbatim,fragment,ragged-right]
{
@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
\key g \major
% Voice "1" Voice "2"
-<< { g4 fis8( g) a4 g } \\ { d4 d d d } >> |
+<< { 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
% 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 } >> |
+ << { g4 f e } \\ { r8 e4 d c8~ } >>
+ << { d2 e2 } \\ { c8 b16 a b8 g~ g2 } \\ { s4 b4 c2 } >>
}
@end lilypond
\new Staff \relative c' {
% Main voice
c16 d e f
- << % Bar 1
+ << % Bar 1
{
\voiceOneStyle
g4 f e
\\
{
\voiceTwoStyle
- r8 e4 d c8 ~
+ r8 e4 d c8~
}
>>
- << % Bar 2
+ << % Bar 2
% Voice 1 continues
{ d2 e2 }
\\
@lilypond[quote,ragged-right]
\new Staff \relative c'' {
\key aes \major
- << % Voice one
+ << % Voice one
{ c2 aes4. bes8 }
- \\ % Voice two
+ \\ % Voice two
{ aes2 f4 fes }
- \\ % No voice three
- \\ % Voice four
+ \\ % No voice three
+ \\ % Voice four
{
% Ignore these for now - they are explained in Ch 4
\once \override NoteColumn #'force-hshift = #0
\new Staff \relative c'' {
\key aes \major
<<
- { % Voice one
+ { % Voice one
\voiceOneStyle
c2 aes4. bes8
}
\once \override NoteColumn #'force-hshift = #0.5
des2
}
- >> |
- <c ees aes c>1 |
+ >>
+ <c ees aes c>1
}
@end lilypond
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
\key aes \major
- << % Voice one
+ << % Voice one
{ c2 aes4. bes8 }
- \\ % Voice two
- { aes2 f4 fes }
- \\ % Omit Voice three
- \\ % Voice four
+ \\ % Voice two
+ { aes2 f4 fes }
+ \\ % Omit Voice three
+ \\ % Voice four
{ <ees c>2 des2 }
- >> |
- <c ees aes c>1 |
+ >>
+ <c ees aes c>1
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\relative c'{
% Default behavior or behavior after \oneVoice
- c d8 ~ d e4 ( f g a ) b-> c
+ c d8~ d e4( f g a) b-> c
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\relative c'{
\voiceOne
- c d8 ~ d e4 ( f g a ) b-> c
+ c d8~ d e4( f g a) b-> c
\oneVoice
- c, d8 ~ d e4 ( f g a ) b-> c
+ c, d8~ d e4( f g a) b-> c
}
@end lilypond
@lilypond[quote,ragged-right,verbatim]
\relative c'{
\voiceTwo
- c d8 ~ d e4 ( f g a ) b-> c
+ c d8~ d e4( f g a) b-> c
\oneVoice
- c, d8 ~ d e4 ( f g a ) b-> c
+ c, d8~ d e4( f g 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 e2) | }
% Initiate second voice
\new Voice {
- % Set stems, etc, down
+ % Set stems, etc., down
\voiceTwo
- r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2
+ r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
% Set stems, etc, up
\voiceThree
- s2. | s4 b4 c2
+ s2. | s4 b4 c2 |
}
>>
}
\new Staff \relative c' {
c16^( d e f
<<
- { g4 f e | d2 e2) }
+ { g4 f e | d2 e2) | }
\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
\new Voice {
% Set stems, etc, down
\voiceTwo
- s4 r8 e4 d c8 ~ | c8 b16 a b8 g ~ g2 |
+ s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
}
% Initiate third voice
\new Voice {
@lilypond[quote,verbatim]
global = { \time 6/8 \partial 8 \key f \major}
SopOneMusic = \relative c'' {
- c8 | c([ bes)] a a([ g)] f | f'4. b, | c4.~ c4 }
+ 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' }
+ r8 | r4. r4 c8 | a'([ g)] f f([ e)] d | e([ d)] c bes' | }
SopOneLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, __ }
+ Let | flee -- cy flocks the | hills a -- dorn, __ | }
SopTwoLyrics = \lyricmode {
- Let | flee -- cy flocks the | hills a -- dorn, }
+ Let | flee -- cy flocks the | hills a -- dorn, | }
\score {
\new ChoirStaff <<
@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 }
+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, }
+ E -- | ter -- nal fa -- ther, | strong to save, | }
VerseTwo = \lyricmode {
- O | Christ, whose voice the | wa -- ters heard, }
+ O | Christ, whose voice the | wa -- ters heard, | }
VerseThree = \lyricmode {
- O | Ho -- ly Spi -- rit, | who didst brood }
+ O | Ho -- ly Spi -- rit, | who didst brood | }
VerseFour = \lyricmode {
- O | Tri -- ni -- ty of | love and pow'r }
+ O | Tri -- ni -- ty of | love and pow'r | }
\score {
\new ChoirStaff <<
\new Staff <<
\clef "bass"
\new Voice = "Tenor" { \voiceOne \TimeKey \TenorMusic }
- \new Voice = "Bass" { \voiceTwo \BassMusic }
+ \new Voice = "Bass" { \voiceTwo \BassMusic }
>>
>>
}
@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!
+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.
versenotes = \relative c'' {
\clef "treble"
\key g \major
- \time 3/4 g g g b b b
+ \time 3/4
+ g g g | b b b |
}
versewords = \lyricmode {
One two three four five six
versenotes = \relative c'' {
\clef "treble"
\key g \major
- \time 3/4 g g g b b b
+ \time 3/4
+ g g g | b b b |
}
refrainnotesA = \relative c'' {
\time 2/4
- c c g g \bar "|."
+ c c | g g \bar "|."
}
refrainnotesB = \relative c {
\clef "bass"
\key g \major
- c e d d
+ c e | d d |
}
versewords = \lyricmode {
One two three four five six
versenotes = \relative c'' {
\clef "treble"
\key g \major
- \time 3/4 g g g b b b
+ \time 3/4
+ g g g | b b b |
}
refrainnotesA = \relative c'' {
\time 2/4
- c c g g \bar "|."
+ c c | g g \bar "|."
}
refrainnotesB = \relative c {
\clef "bass"
\key g \major
- c e d d
+ c e | d d |
}
versewords = \lyricmode {
One two three four five six
@cindex creating contexts
@cindex contexts, creating
-There can be only one top level context: the @code{Score} context.
-This is created with the @code{\score} command, or, in simple scores,
-it is created automatically.
+In an input file a score block, introduced with a @code{\score}
+command, contains a single music expression and an associated
+output definition (either a @code{\layout} or a @code{\midi} block).
+The @code{Score} context is usually left to be created automatically
+when the interpretation of that music expression starts.
For scores with only one voice and one staff, the @code{Voice} and
-@code{Staff} contexts may be left to be created automatically, but for
-more complex scores it is necessary to create them by hand. The
-simplest command that does this is @code{\new}. It is prepended to a
-music expression, for example
+@code{Staff} contexts may also be left to be created automatically,
+but for more complex scores it is necessary to create them by hand.
+The simplest command that does this is @code{\new}. It is prepended
+to a music expression, for example
@example
\new @var{type} @var{music-expression}
@code{Voice}). This command creates a new context, and starts
interpreting the @var{music-expression} within that context.
-Note that there is no @code{\new Score} command;
-the single top-level @code{Score} context is introduced
-with @code{\score}.
+(Note that a @code{\new Score} command is not normally required,
+as the essential top-level @code{Score} context is created
+automatically when the music expression within the @code{\score}
+block is interpreted. The only reason for creating a @code{Score}
+context explicitly using @code{\new Score} is to introduce a
+@code{\with} block in which one or more score-wide default values
+of context properties may be specified. Information on using
+@code{\with} blocks can be found under the heading
+@qq{Setting context properties with @code{\\with} } in
+@ref{Modifying context properties}.)
You have seen many practical examples which created new
@code{Staff} and @code{Voice} contexts in earlier sections, but
\clef "treble"
\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 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
Where the @emph{ContextName} is usually @code{Score},
@code{Staff} or @code{Voice}. It may be omitted,
-in which case @code{Voice} is assumed.
+in which case the current context (typically @code{Voice}) is assumed.
The names of context properties consist of words joined
together with no hyphens or underscores, all except the
<<
\new Staff \relative c'' {
ais4 aes
- }
+ }
\new Staff \relative c'' {
\set Staff.extraNatural = ##f
ais4 aes
- }
+ }
>>
@end lilypond
<<
\new Staff \relative c'' {
ais4 aes
- }
+ }
\new Staff \relative c'' {
\set Score.extraNatural = ##f
ais4 aes
- }
+ }
>>
@end lilypond
@funindex with
@cindex context properties, setting with \with
-Context properties may also be set at the time the context is
-created. Sometimes this is a clearer way of specifying a
+The default value of context properties may be set at the time the
+context is created. Sometimes this is a clearer way of setting a
property value if it is to remain fixed for the duration of
the context. When a context is created with a @code{\new}
-command it may be followed immediately by a
-@code{\with @{ .. @}} block in which the property values are
-set. For example, if we wish to suppress the printing of
-extra naturals for the duration of a staff we would write:
+command it may be followed immediately by a @code{\with @{ .. @}}
+block in which the default property values are set. For example,
+if we wish to suppress the printing of extra naturals for the
+duration of a staff we would write:
@example
\new Staff \with @{ extraNatural = ##f @}
>>
@end lilypond
+Or, if the property override is to be applied to all staves
+within the score, it may be appended to an explicit
+@code{\new Score} command, like this:
+
+@lilypond[quote,verbatim,ragged-right]
+\score {
+ \new Score \with { extraNatural = ##f } <<
+ \new Staff {
+ \relative c'' {
+ gis ges aes ais
+ }
+ }
+ \new Staff {
+ \relative c'' {
+ gis ges aes ais
+ }
+ }
+ >>
+}
+@end lilypond
+
Properties set in this way may still be changed dynamically using
-@code{\set} and returned to their default value with @code{\unset}.
+@code{\set} and returned to the default value set in the
+@code{\with} block with @code{\unset}.
@cindex fontSize, default and setting
-The @code{fontSize} property is treated differently. If this is
-set in a @code{\with} clause it effectively resets the default
-value of the font size. If it is later changed with @code{\set},
-this new default value may be restored with the
+So if the @code{fontSize} property is set in a @code{\with} clause
+it sets the default value of the font size. If it is later changed
+with @code{\set}, this new default value may be restored with the
@code{\unset fontSize} command.
@subsubheading Setting context properties with @code{\context}
@seealso
Notation Reference:
@ruser{Changing context default settings}.
-@c FIXME
-@c uncomment when backslash-node-name issue is resolved -pm
-@c @ruser{The set command}.
+@ruser{The set command}.
Internals Reference:
@rinternals{Contexts},
\score {
<<
\new Staff <<
- \relative c'' { c a b g }
+ \relative c'' {
+ c a b g
+ }
>>
\new Staff <<
- \relative c' { c a b g }
+ \relative c' {
+ c a b g
+ }
>>
\new Staff <<
\clef "G_8"
- \relative c' { c a b g }
+ \relative c' {
+ c a b g
+ }
>>
\new Staff <<
\clef "bass"
- \relative c { c a b g }
+ \relative c {
+ c a b g
+ }
>>
>>
\layout {
@cindex template, modifying
@cindex modifying templates
-Start off with the template that seems closest to what you want to end
-up with. Let's say that you want to write something for soprano and
-cello. In this case, we would start with the @q{Notes and lyrics} template (for the
-soprano part).
+Start off with the template that seems closest to what you want to
+end up with. Let's say that you want to write something for
+soprano and cello. In this case, we would start with the
+@q{Notes and lyrics} template (for the soprano part).
@example
\version @w{"@version{}"}
@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 @{ @}
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 {
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" { \global \sopranoMusic }
+ \new Voice = "sopranos" {
+ \global
+ \sopranoMusic
+ }
>>
- \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+ \new Lyrics \lyricsto "sopranos" {
+ \sopranoWords
+ }
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" { \global \altoMusic }
+ \new Voice = "altos" {
+ \global
+ \altoMusic
+ }
>>
\new Lyrics \lyricsto "altos" { \altoWords }
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" { \global \tenorMusic }
+ \new Voice = "tenors" {
+ \global
+ \tenorMusic
+ }
>>
\new Lyrics \lyricsto "tenors" { \tenorWords }
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" { \global \bassMusic }
+ \new Voice = "basses" {
+ \global
+ \bassMusic
+ }
>>
- \new Lyrics \lyricsto "basses" { \bassWords }
+ \new Lyrics \lyricsto "basses" {
+ \bassWords
+ }
>> % end ChoirStaff
-
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano"
\new Staff = "upper" \upper
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" @{ \global \sopranoMusic @}
+ \new Voice = "sopranos" @{
+ \global
+ \sopranoMusic
+ @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+ \new Lyrics \lyricsto "sopranos" @{
+ \sopranoWords
+ @}
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" @{ \global \altoMusic @}
+ \new Voice = "altos" @{
+ \global
+ \altoMusic
+ @}
>>
- \new Lyrics \lyricsto "altos" @{ \altoWords @}
+ \new Lyrics \lyricsto "altos" @{
+ \altoWords
+ @}
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" @{ \global \tenorMusic @}
+ \new Voice = "tenors" @{
+ \global
+ \tenorMusic
+ @}
>>
- \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+ \new Lyrics \lyricsto "tenors" @{
+ \tenorWords
+ @}
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" @{ \global \bassMusic @}
+ \new Voice = "basses" @{
+ \global
+ \bassMusic
+ @}
>>
- \new Lyrics \lyricsto "basses" @{ \bassWords @}
+ \new Lyrics \lyricsto "basses" @{
+ \bassWords
+ @}
>> % end ChoirStaff
@end example
<< % combine ChoirStaff and PianoStaff one above the other
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \new Voice = "sopranos" @{ \global \sopranoMusic @}
+ \new Voice = "sopranos" @{
+ \global
+ \sopranoMusic
+ @}
>>
- \new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
+ \new Lyrics \lyricsto "sopranos" @{
+ \sopranoWords
+ @}
\new Staff = "altos" <<
- \new Voice = "altos" @{ \global \altoMusic @}
+ \new Voice = "altos" @{
+ \global
+ \altoMusic
+ @}
>>
- \new Lyrics \lyricsto "altos" @{ \altoWords @}
+ \new Lyrics \lyricsto "altos" @{
+ \altoWords
+ @}
\new Staff = "tenors" <<
\clef "G_8" % tenor clef
- \new Voice = "tenors" @{ \global \tenorMusic @}
+ \new Voice = "tenors" @{
+ \global
+ \tenorMusic
+ @}
>>
- \new Lyrics \lyricsto "tenors" @{ \tenorWords @}
+ \new Lyrics \lyricsto "tenors" @{
+ \tenorWords
+ @}
\new Staff = "basses" <<
\clef "bass"
- \new Voice = "basses" @{ \global \bassMusic @}
+ \new Voice = "basses" @{
+ \global
+ \bassMusic
+ @}
>>
- \new Lyrics \lyricsto "basses" @{ \bassWords @}
+ \new Lyrics \lyricsto "basses" @{
+ \bassWords
+ @}
>> % end ChoirStaff
\new PianoStaff <<
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 |
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 {
\new ChoirStaff <<
\new Staff = "sopranos" <<
\set Staff.instrumentName = #"Soprano"
- \new Voice = "sopranos" { \global \sopranoMusic }
+ \new Voice = "sopranos" {
+ \global
+ \sopranoMusic
+ }
>>
- \new Lyrics \lyricsto "sopranos" { \sopranoWords }
+ \new Lyrics \lyricsto "sopranos" {
+ \sopranoWords
+ }
\new Staff = "altos" <<
\set Staff.instrumentName = #"Alto"
- \new Voice = "altos" { \global \altoMusic }
+ \new Voice = "altos" {
+ \global
+ \altoMusic
+ }
>>
- \new Lyrics \lyricsto "altos" { \altoWords }
+ \new Lyrics \lyricsto "altos" {
+ \altoWords
+ }
\new Staff = "tenors" <<
\set Staff.instrumentName = #"Tenor"
- \new Voice = "tenors" { \global \tenorMusic }
+ \new Voice = "tenors" {
+ \global
+ \tenorMusic
+ }
>>
- \new Lyrics \lyricsto "tenors" { \tenorWords }
+ \new Lyrics \lyricsto "tenors" {
+ \tenorWords
+ }
\new Staff = "basses" <<
\set Staff.instrumentName = #"Bass"
- \new Voice = "basses" { \global \bassMusic }
+ \new Voice = "basses" {
+ \global
+ \bassMusic
+ }
>>
- \new Lyrics \lyricsto "basses" { \bassWords }
+ \new Lyrics \lyricsto "basses" {
+ \bassWords
+ }
>> % end ChoirStaff
\new PianoStaff <<
title = "Jesu, meine Freude"
composer = "J S Bach"
@}
-TimeKey = @{ \time 4/4 \key c \minor @}
-ManualOneVoiceOneMusic = @{s1@}
-ManualOneVoiceTwoMusic = @{s1@}
-ManualTwoMusic = @{s1@}
-PedalOrganMusic = @{s1@}
+TimeKey = @{
+ \time 4/4
+ \key c \minor
+@}
+ManualOneVoiceOneMusic = @{ s1 @}
+ManualOneVoiceTwoMusic = @{ s1 @}
+ManualTwoMusic = @{ s1 @}
+PedalOrganMusic = @{ s1 @}
\score @{
@}
@example
\new PianoStaff <<
\new Staff = "ManualOne" <<
- \new Voice @{ \ManualOneVoiceOneMusic @}
- \new Voice @{ \ManualOneVoiceTwoMusic @}
+ \new Voice @{
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \ManualOneVoiceTwoMusic
+ @}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
- \new Voice @{ \ManualTwoMusic @}
+ \new Voice @{
+ \ManualTwoMusic
+ @}
>> % end ManualTwo Staff context
>> % end PianoStaff context
@end example
<< % PianoStaff and Pedal Staff must be simultaneous
\new PianoStaff <<
\new Staff = "ManualOne" <<
- \new Voice @{ \ManualOneVoiceOneMusic @}
- \new Voice @{ \ManualOneVoiceTwoMusic @}
+ \new Voice @{
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \ManualOneVoiceTwoMusic
+ @}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
- \new Voice @{ \ManualTwoMusic @}
+ \new Voice @{
+ \ManualTwoMusic
+ @}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
- \new Voice @{ \PedalOrganMusic @}
+ \new Voice @{
+ \PedalOrganMusic
+ @}
>>
>>
@end example
\new Staff = "ManualOne" <<
\TimeKey % set time signature and key
\clef "treble"
- \new Voice @{ \voiceOne \ManualOneVoiceOneMusic @}
- \new Voice @{ \voiceTwo \ManualOneVoiceTwoMusic @}
+ \new Voice @{
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ @}
+ \new Voice @{
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ @}
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\TimeKey
\clef "bass"
- \new Voice @{ \ManualTwoMusic @}
+ \new Voice @{
+ \ManualTwoMusic
+ @}
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\TimeKey
\clef "bass"
- \new Voice @{ \PedalOrganMusic @}
+ \new Voice @{
+ \PedalOrganMusic
+ @}
>> % end PedalOrgan Staff
>>
@} % end Score context
title = "Jesu, meine Freude"
composer = "J S Bach"
}
-TimeKey = { \time 4/4 \key c \minor }
+TimeKey = {
+ \time 4/4
+ \key c \minor
+}
ManualOneVoiceOneMusic = \relative g' {
- g4 g f ees | d2 c2 |
+ g4 g f ees
+ d2 c2
}
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~
+ c c4 b8 c8. g16 c b c d
}
ManualTwoMusic = \relative c' {
- c16 b c8~ c16 b c g a8 g~ g16 g aes ees |
- f ees f d g aes g f ees d e8~ ees16 f ees d |
+ c16 b c8~ c16 b c g a8 g~ g16 g aes ees
+ f ees f d g aes g f ees d e8~ ees16 f ees d
}
PedalOrganMusic = \relative c {
- r8 c16 d ees d ees8~ ees16 a, b g c b c8 |
- r16 g ees f g f g8 c,2 |
- }
+ 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 Staff = "ManualOne" <<
\TimeKey % set time signature and key
\clef "treble"
- \new Voice { \voiceOne \ManualOneVoiceOneMusic }
- \new Voice { \voiceTwo \ManualOneVoiceTwoMusic }
+ \new Voice {
+ \voiceOne
+ \ManualOneVoiceOneMusic
+ }
+ \new Voice {
+ \voiceTwo
+ \ManualOneVoiceTwoMusic
+ }
>> % end ManualOne Staff context
\new Staff = "ManualTwo" <<
\TimeKey
\clef "bass"
- \new Voice { \ManualTwoMusic }
+ \new Voice {
+ \ManualTwoMusic
+ }
>> % end ManualTwo Staff context
>> % end PianoStaff context
\new Staff = "PedalOrgan" <<
\TimeKey
\clef "bass"
- \new Voice { \PedalOrganMusic }
+ \new Voice {
+ \PedalOrganMusic
+ }
>> % end PedalOrgan Staff context
>>
} % end Score context
@lilypond[quote,verbatim,ragged-right]
fragmentA = \relative c'' { a4 a8. b16 }
fragmentB = \relative c'' { a8. gis16 ees4 }
-violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
+violin = \new Staff {
+ \fragmentA
+ \fragmentA
+ \fragmentB
+ \fragmentA
+}
\score {
{
\violin
@c TODO Avoid padtext - not needed with skylining
@lilypond[quote,verbatim,ragged-right]
-dolce = \markup{ \italic \bold dolce }
+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
@end lilypond
Using variables is also a good way to reduce work if the
-LilyPond input syntax changes (see @rprogram{Updating old input files}). If
+LilyPond input syntax changes (see
+@rprogram{Updating files with convert-ly}). If
you have a single definition (such as @code{\dolce}) for all your
input files (see @ref{Style sheets}), then if the syntax changes, you
only need to update your single @code{\dolce} definition,
@lilypond[quote,ragged-right]
\relative c <<
\new Staff {
- \time 2/4 R2*3
+ \time 2/4
+ R2*3
r4 f8 a cis4 f e d
}
\new Staff {
\clef bass
r4 d,8 f | gis4 c | b bes |
- a8 e f4 | g d | gis f
+ a8 e f4 | g d | gis f |
}
>>
@end lilypond