version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.61"
+@c \version "2.12.0"
@node Fundamental concepts
@chapter Fundamental concepts
<<
{ f c c }
\new Staff \with {
- alignAboveContext = "main" }
+ alignAboveContext = #"main" }
{ f8 f c }
>>
r4 |
odd-numbered voices taking upward stems and the even-numbered
voices downward ones. The stems for voices 1 and 2 are right,
but the stems in voice 3 should go down in this particular piece
-of music. We can correct this simply by missing out voice three
-and placing the music in voice four:
+of music. We can correct this by skipping voice three
+and placing the music in voice four. This is done by simply
+adding another pair of @code{\\}.
@lilypond[quote,verbatim,fragment,ragged-right]
\new Staff \relative c'' {
The input is rather sparse, but in the output, bar lines,
accidentals, clef, and time signature have been added. When
LilyPond @emph{interprets} the input the musical information
-is inspected in time order, similar to reading a score from left
-to right. While reading the input, the program remembers where
-measure boundaries are, and which pitches require explicit
+is parsed from left to right, similar to the way a performer
+reads the score. While reading the input, the program remembers
+where measure boundaries are, and which pitches require explicit
accidentals. This information must be held on several levels.
-For example, the effect of an accidental is limited
-to a single staff, while a bar line must be synchronized across
-the entire score.
+For example, an accidental affects only a single staff, while
+a bar line must be synchronized across the entire score.
Within LilyPond, these rules and bits of information are grouped in
-@emph{Contexts}. We have already met the @code{Voice} context.
+@emph{Contexts}. We have already introduced the @code{Voice} context.
Others are the @code{Staff} and @code{Score} contexts. Contexts are
hierarchical to reflect the hierarchical nature of a musical score.
For example: a @code{Staff} context can contain many @code{Voice}
shall see later that text can actually be specified in a much more
general way by using the very powerful @code{markup} command.
-@unnumberedsubsubsec Setting context properties with @code{\with}
+@subsubheading Setting context properties with @code{\with}
@funindex \with
@funindex with
this new default value may be restored with the
@code{\unset fontSize} command.
-@unnumberedsubsubsec Setting context properties with @code{\context}
+@subsubheading Setting context properties with @code{\context}
@cindex context properties, setting with \context
@funindex \context
<< % combine ChoirStaff and PianoStaff in parallel
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = "Soprano"
+ \set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" { \global \sopranoMusic }
>>
\new Lyrics \lyricsto "sopranos" { \sopranoWords }
\new Staff = "altos" <<
- \set Staff.instrumentName = "Alto"
+ \set Staff.instrumentName = #"Alto"
\new Voice = "altos" { \global \altoMusic }
>>
\new Lyrics \lyricsto "altos" { \altoWords }
\new Staff = "tenors" <<
- \set Staff.instrumentName = "Tenor"
+ \set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" { \global \tenorMusic }
>>
\new Lyrics \lyricsto "tenors" { \tenorWords }
\new Staff = "basses" <<
- \set Staff.instrumentName = "Bass"
+ \set Staff.instrumentName = #"Bass"
\new Voice = "basses" { \global \bassMusic }
>>
\new Lyrics \lyricsto "basses" { \bassWords }
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano"
+ \set PianoStaff.instrumentName = #"Piano"
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
@example
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = "Soprano"
+ \set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" @{ \global \sopranoMusic @}
>>
\new Lyrics \lyricsto "sopranos" @{ \sopranoWords @}
\new Staff = "altos" <<
- \set Staff.instrumentName = "Alto"
+ \set Staff.instrumentName = #"Alto"
\new Voice = "altos" @{ \global \altoMusic @}
>>
\new Lyrics \lyricsto "altos" @{ \altoWords @}
\new Staff = "tenors" <<
- \set Staff.instrumentName = "Tenor"
+ \set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" @{ \global \tenorMusic @}
>>
\new Lyrics \lyricsto "tenors" @{ \tenorWords @}
\new Staff = "basses" <<
- \set Staff.instrumentName = "Bass"
+ \set Staff.instrumentName = #"Bass"
\new Voice = "basses" @{ \global \bassMusic @}
>>
\new Lyrics \lyricsto "basses" @{ \bassWords @}
@example
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano "
+ \set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano"
+ \set PianoStaff.instrumentName = #"Piano"
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>
<< % combine ChoirStaff and PianoStaff in parallel
\new ChoirStaff <<
\new Staff = "sopranos" <<
- \set Staff.instrumentName = "Soprano"
+ \set Staff.instrumentName = #"Soprano"
\new Voice = "sopranos" { \global \sopranoMusic }
>>
\new Lyrics \lyricsto "sopranos" { \sopranoWords }
\new Staff = "altos" <<
- \set Staff.instrumentName = "Alto"
+ \set Staff.instrumentName = #"Alto"
\new Voice = "altos" { \global \altoMusic }
>>
\new Lyrics \lyricsto "altos" { \altoWords }
\new Staff = "tenors" <<
- \set Staff.instrumentName = "Tenor"
+ \set Staff.instrumentName = #"Tenor"
\new Voice = "tenors" { \global \tenorMusic }
>>
\new Lyrics \lyricsto "tenors" { \tenorWords }
\new Staff = "basses" <<
- \set Staff.instrumentName = "Bass"
+ \set Staff.instrumentName = #"Bass"
\new Voice = "basses" { \global \bassMusic }
>>
\new Lyrics \lyricsto "basses" { \bassWords }
>> % end ChoirStaff
\new PianoStaff <<
- \set PianoStaff.instrumentName = "Piano "
+ \set PianoStaff.instrumentName = #"Piano "
\new Staff = "upper" \upper
\new Staff = "lower" \lower
>>