somewhat familiar with LilyPond.
@menu
-* Note entry::
-* Easier music entry::
-* Staff notation::
-* Polyphony::
-* Beaming::
-* Accidentals::
-* Expressive marks::
-* Repeats::
-* Rhythmic music::
-* Piano music::
-* Vocal music::
-* Other instrument specific notation::
-* Tablatures::
-* Popular music::
-* Orchestral music::
-* Ancient notation::
-* Contemporary notation::
-* Educational use::
+* Note entry::
+* Easier music entry::
+* Staff notation::
+* Polyphony::
+* Beaming::
+* Accidentals::
+* Expressive marks::
+* Repeats::
+* Rhythmic music::
+* Piano music::
+* Vocal music::
+* Other instrument specific notation::
+* Tablatures::
+* Popular music::
+* Orchestral music::
+* Ancient notation::
+* Contemporary notation::
+* Educational use::
@end menu
@c FIXME: Note entry vs Music entry at top level menu is confusing.
related constructs, such as stems, tuplets and ties.
@menu
-* Notes::
-* Pitches::
-* Chromatic alterations::
-* Micro tones::
-* Chords::
-* Rests::
-* Skips::
-* Durations::
-* Augmentation dots::
-* Scaling durations::
-* Stems::
-* Ties::
-* Tuplets::
+* Notes::
+* Pitches::
+* Chromatic alterations::
+* Micro tones::
+* Chords::
+* Rests::
+* Skips::
+* Durations::
+* Augmentation dots::
+* Scaling durations::
+* Stems::
+* Ties::
+* Tuplets::
@end menu
ceses4
ces
c
-cis
+cis
cisis
@end lilypond
@anchor{note name}
@anchor{note names}
-@example
+@example
Note Names sharp flat
nederlands.ly c d e f g a bes b -is -es
english.ly c d e f g a bf b -s/-sharp -f/-flat
norsk.ly c d e f g a b h -iss/-is -ess/-es
svenska.ly c d e f g a b h -iss -ess
italiano.ly do re mi fa sol la sib si -d -b
-catalan.ly do re mi fa sol la sib si -d/-s -b
-espanol.ly do re mi fa sol la sib si -s -b
-
-@end example
+catalan.ly do re mi fa sol la sib si -d/-s -b
+espanol.ly do re mi fa sol la sib si -s -b
+@end example
@cindex @code{'}
@cindex @code{,}
Notes can be hidden and unhidden with the following commands
@cindex @code{\hideNotes}
-@code{\hideNotes},
+@code{\hideNotes},
@cindex @code{\unHideNotes}
@code{\unHideNotes}.
{ ceseh ceh cih cisih }
@end lilypond
-Micro tones are also exported to the MIDI file
+Micro tones are also exported to the MIDI file
@refbugs
commands. For example, the following results in an empty staff.
@lilypond[quote,raggedright,verbatim]
-{ s4 }
+{ s4 }
@end lilypond
The fragment @code{@{ \skip 4 @} } would produce an empty page.
notes longer than a whole you must use the variables @code{\longa} and
@code{\breve}
-@example
-c'\breve
+@example
+c'\breve
c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64
-r\longa r\breve
-r1 r2 r4 r8 r16 r32 r64 r64
-@end example
+r\longa r\breve
+r1 r2 r4 r8 r16 r32 r64 r64
+@end example
@lilypond[quote]
\score {
\relative c'' {
a\breve*1/2 \autoBeamOff
- a1 a2 a4 a8 a16 a32 a64 a64
+ a1 a2 a4 a8 a16 a32 a64 a64
\bar "empty"
\break
r\longa*1/4 r\breve *1/2
- r1 r2 r4 r8 r16 r32 r64 r64
+ r1 r2 r4 r8 r16 r32 r64 r64
}
\layout {
raggedright = ##t
\context {
\Staff
\remove "Clef_engraver"
- \override StaffSymbol #'transparent = ##t
+ \override StaffSymbol #'transparent = ##t
\override TimeSignature #'transparent = ##t
\override BarLine #'transparent = ##t
\consists "Pitch_squash_engraver"
duration. The default for the first note is a quarter note.
@lilypond[quote,raggedright,verbatim,fragment]
-{ a a a2 a a4 a a1 a }
+{ a a a2 a a4 a a1 a }
@end lilypond
direction manually
@cindex @code{\dotsUp}
-@code{\dotsUp},
+@code{\dotsUp},
@cindex @code{\dotsDown}
-@code{\dotsDown},
+@code{\dotsDown},
@cindex @code{\dotsNeutral}
@code{\dotsNeutral}.
@seealso
-Program reference: @internalsref{Dots}, and @internalsref{DotColumn}.
+Program reference: @internalsref{Dots}, and @internalsref{DotColumn}.
@node Scaling durations
@subsection Scaling durations
@refcommands
@cindex @code{\stemUp}
-@code{\stemUp},
+@code{\stemUp},
@cindex @code{\stemDown}
-@code{\stemDown},
+@code{\stemDown},
@cindex @code{\stemNeutral}
-@code{\stemNeutral}.
+@code{\stemNeutral}.
@node Ties
@lilypond[fragment,quote,raggedright]
\relative {
- r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
+ r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
}
@end lilypond
@cindex @code{\tieUp}
-@code{\tieUp},
+@code{\tieUp},
@cindex @code{\tieDown}
-@code{\tieDown},
+@code{\tieDown},
@cindex @code{\tieNeutral}
-@code{\tieNeutral},
+@code{\tieNeutral},
@cindex @code{\tieDotted}
-@code{\tieDotted},
+@code{\tieDotted},
@cindex @code{\tieSolid}
@code{\tieSolid}.
-@seealso
+@seealso
In this manual: @ref{Automatic note splitting}.
Switching staves when a tie is active will not produce a slanted tie.
Formatting of ties is a difficult subject. The results are often not
-optimal.
+optimal.
@node Tuplets
@subsection Tuplets
@cindex @code{tupletNumberFormatFunction}
-@cindex tuplet formatting
+@cindex tuplet formatting
@refcommands
@cindex @code{\tupletUp}
-@code{\tupletUp},
+@code{\tupletUp},
@cindex @code{\tupletDown}
-@code{\tupletDown},
+@code{\tupletDown},
@cindex @code{\tupletNeutral}
@code{\tupletNeutral}.
@menu
-* Relative octaves::
-* Octave check::
-* Bar check::
-* Skipping corrected music::
-* Automatic note splitting::
+* Relative octaves::
+* Octave check::
+* Bar check::
+* Skipping corrected music::
+* Automatic note splitting::
@end menu
@example
\relative @var{musicexpr}
@end example
-
+
The octave of notes that appear in @var{musicexpr} are calculated as
follows: if no octave changing marks are used, the basic interval
between this and the last note is always taken to be a fourth or
Here is the relative mode shown in action
@lilypond[quote,fragment,raggedright,verbatim]
\relative c'' {
- b c d c b c bes a
+ b c d c b c bes a
}
@end lilypond
@lilypond[quote,raggedright,fragment,verbatim]
\relative c' {
- c <c e g>
+ c <c e g>
<c' e g>
<c, e' g>
}
followed by @code{=}@var{quotes} which indicates what its absolute
octave should be. In the following example,
@example
-\relative c'' @{ c='' b=' d,='' @}
+\relative c'' @{ c='' b=' d,='' @}
@end example
@noindent
check passes successfully, so the check could be deleted without changing
the output of the piece.
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
\relative c' {
e
\octave b
- a
+ a
}
@end lilypond
does not, a warning is printed. In the next example, the second bar
check will signal an error
@example
-\time 3/4 c2 e4 | g2 |
+\time 3/4 c2 e4 | g2 |
@end example
-Bar checks can also be used in lyrics, for example
+Bar checks can also be used in lyrics, for example
@example
\lyricmode @{
\time 2/4
Twin -- kle | Twin -- kle
-@}
+@}
@end example
pipeSymbol = \bar "||"
{ c'2 c' | c'2 c }
-@end lilypond
+@end lilypond
@node Skipping corrected music
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
} {
- c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
+ c2. c8 d4 e f g a b c8 c2 b4 a g16 f4 e d c8. c2
}
@end lilypond
@cindex Staff notation
@menu
-* Staff symbol::
-* Key signature::
-* Clef::
-* Ottava brackets::
-* Time signature::
-* Partial measures::
-* Unmetered music::
-* Bar lines::
-* Time administration::
-* Controlling formatting of prefatory matter::
+* Staff symbol::
+* Key signature::
+* Clef::
+* Ottava brackets::
+* Time signature::
+* Partial measures::
+* Unmetered music::
+* Bar lines::
+* Time administration::
+* Controlling formatting of prefatory matter::
@end menu
@node Staff symbol
Notes, dynamic signs, etc. are grouped
with a set of horizontal lines, into a staff (plural `staves'). In our
system, these lines are drawn using a separate layout object called
-staff symbol.
+staff symbol.
@cindex staff lines, setting number of
@cindex staff lines, setting thickness of
-@cindex thickness of staff lines, setting
-@cindex number of staff lines, setting
+@cindex thickness of staff lines, setting
+@cindex number of staff lines, setting
@seealso
Setting or changing the key signature is done with the @code{\key}
command
@example
- @code{\key} @var{pitch} @var{type}
+@code{\key} @var{pitch} @var{type}
@end example
@cindex @code{\minor}
@item treble, violin, G, G2
G clef on 2nd line
@item alto, C
-@cindex alto clef
+@cindex alto clef
C clef on 3rd line
@item tenor
-@cindex tenor clef
- C clef on 4th line.
+@cindex tenor clef
+ C clef on 4th line.
@item bass, F
@cindex bass clef
F clef on 4th line
example,
-@cindex choral tenor clef
+@cindex choral tenor clef
@lilypond[quote,raggedright,verbatim,fragment,relative=1]
\clef "G_8" c4
@end lilypond
c'4
\set Staff.clefGlyph = #"clefs-C"
c'4
- \set Staff.clefOctavation = #7
+ \set Staff.clefOctavation = #7
c'4
- \set Staff.clefOctavation = #0
+ \set Staff.clefOctavation = #0
\set Staff.clefPosition = #0
c'4
\clef "bass"
\relative c''' {
a2 b
#(set-octavation 1)
- a b
+ a b
#(set-octavation 0)
a b
}
The time signature is set or changed by the @code{\time}
command
@lilypond[quote,raggedright,fragment,verbatim]
-\time 2/4 c'2 \time 3/4 c'2.
+\time 2/4 c'2 \time 3/4 c'2.
@end lilypond
The symbol that is printed can be customized with the @code{style}
\score {
\relative c'' {
#(set-time-signature 9 8 '(2 2 2 3))
- g8[ g] d[ d] g[ g] a8[( bes g]) |
+ g8[ g] d[ d] g[ g] a8[( bes g]) |
#(set-time-signature 5 8 '(3 2))
a4. g4
}
\partial 16*5 c16 cis d dis e | a2. c,4 | b2
@end lilypond
-The syntax for this command is
+The syntax for this command is
@example
- \partial @var{duration}
+\partial @var{duration}
@end example
This is internally translated into
@example
- \set Timing.measurePosition = -@var{length of duration}
+\set Timing.measurePosition = -@var{length of duration}
@end example
@cindex @code{|}
The property @code{measurePosition} contains a rational number
@lilypond[verbatim,quote,raggedright,relative,fragment]
{
- \grace f16
+ \grace f16
\partial 4
g4
- a2 g2
+ a2 g2
}
@end lilypond
off. Empty bar lines,
@example
- \bar ""
+\bar ""
@end example
@noindent
@refcommands
@cindex @code{\cadenzaOn}
-@code{\cadenzaOn},
+@code{\cadenzaOn},
@cindex @code{\cadenzaOff}
@code{\cadenzaOff}.
For allowing line breaks, there is a special command,
@example
- \bar ""
-@end example
+\bar ""
+@end example
This will insert an invisible bar line, and allow line breaks at this
point.
@seealso
-In this manual: @ref{Repeats}, @ref{System start delimiters}
+In this manual: @ref{Repeats}, @ref{System start delimiters}.
Program reference: @internalsref{BarLine} (created at
@table @code
@item currentBarNumber
- the measure number
+The measure number.
+
@item measureLength
- the length of the measures in the current time signature. For a 4/4
- time this is 1, and for 6/8 it is 3/4.
+The length of the measures in the current time signature. For a 4/4
+time this is@tie{}1, and for 6/8 it is 3/4.
+
@item measurePosition
- the point within the measure where we currently are. This quantity
- is reset to 0 whenever it exceeds @code{measureLength}. When that happens,
- @code{currentBarNumber} is incremented.
+The point within the measure where we currently are. This quantity
+is reset to@tie{}0 whenever it exceeds @code{measureLength}. When that
+happens, @code{currentBarNumber} is incremented.
+
@item timing
- if set to true, the above variables are updated for every time
- step. When set to false, the engraver stays in the current measure
- indefinitely.
+If set to true, the above variables are updated for every time
+step. When set to false, the engraver stays in the current measure
+indefinitely.
@end table
Timing can be changed by setting any of these variables explicitly.
In the next example, the 4/4 time signature is printed, but
@code{measureLength} is set to 5/4. After a while, the measure is
shortened by 1/8, by setting @code{measurePosition} to -3/8 at 2/4 in
-the measure, so the next bar line will fall at 2/4 + 3/8.
+the measure, so the next bar line will fall at 2/4 + 3/8.
-@lilypond[raggedright,verbatim,relative,fragment]
- \set Score.measureLength = #(ly:make-moment 5 4)
- c1 c4
- c1 c4
- c4 c4
- \set Score.measurePosition = #(ly:make-moment -3 8)
- b8 b b
- c4 c1
+@lilypond[quote,raggedright,verbatim,relative,fragment]
+\set Score.measureLength = #(ly:make-moment 5 4)
+c1 c4
+c1 c4
+c4 c4
+\set Score.measurePosition = #(ly:make-moment -3 8)
+b8 b b
+c4 c1
@end lilypond
TODO Somebody needs to explain this example, but I don't know what
they're trying to do, so it won't be me. -gp
-@lilypond[verbatim]
+@lilypond[quote,verbatim]
\transpose c c' {
- \override Staff.Clef #'break-visibility = #end-of-line-visible
- \override Staff.KeySignature #'break-visibility = #end-of-line-visible
- \set Staff.explicitClefVisibility = #end-of-line-visible
- \set Staff.explicitKeySignatureVisibility = #end-of-line-visible
-
- % We want the time sig to take space, otherwise there is not
- % enough white at the start of the line.
- %
-
- \override Staff.TimeSignature #'transparent = ##t
- \set Score.defaultBarType = #"empty"
-
- c1 d e f g a b c
- \key d \major
- \break
-
- % see above.
- \time 4/4
-
- d e fis g a b cis d
- \key g \major
- \break
- \time 4/4
+ \override Staff.Clef
+ #'break-visibility = #end-of-line-visible
+ \override Staff.KeySignature
+ #'break-visibility = #end-of-line-visible
+ \set Staff.explicitClefVisibility = #end-of-line-visible
+ \set Staff.explicitKeySignatureVisibility = #end-of-line-visible
+
+ % We want the time sig to take space, otherwise there is not
+ % enough white at the start of the line.
+
+ \override Staff.TimeSignature #'transparent = ##t
+ \set Score.defaultBarType = #"empty"
+
+ c1 d e f g a b c
+ \key d \major
+ \break
+
+ % see above.
+ \time 4/4
+
+ d e fis g a b cis d
+ \key g \major
+ \break
+ \time 4/4
}
@end lilypond
\relative c''
\context Staff <<
\new Voice { \voiceOne cis2 b }
- \new Voice { \voiceThree b4 ais ~ ais4 gis4 }
+ \new Voice { \voiceThree b4 ais ~ ais4 gis4 }
\new Voice { \voiceTwo fis4~ fis4 f ~ f } >>
@end lilypond
the @internalsref{NoteCollision} object, they are merged
@lilypond[quote,verbatim,fragment,raggedright,relative=2]
\context Voice << {
- g8 g8
- \override Staff.NoteCollision
+ g8 g8
+ \override Staff.NoteCollision
#'merge-differently-dotted = ##t
g8 g8
} \\ { g8.[ f16] g8.[ f16] } >>
@cindex @code{\oneVoice}
-@code{\oneVoice},
+@code{\oneVoice},
@cindex @code{\voiceOne}
-@code{\voiceOne},
+@code{\voiceOne},
@cindex @code{\voiceTwo}
-@code{\voiceTwo},
+@code{\voiceTwo},
@cindex @code{\voiceThree}
-@code{\voiceThree},
+@code{\voiceThree},
@cindex @code{\voiceFour}
@code{\voiceFour}.
@cindex @code{\shiftOn}
-@code{\shiftOn},
+@code{\shiftOn},
@cindex @code{\shiftOnn}
-@code{\shiftOnn},
+@code{\shiftOnn},
@cindex @code{\shiftOnnn}
-@code{\shiftOnnn},
+@code{\shiftOnnn},
@cindex @code{\shiftOff}
@code{\shiftOff}: these commands specify in what chords of the current
voice should be shifted. The outer voices (normally: voice one and
property of the @internalsref{NoteColumn} object and pitched rests can
be used to override typesetting decisions.
-@lilypond[verbatim,raggedright]
+@lilypond[quote,verbatim,raggedright]
\relative <<
{
<d g>
<b f'>
\once \override NoteColumn #'force-hshift = #1.7
<b f'>
-} >>
+} >>
@end lilypond
Program reference: the objects responsible for resolving collisions are
@internalsref{NoteCollision} and @internalsref{RestCollision}.
-Examples:
+Examples:
@inputfileref{input/@/regression,collision@/-dots@/.ly},
@inputfileref{input/@/regression,collision@/-head-chords@/.ly},
@inputfileref{input/@/regression,collision@/-heads@/.ly},
@cindex Automatic beams
@menu
* Automatic beams::
-* Manual beams::
-* Setting automatic beam behavior::
-* Beam formatting::
+* Manual beams::
+* Setting automatic beam behavior::
+* Beam formatting::
@end menu
@node Automatic beams
@seealso
-Program reference: @internalsref{Beam}.
+Program reference: @internalsref{Beam}.
@node Manual beams
@node Setting automatic beam behavior
-@subsection Setting automatic beam behavior
+@subsection Setting automatic beam behavior
@cindex @code{autoBeamSettings}
@cindex @code{(end * * * *)}
The value of @code{autoBeamSettings} is changed with two functions,
@example
- #(override-auto-beam-setting
- '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
- [@var{context}])
- #(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m}))
+#(override-auto-beam-setting
+ '(@var{be} @var{p} @var{q} @var{n} @var{m}) @var{a} @var{b}
+ [@var{context}])
+#(revert-auto-beam-setting '(@var{be} @var{p} @var{q} @var{n} @var{m}))
@end example
Here, @var{be} is the symbol @code{begin} or @code{end}, and
@var{context} is an optional context (default: @code{'Voice}). It
For example, if automatic beams should end on every quarter note, use
the following
@example
- #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
+#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
@end example
Since the duration of a quarter note is 1/4 of a whole note, it is
entered as @code{(ly:make-moment 1 4)}.
The same syntax can be used to specify beam starting points. In this
example, automatic beams can only end on a dotted quarter note
@example
- #(override-auto-beam-setting '(end * * * *) 3 8)
+#(override-auto-beam-setting '(end * * * *) 3 8)
@end example
In 4/4 time signature, this means that automatic beams could end only on
3/8 and on the fourth beat of the measure (after 3/4, that is 2 times
replacing the second asterisks by @var{N} and @var{M}. For example, a
rule for 6/8 time exclusively looks like
@example
- #(override-auto-beam-setting '(begin * * 6 8) @dots{})
+#(override-auto-beam-setting '(begin * * 6 8) @dots{})
@end example
If a rule should be to applied only to certain types of beams, use the
@refcommands
@cindex @code{\autoBeamOff}
-@code{\autoBeamOff},
+@code{\autoBeamOff},
@cindex @code{\autoBeamOn}
@code{\autoBeamOn}.
@lilypond[quote,raggedright,relative=2,fragment,verbatim]
{
- b8[ b]
+ b8[ b]
\override Beam #'neutral-direction = #-1
- b[ b]
+ b[ b]
\override Beam #'neutral-direction = #1
- b[ b]
+ b[ b]
}
@end lilypond
+
@node Accidentals
@section Accidentals
The @code{voice} option should be used if the voices
are to be read solely by individual musicians. If the staff is to be
-used by one musician (e.g. a conductor) then
+used by one musician (e.g. a conductor) then
@code{modern} or @code{modern-cautionary}
should be used instead.
are not remembered at all---and hence all accidentals are
typeset relative to the key signature, regardless of what was
before in the music
-
+
@lilypond[quote,raggedright,fragment,verbatim,relative=1]
#(set-accidental-style 'forget)
\key d\major c4 c cis cis d d dis dis
notes and rhythms.
@menu
-* Slurs::
-* Phrasing slurs::
-* Breath marks::
-* Metronome marks::
-* Text scripts::
-* Text spanners::
-* Analysis brackets::
-* Articulations::
-* Running trills::
-* Fingering instructions::
-* Grace notes::
-* Glissando::
-* Dynamics::
+* Slurs::
+* Phrasing slurs::
+* Breath marks::
+* Metronome marks::
+* Text scripts::
+* Text spanners::
+* Analysis brackets::
+* Articulations::
+* Running trills::
+* Fingering instructions::
+* Grace notes::
+* Glissando::
+* Dynamics::
@end menu
@node Slurs
They are entered using parentheses
@lilypond[quote,raggedright,relative=2,fragment,verbatim]
- f( g a) a8 b( a4 g2 f4)
- <c e>2( <b d>2)
+f( g a) a8 b( a4 g2 f4)
+<c e>2( <b d>2)
@end lilypond
The direction of a slur can be set with the
generic commands
@example
- \override Slur #'direction = #UP
- \slurUp % shortcut for the previous line
+\override Slur #'direction = #UP
+\slurUp % shortcut for the previous line
@end example
@noindent
However, there is a convenient shorthand for forcing slur
directions. By adding @code{_} or @code{^} before the opening
-parentheses, the direction is also set. For example,
+parentheses, the direction is also set. For example,
@lilypond[relative=2,raggedright,quote,verbatim,fragment]
- c4_( c) c^( c)
+c4_( c) c^( c)
@end lilypond
Some composers write two slurs when they want legato chords. This can
be achieved in LilyPond by setting @code{doubleSlurs},
@lilypond[verbatim,raggedright,relative,fragment,quote]
- \set doubleSlurs = ##t
- <c e>4 ( <d f> <c e> <d f> )
-@end lilypond
+\set doubleSlurs = ##t
+<c e>4 ( <d f> <c e> <d f> )
+@end lilypond
+
-
@refcommands
@cindex @code{\slurUp}
-@code{\slurUp},
+@code{\slurUp},
@cindex @code{\slurDown}
-@code{\slurDown},
+@code{\slurDown},
@cindex @code{\slurNeutral}
-@code{\slurNeutral},
+@code{\slurNeutral},
@cindex @code{\slurDotted}
-@code{\slurDotted},
+@code{\slurDotted},
@cindex @code{\slurSolid}
@code{\slurSolid}.
respectively
@lilypond[quote,raggedright,fragment,verbatim,relative=1]
- \time 6/4 c'\( d( e) f( e) d\)
+\time 6/4 c'\( d( e) f( e) d\)
@end lilypond
Typographically, the phrasing slur behaves almost exactly like a
@refcommands
@cindex @code{\phrasingSlurUp}
-@code{\phrasingSlurUp},
+@code{\phrasingSlurUp},
@cindex @code{\phrasingSlurDown}
-@code{\phrasingSlurDown},
+@code{\phrasingSlurDown},
@cindex @code{\phrasingSlurNeutral}
@code{\phrasingSlurNeutral}.
@lilypond[quote,raggedright,fragment,relative=1,verbatim]
- c'4 \breathe d4
+c'4 \breathe d4
@end lilypond
The glyph of the breath mark can be tuned by overriding the
@code{text} property of the @code{BreathingSign} layout object with
any markup text. For example,
@lilypond[quote,raggedright,fragment,verbatim,relative=1]
- c'4
- \override BreathingSign #'text
- = #(make-musicglyph-markup "scripts-rvarcomma")
- \breathe
- d4
+c'4
+\override BreathingSign #'text
+ = #(make-musicglyph-markup "scripts-rvarcomma")
+\breathe
+d4
@end lilypond
-@seealso
+@seealso
Program reference: @internalsref{BreathingSign},
@internalsref{BreathingSignEvent}.
@cindex metronome marking
Metronome settings can be entered as follows
-@example
- \tempo @var{duration} = @var{per-minute}
+@example
+\tempo @var{duration} = @var{per-minute}
@end example
In the MIDI output, they are interpreted as a tempo change. In the
layout output, a metronome marking is printed
@cindex @code{\tempo}
@lilypond[quote,raggedright,verbatim,fragment]
- \tempo 8.=120 c''1
+\tempo 8.=120 c''1
@end lilypond
@seealso
Program reference: @internalsref{MetronomeChangeEvent}.
-
+
@node Text scripts
@subsection Text scripts
will be taken into account
@c
@lilypond[quote,fragment,raggedright,verbatim,relative=1]
- c4^"longtext" \fatText c4_"longlongtext" c4
+c4^"longtext" \fatText c4_"longlongtext" c4
@end lilypond
More complex formatting may also be added to a note by using the
markup command,
@lilypond[fragment,raggedright,verbatim,quote]
- c'4^\markup { bla \bold bla }
+c'4^\markup { bla \bold bla }
@end lilypond
The @code{\markup} is described in more detail in
@ref{Text markup}.
-
+
@refcommands
@cindex @code{\fatText}
-@code{\fatText},
+@code{\fatText},
@cindex @code{\emptyText}
@code{\emptyText}.
properties
@lilypond[quote,raggedright,fragment,relative=1,verbatim]
- c1
- \override TextSpanner #'direction = #-1
- \override TextSpanner #'edge-text = #'("rall " . "")
- c2\startTextSpan b c\stopTextSpan a
+c1
+\override TextSpanner #'direction = #-1
+\override TextSpanner #'edge-text = #'("rall " . "")
+c2\startTextSpan b c\stopTextSpan a
@end lilypond
@lilypond[quote,raggedright,verbatim]
\score {
- \relative c'' {
+ \relative c'' {
c4\startGroup\startGroup
c4\stopGroup
c4\startGroup
Program reference: @internalsref{HorizontalBracket},
@internalsref{NoteGroupingEvent}.
-Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
+Examples: @inputfileref{input/@/regression,note@/-group@/-bracket@/.ly}.
@node Articulations
@lilypond[quote,raggedright,fragment,verbatim]
- c''4^^ c''4_^
+c''4^^ c''4_^
@end lilypond
Other symbols can be added using the syntax
e.g.
@lilypond[quote,raggedright,verbatim,fragment,relative=2]
- c\fermata c^\fermata c_\fermata
+c\fermata c^\fermata c_\fermata
@end lilypond
@lilypond[verbatim,relative=3,raggedright,fragment,quote]
- \once \override TextScript #'script-priority = #-100
- a4^\prall^\markup { \sharp }
-
- \once \override Script #'script-priority = #-100
- a4^\prall^\markup { \sharp }
+\once \override TextScript #'script-priority = #-100
+a4^\prall^\markup { \sharp }
+
+\once \override Script #'script-priority = #-100
+a4^\prall^\markup { \sharp }
@end lilypond
Fingering instructions can be entered using
@example
- @var{note}-@var{digit}
+@var{note}-@var{digit}
@end example
For finger changes, use markup texts
@c
@lilypond[quote,verbatim,raggedright,fragment,relative=1]
- c4-1 c-2 c-3 c-4
- c^\markup { \finger "2-3" }
+c4-1 c-2 c-3 c-4
+c^\markup { \finger "2-3" }
@end lilypond
@cindex finger change
played with the thumb (e.g. in cello music)
@lilypond[quote,verbatim,raggedright,fragment,relative=2]
- <a_\thumb a'-3>8 <b_\thumb b'-3>
+<a_\thumb a'-3>8 <b_\thumb b'-3>
@end lilypond
Fingerings for chords can also be added to individual notes
of the chord by adding them after the pitches
@lilypond[quote,verbatim,raggedright,fragment,relative=2]
- < c-1 e-2 g-3 b-5 >4
+< c-1 e-2 g-3 b-5 >4
@end lilypond
@noindent
to note heads
@lilypond[quote,verbatim,raggedright,fragment,relative=1]
- \set fingeringOrientations = #'(left down)
- <c-1 es-2 g-4 bes-5 > 4
- \set fingeringOrientations = #'(up right down)
- <c-1 es-2 g-4 bes-5 > 4
+\set fingeringOrientations = #'(left down)
+<c-1 es-2 g-4 bes-5 > 4
+\set fingeringOrientations = #'(up right down)
+<c-1 es-2 g-4 bes-5 > 4
@end lilypond
Using this feature, it is also possible to put fingering instructions
very close to note heads in monophonic music,
@lilypond[verbatim,raggedright,quote,fragment]
- \set fingeringOrientations = #'(right)
- <es'-2>4
+\set fingeringOrientations = #'(right)
+<es'-2>4
@end lilypond
-
+
@seealso
Program reference: @internalsref{FingerEvent}, and @internalsref{Fingering}.
@cindex acciaccatura
@lilypond[quote,raggedright,relative=2,verbatim,fragment]
- b4 \acciaccatura d8 c4 \appoggiatura e8 d4
- \acciaccatura { g16[ f] } e4
+b4 \acciaccatura d8 c4 \appoggiatura e8 d4
+\acciaccatura { g16[ f] } e4
@end lilypond
Both are special forms of the @code{\grace} command. By prefixing this
printed in a smaller font and takes up no logical time in a measure.
@lilypond[quote,raggedright,relative=2,verbatim,fragment]
- c4 \grace c16 c4
- \grace { c16[ d16] } c2 c4
+c4 \grace c16 c4
+\grace { c16[ d16] } c2 c4
@end lilypond
@noindent
@lilypond[quote,raggedright]
<<
- \relative c''{
+ \relative c''{
c4 \grace c16 c4 \grace {
- c16[ d16] } c2 c4
+ c16[ d16] } c2 c4
}
\new Lyrics \lyricmode {
\override LyricText #'font-family = #'typewriter
-
+
\markup { (0,0) } 4
\grace { \markup {
( \fraction 1 4 , \fraction -1 16 ) } 16 }
\grace {
\markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
\markup { (\fraction 2 4 , \fraction "-1" 16 ) } 16
- }
+ }
\markup { ( \fraction 2 4 , 0 ) }
}
>>
In the following example, there are two sixteenth graces notes for
every eighth grace note
-@lilypond[quote,raggedright,relative=2,verbatim,fragment]
+@lilypond[quote,raggedright,relative=2,verbatim,fragment]
<< \new Staff { e4 \grace { c16[ d e f] } e4 }
\new Staff { c4 \grace { g8[ b] } c4 } >>
@end lilypond
@example
\new Staff @{
- #(add-grace-property 'Voice 'Stem 'direction '())
- @dots{}
+ #(add-grace-property 'Voice 'Stem 'direction '())
+ @dots{}
@}
@end example
This can be remedied by inserting grace skips, for the above example
@example
-\new Staff @{ c4 \bar "|:" \grace s16 d4 @}
+\new Staff @{ c4 \bar "|:" \grace s16 d4 @}
@end example
Grace sections should only be used within sequential music
@node Glissando
@subsection Glissando
-@cindex Glissando
+@cindex Glissando
@cindex @code{\glissando}
A glissando is a smooth change in pitch. It is denoted by a line or a
-wavy line between two notes. It is requested by attaching
+wavy line between two notes. It is requested by attaching
@code{\glissando} to a note
@lilypond[quote,raggedright,fragment,relative=2,verbatim]
Example files: @file{input/@/regression/@/glissando@/.ly}.
-
+
@refbugs
@code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}
@lilypond[quote,verbatim,raggedright,fragment,relative=2]
- c\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
- c2\fp c\sf c\sff c\sp c\spp c\sfz c\rfz
+c\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
+c2\fp c\sf c\sff c\sp c\spp c\sfz c\rfz
@end lilypond
@cindex @code{\<}
A crescendo mark is started with @code{\<} and terminated with
@code{\!}. A decrescendo is started with @code{\>} and also terminated
with @code{\!}. Because these marks are bound to notes, if you must
-use spacer notes if multiple marks are needed during one note
+use spacer notes if multiple marks are needed during one note
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
- c\< c\! d\> e\!
- << f1 { s4 s4\< s4\! \> s4\! } >>
+c\< c\! d\> e\!
+<< f1 { s4 s4\< s4\! \> s4\! } >>
@end lilypond
This may give rise to very short hairpins. Use @code{minimum-length}
in @internalsref{Voice}.@internalsref{Hairpin} to lengthen them, for
example
@example
- \override Staff.Hairpin #'minimum-length = #5
+\override Staff.Hairpin #'minimum-length = #5
@end example
You can also use a text saying @emph{cresc.} instead of hairpins. Here
is an example how to do it
@lilypond[quote,raggedright,fragment,relative=2,verbatim]
- \setTextCresc
- c \< d e f\!
- \setHairpinCresc
- e\> d c b\!
+\setTextCresc
+c \< d e f\!
+\setHairpinCresc
+e\> d c b\!
@end lilypond
@cindex crescendo
You can also supply your own texts
@lilypond[quote,raggedright,fragment,relative=1,verbatim]
- \set crescendoText = \markup { \italic "cresc. poco" }
- \set crescendoSpanner = #'dashed-line
- a'2\< a a a\!\mf
+\set crescendoText = \markup { \italic "cresc. poco" }
+\set crescendoSpanner = #'dashed-line
+a'2\< a a a\!\mf
@end lilypond
@cindex diminuendo
@refcommands
@cindex @code{\dynamicUp}
-@code{\dynamicUp},
+@code{\dynamicUp},
@cindex @code{\dynamicDown}
-@code{\dynamicDown},
+@code{\dynamicDown},
@cindex @code{\dynamicNeutral}
@code{\dynamicNeutral}.
@menu
* Repeat types::
-* Repeat syntax::
-* Repeats and MIDI::
-* Manual repeat commands::
-* Tremolo repeats::
-* Tremolo subdivisions::
-* Measure repeats::
+* Repeat syntax::
+* Repeats and MIDI::
+* Manual repeat commands::
+* Tremolo repeats::
+* Tremolo subdivisions::
+* Measure repeats::
@end menu
@node Repeat types
Make beat or measure repeats. These look like percent signs. These are not played
in MIDI output by default.
-@end table
+@end table
@node Repeat syntax
@subsection Repeat syntax
repeats. The syntax is
@example
- \repeat @var{variant} @var{repeatcount} @var{repeatbody}
+\repeat @var{variant} @var{repeatcount} @var{repeatbody}
@end example
If you have alternative endings, you may add
@cindex @code{\alternative}
@example
- \alternative @code{@{} @var{alternative1}
- @var{alternative2}
- @var{alternative3} @dots{} @code{@}}
+\alternative @{ @var{alternative1}
+ @var{alternative2}
+ @var{alternative3} @dots{} @}
@end example
where each @var{alternative} is a music expression. If you do not
give enough alternatives for all of the repeats, the first alternative
With alternative endings
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
c1
-\repeat volta 2 {c4 d e f}
+\repeat volta 2 {c4 d e f}
\alternative { {d2 d} {f f,} }
@end lilypond
It is possible to shorten volta brackets
by setting @code{voltaSpannerDuration}. In the next example, the
-bracket only lasts one measure, which is a duration of 3/4.
+bracket only lasts one measure, which is a duration of 3/4.
@lilypond[verbatim,raggedright,quote]
\relative c''{
- \time 3/4
- c c c
- \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
- \repeat "volta" 5 { d d d }
- \alternative { { e e e f f f }
- { g g g } }
+ \time 3/4
+ c c c
+ \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
+ \repeat "volta" 5 { d d d }
+ \alternative { { e e e f f f }
+ { g g g } }
}
@end lilypond
-
+
@seealso
A nested repeat like
-@example
+@example
\repeat @dots{}
\repeat @dots{}
-\alternative
-@end example
+\alternative
+@end example
@noindent
is ambiguous, since it is is not clear to which @code{\repeat} the
@code{\unfoldrepeats} music function. This functions changes all
repeats to unfold repeats.
-@lilypond[verbatim,fragment,linewidth]
+@lilypond[quote,verbatim,fragment,linewidth=8.0\cm]
\unfoldrepeats {
\repeat tremolo 8 {c'32 e' }
\repeat percent 2 { c''8 d'' }
- \repeat volta 2 {c'4 d' e' f'}
+ \repeat volta 2 {c'4 d' e' f'}
\alternative {
{ g' a' a' g' }
{f' e' d' c' }
percent repeats). For example,
@example
- \score @{
- @var{..music..}
- \layout @{ .. @}
- @}
- \score @{
- \unfoldrepeats @var{..music..}
- \midi @{ .. @}
- @}
+\score @{
+ @var{..music..}
+ \layout @{ .. @}
+@}
+\score @{
+ \unfoldrepeats @var{..music..}
+ \midi @{ .. @}
+@}
@end example
@node Manual repeat commands
@cindex @code{repeatCommands}
The property @code{repeatCommands} can be used to control the layout of
-repeats. Its value is a Scheme list of repeat commands, where each repeat
-command can be
+repeats. Its value is a Scheme list of repeat commands.
@table @asis
-@item @code{start-repeat},
- which prints a @code{|:} bar line;
-@item @code{end-repeat},
- which prints a @code{:|} bar line;
-@item @code{(volta @var{text})},
- which prints a volta bracket saying @var{text}: The text can be specified as
+@item @code{start-repeat}
+Print a @code{|:} bar line.
+
+@item @code{end-repeat}
+Print a @code{:|} bar line.
+
+@item @code{(volta @var{text})}
+Print a volta bracket saying @var{text}: The text can be specified as
a text string or as a markup text, see @ref{Text markup}. Do not
forget to change the font, as the default number font does not contain
alphabetic characters;
-@item @code{(volta #f)}, which
- stops a running volta bracket.
+
+@item @code{(volta #f)}
+Stop a running volta bracket.
@end table
@lilypond[quote,raggedright,verbatim,fragment,relative=2]
@lilypond[quote,verbatim,raggedright]
\new Voice \relative c' {
\repeat "tremolo" 8 { c16 d16 }
- \repeat "tremolo" 4 { c16 d16 }
+ \repeat "tremolo" 4 { c16 d16 }
\repeat "tremolo" 2 { c16 d16 }
}
@end lilypond
Tremolo marks can also be put on a single note. In this case, the
note should not be surrounded by braces.
@lilypond[quote,verbatim,raggedright]
- \repeat "tremolo" 4 c'16
+\repeat "tremolo" 4 c'16
@end lilypond
Similar output is obtained using the tremolo subdivision, described in
used
@lilypond[quote,raggedright,verbatim,fragment]
- c'2:8 c':32 | c': c': |
+c'2:8 c':32 | c': c': |
@end lilypond
-@c [TODO : stok is te kort bij 32en]
-@c somebody want to translate that into English? :)
+@c [TODO: stok is te kort bij 32en]
+@c somebody want to translate that into English?
+@c `Stem is too short for 32nds' (wl)
@refbugs
also be used to show the rhythms of melodies.
@menu
-* Showing melody rhythms::
-* Entering percussion::
-* Percussion staves::
+* Showing melody rhythms::
+* Entering percussion::
+* Percussion staves::
@end menu
up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
down = \drummode { bassdrum4 snare8 bd r bd sn4 }
\new DrumStaff <<
- \new DrumVoice { \voiceOne \up }
- \new DrumVoice { \voiceTwo \down }
+ \new DrumVoice { \voiceOne \up }
+ \new DrumVoice { \voiceTwo \down }
>>
@end lilypond
The above example shows verbose polyphonic notation. The short
polyphonic notation, described in @ref{Polyphony}, can also be used if
-the @internalsref{DrumVoices} are instantiated by hand first. For example,
+the @internalsref{DrumVoices} are instantiated by hand first. For example,
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\new DrumStaff <<
\context DrumVoice = "1" { s1 *2 }
\context DrumVoice = "2" { s1 *2 }
\\
{ bd4 sn4 bd4 sn4 }
>>
- }
+ }
>>
@end lilypond
@item drums-style
This is the default. It typesets a typical drum kit on a five-line staff
-@lilypond[quote,raggedright]
-nam = \lyricmode { cymc cyms cymr hh hhc hho hhho hhp cb hc
- bd sn ss tomh tommh tomml toml tomfh tomfl }
-mus = \drummode { cymc cyms cymr hh | hhc hho hhho hhp | \break cb hc
- bd sn ss tomh tommh tomml toml tomfh tomfl s16 }
+@lilypond[quote,linewidth=10.0\cm]
+nam = \lyricmode {
+ cymc cyms cymr hh hhc hho hhho hhp
+ cb hc bd sn ss tomh tommh tomml toml tomfh tomfl }
+mus = \drummode {
+ cymc cyms cymr hh hhc hho hhho hhp \break
+ cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 }
\score {
- << \new DrumStaff\with {
- \remove Bar_engraver
- \remove Time_signature_engraver
- \override Stem #'transparent = ##t
- \override Stem #'Y-extent-callback = ##f
- minimumVerticalExtent = #'(-4.0 . 5.0)
- } \mus
- \context Lyrics \nam
- >>
- \layout {
- %% need to do this, because of indented @itemize
- linewidth= 9 \cm
- \context { \Score
- \override LyricText #'font-family = #'typewriter
- \override BarNumber #'transparent =##T
-}}}
+ << \new DrumStaff \with {
+ \remove Bar_engraver
+ \remove Time_signature_engraver
+ \override Stem #'transparent = ##t
+ \override Stem #'Y-extent-callback = ##f
+ minimumVerticalExtent = #'(-4.0 . 5.0)
+ } \mus
+ \context Lyrics \nam
+ >>
+ \layout {
+ \context {
+ \Score
+ \override LyricText #'font-family = #'typewriter
+ \override BarNumber #'transparent =##T
+ }
+ }
+}
@end lilypond
The drum scheme supports six different toms. When there fewer toms, simply
@lilypond[quote,raggedright]
nam = \lyricmode { timh ssh timl ssl cb }
-mus = \drummode { timh ssh timl ssl cb s16 }
+mus = \drummode { timh ssh timl ssl cb s16 }
<<
- \context DrumStaff \with {
- \remove Bar_engraver
- \remove Time_signature_engraver
- \override Stem #'transparent = ##t
- \override Stem #'Y-extent-callback = ##f
- \override StaffSymbol #'line-count = #2
- \override StaffSymbol #'staff-space = #2
- minimumVerticalExtent = #'(-3.0 . 4.0)
- drumStyleTable = #timbales-style
- } \mus
- \context Lyrics {
- \override LyricText #'font-family = #'typewriter
-
- \nam }
+ \context DrumStaff \with {
+ \remove Bar_engraver
+ \remove Time_signature_engraver
+ \override Stem #'transparent = ##t
+ \override Stem #'Y-extent-callback = ##f
+ \override StaffSymbol #'line-count = #2
+ \override StaffSymbol #'staff-space = #2
+ minimumVerticalExtent = #'(-3.0 . 4.0)
+ drumStyleTable = #timbales-style
+ } \mus
+ \context Lyrics {
+ \override LyricText #'font-family = #'typewriter
+ \nam
+ }
>>
@end lilypond
+
@item congas-style
This typesets congas on a two line staff
@lilypond[quote,raggedright]
nam = \lyricmode { cgh cgho cghm ssh cgl cglo cglm ssl }
-mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
+mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
+
<<
- \context DrumStaff\with {
- \remove Bar_engraver
- \remove Time_signature_engraver
- drumStyleTable = #congas-style
- \override StaffSymbol #'line-count = #2
-
- %% this sucks; it will lengthen stems.
- \override StaffSymbol #'staff-space = #2
- \override Stem #'transparent = ##t
- \override Stem #'Y-extent-callback = ##f
- } \mus
- \context Lyrics {
- \override LyricText #'font-family = #'typewriter
-\nam }
+ \context DrumStaff \with {
+ \remove Bar_engraver
+ \remove Time_signature_engraver
+ drumStyleTable = #congas-style
+ \override StaffSymbol #'line-count = #2
+
+ %% this sucks; it will lengthen stems.
+ \override StaffSymbol #'staff-space = #2
+ \override Stem #'transparent = ##t
+ \override Stem #'Y-extent-callback = ##f
+ } \mus
+ \context Lyrics {
+ \override LyricText #'font-family = #'typewriter
+ \nam
+ }
>>
@end lilypond
+
@item bongos-style
This typesets bongos on a two line staff
@lilypond[quote,raggedright]
nam = \lyricmode { boh boho bohm ssh bol bolo bolm ssl }
-mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
+mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
+
<<
- \context DrumStaff\with {
- \remove Bar_engraver
- \remove Time_signature_engraver
- \override StaffSymbol #'line-count = #2
- drumStyleTable = #bongos-style
-
- %% this sucks; it will lengthen stems.
- \override StaffSymbol #'staff-space = #2
- \override Stem #'transparent = ##t
- \override Stem #'Y-extent-callback = ##f
- } \mus
- \context Lyrics {
- \override LyricText #'font-family = #'typewriter
-\nam }
+ \context DrumStaff\with {
+ \remove Bar_engraver
+ \remove Time_signature_engraver
+ \override StaffSymbol #'line-count = #2
+ drumStyleTable = #bongos-style
+
+ %% this sucks; it will lengthen stems.
+ \override StaffSymbol #'staff-space = #2
+ \override Stem #'transparent = ##t
+ \override Stem #'Y-extent-callback = ##f
+ } \mus
+ \context Lyrics {
+ \override LyricText #'font-family = #'typewriter
+ \nam
+ }
>>
@end lilypond
@item percussion-style
-to typeset all kinds of simple percussion on one line staves
+To typeset all kinds of simple percussion on one line staves.
+
@lilypond[quote,raggedright]
nam = \lyricmode { tri trio trim gui guis guil cb cl tamb cab mar hc }
-mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
+mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
+
<<
- \context DrumStaff\with{
- \remove Bar_engraver
- drumStyleTable = #percussion-style
- \override StaffSymbol #'line-count = #1
- \remove Time_signature_engraver
- \override Stem #'transparent = ##t
- \override Stem #'Y-extent-callback = ##f
- } \mus
- \context Lyrics {
- \override LyricText #'font-family = #'typewriter
- \nam
- }
+ \context DrumStaff\with{
+ \remove Bar_engraver
+ drumStyleTable = #percussion-style
+ \override StaffSymbol #'line-count = #1
+ \remove Time_signature_engraver
+ \override Stem #'transparent = ##t
+ \override Stem #'Y-extent-callback = ##f
+ } \mus
+ \context Lyrics {
+ \override LyricText #'font-family = #'typewriter
+ \nam
+ }
>>
@end lilypond
@end table
@lilypond[quote,raggedright,verbatim]
#(define mydrums '(
- (bassdrum default #f -1)
- (snare default #f 0)
- (hihat cross #f 1)
- (pedalhihat xcircle "stopped" 2)
- (lowtom diamond #f 3)))
+ (bassdrum default #f -1)
+ (snare default #f 0)
+ (hihat cross #f 1)
+ (pedalhihat xcircle "stopped" 2)
+ (lowtom diamond #f 3)))
up = \drummode { hh8 hh hh hh hhp4 hhp }
down = \drummode { bd4 sn bd toml8 toml }
\new DrumStaff <<
- \set DrumStaff.drumStyleTable
- = #(alist->hash-table mydrums)
- \new DrumVoice { \voiceOne \up }
- \new DrumVoice { \voiceTwo \down }
+ \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
+ \new DrumVoice { \voiceOne \up }
+ \new DrumVoice { \voiceTwo \down }
>>
@end lilypond
@menu
-* Automatic staff changes::
-* Manual staff switches::
-* Pedals::
-* Arpeggio::
-* Staff switch lines::
-* Cross staff stems::
-@end menu
+* Automatic staff changes::
+* Manual staff switches::
+* Pedals::
+* Arpeggio::
+* Staff switch lines::
+* Cross staff stems::
+@end menu
@refbugs
@quotation
@example
- \autochange @dots{}@var{music}@dots{}
+\autochange @dots{}@var{music}@dots{}
@end example
@end quotation
The autochanger switches on basis of pitch (middle C is the turning
point), and it looks ahead skipping over rests to switch in
advance. Here is a practical example
-
+
@lilypond[quote,verbatim,raggedright]
\context PianoStaff
\autochange \relative c'
quality output, staff switches should be specified manually.
-@code{\autochange} cannot be inside @code{\times}.
+@code{\autochange} cannot be inside @code{\times}.
Internally, the @code{\partcombine} interprets both arguments as
@code{Voice}s named @code{one} and @code{two}, and then decides when
\skip 1 * 10 %@emph{idem}
@}
>>
-@end example
+@end example
and the @context{Voice} is inserted afterwards
note or chord
@lilypond[quote,raggedright,fragment,verbatim]
- c'4\sustainDown c'4\sustainUp
+c'4\sustainDown c'4\sustainUp
@end lilypond
What is printed can be modified by setting @code{pedal@var{X}Strings},
@code{pedalSustainStyle} property to bracket objects
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
- \set Staff.pedalSustainStyle = #'bracket
- c\sustainDown d e
- b\sustainUp\sustainDown
- b g \sustainUp a \sustainDown \bar "|."
+\set Staff.pedalSustainStyle = #'bracket
+c\sustainDown d e
+b\sustainUp\sustainDown
+b g \sustainUp a \sustainDown \bar "|."
@end lilypond
A third style of pedal notation is a mixture of text and brackets,
@code{mixed}
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
- \set Staff.pedalSustainStyle = #'mixed
- c\sustainDown d e
- b\sustainUp\sustainDown
- b g \sustainUp a \sustainDown \bar "|."
+\set Staff.pedalSustainStyle = #'mixed
+c\sustainDown d e
+b\sustainUp\sustainDown
+b g \sustainUp a \sustainDown \bar "|."
@end lilypond
The default `*Ped.' style for sustain and damper pedals corresponds to
default.
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
- c\sostenutoDown d e c, f g a\sostenutoUp
+c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
For fine-tuning of the appearance of a pedal bracket, the properties
bracket may be extended to the right edge of the note head
@lilypond[quote,raggedright,fragment,verbatim,relative=2]
- \override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
- c\sostenutoDown d e c, f g a\sostenutoUp
+\override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
+c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
@node Arpeggio
@lilypond[quote,raggedright,fragment,relative=1,verbatim]
- <c e g c>\arpeggio
+<c e g c>\arpeggio
@end lilypond
When an arpeggio crosses staves, you attach an arpeggio to the chords
@lilypond[quote,raggedright,fragment,relative=1,verbatim]
\context PianoStaff <<
\set PianoStaff.connectArpeggios = ##t
- \new Staff { <c' e g c>\arpeggio }
- \new Staff { \clef bass <c,, e g>\arpeggio }
+ \new Staff { <c' e g c>\arpeggio }
+ \new Staff { \clef bass <c,, e g>\arpeggio }
>>
@end lilypond
@c todo: ugh, lousy typography. Look for real example. --hwn
@lilypond[quote,raggedright,fragment,relative=1,verbatim]
- \arpeggioBracket
- <c' e g c>\arpeggio
+\arpeggioBracket
+<c' e g c>\arpeggio
@end lilypond
@refcommands
b2 a
}
\context Staff=two { \clef bass \skip 1*2 }
->>
+>>
@end lilypond
@seealso
@refcommands
@cindex @code{\showStaffSwitch}
-@code{\showStaffSwitch},
+@code{\showStaffSwitch},
@cindex @code{\hideStaffSwitch}
@code{\hideStaffSwitch}.
@itemize @bullet
@item
- Song texts must be entered as texts, not notes. For example, the
-input @code{d} should be interpreted as a one letter syllable, not the note D.
+Song texts must be entered as texts, not notes. For example, the
+input@tie{}@code{d} should be interpreted as a one letter syllable, not the
+note@tie{}D.
+
@item
- Song texts must be printed as text, not as notes.
+Song texts must be printed as text, not as notes.
+
@item
- Song texts must be aligned with the notes of their melody
+Song texts must be aligned with the notes of their melody
@end itemize
The simplest solution to printing music uses the @code{\addlyrics}
function to solve all these problems at once. However, these
three functions can be controlled separately, which is necessary
-for complex vocal music.
+for complex vocal music.
@menu
-* Setting simple songs::
-* Entering lyrics::
-* Hyphens and extenders::
-* The Lyrics context::
-* Flexibility in alignment::
-* More stanzas::
-* Ambitus::
+* Setting simple songs::
+* Entering lyrics::
+* Hyphens and extenders::
+* The Lyrics context::
+* Flexibility in alignment::
+* More stanzas::
+* Ambitus::
@end menu
@node Setting simple songs
The easiest way to add lyrics to a melody is to append
@cindex \addlyrics
@example
- \addlyrics @{ @var{the lyrics} @}
+\addlyrics @{ @var{the lyrics} @}
@end example
@noindent
to a melody. Here is an example,
@lilypond[raggedright,verbatim,fragment,quote]
- \time 3/4
- \relative { c2 e4 g2. }
- \addlyrics { play the game }
+\time 3/4
+\relative { c2 e4 g2. }
+\addlyrics { play the game }
@end lilypond
More stanzas can be added by adding more
-@code{\addlyrics} sections
+@code{\addlyrics} sections
@lilypond[raggedright,verbatim,fragment,quote]
- \time 3/4
- \relative { c2 e4 g2. }
- \addlyrics { play the game }
- \addlyrics { speel het spel }
- \addlyrics { joue le jeu }
+\time 3/4
+\relative { c2 e4 g2. }
+\addlyrics { play the game }
+\addlyrics { speel het spel }
+\addlyrics { joue le jeu }
@end lilypond
@c TODO - this isn't such a great place for this note, but I can't
@code{\lyricsto} or @code{\lyricmode}.
@example
- @{ MUSIC @}
- \addlyrics @{ LYRICS @}
+@{ MUSIC @}
+\addlyrics @{ LYRICS @}
@end example
+@noindent
is the same as
@example
- \context Voice = blah @{ music @}
- \lyricsto "blah" \lyricsmode \new lyrics @{ LYRICS @}
+\context Voice = blah @{ music @}
+\lyricsto "blah" \lyricsmode \new lyrics @{ LYRICS @}
@end example
a pitch, but rather as a one letter syllable. Syllables are entered
like notes, but with pitches replaced by text. For example,
@example
- \lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
+\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
@end example
usually a mistake in the input file. The syllable includes a @code{@}}, so the
opening brace is not balanced
@example
- \lyricmode @{ twinkle@}
+\lyricmode @{ twinkle @}
@end example
@cindex @code{\property}, in @code{\lyricmode}
the resulting string. As a consequence, spaces must be inserted around
property commands
@example
- \override Score . LyricText #'font-shape = #'italic
+\override Score . LyricText #'font-shape = #'italic
@end example
@cindex @code{_}
following example incorporates double quotes
@example
- \lyricmode @{ He said: "\"Let" my peo ple "go\"" @}
+\lyricmode @{ He said: "\"Let" my peo ple "go\"" @}
@end example
This example is slightly academic, since it gives better looking
results to use single quotes, @code{``} and @code{''}
@example
- \lyricmode @{ He said: ``Let my peo ple go'' @}
+\lyricmode @{ He said: ``Let my peo ple go'' @}
@end example
@seealso
-Program reference: @internalsref{HyphenEvent},
+Program reference: @internalsref{HyphenEvent},
@internalsref{ExtenderEvent}, @internalsref{LyricHyphen}, and
@internalsref{LyricExtender}
Lyrics are printed by interpreting them in a @internalsref{Lyrics} context
@example
- \context Lyrics \lyricmode @dots{}
+\context Lyrics \lyricmode @dots{}
@end example
@cindex automatic syllable durations
correct duration for each syllable. This is achieved by combining the
melody and the lyrics with the @code{\lyricsto} expression
@example
-\lyricsto @var{name} \new Lyrics @dots{}
+\lyricsto @var{name} \new Lyrics @dots{}
@end example
This aligns the lyrics to the
For different or more complex orderings, the best way is to setup the
hierarchy of staves and lyrics first, e.g.
@example
-\context ChoirStaff <<
+\context ChoirStaff <<
\context Lyrics = sopranoLyrics @{ s1 @}
\context Voice = soprano @{ @emph{music} @}
\context Lyrics = tenorLyrics @{ s1 @}
@end example
and then combine the appropriate melodies and lyric lines
@example
- \lyricsto "soprano" \context Lyrics = sopranoLyrics
- @emph{the lyrics}
+\lyricsto "soprano" \context Lyrics = sopranoLyrics
+ @emph{the lyrics}
@end example
@noindent
\lyricsto "alto" @emph{etc}
@emph{etc}
>>
-@end example
+@end example
The @code{\lyricsto} command detects melismata: it only puts one
\context Voice = "lala" {
\time 3/4
f4 g8
- \melisma
+ \melisma
f e f
\melismaEnd
e2
}
\lyricsto "lala" \new Lyrics {
- la di __ daah
+ la di __ daah
}
>>
@end lilypond
Lyrics can also be entered without @code{\lyricsto}. In this case the
durations of each syllable must be entered explicitly, for example,
-@verbatim
- play2 the4 game2.
- sink2 or4 swim2.
-@end verbatim
+@example
+play2 the4 game2.
+sink2 or4 swim2.
+@end example
The alignment to a melody can be specified with the
@code{associatedVoice} property,
-@verbatim
- \set associatedVoice = #"lala"
-@end verbatim
+@example
+\set associatedVoice = #"lala"
+@end example
@noindent
The value of the property (here: @code{"lala"}) should be the name of
<< \context Voice = melody {
\time 3/4
c2 e4 g2.
- }
+ }
\new Lyrics \lyricmode {
\set associatedVoice = #"melody"
play2 the4 game2.
Examples: @ref{Small ensembles},
@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly},
-@c TODO: make separate section for melismata
+@c TODO: make separate section for melismata
@inputfileref{input/@/test,lyrics@/-melisma@/-variants@/.ly}.
@inputfileref{input/@/test,lyrics@/-melisma@/-faster@/.ly}.
-
+
@refbugs
Melismata are not detected automatically, and extender lines must be
@lilypond[verbatim,raggedright,quote]
<<
\relative \context Voice = "lahlah" {
- \set Staff.autoBeaming = ##f
+ \set Staff.autoBeaming = ##f
c4
\slurDotted
f8.[( g16])
More complex variations in text underlay are possible. It is possible
to switch the melody for a line of lyrics during the text. This is
-done by setting the @code{associatedVoice} property. In the example
+done by setting the @code{associatedVoice} property. In the example
@lilypond[raggedright,quote]
-
<<
\relative \context Voice = "lahlah" {
- \set Staff.autoBeaming = ##f
+ \set Staff.autoBeaming = ##f
c4
<<
\context Voice = alternative {
}
\new Lyrics \lyricsto "lahlah" {
% Tricky: need to set associatedVoice
- % one syllable too soon!
+ % one syllable too soon!
\set associatedVoice = alternative % applies to "ran"
Ty --
ran --
@noindent
the text for the first stanza is set to a melody called ``lahlah'',
-@verbatim
-\new Lyrics \lyricsto "lahlah" {
+@example
+\new Lyrics \lyricsto "lahlah" @{
Ju -- ras -- sic Park
-}
-@end verbatim
+@}
+@end example
The second stanza initially is set to the @code{lahlah} context, but
for the syllable ``ran'', it switches to a different melody.
This is achieved with
@example
- \set associatedVoice = alternative
+\set associatedVoice = alternative
@end example
@noindent
Again, the command must be one syllable too early, before ``Ty'' in
this case.
-@verbatim
-\new Lyrics \lyricsto "lahlah" {
+@example
+\new Lyrics \lyricsto "lahlah" @{
\set associatedVoice = alternative % applies to "ran"
Ty --
- ran --
+ ran --
no --
\set associatedVoice = lahlah % applies to "rus"
sau -- rus Rex
-}
-@end verbatim
+@}
+@end example
@noindent
The underlay is switched back to the starting situation by assigning
@cindex stanza number
@cindex singer's names
-@cindex name of singer
+@cindex name of singer
Stanza numbers can be added by setting @code{stanza}, e.g.
for example,
@example
- \layout @{
- \context @{
- \Voice
- \consists Ambitus_engraver
- @}
+\layout @{
+ \context @{
+ \Voice
+ \consists Ambitus_engraver
@}
+@}
@end example
This results in the following output
This example uses one advanced feature,
@example
- \override Ambitus #'X-offset-callbacks
- = #(list (lambda (grob axis) -1.0))
+\override Ambitus #'X-offset-callbacks
+ = #(list (lambda (grob axis) -1.0))
@end example
@noindent
This code moves the ambitus to the left. The same effect could have
been achieved with @code{extra-offset}, but then the formatting system
-would not reserve space for the moved object.
+would not reserve space for the moved object.
@seealso
include extra information for other instruments in the future.
@menu
-* Harmonic notes::
+* Harmonic notes::
@end menu
@node Harmonic notes, , Other instrument specific notation, Other instrument specific notation
@cindex harmonics
Artificial harmonics are notated with a different notehead style. They
-are entered by
+are entered by
marking the harmonic pitch with @code{\harmonic}.
@lilypond[raggedright,verbatim,quote,fragment]
- <c' g'\harmonic>4
+<c' g'\harmonic>4
@end lilypond
offers limited support for tablature.
@menu
-* Tablatures basic::
-* Non-guitar tablatures::
+* Tablatures basic::
+* Non-guitar tablatures::
@end menu
@node Tablatures basic, Non-guitar tablatures, Tablatures, Tablatures
@internalsref{TabVoice} contexts
@lilypond[quote,raggedright,fragment,verbatim]
- \context TabStaff {
+\context TabStaff {
a,4\5 c'\2 a\3 e'\1
e\4 c'\2 a\3 e'\1
}
@cindex Non-guitar tablatures
You can change the number of strings, by setting the number of lines
-in the @internalsref{TabStaff}.
+in the @internalsref{TabStaff}.
You can change the tuning of the strings. A string tuning is given as
a Scheme list with one integer number for each string, the number
@code{stringTunings} is set for the pitches e, a, d, and g
@lilypond[quote,raggedright,fragment,verbatim]
- \context TabStaff <<
- \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
-
- {
- a,4 c' a e' e c' a e'
- }
- >>
+\context TabStaff <<
+ \set TabStaff.stringTunings = #'(-5 -10 -15 -20)
+ {
+ a,4 c' a e' e c' a e'
+ }
+>>
@end lilypond
@refbugs
@node Popular music, Orchestral music, Tablatures, Notation manual
-@section Popular music
+@section Popular music
This section discusses issues that arise when writing popular music.
@menu
-* Chord names::
-* Chords mode::
-* Printing chord names::
-* Fret diagrams::
-* Improvisation::
+* Chord names::
+* Chords mode::
+* Printing chord names::
+* Fret diagrams::
+* Improvisation::
@end menu
@node Chord names, Chords mode, Popular music, Popular music
}
<< \context ChordNames \twoWays
- \context Voice \twoWays >>
+ \context Voice \twoWays >>
@end lilypond
This example also shows that the chord printing routines do not try to
@c this menu isn't needed.
@ignore
@menu
-* Chords mode::
-* Printing chord names::
+* Chords mode::
+* Printing chord names::
@end menu
@end ignore
normal pitch
@lilypond[quote,raggedright,fragment,verbatim]
- \chordmode { es4. d8 c2 }
+\chordmode { es4. d8 c2 }
@end lilypond
@noindent
modifier (which may include a number if desired)
@c
@lilypond[quote,fragment,verbatim]
- \chordmode { e1:m e1:7 e1:m7 }
+\chordmode { e1:m e1:7 e1:m7 }
@end lilypond
The first number following the root is taken to be the `type' of the
chord, thirds are added to the root until it reaches the specified
number
@lilypond[quote,fragment,verbatim]
- \chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
+\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 }
@end lilypond
@cindex root of chord
the colon, and are separated by dots
@c
@lilypond[quote,verbatim,fragment]
- \chordmode { c:5.6 c:3.7.8 c:3.6.13 }
+\chordmode { c:5.6 c:3.7.8 c:3.6.13 }
@end lilypond
Chord steps can be altered by suffixing a @code{-} or @code{+} sign
to the number
@lilypond[quote,verbatim,fragment]
- \chordmode { c:7+ c:5+.3- c:3-.5-.7- }
+\chordmode { c:7+ c:5+.3- c:3-.5-.7- }
@end lilypond
Removals are specified similarly, and are introduced by a caret. They
must come after the additions
@lilypond[quote,verbatim,fragment]
- \chordmode { c^3 c:7^5 c:9^3.5 }
+\chordmode { c^3 c:7^5 c:9^3.5 }
@end lilypond
Modifiers can be used to change pitches. The following modifiers are
supported
+
@table @code
@item m
- is the minor chord. This modifier lowers the 3rd and (if present) the 7th step.
+The minor chord. This modifier lowers the 3rd and (if present) the 7th step.
+
@item dim
- is the diminished chord. This modifier lowers the 3rd, 5th and (if present)
- the 7th step.
+The diminished chord. This modifier lowers the 3rd, 5th and (if present)
+the 7th step.
+
@item aug
- is the augmented chord. This modifier raises the 5th step.
+The augmented chord. This modifier raises the 5th step.
+
@item maj
- is the major 7th chord. This modifier raises the 7th step if present.
+The major 7th chord. This modifier raises the 7th step if present.
+
@item sus
- is the suspended 4th or 2nd. This modifier removes the 3rd
+The suspended 4th or 2nd. This modifier removes the 3rd
step. Append either @code{2} or @code{4} to add the 2nd or 4th step to
the chord.
@end table
+
Modifiers can be mixed with additions
@lilypond[quote,verbatim,fragment]
- \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
+ \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
@end lilypond
-@cindex modifiers, in chords.
+@cindex modifiers, in chords.
@cindex @code{aug}
@cindex @code{dim}
@cindex @code{maj}
explicitly)
@c
@lilypond[quote,raggedright,fragment,verbatim]
- \chordmode { c:13 c:13.11 c:m13 }
+\chordmode { c:13 c:13.11 c:m13 }
@end lilypond
@cindex @code{/}
as bass notes, can be specified by appending
@code{/}@var{pitch} to the chord
@lilypond[quote,raggedright,fragment,verbatim]
- \chordmode { c1 c/g c/f }
+\chordmode { c1 c/g c/f }
@end lilypond
@cindex @code{/+}
display chord names when there is a change in the chords scheme and at
the start of a new line
-@c originally this had linewidth=9\cm, but I though that raggedright would be better
@lilypond[quote,verbatim,raggedright]
harmonies = \chordmode {
c1:m c:m \break c:m c:m d
voltaOnThisStaff = ##t
\consists Bar_engraver
\consists "Volta_engraver"
-}
+}
\repeat volta 2 \chordmode {
f1:maj f:7 bes:7
- c:maj
+ c:maj
} \alternative {
es e
}
@item chordNameExceptions
This is a list that contains the chords that have special formatting.
-The exceptions list should be encoded as encoded as
-@verbatim
- @{ <c f g bes>1 \markup @{ \\super \"7\" \"wahh\" @} @}
-@end verbatim
+The exceptions list should be encoded as
+@example
+@{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
+@end example
To get this information into @code{chordNameExceptions} takes a little
manoeuvring. The following code transforms @code{chExceptionMusic}
(which is a sequential music) into a list of exceptions.
@example
- (sequential-music-to-chord-exceptions chExceptionMusic #t)
+(sequential-music-to-chord-exceptions chExceptionMusic #t)
@end example
Then,
@example
@cindex Banter
@cindex jazz chords
-@cindex chords, jazz
+@cindex chords, jazz
@refcommands
@cindex @code{\germanChords}
-@code{\germanChords},
+@code{\germanChords},
@cindex @code{\semiGermanChords}
@code{\semiGermanChords}.
There are three different fret-diagram markup interfaces: standard, terse,
and verbose. The three interfaces produce equivalent markups, but have
varying amounts of information in the markup string. Details about the
-markup interfaces are found at @ref{Overview of text markup commands}.
+markup interfaces are found at @ref{Overview of text markup commands}.
You can set a number of graphical properties according to your preference.
-Details about the property interface to fret diagrams are found at
+Details about the property interface to fret diagrams are found at
@internalsref{fret-diagram-interface}.
following command
@example
- \set squashedPosition = #0
- \override NoteHead #'style = #'slash
+\set squashedPosition = #0
+\override NoteHead #'style = #'slash
@end example
@noindent
@menu
-* System start delimiters::
-* Aligning to cadenzas::
-* Rehearsal marks::
-* Bar numbers::
-* Instrument names::
-* Transpose::
-* Instrument transpositions::
-* Multi measure rests::
-* Automatic part combining::
-* Hiding staves::
-* Different editions from one source::
-* Quoting other voices::
-* Formatting cue notes::
+* System start delimiters::
+* Aligning to cadenzas::
+* Rehearsal marks::
+* Bar numbers::
+* Instrument names::
+* Transpose::
+* Instrument transpositions::
+* Multi measure rests::
+* Automatic part combining::
+* Hiding staves::
+* Different editions from one source::
+* Quoting other voices::
+* Formatting cue notes::
@end menu
@node System start delimiters
\new Staff { c1 c }
\new Staff { c c }
>>
-@end lilypond
+@end lilypond
@item The group is started with a bracket, and bar lines are connected. This is done with the
\new Staff { c1 c }
\new Staff { c c }
>>
-@end lilypond
+@end lilypond
@item The group is started with a vertical line. Bar lines are not
\new Staff { c1 c }
\new Staff { c c }
>>
-@end lilypond
+@end lilypond
@end itemize
In an orchestral context, cadenzas present a special problem:
when constructing a score that includes a cadenza, all other
instruments should skip just as many notes as the length of the
-cadenza, otherwise they will start too soon or too late.
+cadenza, otherwise they will start too soon or too late.
A solution to this problem are the functions @code{mmrest-of-length}
and @code{skip-of-length}. These Scheme functions take a piece music
as argument, and generate a @code{\skip} or multi rest, exactly as
long as the piece. The use of @code{mmrest-of-length} is demonstrated
-in the following example.
+in the following example.
@lilypond[verbatim,raggedright,quote]
cadenza = \relative c' {
c4 d8 << { e f g } \\ { d4. } >>
g4 f2 g4 g
}
-
+
\new GrandStaff <<
- \new Staff { \cadenza c'4 }
+ \new Staff { \cadenza c'4 }
\new Staff {
#(ly:export (mmrest-of-length cadenza))
c'4
To print a rehearsal mark, use the @code{\mark} command
-@lilypond[quote,raggedright,fragment,verbatim,relative=1]
- c1 \mark \default
- c1 \mark \default
- c1 \mark #8
- c1 \mark \default
- c1 \mark \default
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+c1 \mark \default
+c1 \mark \default
+c1 \mark #8
+c1 \mark \default
+c1 \mark \default
@end lilypond
@noindent
function taking the current mark (an integer) and the current context
as argument. It should return a markup object. In the following
example, @code{markFormatter} is set to a canned procedure. After a
-few measures, it is set to function that produces a boxed number.
+few measures, it is set to function that produces a boxed number.
-@c fragproblem? -gp
-@lilypond[quote,raggedright,verbatim,relative=2]
-{
- \set Score.markFormatter = #format-mark-numbers
- c1 \mark \default
- c1 \mark \default
- \set Score.markFormatter
- = #(lambda (mark context)
- (make-bold-markup
- (make-box-markup (number->string mark))))
- c1 \mark \default
- c1 \mark \default
-}
+@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+\set Score.markFormatter = #format-mark-numbers
+c1 \mark \default
+c1 \mark \default
+\set Score.markFormatter
+ = #(lambda (mark context)
+ (make-bold-markup
+ (make-box-markup (number->string mark))))
+c1 \mark \default
+c1 \mark \default
+c1
@end lilypond
The file @file{scm/@/translation@/-functions@/.scm} contains the definitions
segno and fermatas on a bar line. Use @code{\markup} to
to access the appropriate symbol
-@c fragproblem? -gp
-@lilypond[quote,raggedright,verbatim,relative=2]
-{
- c1 \mark \markup { \musicglyph #"scripts-ufermata" }
- c1
-}
+@lilypond[fragment,quote,raggedright,verbatim,relative=2]
+c1 \mark \markup { \musicglyph #"scripts-ufermata" }
+c1
@end lilypond
In the case of a line break, marks must also be printed at the end of
the line, and not at the beginning. Use the following to force that
behavior
@example
- \override Score.RehearsalMark
- #'break-visibility = #begin-of-line-invisible
+\override Score.RehearsalMark
+ #'break-visibility = #begin-of-line-invisible
@end example
@cindex fermatas
@cindex coda
@cindex segno
-@cindex bar lines, putting symbols on
+@cindex bar lines, putting symbols on
@seealso
Bar numbers can be manually changed by setting the
@code{Staff.currentBarNumber} property
-@c fragproblem? -gp
-@lilypond[raggedright,quote]
+@lilypond[verbatim,raggedright,quote]
\relative c' {
\repeat unfold 4 {c4 c c c} \break
\set Score.currentBarNumber = #50
used, for the next ones @code{instr} is used.
@lilypond[quote,verbatim,raggedright,relative=1,fragment]
- \set Staff.instrument = "Ploink "
- \set Staff.instr = "Plk "
- c1
- \break
- c''
+\set Staff.instrument = "Ploink "
+\set Staff.instr = "Plk "
+c1
+\break
+c''
@end lilypond
You can also use markup texts to construct more complicated instrument
names, for example
@lilypond[quote,fragment,verbatim,raggedright]
- \set Staff.instrument = \markup {
- \column < "Clarinetti" { "in B"
- \smaller \flat } > }
-{ c''1 }
+\set Staff.instrument = \markup {
+ \column < "Clarinetti"
+ { "in B" \smaller \flat } > }
+c''1
@end lilypond
For longer instrument names, it may be useful to increase the
A music expression can be transposed with @code{\transpose}. The
syntax is
@example
- \transpose @var{from} @var{to} @var{musicexpr}
+\transpose @var{from} @var{to} @var{musicexpr}
@end example
This means that @var{musicexpr} is transposed by the interval between
this piece is a little too low for its performer, it can be
transposed up to E major with
@example
- \transpose d e @dots{}
+\transpose d e @dots{}
@end example
Consider a part written for violin (a C instrument). If
transposition will produce the appropriate part
@example
- \transpose a c @dots{}
-@end example
+\transpose a c @dots{}
+@end example
@code{\transpose} distinguishes between enharmonic pitches: both
@code{\transpose c cis} or @code{\transpose c des} will transpose up
The transposition is entered after the keyword @code{\transposition}
@example
- \transposition bes %% B-flat clarinet
+\transposition bes %% B-flat clarinet
@end example
@noindent
The pitch to use for @code{\transposition} should correspond to the
transposition of the notes. For example, when entering a score in
-concert pitch, typically all voices are entered in C, so
+concert pitch, typically all voices are entered in C, so
they should be entered as
@example
- clarinet = @{
- \transposition c'
- ...
- @}
- saxophone = @{
- \transposition c'
- ..
- @}
+clarinet = @{
+ \transposition c'
+ ...
+@}
+saxophone = @{
+ \transposition c'
+ ...
+@}
@end example
The command @code{\transposition} should be used when the music is
@code{\transposition}, e.g.
@example
- \transposition d'
- c'4^"in D"
- ...
- \transposition g'
- c'4^"in G"
- ...
+\transposition d'
+c'4^"in D"
+...
+\transposition g'
+c'4^"in G"
+...
@end example
-
+
@cindex transposition, MIDI
be expanded, and the appropriate number is added automatically
@lilypond[quote,raggedright,fragment,verbatim]
- \time 4/4 r1 | R1 | R1*2
- \set Score.skipBars = ##t R1*17 R1*4
+\time 4/4 r1 | R1 | R1*2
+\set Score.skipBars = ##t R1*17 R1*4
@end lilypond
The @code{1} in @code{R1} is similar to the duration notation used for
durations. This can be done with augmentation dots or fractions
@lilypond[quote,raggedright,fragment,verbatim]
- \set Score.skipBars = ##t
- \time 3/4
- R2. | R2.*2
- \time 13/8
- R1*13/8
- R1*13/8*12 |
- \time 10/8 R4*5*4 |
+\set Score.skipBars = ##t
+\time 3/4
+R2. | R2.*2
+\time 13/8
+R1*13/8
+R1*13/8*12 |
+\time 10/8 R4*5*4 |
@end lilypond
An @code{R} spanning a single measure is printed as either a whole rest
rest, use @code{MultiMeasureRest.expand-limit}.
@lilypond[quote,raggedright,fragment,verbatim]
- \set Score.skipBars = ##t
- R1*2 | R1*5 | R1*9
- \override MultiMeasureRest #'expand-limit = 1
- R1*2 | R1*5 | R1*9
+\set Score.skipBars = ##t
+R1*2 | R1*5 | R1*9
+\override MultiMeasureRest #'expand-limit = 1
+R1*2 | R1*5 | R1*9
@end lilypond
@cindex fermata on multi-measure rest
Texts can be added to multi-measure rests by using the
-@var{note}-@code{markup} syntax (see @ref{Text markup}).
+@var{note}-@code{markup} syntax (see @ref{Text markup}).
A variable (@code{\fermataMarkup}) is provided for
adding fermatas
@lilypond[quote,raggedright,verbatim,fragment]
- \set Score.skipBars = ##t
- \time 3/4
- R2.*10^\markup { "Ad lib" }
- R2.^\fermataMarkup
+\set Score.skipBars = ##t
+\time 3/4
+R2.*10^\markup { \italic "ad lib." }
+R2.^\fermataMarkup
@end lilypond
If you want to have a text on the left end of a multi-measure rest,
attach the text to a zero-length skip note, i.e.
@example
- s1*0^"Allegro"
- R1*4
+s1*0^"Allegro"
+R1*4
@end example
-@cindex whole rests for a full measure
+@cindex whole rests for a full measure
@seealso
Be careful when entering multimeasure rests followed by whole
notes. The following will enter two notes lasting four measures each
@example
- R1*4 cis cis
+R1*4 cis cis
@end example
When @code{skipBars} is set, the result will look OK, but the bar
numbering will be off.
The syntax for part combining is
@example
- \partcombine @var{musicexpr1} @var{musicexpr2}
+\partcombine @var{musicexpr1} @var{musicexpr2}
@end example
same notes on and off, the part combiner may typeset @code{a2} more
than once in a measure.
-@code{\partcombine} cannot be inside @code{\times}.
+@code{\partcombine} cannot be inside @code{\times}.
-@code{\partcombine} cannot be inside @code{\relative}.
+@code{\partcombine} cannot be inside @code{\relative}.
Internally, the @code{\partcombine} interprets both arguments as
@code{Voice}s named @code{one} and @code{two}, and then decides when
In orchestral scores, staff lines that only have rests are usually
removed. This saves some space. This style is called `French Score'.
-For @internalsref{Lyrics},
+For @internalsref{Lyrics},
@internalsref{ChordNames} and @internalsref{FiguredBass}, this is
switched on by default. When these line of these contexts turn out
empty after the line-breaking process, they are removed.
for the full score, and one with cue notes for the instrumental part
@example
- c1
- <<
- \tag #'part <<
- R1 \\
- @{
- \set fontSize = #-1
- c4_"cue" f2 g4 @}
- >>
- \tag #'score R1
+c1
+<<
+ \tag #'part <<
+ R1 \\
+ @{
+ \set fontSize = #-1
+ c4_"cue" f2 g4 @}
>>
- c1
+ \tag #'score R1
+>>
+c1
@end example
The same can be applied to articulations, texts, etc.: they are
made by prepending
@example
- -\tag #@var{your-tag}
+-\tag #@var{your-tag}
@end example
-to an articulation, for example,
+to an articulation, for example,
@example
- c1-\tag #'part ^4
+c1-\tag #'part ^4
@end example
This defines a note with a conditional fingering indication.
The argument of the @code{\tag} command should be a symbol, or a list
of symbols, for example,
@example
- \tag #'(original-part transposed-part) @dots{}
+\tag #'(original-part transposed-part) @dots{}
@end example
quotable. This is done with code @code{\addquote} command.
@example
- \addquote @var{name} @var{music}
+\addquote @var{name} @var{music}
@end example
Here, @var{name} is an identifying string. The @var{music} is any kind
of music. This is an example of @code{\addquote}
-@verbatim
-\addquote clarinet \relative c' {
+@example
+\addquote clarinet \relative c' @{
f4 fis g gis
-}
-@end verbatim
+@}
+@end example
This command must be entered at toplevel, i.e. outside any music
blocks.
@code{\quote},
@example
- \quote @var{name} @var{duration}
+\quote @var{name} @var{duration}
@end example
During a part, a piece of music can be quoted with the @code{\quote}
-command.
-
+command.
+
@example
\quote clarinet 2.
@end example
printed, and extracts the notes at the corresponding point of the
@code{\addquote}d voice. Therefore, the argument to @code{\addquote}
should be the entire part of the voice to be quoted, including any
-rests at the beginning.
+rests at the beginning.
Quotations take into account the transposition of both source and target
instruments, if they are specified using the @code{\transposition} command.
@example
\set Staff.quotedEventTypes =
- #'(note-event articulation-event dynamic-event)
+ #'(note-event articulation-event dynamic-event)
@end example
@noindent
will quote notes (but no rests), together with scripts and dynamics.
-
+
@refbugs
Only the contents of the first @internalsref{Voice} occurring in an
@lilypond[raggedright,verbatim]
smaller = {
- \set fontSize = #-1
+ \set fontSize = #-2
\override Stem #'length = #5.5
\override Beam #'thickness = #0.384
\override Beam #'space-function =
marked with the instrument playing the cue.
@end itemize
-@c really? Are you sure about that last point? I'll check after 3.0 -gp
+@c really? Are you sure about that last point? I'll check after 3.0 -gp
@node Ancient notation
Here are all suptopics at a glance:
@menu
-* Ancient note heads::
-* Ancient accidentals::
-* Ancient rests::
-* Ancient clefs::
-* Ancient flags::
-* Ancient time signatures::
-* Ancient articulations::
-* Custodes::
-* Divisiones::
-* Ligatures::
-* Gregorian Chant contexts::
-* Mensural contexts::
-* Figured bass::
+* Ancient note heads::
+* Ancient accidentals::
+* Ancient rests::
+* Ancient clefs::
+* Ancient flags::
+* Ancient time signatures::
+* Ancient articulations::
+* Custodes::
+* Divisiones::
+* Ligatures::
+* Gregorian Chant contexts::
+* Mensural contexts::
+* Figured bass::
@end menu
The following example demonstrates the @code{neomensural} style
@lilypond[quote,fragment,raggedright,verbatim]
- \set Score.skipBars = ##t
- \override NoteHead #'style = #'neomensural
- a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
+\set Score.skipBars = ##t
+\override NoteHead #'style = #'neomensural
+a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
@end lilypond
When typesetting a piece in Gregorian Chant notation, the
\fatText
s^\markup {
\column <
- "vaticana"
+ "vaticana"
{ " " \musicglyph #"accidentals-vaticana-1"
" " \musicglyph #"accidentals-vaticana0" }
>
The following example demonstrates the @code{neomensural} style
@lilypond[quote,fragment,raggedright,verbatim]
- \set Score.skipBars = ##t
- \override Rest #'style = #'neomensural
- r\longa r\breve r1 r2 r4 r8 r16
+\set Score.skipBars = ##t
+\override Rest #'style = #'neomensural
+r\longa r\breve r1 r2 r4 r8 r16
@end lilypond
There are no 32th and 64th rests specifically for the mensural or
only @code{mensural} style is supported
@lilypond[quote,fragment,raggedright,verbatim]
- \override Stem #'flag-style = #'mensural
- \override Stem #'thickness = #1.0
- \override NoteHead #'style = #'mensural
- \autoBeamOff
- c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
- c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
+\override Stem #'flag-style = #'mensural
+\override Stem #'thickness = #1.0
+\override NoteHead #'style = #'mensural
+\autoBeamOff
+c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8
+c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32
@end lilypond
Note that the innermost flare of each mensural flag always is
\time 2/2
c1^\markup { \hspace #-2.0 \typewriter default }
- \override Staff.TimeSignature #'style = #'numbered
+ \override Staff.TimeSignature #'style = #'numbered
\time 2/2
c1^\markup { \hspace #-2.0 \typewriter numbered }
\override Staff.TimeSignature #'style = #'mensural
\time 2/2
c1^\markup { \hspace #-2.0 \typewriter mensural }
-
+
\override Staff.TimeSignature #'style = #'neomensural
\time 2/2
c1^\markup { \hspace #-2.0 \typewriter neomensural }
be made by hand, by setting
@example
- breveTP = #(ly:make-duration -1 0 3 2)
- @dots{}
- @{ c\breveTP f1 @}
+breveTP = #(ly:make-duration -1 0 3 2)
+@dots{}
+@{ c\breveTP f1 @}
@end example
@noindent
-This sets @code{breveTP} to 3/2 times 2 = 3 times a whole note.
+This sets @code{breveTP} to 3/2 times 2 = 3 times a whole note.
The @code{old6/8alt} symbol (an alternate symbol for 6/8) is not
addressable with @code{\time}. Use a @code{\markup} instead
@lilypond[quote,raggedright,fragment]
\new Lyrics \lyricmode {
\markup { \column <
- \typewriter "vaticana"
+ \typewriter "vaticana"
{ " " \musicglyph #"custodes-vaticana-u0" }
> }
\markup { \column <
{ " " \musicglyph #"custodes-mensural-u0" }
>}
}
-
@end lilypond
@seealso
@menu
-* White mensural ligatures::
-* Gregorian square neumes ligatures::
+* White mensural ligatures::
+* Gregorian square neumes ligatures::
@end menu
@node White mensural ligatures
@cindex Mensural ligatures
@cindex White mensural ligatures
-There is limited support for white mensural ligatures.
+There is limited support for white mensural ligatures.
To engrave white mensural ligatures, in the layout block the
@internalsref{Mensural_ligature_engraver} has to be put into the
For example,
@example
- \set Score.timing = ##f
- \set Score.defaultBarType = "empty"
- \override NoteHead #'style = #'neomensural
- \override Staff.TimeSignature #'style = #'neomensural
- \clef "petrucci-g"
- \[ g\longa c\breve a\breve f\breve d'\longa \]
- s4
- \[ e1 f1 a\breve g\longa \]
+\set Score.timing = ##f
+\set Score.defaultBarType = "empty"
+\override NoteHead #'style = #'neomensural
+\override Staff.TimeSignature #'style = #'neomensural
+\clef "petrucci-g"
+\[ g\longa c\breve a\breve f\breve d'\longa \]
+s4
+\[ e1 f1 a\breve g\longa \]
@end example
@lilypond[quote,raggedright]
\score {
<<
\context MensuralVoice = "discantus" \transpose c c' {
\override Score.BarNumber #'transparent = ##t {
- c'1\melisma bes a g\melismaEnd
- f\breve
- \[ f1\melisma a c'\breve d'\melismaEnd \]
- c'\longa
- c'\breve\melisma a1 g1\melismaEnd
- fis\longa^\signumcongruentiae
+ c'1\melisma bes a g\melismaEnd
+ f\breve
+ \[ f1\melisma a c'\breve d'\melismaEnd \]
+ c'\longa
+ c'\breve\melisma a1 g1\melismaEnd
+ fis\longa^\signumcongruentiae
}
}
\lyricsto "discantus" \new Lyrics {
<4- 6+ 7!>
@end example
@lilypond[quote,raggedright,fragment]
- \context FiguredBass
- \figuremode { <4- 6+ 7!> }
+\context FiguredBass
+\figuremode { <4- 6+ 7!> }
@end lilypond
Spaces or dashes may be inserted by using @code{_}. Brackets are
introduced with @code{[} and @code{]}
@example
-< [4 6] 8 [_! 12]>
+< [4 6] 8 [_! 12] >
@end example
@lilypond[quote,raggedright,fragment]
- \context FiguredBass
- \figuremode { < [4 6] 8 [_! 12]> }
+\context FiguredBass
+\figuremode { < [4 6] 8 [_! 12] > }
@end lilypond
Although the support for figured bass may superficially resemble chord
@seealso
-Program reference: @internalsref{BassFigureEvent} music, @internalsref{BassFigure} object,
+Program reference: @internalsref{BassFigureEvent} music, @internalsref{BassFigure} object,
and @internalsref{FiguredBass} context.
@refbugs
@menu
-* Polymetric notation::
-* Clusters::
-* Special fermatas::
-* Feathered beams::
+* Polymetric notation::
+* Clusters::
+* Special fermatas::
+* Feathered beams::
@end menu
@node Polymetric notation
@internalsref{TimeSignature} grob.
@lilypond[verbatim,raggedright]
-
% create 2/4 + 5/8
tsMarkup =\markup {
- \number {
+ \number {
\column < "2" "4" >
- \musicglyph #"scripts-stopped"
+ \musicglyph #"scripts-stopped"
\bracket \column < "5" "8" >
}
}
moving the @internalsref{Timing_engraver} to @internalsref{Staff}
context.
-@verbatim
-\layout{
- \context{ \Score \remove "Timing_engraver" }
- \context{ \Staff \consists "Timing_engraver" }
-}
-@end verbatim
+@example
+\layout @{
+ \context @{ \Score \remove "Timing_engraver" @}
+ \context @{ \Staff \consists "Timing_engraver" @}
+@}
+@end example
Now, each staff has its own time signature.
-@verbatim
+@example
<<
- \new Staff {
+ \new Staff @{
\time 3/4
c4 c c | c c c |
- }
- \new Staff {
+ @}
+ \new Staff @{
\time 2/4
c4 c | c c | c c
- }
- \new Staff {
+ @}
+ \new Staff @{
\time 3/8
c4. c8 c c c4. c8 c c
- }
+ @}
>>
-@end verbatim
+@end example
@lilypond[quote,raggedright]
\layout{
\context{ \Score \remove "Timing_engraver" }
\context{ \Staff \consists "Timing_engraver" }
-}
+}
\relative c' <<
\new Staff {
In this example, music with the time signatures of 3/4, 9/8 and 10/8 are
-used in parallel. In the second staff, shown durations are multiplied by
-2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
+used in parallel. In the second staff, shown durations are multiplied by
+2/3, so that 2/3 * 9/8 = 3/4, and in the third staff, shown durations are
multiplied by 3/5, so that 3/5 * 10/8 = 3/4.
-@lilypond[raggedright,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
\relative c' { <<
\new Staff {
\time 3/4
chords, e.g.
@c
@lilypond[quote,raggedright,relative=2,fragment,verbatim]
- \makeClusters { <c e > <b f'> }
+\makeClusters { <c e > <b f'> }
@end lilypond
The following example (from
}
\new Voice {
\stemUp
- \once \override Voice.Beam #'positions = #'(0 . -0.5)
+ \once \override Voice.Beam #'positions = #'(0 . -0.5)
c[ c c c c]
}
>>
teaching tools in addition to great musical scores.
@menu
-* Balloon help::
-* Blank music sheet::
-* Hidden notes::
-* Easy Notation note heads::
+* Balloon help::
+* Blank music sheet::
+* Hidden notes::
+* Easy Notation note heads::
@end menu
@node Balloon help
@noindent
The function @code{add-balloon-text} takes the name of a grob, the
-label to print, and the position where to put the label relative to
-the object. In the above example, the text ``heads or tails?'' ends
+label to print, and the position where to put the label relative to
+the object. In the above example, the text ``heads or tails?'' ends
3 spaces below and 1 space to the right of the marked head.
@cindex balloon
removing @code{Bar_number_engraver}.
-@lilypond[]
+@lilypond[quote,verbatim]
emptymusic = {
- \repeat unfold 2 % Change this for more lines.
+ \repeat unfold 2 % Change this for more lines.
{ s1\break }
\bar "|."
}
or composition exercises.
@lilypond[quote,raggedright,verbatim,relative=2,fragment]
- c4 d4
- \hideNotes
- e4 f4
- \unHideNotes
- g4 a
+c4 d4
+\hideNotes
+e4 f4
+\unHideNotes
+g4 a
@end lilypond
Hidden notes are also great for performing weird tricks. For example,
as possible.
@lilypond[quote,raggedright,verbatim,relative=0,fragment]
- \clef bass
- << {
- c4^"pizz"( \hideNotes c)
- \unHideNotes c( \hideNotes c)
- } {
- s4 r s r
- } >>
+\clef bass
+<< {
+ c4^"pizz"( \hideNotes c)
+ \unHideNotes c( \hideNotes c)
+} {
+ s4 r s r
+} >>
@end lilypond