-@c Note: -*-texinfo-*-
+@c -*- coding: latin-1; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c A menu is needed before every deeper *section nesting of @node's; run
* Tablatures::
* Popular music::
* Orchestral music::
-* Formatting cue notes::
* Ancient notation::
* Contemporary notation::
* Educational use::
A note is printed by specifying its pitch and then its duration,
-@lilypond[quote,verbatim]
+@lilypond[quote,verbatim,raggedright]
{ cis'4 d'8 e'16 c'16 }
@end lilypond
@code{as}, but both forms are accepted. Similarly, both
@code{es} and @code{ees} are accepted
-@lilypond[fragment,quote,verbatim,relative=2]
+@lilypond[fragment,quote,raggedright,verbatim,relative=2]
ceses4
ces
c
(`@code{,}') characters. Each @code{'} raises the pitch by one
octave; each @code{,} lowers the pitch by an octave
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
c' c'' es' g' as' gisis' ais'
@end lilypond
(i.e. an accidental within parentheses) can be obtained by adding the
question mark `@code{?}' after the pitch.
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
cis' cis' cis'! cis'?
@end lilypond
@cindex quarter tones
@cindex semi-flats, semi-sharps
-@lilypond[verbatim,quote,relative=2,fragment]
+@lilypond[verbatim,raggedright,quote,relative=2,fragment]
{ ceseh ceh cih cisih }
@end lilypond
@code{>}. A chord may be followed by a duration, and a set of
articulations, just like simple notes
-@lilypond[verbatim,fragment,quote,relative=1]
+@lilypond[verbatim,raggedright,fragment,quote,relative=1]
<c e g>4 <c>8
@end lilypond
A rest's vertical position may be explicitly specified by entering a
-note with the @code{\rest} keyword appended. This makes manual
-formatting in polyphonic music easier. Automatic rest collision
-formatting will leave these rests alone
+note with the @code{\rest} keyword appended, the rest will be placed at
+the note's place. This makes manual formatting in polyphonic music
+easier. Automatic rest collision formatting will leave these rests
+alone
@lilypond[fragment,quote,raggedright,verbatim]
a'4\rest d'4\rest
@cindex @code{\maxima}
-In Note, Chord, and Lyrics mode, durations are designated by numbers
-and dots: durations are entered as their reciprocal values. For example,
-a quarter note is entered using a @code{4} (since it is a 1/4 note), while
-a half note is entered using a @code{2} (since it is a 1/2 note). For notes
-longer than a whole you must use variables
+In Note, Chord, and Lyrics mode, durations are designated by numbers and
+dots: durations are entered as their reciprocal values. For example, a
+quarter note is entered using a @code{4} (since it is a 1/4 note), while
+a half note is entered using a @code{2} (since it is a 1/2 note). For
+notes longer than a whole you must use the variables @code{\longa} and
+@code{\breve}
@example
c'\breve
r\longa*1/4 r\breve *1/2
r1 r2 r4 r8 r16 r32 r64 r64
}
- \paper {
+ \layout {
raggedright = ##t
\context {
\Staff
To obtain dotted note lenghts, simply add a dot (`@code{.}') to
the number. Double-dotted notes are produced in a similar way.
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
a'4 b' c''4. b'8 a'4. b'4.. c''8.
@end lilypond
In the following example, the first three notes take up exactly two
beats, but no triplet bracket is printed.
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,raggedright,fragment,relative=2,verbatim]
\time 2/4
a4*2/3 gis4*2/3 a4*2/3
a4 a4 a4*2
slurs, which indicate articulation, or phrasing slurs, which indicate
musical phrasing. A tie is entered using the tilde symbol `@code{~}'
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
e' ~ e' <c' e' g'> ~ <c' e' g'>
@end lilypond
cannot be used to denote the rhythm. When using ties, larger note
values should be aligned to subdivisions of the measure, eg.
-@lilypond[fragment]
+@lilypond[fragment,quote,raggedright]
\relative {
r8 c8 ~ c2 r4 | r8^"not" c2 ~ c8 r4
}
notes have the length of 2, so the notes are 2/3 of their written
length
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
g'4 \times 2/3 {c'4 c' c'} d'4 d'4
@end lilypond
@end lilypond
Octave changing marks are used for intervals greater than a fourth
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\relative c'' {
c g c f, c' a, e''
}
If the preceding item is a chord, the first note of the chord is used
to determine the first note of the next chord
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\relative c' {
c <c e g>
<c' e g>
check passes successfully, so the check could be deleted without changing
the output of the piece.
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
\relative c' {
e
\octave b
represented exactly with normal notes and dots, but the engraver will
not insert tuplets.
+The @internalsref{Completion_heads_engraver} can be combined with
+@code{\lyricsto} or @code{\addlyrics}.
+
@seealso
Examples: @inputfileref{input/regression,completion-heads.ly}.
@cindex @code{\key}
-The key signature indicates the scale in which a piece is played. It
-is denoted by a set of alterations (flats or sharps) at the start of
-the staff.
+The key signature indicates the tonality in which a piece is played. It
+is denoted by a set of alterations (flats or sharps) at the start of the
+staff.
Setting or changing the key signature is done with the @code{\key}
The clef can be set with the @code{\clef} command
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
{ c''2 \clef alto g'2 }
@end lilypond
@cindex choral tenor clef
-@lilypond[quote,verbatim,fragment,relative=1]
+@lilypond[quote,raggedright,verbatim,fragment,relative=1]
\clef "G_8" c4
@end lilypond
when any of these properties are changed. The following example shows
possibilities when setting properties manually.
-@lilypond[verbatim]
+@lilypond[raggedright,verbatim]
{
\set Staff.clefGlyph = #"clefs-F"
\set Staff.clefPosition = #2
@cindex 15ma
@cindex octavation
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
\relative c''' {
a2 b
#(set-octavation 1)
@code{centralCPosition}. For overriding the text of the bracket, set
@code{ottavation} after invoking @code{set-octavation}, i.e.,
-@lilypond[verbatim]
+@lilypond[quote,raggedright,verbatim]
{
#(set-octavation 1)
\set Staff.ottavation = #"8"
The time signature is set or changed by the @code{\time}
command
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\time 2/4 c'2 \time 3/4 c'2.
@end lilypond
property. Setting it to @code{#'()} uses fraction style for 4/4 and
2/2 time,
-@lilypond[fragment,verbatim]
+@lilypond[fragment,quote,raggedright,verbatim]
\time 4/4 c'1
\time 2/2 c'1
\override Staff.TimeSignature #'style = #'()
#(set-time-signature 5 8 '(3 2))
a4. g4
}
- \paper {
+ \layout {
\context {
\Staff
\consists "Measure_grouping_engraver"
Partial measures, for example in upsteps, are entered using the
@code{\partial} command
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\partial 16*5 c16 cis d dis e | a2. c,4 | b2
@end lilypond
the music. When a piece starts with graces notes in the pickup, then
the @code{\partial} should follow the grace notes
-@lilypond[verbatim,relative,fragment]
+@lilypond[verbatim,quote,raggedright,relative,fragment]
{
\grace f16
\partial 4
Special types of bar lines can be forced with the @code{\bar} command
@c
-@lilypond[quote,relative=2,fragment,verbatim]
+@lilypond[quote,raggedright,relative=2,fragment,verbatim]
c4 \bar "|:" c4
@end lilypond
The following bar types are available
-@lilypondfile[]{bar-lines.ly}
+@lilypondfile[raggedright,quote]{bar-lines.ly}
For allowing line breaks, there is a special command,
@example
automatically applied to all staves. The resulting bar lines are
connected between different staves of a @internalsref{StaffGroup}
@c
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
<<
\context StaffGroup <<
\new Staff {
A bar line is created whenever the @code{whichBar} property is set.
At the start of a measure it is set to the contents of
-@code{defaultBarType}. The contents of @code{repeatCommands} are used
+@code{Timing.defaultBarType}. The contents of @code{repeatCommands} are used
to override default measure bars.
@cindex @code{whichBar}
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.
-@lilypond[verbatim]
-\relative {
+@lilypond[raggedright,verbatim,relative,fragment]
\set Score.measureLength = #(ly:make-moment 5 4)
c1 c4
c1 c4
\set Score.measurePosition = #(ly:make-moment -3 8)
b8 b b
c4 c1
-}
@end lilypond
@cindex @code{\\}
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
\context Staff \relative c'' {
c4 << { f d e } \\ { b c2 } >>
c4 << g' \\ b, \\ f' \\ d >>
Similarly, you can merge half note heads with eighth notes, by setting
@code{merge-differently-headed}
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,raggedright,fragment,relative=2,verbatim]
\context Voice << {
c8 c4.
\override Staff.NoteCollision
LilyPond inserts beams automatically
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
@end lilypond
Individual notes may be marked with @code{\noBeam}, to prevent them
from being beamed
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\time 2/4 c8 c\noBeam c c
@end lilypond
or bar lines. Such beams are specified manually by marking the begin
and end point with @code{[} and @code{]}
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
{
r4 r8[ g' a r8] r8 g[ | a] r8
}
either property is set, its value will be used only once, and then it
is erased
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
{
f8[ r16
f g a]
@code{beatLength} property.
-@lilypond[fragment,quote,relative=2,verbatim,noindent]
+@lilypond[fragment,raggedright,quote,relative=2,verbatim,noindent]
c16[ c c c c c c c]
\set subdivideBeams = ##t
c16[ c c c c c c c]
A slur indicates that notes are to be played bound or @emph{legato}.
They are entered using parentheses
-@lilypond[quote,relative=2,fragment,verbatim]
+@lilypond[quote,raggedright,relative=2,fragment,verbatim]
f( g a) a8 b( a4 g2 f4)
<c e>2( <b d>2)
@end lilypond
directions. By adding @code{_} or @code{^} before the opening
parentheses, the direction is also set. For example,
-@lilypond[relative=2,verbatim,fragment]
+@lilypond[relative=2,raggedright,quote,verbatim,fragment]
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 {
+@lilypond[verbatim,raggedright,relative,fragment,quote]
\set doubleSlurs = ##t
<c e>4 ( <d f> <c e> <d f> )
-}
@end lilypond
indicate a musical sentence. It is written using @code{\(} and @code{\)}
respectively
-@lilypond[quote,fragment,verbatim,relative=1]
+@lilypond[quote,raggedright,fragment,verbatim,relative=1]
\time 6/4 c'\( d( e) f( e) d\)
@end lilypond
Breath marks are entered using @code{\breathe}
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
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,fragment,verbatim,relative=1]
+@lilypond[quote,raggedright,fragment,verbatim,relative=1]
c'4
\override BreathingSign #'text
= #(make-musicglyph-markup "scripts-rvarcomma")
@end example
In the MIDI output, they are interpreted as a tempo change. In the
-paper output, a metronome marking is printed
+layout output, a metronome marking is printed
@cindex @code{\tempo}
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,verbatim,fragment]
\tempo 8.=120 c''1
@end lilypond
More complex formatting may also be added to a note by using the
markup command,
-@lilypond[fragment,raggedright,verbatim]
+@lilypond[fragment,raggedright,verbatim,quote]
c'4^\markup { bla \bold bla }
@end lilypond
The string to be printed, as well as the style, is set through object
properties
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
c1
\override TextSpanner #'direction = #-1
\override TextSpanner #'edge-text = #'("rall " . "")
c4\startGroup
c4\stopGroup\stopGroup
}
- \paper {
+ \layout {
\context {
\Staff \consists "Horizontal_bracket_engraver"
}}}
below the staff, and @code{^} will place them above.
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
c''4^^ c''4_^
@end lilypond
can be forced up or down using @code{^} and @code{_},
e.g.
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,raggedright,verbatim,fragment,relative=2]
c\fermata c^\fermata c_\fermata
@end lilypond
Here is a chart showing all scripts available,
-@lilypondfile[quote]{script-chart.ly}
+@lilypondfile[raggedright,quote]{script-chart.ly}
The vertical ordering of scripts is controlled with the
Using this feature, it is also possible to put fingering instructions
very close to note heads in monophonic music,
-@lilypond[verbatim,raggedright]
-{
+@lilypond[verbatim,raggedright,quote,fragment]
\set fingeringOrientations = #'(right)
<es'-2>4
-}
@end lilypond
@cindex appoggiatura
@cindex acciaccatura
-@lilypond[quote,relative=2,verbatim,fragment]
+@lilypond[quote,raggedright,relative=2,verbatim,fragment]
b4 \acciaccatura d8 c4 \appoggiatura e8 d4
\acciaccatura { g16[ f] } e4
@end lilypond
keyword to a music expression, a new one is formed, which will be
printed in a smaller font and takes up no logical time in a measure.
-@lilypond[quote,relative=2,verbatim,fragment]
+@lilypond[quote,raggedright,relative=2,verbatim,fragment]
c4 \grace c16 c4
\grace { c16[ d16] } c2 c4
@end lilypond
In the following example, there are two sixteenth graces notes for
every eighth grace note
-@lilypond[quote,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
If you want to end a note with a grace, the standard trick is to put
the grace notes after a ``space note''
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\context Voice {
<< { d1^\trill_( }
{ s2 \grace { c16[ d] } } >>
for example, to produce smaller type, and set directions. Hence, when
introducing layout tweaks, they should be inside the grace section,
for example,
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\new Voice {
\acciaccatura {
\stemDown
such as key signatures, bar lines, etc. are also synchronized. Take
care when you mix staves with grace notes and staves without, for example,
-@lilypond[quote,relative=2,verbatim,fragment]
+@lilypond[quote,raggedright,relative=2,verbatim,fragment]
<< \new Staff { e4 \bar "|:" \grace c16 d4 }
\new Staff { c4 \bar "|:" d4 } >>
@end lilypond
wavy line between two notes. It is requested by attaching
@code{\glissando} to a note
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,raggedright,fragment,relative=2,verbatim]
c\glissando c'
@end lilypond
with @code{\!}. Because these marks are bound to notes, if you must
use spacer notes if multiple marks are needed during one note
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
c\< c\! d\> e\!
<< f1 { s4 s4\< s4\! \> s4\! } >>
@end lilypond
You can also use a text saying @emph{cresc.} instead of hairpins. Here
is an example how to do it
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,raggedright,fragment,relative=2,verbatim]
\setTextCresc
c \< d e f\!
\setHairpinCresc
@cindex decrescendo
You can also supply your own texts
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
\set crescendoText = \markup { \italic "cresc. poco" }
\set crescendoSpanner = #'dashed-line
a'2\< a a a\!\mf
@node Repeats
@section Repeats
+Repetition is a central concept in music, and multiple notations exist
+for repetitions.
-@cindex repeats
-@cindex @code{\repeat}
+@menu
+* Repeat types::
+* Repeat syntax::
+* Repeats and MIDI::
+* Manual repeat commands::
+* Tremolo repeats::
+* Tremolo subdivisions::
+* Measure repeats::
+@end menu
+@node Repeat types
+@subsection Repeat types
-Repetition is a central concept in music, and multiple notations exist
-for repetitions. In LilyPond, most of these notations can be captured
-in a uniform syntax. One of the advantages is that repeats entered in
-this way can be rendered in MIDI accurately.
+@cindex repeats
+@cindex @code{\repeat}
The following types of repetition are supported
@table @code
@item unfold
-Repeated music is fully written (played) out. Useful for MIDI
-output, and entering repetitive music.
+Repeated music is fully written (played) out. This is useful when
+entering repetitious music. This is the only kind of repeat that
+is included in MIDI output.
@item volta
Repeats are not written out, but alternative endings (volte) are
printed, left to right with brackets. This is the standard notation
-for repeats with alternatives.
+for repeats with alternatives. These are not played in MIDI output by default.
@ignore
@item fold
@c tremolo, beamed
@item tremolo
-Make tremolo beams.
+Make tremolo beams. These are not played in MIDI output by default.
@item percent
-Make beat or measure repeats. These look like percent signs.
+Make beat or measure repeats. These look like percent signs. These are not played
+in MIDI output by default.
@end table
-@menu
-* Repeat syntax::
-* Repeats and MIDI::
-* Manual repeat commands::
-* Tremolo repeats::
-* Tremolo subdivisions::
-* Measure repeats::
-@end menu
-
@node Repeat syntax
@subsection Repeat syntax
is assumed to be played more than once.
Standard repeats are used like this
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
c1
\repeat volta 2 { c4 d e f }
\repeat volta 2 { f e d c }
@end lilypond
With alternative endings
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
c1
\repeat volta 2 {c4 d e f}
\alternative { {d2 d} {f f,} }
@end lilypond
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
\context Staff {
\partial 4
\repeat volta 4 { e | c2 d2 | e2 f2 | }
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,raggedright,quote]
\relative c''{
\time 3/4
c c c
@cindex expanding repeats
-An advantage of the unified syntax for repeats, is that all repeats
-may be played out for the MIDI output. This is achieved by
-applying the @code{\unfoldrepeats} music function.
-
-@lilypond[verbatim,raggedright]
-\new Staff
- \unfoldrepeats {
- \repeat tremolo 8 {c'32 e' }
- \repeat percent 2 { c''8 d'' }
- \repeat volta 2 {c'4 d' e' f'}
- \alternative {
- { g' a' a' g' }
- {f' e' d' c' }
- }
- \bar "|."
+With a little bit of tweaking, all types of repeats can be present
+in the MIDI output. This is achieved by applying the
+@code{\unfoldrepeats} music function. This functions changes all
+repeats to unfold repeats.
+
+@lilypond[verbatim,raggedright,fragment]
+\unfoldrepeats {
+ \repeat tremolo 8 {c'32 e' }
+ \repeat percent 2 { c''8 d'' }
+ \repeat volta 2 {c'4 d' e' f'}
+ \alternative {
+ { g' a' a' g' }
+ {f' e' d' c' }
}
+}
+\bar "|."
@end lilypond
When creating a score file using @code{\unfoldrepeats} for midi, then
-it is necessary to make two @code{\score} blocks. One for MIDI, with
-unfolded repeats, and one for notation, eg.
+it is necessary to make two @code{\score} blocks. One for MIDI (with
+unfolded repeats) and one for notation (with volta, tremolo, and
+percent repeats). For example,
@example
\score @{
@var{..music..}
- \paper @{ .. @}
+ \layout @{ .. @}
@}
\score @{
\unfoldrepeats @var{..music..}
stops a running volta bracket.
@end table
-@lilypond[quote,verbatim,fragment,relative=2]
+@lilypond[quote,raggedright,verbatim,fragment,relative=2]
c4
\set Score.repeatCommands = #'((volta "93") end-repeat)
c4 c4
To place tremolo marks between notes, use @code{\repeat} with tremolo
style
@lilypond[quote,verbatim,raggedright]
- \context Voice \relative c' {
- \repeat "tremolo" 8 { c16 d16 }
- \repeat "tremolo" 4 { c16 d16 }
- \repeat "tremolo" 2 { c16 d16 }
- }
+\new Voice \relative c' {
+ \repeat "tremolo" 8 { 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
length is omitted, the last value (stored in @code{tremoloFlags}) is
used
-@lilypond[quote,verbatim,fragment]
-c'2:8 c':32 | c': c': |
+@lilypond[quote,raggedright,verbatim,fragment]
+ 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? :)
@refbugs
patterns that divide the measure length are replaced by slashes
@lilypond[quote,verbatim,raggedright]
-\new Voice {
- \repeat "percent" 4 { c'4 }
- \repeat "percent" 2 { c'2 es'2 f'4 fis'4 g'4 c''4 }
+\new Voice \relative c' {
+ \repeat "percent" 4 { c4 }
+ \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
}
@end lilypond
@node Rhythmic music
@section Rhythmic music
+Rhythmic music is primarily used for percussion and drum notation, but it can
+also be used to show the rhythms of melodies.
@menu
* Showing melody rhythms::
can be done with the rhythmic staff. All pitches of notes on such a
staff are squashed, and the staff itself has a single line
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
\context RhythmicStaff {
\time 4/4
c4 e8 f g2 | r4 g r2 | g1:32 | r1 |
polyphonic notation, described in @ref{Polyphony}, can also be used if
the @internalsref{DrumVoices} are instantiated by hand first. For example,
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\new DrumStaff <<
\context DrumVoice = "1" { s1 *2 }
\context DrumVoice = "2" { s1 *2 }
@item drums-style
This is the default. It typesets a typical drum kit on a five-line staff
-@lilypond[quote,noindent]
+@lilypond[quote,raggedright,noindent]
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
} \mus
\context Lyrics \nam
>>
- \paper {
+ \layout {
%% need to do this, because of indented @itemize
linewidth= 9 \cm
\context { \Score
@refbugs
-Dynamics are not centered, but workarounds do exist. See
-@inputfileref{input/template,piano-dynamics.ly}.
+Dynamics are not centered, but workarounds do exist. See the
+``piano centered dynamics'' template in @ref{Piano templates}.
@cindex cross staff stem
@cindex stem, cross staff
usually the setup for a score will start with a setup of the staves,
@example
- <<
+<<
\context Staff = up @{
\skip 1 * 10 %@emph{ keep staff alive}
@}
\context Staff = down @{
\skip 1 * 10 %@emph{idem}
@}
- >>
+>>
@end example
and the @context{Voice} is inserted afterwards
@example
- \context Staff = down
- \new Voice @{ @dots{} \change Staff = up @dots{} @}
+\context Staff = down
+ \new Voice @{ @dots{} \change Staff = up @dots{} @}
@end example
@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a
note or chord
-@lilypond[quote,fragment,verbatim]
-c'4\sustainDown c'4\sustainUp
+@lilypond[quote,raggedright,fragment,verbatim]
+ c'4\sustainDown c'4\sustainUp
@end lilypond
What is printed can be modified by setting @code{pedal@var{X}Strings},
Pedals can also be indicated by a sequence of brackets, by setting the
@code{pedalSustainStyle} property to bracket objects
-@lilypond[quote,fragment,verbatim,relative=2]
-\set Staff.pedalSustainStyle = #'bracket
-c\sustainDown d e
-b\sustainUp\sustainDown
-b g \sustainUp a \sustainDown \bar "|."
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+ \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,
obtained by setting the @code{pedalSustainStyle} style property to
@code{mixed}
-@lilypond[quote,fragment,verbatim,relative=2]
-\set Staff.pedalSustainStyle = #'mixed
-c\sustainDown d e
-b\sustainUp\sustainDown
-b g \sustainUp a \sustainDown \bar "|."
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+ \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
style @code{#'text}. The sostenuto pedal uses @code{mixed} style by
default.
-@lilypond[quote,fragment,verbatim,relative=2]
-c\sostenutoDown d e c, f g a\sostenutoUp
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+ c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
For fine-tuning of the appearance of a pedal bracket, the properties
@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of
@code{PianoPedalBracket} objects (see
-@internalsref{PianoPedalBracket} in the Program reference) can be modified. For example, the
+@internalsref{PianoPedalBracket} in the Program reference) can be modified. For example, the
bracket may be extended to the right edge of the note head
-@lilypond[quote,fragment,verbatim,relative=2]
-\override Staff.PianoPedalBracket
- #'shorten-pair = #'(0 . -1.0)
-c\sostenutoDown d e c, f g a\sostenutoUp
+@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+ \override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
+ c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
@node Arpeggio
@code{\arpeggio} to a chord
-@lilypond[quote,fragment,relative=1,verbatim]
-<c e g c>\arpeggio
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
+ <c e g c>\arpeggio
@end lilypond
When an arpeggio crosses staves, you attach an arpeggio to the chords
in both staves, and set
@internalsref{PianoStaff}.@code{connectArpeggios}
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
\context PianoStaff <<
\set PianoStaff.connectArpeggios = ##t
\new Staff { <c' e g c>\arpeggio }
The direction of the arpeggio is sometimes denoted by adding an
arrowhead to the wiggly line
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
\context Voice {
\arpeggioUp
<c e g c>\arpeggio
@c todo: ugh, lousy typography. Look for real example. --hwn
-@lilypond[quote,fragment,relative=1,verbatim]
-\arpeggioBracket
-<c' e g c>\arpeggio
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
+ \arpeggioBracket
+ <c' e g c>\arpeggio
@end lilypond
@refcommands
can be printed automatically. This is switched on by setting
@code{PianoStaff.followVoice} to true
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,raggedright,fragment,relative=1,verbatim]
\context PianoStaff <<
\set PianoStaff.followVoice = ##t
\context Staff \context Voice {
of the stem in the lower stave, so it reaches the stem in the upper
stave, or vice versa.
-@lilypond[raggedright,verbatim]
-stemExtend = \once \override Stem #'length = #22
-noFlag = \once \override Stem #'flag-style = #'no-flag
+@lilypond[raggedright,verbatim,quote]
+stemExtend = \once \override Stem #'length = #22
+noFlag = \once \override Stem #'flag-style = #'no-flag
\context PianoStaff <<
- \new Staff {
+ \new Staff {
\stemDown \stemExtend
f'4
\stemExtend \noFlag
@itemize @bullet
@item
- Song texts must be entered as texts, not notes. For example, for
-lyrics, the input @code{a} should be interpreted as
-a one letter text, and not the note A.
+ 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.
@item
- Song texts must be printed as text, and 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
@end itemize
The simplest solution to printing music uses the @code{\addlyrics}
-function to deal with these three problems in one go. However, these
+function to solve all these problems at once. However, these
three functions can be controlled separately, which is necessary
for complex vocal music.
@noindent
to a melody. Here is an example,
-@lilypond[raggedright,verbatim]
-{
- \time 3/4
- \relative { c2 e4 g2. }
- \addlyrics { play the game }
-}
+@lilypond[raggedright,verbatim,fragment,quote]
+ \time 3/4
+ \relative { c2 e4 g2. }
+ \addlyrics { play the game }
@end lilypond
More stanzas can be added by adding more
@code{\addlyrics} sections
-@lilypond[raggedright,verbatim]
-{
+@lilypond[raggedright,verbatim,fragment,quote]
\time 3/4
- \relative { c2 e4 g2. }
+ \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
+@c find a better place without rearranging a lot of lyric stuff.
+@c It's yet another thing to look at post-3.0.
+
+The @code{\addlyrics} command is actually just a convienient way
+to write a more complicated LilyPond structure that sets up the
+lyrics. You should use @code{\addlyrics} unless you need to
+fancy things, in which case you should investigate
+@code{\lyricsto} or @code{\lyricmode}.
+
+@example
+ @{ MUSIC @}
+ \addlyrics @{ LYRICS @}
+@end example
+
+is the same as
+
+@example
+ \context Voice = blah @{ music @}
+ \lyricsto "blah" \lyricsmode \new lyrics @{ LYRICS @}
+@end example
+
+
@node Entering lyrics
@subsection Entering lyrics
@cindex punctuation
Lyrics are entered in a special input mode. This mode is is introduced
-by the keyword @code{\lyricmode}. In this mode you can enter lyrics,
-with punctuation and accents, and the input @code{a} is not parsed as
+by the keyword @code{\lyricmode}, or by using @code{addlyrics} or
+@code{lyricsto}. In this mode you can enter lyrics,
+with punctuation and accents, and the input @code{d} is not parsed as
a pitch, but rather as a one letter syllable. Syllables are entered
like notes, but with pitches replaced by text. For example,
@example
any space or digit. The following characters can be any character
that is not a digit or white space. One important consequence of this
is that a word can end with @code{@}}. The following example is
-usually a bug. The syllable includes a @code{@}}, so the
+usually a mistake in the input file. The syllable includes a @code{@}}, so the
opening brace is not balanced
@example
\lyricmode @{ twinkle@}
@cindex @code{\property}, in @code{\lyricmode}
@noindent
-Similarly, a period following an alphabetic sequence, is included in
+Similarly, a period which follows an alphabetic sequence is included in
the resulting string. As a consequence, spaces must be inserted around
property commands
@example
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
and then combine the appropriate melodies and lyric lines
@example
\lyricsto "soprano" \context Lyrics = sopranoLyrics
- @emph{the lyrics}
+ @emph{the lyrics}
@end example
@noindent
The final input would resemble
@example
- << \context ChoirStaff << @emph{setup the music} >>
- \lyricsto "soprano" @emph{etc}
- \lyricsto "alto" @emph{etc}
- @emph{etc}
- >>
+<<\context ChoirStaff << @emph{setup the music} >>
+ \lyricsto "soprano" @emph{etc}
+ \lyricsto "alto" @emph{etc}
+ @emph{etc}
+>>
@end example
Here is an example demonstrating manual lyric durations,
-@lilypond[relative=1,verbatim,fragment]
+@lilypond[relative=1,raggedright,verbatim,fragment,quote]
<< \context Voice = melody {
\time 3/4
c2 e4 g2.
\new Lyrics \lyricmode {
\set associatedVoice = #"melody"
play2 the4 game2.
- } >>
+ } >>
@end lilypond
@cindex SATB
@cindex choral score
-A complete example of a SATB score setup is in the file
-@inputfileref{input/template,satb.ly}.
+A complete example of a SATB score setup is in section
+@ref{Small ensembles}.
@refcommands
Program reference: @internalsref{LyricCombineMusic},
@internalsref{Lyrics}, @internalsref{Melisma_translator}.
-Examples: @inputfileref{input/template,satb.ly},
+Examples: @ref{Small ensembles},
@inputfileref{input/regression,lyric-combine-new.ly},
@c TODO: make separate section for melismata
@inputfileref{input/test,lyrics-melisma-variants.ly}.
must be set one syllable @emph{before} the non-melismatic syllable
in the text, as shown here,
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,raggedright,quote]
<<
- \relative \context Voice = "lahlah" {
- \set Staff.autoBeaming = ##f
- c4
- \slurDotted
- f8.[( g16])
- a4
- }
- \new Lyrics \lyricsto "lahlah" {
- more slow -- ly
- }
- \new Lyrics \lyricsto "lahlah" {
- \set ignoreMelismata = ##t % applies to "fas"
- go fas -- ter
- \unset ignoreMelismata
- still
- }
+ \relative \context Voice = "lahlah" {
+ \set Staff.autoBeaming = ##f
+ c4
+ \slurDotted
+ f8.[( g16])
+ a4
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ more slow -- ly
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ \set ignoreMelismata = ##t % applies to "fas"
+ go fas -- ter
+ \unset ignoreMelismata
+ still
+ }
>>
@end lilypond
lyrics. For every @code{\skip}, the text will be delayed another note.
For example,
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,raggedright,quote]
\relative { c c g' }
\addlyrics {
twin -- \skip 4
to switch the melody for a line of lyrics during the text. This is
done by setting the @code{associatedVoice} property. In the example
-@lilypond[raggedright]
-<<
- \relative \context Voice = "lahlah" {
- \set Staff.autoBeaming = ##f
- c4
- <<
- \context Voice = alternative {
- \voiceOne
- \times 2/3 {
-
- % show associations clearly.
- \override NoteColumn #'force-hshift = #-3
- f8 f g
- }
- }
- {
- \voiceTwo
- f8.[ g16]
- \oneVoice
- } >>
- a8( b) c
-
- }
- \new Lyrics \lyricsto "lahlah" {
- Ju -- ras -- sic Park
- }
- \new Lyrics \lyricsto "lahlah" {
+@lilypond[raggedright,quote]
- % Tricky: need to set associatedVoice
- % one syllable too soon!
- \set associatedVoice = alternative % applies to "ran"
- Ty --
- ran --
- no --
- \set associatedVoice = lahlah % applies to "rus"
- sau -- rus Rex
- } >>
+<<
+ \relative \context Voice = "lahlah" {
+ \set Staff.autoBeaming = ##f
+ c4
+ <<
+ \context Voice = alternative {
+ \voiceOne
+ \times 2/3 {
+ % show associations clearly.
+ \override NoteColumn #'force-hshift = #-3
+ f8 f g
+ }
+ }
+ {
+ \voiceTwo
+ f8.[ g16]
+ \oneVoice
+ } >>
+ a8( b) c
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ Ju -- ras -- sic Park
+ }
+ \new Lyrics \lyricsto "lahlah" {
+ % Tricky: need to set associatedVoice
+ % one syllable too soon!
+ \set associatedVoice = alternative % applies to "ran"
+ Ty --
+ ran --
+ no --
+ \set associatedVoice = lahlah % applies to "rus"
+ sau -- rus Rex
+ } >>
@end lilypond
@noindent
the text for the first stanza is set to a melody called ``lahlah'',
@verbatim
- \new Lyrics \lyricsto "lahlah" {
- Ju -- ras -- sic Park
- }
+\new Lyrics \lyricsto "lahlah" {
+ Ju -- ras -- sic Park
+}
@end verbatim
for the syllable ``ran'', it switches to a different melody.
This is achieved with
@example
- \set associatedVoice = alternative
+ \set associatedVoice = alternative
@end example
@noindent
this case.
@verbatim
- \new Lyrics \lyricsto "lahlah" {
- \set associatedVoice = alternative % applies to "ran"
- Ty --
- ran --
- no --
- \set associatedVoice = lahlah % applies to "rus"
- sau -- rus Rex
- }
+\new Lyrics \lyricsto "lahlah" {
+ \set associatedVoice = alternative % applies to "ran"
+ Ty --
+ ran --
+ no --
+ \set associatedVoice = lahlah % applies to "rus"
+ sau -- rus Rex
+}
@end verbatim
@noindent
Stanza numbers can be added by setting @code{stanza}, e.g.
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,raggedright,verbatim,relative=2,fragment]
\new Voice {
- \time 3/4 g2 e4 a2 f4 g2.
+ \time 3/4 g2 e4 a2 f4 g2.
} \addlyrics {
- \set stanza = "1. "
- Hi, my name is Bert.
+ \set stanza = "1. "
+ Hi, my name is Bert.
} \addlyrics {
- \set stanza = "2. "
- Oh, che -- ri, je t'aime
+ \set stanza = "2. "
+ Oh, che -- ri, je t'aime
}
@end lilypond
@code{vocalName}. A short version may be entered as @code{vocNam}.
-@lilypond[fragment,quote,verbatim,relative=2]
+@lilypond[fragment,raggedright,quote,verbatim,relative=2]
\new Voice {
- \time 3/4 g2 e4 a2 f4 g2.
+ \time 3/4 g2 e4 a2 f4 g2.
} \addlyrics {
- \set vocalName = "Bert "
- Hi, my name is Bert.
+ \set vocalName = "Bert "
+ Hi, my name is Bert.
} \addlyrics {
- \set vocalName = "Ernie "
- Oh, che -- ri, je t'aime
+ \set vocalName = "Ernie "
+ Oh, che -- ri, je t'aime
}
@end lilypond
for example,
@example
- \paper @{
+ \layout @{
\context @{
\Voice
\consists Ambitus_engraver
This results in the following output
@lilypond[quote,raggedright]
- \paper {
- \context {
- \Staff
- \consists Ambitus_engraver
- }
+\layout {
+ \context {
+ \Staff
+ \consists Ambitus_engraver
}
+}
- \relative \new Staff {
- as'' c e2 cis,2
- }
+\relative \new Staff {
+ as'' c e2 cis,2
+}
@end lilypond
If you have multiple voices in a single staff, and you want a single
@internalsref{Ambitus_engraver} to the @internalsref{Staff} context
rather than to the @internalsref{Voice} context. Here is an example,
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,raggedright,quote]
\new Staff <<
- \new Voice \with {
- \consists "Ambitus_engraver"
- } \relative c'' {
- \override Ambitus #'X-offset-callbacks
- = #(list (lambda (grob axis) -1.0))
- \voiceOne
- c4 a d e f2
- }
- \new Voice \with {
- \consists "Ambitus_engraver"
- } \relative c' {
- \voiceTwo
- es4 f g as b2
- }
+ \new Voice \with {
+ \consists "Ambitus_engraver"
+ } \relative c'' {
+ \override Ambitus #'X-offset-callbacks
+ = #(list (lambda (grob axis) -1.0))
+ \voiceOne
+ c4 a d e f2
+ }
+ \new Voice \with {
+ \consists "Ambitus_engraver"
+ } \relative c' {
+ \voiceTwo
+ es4 f g as b2
+ }
>>
@end lilypond
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
@node Other instrument specific notation, Tablatures, Vocal music, Notation manual
@section Other instrument specific notation
+This section includes extra information for writing string music, and may
+include extra information for other instruments in the future.
+
@menu
* Harmonic notes::
@end menu
are entered by
marking the harmonic pitch with @code{\harmonic}.
-@lilypond[raggedright,verbatim]
-{
+@lilypond[raggedright,verbatim,quote,fragment]
<c' g'\harmonic>4
-}
@end lilypond
are printed as tablature, by using @internalsref{TabStaff} and
@internalsref{TabVoice} contexts
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\context TabStaff {
a,4\5 c'\2 a\3 e'\1
e\4 c'\2 a\3 e'\1
by default middle C, in string order. In the next example,
@code{stringTunings} is set for the pitches e, a, d, and g
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\context TabStaff <<
\set TabStaff.stringTunings = #'(-5 -10 -15 -20)
@node Popular music, Orchestral music, Tablatures, Notation manual
@section Popular music
-
+This section discusses issues that arise when writing popular music.
@menu
* Chord names::
* Chords mode::
* Printing chord names::
+* Fret diagrams::
* Improvisation::
@end menu
@subsection Chord names
@cindex Chords
-LilyPond has support for both printing chord names. Chords may be
-entered in musical chord notation, i.e. @code{< .. >}, but they can
-also be entered by name. Internally, the chords are represented as a
-set of pitches, so they can be transposed
+LilyPond has support for printing chord names. Chords may be entered
+in musical chord notation, i.e. @code{< .. >}, but they can also be
+entered by name. Internally, the chords are represented as a set of
+pitches, so they can be transposed
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,raggedright,verbatim,raggedright]
twoWays = \transpose c c' {
\chordmode {
c1 f:sus4 bes/f
<f bes d'>
}
- << \context ChordNames \twoWays
- \context Voice \twoWays >>
+<< \context ChordNames \twoWays
+ \context Voice \twoWays >>
@end lilypond
This example also shows that the chord printing routines do not try to
be intelligent. The last chord (@code{f bes d}) is not interpreted as
an inversion.
-
+@c this menu isn't needed.
+@ignore
@menu
* Chords mode::
* Printing chord names::
@end menu
-
+@end ignore
@node Chords mode
@subsection Chords mode
@cindex Chords mode
-In chord mode sets of pitches (chords) are entered with common names.
-A chord is entered by the root, which is entered like a common pitch
+In chord mode sets of pitches (chords) are entered with normal note
+names. A chord is entered by the root, which is entered like a
+normal pitch
-@lilypond[quote,fragment,verbatim,relative=2]
-\chordmode { es4. d8 c2 }
+@lilypond[quote,raggedright,fragment,verbatim]
+ \chordmode { es4. d8 c2 }
@end lilypond
@noindent
@cindex chord entry
@cindex chord mode
-Other chords may be entered by suffixing a colon, and introducing a
-modifier, and optionally, a number
+Other chords may be entered by suffixing a colon and introducing a
+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
@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.
unaltered 3, the 11 is removed in this case (unless it is added
explicitly)
@c
-@lilypond[quote,fragment,verbatim]
-\chordmode { c:13 c:13.11 c:m13 }
+@lilypond[quote,raggedright,fragment,verbatim]
+ \chordmode { c:13 c:13.11 c:m13 }
@end lilypond
@cindex @code{/}
An inversion (putting one pitch of the chord on the bottom), as well
as bass notes, can be specified by appending
@code{/}@var{pitch} to the chord
-@lilypond[quote,fragment,verbatim]
-\chordmode { c1 c/g c/f }
+@lilypond[quote,raggedright,fragment,verbatim]
+ \chordmode { c1 c/g c/f }
@end lilypond
@cindex @code{/+}
A bass note can be added instead of transposed out of the chord,
by using @code{/+}@var{pitch}.
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\chordmode { c1 c/+g c/+f }
@end lilypond
simply produces the augmented chord, since @code{5+} is interpreted
last
@cindex clusters
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
\chordmode { c:5.5-.5+ }
@end lilypond
described above, or directly using @code{<} and @code{>}
@lilypond[quote,verbatim,raggedright]
-scheme = {
+harmonies = {
\chordmode {a1 b c} <d' f' a'> <e' g' b'>
}
-
- <<
- \context ChordNames \scheme
- \context Staff \scheme
+<<
+ \context ChordNames \harmonies
+ \context Staff \harmonies
>>
@end lilypond
display chord names when there is a change in the chords scheme and at
the start of a new line
-@lilypond[quote,verbatim,linewidth=9\cm]
-scheme = \chordmode {
+@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
}
- <<
- \context ChordNames {
- \set chordChanges = ##t
- \scheme }
- \context Staff \transpose c c' \scheme
+<<
+ \context ChordNames {
+ \set chordChanges = ##t
+ \harmonies }
+ \context Staff \transpose c c' \harmonies
>>
@end lilypond
@lilypond[raggedright,verbatim]
\new ChordNames \with {
- \override BarLine #'bar-size = #4
- voltaOnThisStaff = ##t
- \consists Bar_engraver
- \consists "Volta_engraver"
+ \override BarLine #'bar-size = #4
+ voltaOnThisStaff = ##t
+ \consists Bar_engraver
+ \consists "Volta_engraver"
}
\repeat volta 2 \chordmode {
- f1:maj f:7 bes:7
- c:maj
+ f1:maj f:7 bes:7
+ c:maj
} \alternative {
es e
}
Different parts of a chord name are normally separated by a
slash. By setting @code{chordNameSeparator}, you can specify other
separators, e.g.
-@lilypond[quote,fragment,verbatim]
+@lilypond[quote,raggedright,fragment,verbatim]
\context ChordNames \chordmode {
c:7sus4
\set chordNameSeparator
@code{\semiGermanChords} set these variables. The effect is
demonstrated here,
-@lilypondfile[]{chord-names-german.ly}
+@lilypondfile[raggedright]{chord-names-german.ly}
There are also two other chord name schemes implemented: an alternate
Jazz chord notation, and a systematic scheme called Banter chords. The
@code{< .. >} syntax.
+@node Fret diagrams
+@subsection Fret diagrams
+@cindex fret diagrams
+@cindex chord diagrams
+
+Fret diagrams can be added to music as a markup to the desired note. The
+markup contains information about the desired fret diagram, as shown in the
+following example
+
+@lilypond[verbatim, quote]
+\context Voice {
+ d' ^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
+ d' d' d'
+ fis' ^\markup \override #'(size . 0.75) {
+ \override #'(finger-code . below-string) {
+ \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2)
+ (place-fret 5 4 3) (place-fret 4 4 4)
+ (place-fret 3 3 2) (place-fret 2 2 1)
+ (place-fret 1 2 1))
+ }
+ }
+ fis' fis' fis'
+ c' ^\markup \override #'(dot-radius . 0.35) {
+ \override #'(finger-code . in-dot) {
+ \override #'(dot-color . white) {
+ \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
+ }
+ }
+ }
+ c' c' c' c'
+}
+@end lilypond
+
+
+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}.
+
+You can set a number of graphical properties according to your preference.
+Details about the property interface to fret diagrams are found at
+@internalsref{fret-diagram-interface}.
+
+
+@seealso
+
+Examples: @inputfileref{input/test,fret-diagram.ly}
+
+
@node Improvisation
@subsection Improvisation
@code{\improvisationOff}) for this command sequence. They are used in
the following example
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,raggedright,quote]
\new Staff \with {
\consists Pitch_squash_engraver
} \transpose c c' {
* Hiding staves::
* Different editions from one source::
* Quoting other voices::
+* Formatting cue notes::
@end menu
@node System start delimiters
@item The group is started with a brace at the left, and bar lines are
connected. This is done with the @internalsref{GrandStaff} context.
-@lilypond[verbatim]
+@lilypond[verbatim,raggedright,quote]
\new GrandStaff
\relative <<
\new Staff { c1 c }
@item The group is started with a bracket, and bar lines are connected. This is done with the
@internalsref{StaffGroup} context
-@lilypond[verbatim]
-\new GrandStaff
+@lilypond[verbatim,raggedright,quote]
+\new StaffGroup
\relative <<
\new Staff { c1 c }
\new Staff { c c }
@item The group is started with a vertical line. Bar lines are not
connected. This is the default for the score.
-@lilypond[verbatim]
+@lilypond[verbatim,raggedright,quote]
\relative <<
\new Staff { c1 c }
\new Staff { c c }
long as the piece. The use of @code{mmrest-of-length} is demonstrated
in the following example.
-@lilypond[verbatim,raggedright]
+@lilypond[verbatim,raggedright,quote]
cadenza = \relative c' {
- c4 d8 << { e f g } \\ { d4. } >>
- g4 f2 g4 g
+ c4 d8 << { e f g } \\ { d4. } >>
+ g4 f2 g4 g
}
\new GrandStaff <<
To print a rehearsal mark, use the @code{\mark} command
-@lilypond[quote,fragment,verbatim,relative=1]
-{
+@lilypond[quote,raggedright,fragment,verbatim,relative=1]
c1 \mark \default
c1 \mark \default
c1 \mark #8
c1 \mark \default
c1 \mark \default
-}
@end lilypond
@noindent
(The letter I is skipped in accordance with engraving traditions.)
-
+@c umm, is the manual the right place for feature requests? :) -gp
@c FIXME - should make that tunable.
The mark is incremented automatically if you use @code{\mark
example, @code{markFormatter} is set to a canned procedure. After a
few measures, it is set to function that produces a boxed number.
-@lilypond[quote,verbatim,fragment,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
+@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
+}
@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
-@lilypond[quote,fragment,verbatim,relative=2]
-c1 \mark \markup { \musicglyph #"scripts-ufermata" }
-c1
+@c fragproblem? -gp
+@lilypond[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
whose source is available as
@inputfileref{input/test,bar-number-regular-interval.ly}
-@lilypondfile[quote]{bar-number-regular-interval.ly}
+@lilypondfile[raggedright,quote]{bar-number-regular-interval.ly}
@seealso
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 }
-}
+{ c''1 }
@end lilypond
For longer instrument names, it may be useful to increase the
-@code{indent} setting in the @code{\paper} block.
+@code{indent} setting in the @code{\layout} block.
@seealso
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{}
+ \transpose a c @dots{}
@end example
@code{\transpose} distinguishes between enharmonic pitches: both
applies to many wind instruments, for example, clarinets (B-flat, A and
E-flat), horn (F) and trumpet (B-flat, C, D and E-flat).
-
The transposition is entered after the keyword @code{\transposition}
@example
\transposition bes %% B-flat clarinet
@end example
+@noindent
This command sets the property @code{instrumentTransposition}. The value of
this property is used for MIDI output and quotations. It does not
affect how notes are printed in the current staff.
+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
+they should be entered as
+
+@example
+ clarinet = @{
+ \transposition c'
+ ...
+ @}
+ saxophone = @{
+ \transposition c'
+ ..
+ @}
+@end example
+
+The command @code{\transposition} should be used when the music is
+entered from a (transposed) orchestral part. For example, in
+classical horn parts, the tuning of the instrument is often changed
+during a piece. When copying the notes from the part, use
+@code{\transposition}, e.g.
+
+@example
+ \transposition d'
+ c'4^"in D"
+ ...
+ \transposition g'
+ c'4^"in G"
+ ...
+@end example
+
+
+
@cindex transposition, MIDI
@cindex transposition, instrument
@code{Score.skipBars}. If this is set to true, empty measures will not
be expanded, and the appropriate number is added automatically
-@lilypond[quote,fragment,verbatim]
- \time 4/4 r1 | R1 | R1*2
- \set Score.skipBars = ##t R1*17 R1*4
+@lilypond[quote,raggedright,fragment,verbatim]
+ \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
notes. Hence, for time signatures other than 4/4, you must enter other
durations. This can be done with augmentation dots or fractions
-@lilypond[quote,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 |
+@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 |
@end lilypond
An @code{R} spanning a single measure is printed as either a whole rest
or a breve, centered in the measure regardless of the time signature.
+If there are only a few measures of rest, LilyPond prints ``church rests''
+(a series of rectangles) in the staff. To replace that with a simple
+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
+@end lilypond
+
+
@cindex text on multi-measure rest
@cindex script on multi-measure rest
@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}). In this case, the number is
-replaced. If you need both texts and the number, you must add the
-number by hand. A variable (@code{\fermataMarkup}) is provided for
+@var{note}-@code{markup} syntax (see @ref{Text markup}).
+A variable (@code{\fermataMarkup}) is provided for
adding fermatas
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
+ \set Score.skipBars = ##t
\time 3/4
- R2._\markup { "Ad lib" }
+ R2.*10^\markup { "Ad lib" }
R2.^\fermataMarkup
@end lilypond
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.
in this example disappears in the second line
-@lilypond[quote,verbatim]
-\paper {
+@lilypond[quote,raggedright,verbatim]
+\layout {
\context { \RemoveEmptyStaffContext }
}
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,
@example
- c1-\tag #'part ^4
+ c1-\tag #'part ^4
@end example
This defines a note with a conditional fingering indication.
-By applying the @code{\keepWithTag} command, tagged expressions
-can be filtered. For example,
+By applying the @code{\keepWithTag} and @code{\removeWithTag}
+commands, tagged expressions can be filtered. For example,
@example
<<
@var{the music}
@end example
would yield
-@lilypondfile[quote]{tag-filter.ly}
+@lilypondfile[raggedright,quote]{tag-filter.ly}
The argument of the @code{\tag} command should be a symbol, or a list
\tag #'(original-part transposed-part) @dots{}
@end example
+
+
@seealso
Examples: @inputfileref{input/regression,tag-filter.ly}.
+@refbugs
+
+Multiple rests are not merged if you create the score with both tagged
+sections.
@node Quoting other voices
@subsection Quoting other voices
quotable. This is done with code @code{\addquote} command.
@example
-\addquote @var{name} @var{music}
+ \addquote @var{name} @var{music}
@end example
@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}
Program reference: @internalsref{QuoteMusic}.
@node Formatting cue notes
-@section Formatting cue notes
+@subsection Formatting cue notes
The previous section deals with inserting notes from another
voice. When making a part, these notes need to be specially formatted.
Here is an example of formatted cue notes
-@lilypond[verbatim]
+@c TODO: This should be done with \quote stuff, not manually.
+
+@lilypond[raggedright,verbatim]
smaller = {
- \set fontSize = #-1
- \override Stem #'length = #5.5
- \override Beam #'thickness = #0.384
- \override Beam #'space-function =
+ \set fontSize = #-1
+ \override Stem #'length = #5.5
+ \override Beam #'thickness = #0.384
+ \override Beam #'space-function =
#(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
}
{
- \set Staff.instrument = #"Horn in F"
- \set Score.skipBars = ##t
- R1*21
- << {
- \once \override Staff.MultiMeasureRest #'staff-position = #-6
- R1
- }
- \new Voice {
- s2
- \clef tenor
- \smaller
- r8^"Bsn." c'8 f'8[ f'8]
- \clef treble
- }
- >>
- c'8^"Horn" cis'
- eis'4 fis'4
+ \set Staff.instrument = #"Horn in F"
+ \set Score.skipBars = ##t
+ R1*21
+ << {
+ \once \override Staff.MultiMeasureRest #'staff-position = #-6
+ R1
+ }
+ \new Voice {
+ s2
+ \clef tenor
+ \smaller
+ r8^"Bsn." c'8 f'8[ f'8]
+ \clef treble
+ }
+ >>
+ c'8^"Horn" cis'
+ eis'4 fis'4
}
@end lilypond
the instrument, in this case ``Horn.'' Of course, the cue part is
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
@node Ancient notation
The following example demonstrates the @code{neomensural} style
-@lilypond[quote,fragment,raggedright]
-\set Score.skipBars = ##T
-\override NoteHead #'style = #'neomensural
-a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
+@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
@end lilypond
When typesetting a piece in Gregorian Chant notation, the
@lilypond[quote,raggedright,staffsize=26]
\score {
- {
- \fatText
- s
- ^\markup {
- \column <
- "vaticana"
- { " " \musicglyph #"accidentals-vaticana-1"
- " " \musicglyph #"accidentals-vaticana0" }
- >
- \column <
- "medicaea"
- { " " \musicglyph #"accidentals-medicaea-1" }
- >
- \column <
- "hufnagel"
- { " " \musicglyph #"accidentals-hufnagel-1" }
- >
- \column <
- "mensural"
- { " " \musicglyph #"accidentals-mensural-1"
- " " \musicglyph #"accidentals-mensural1" }
- >
- }
- }
- \paper {
- raggedright = ##t
- interscoreline = 1
- \context {
- \Score
- \remove "Bar_number_engraver"
- }
- \context{
- \Staff
- \remove "Clef_engraver"
- \remove "Key_engraver"
- \remove "Time_signature_engraver"
- \remove "Staff_symbol_engraver"
- minimumVerticalExtent = ##f
- }
+{
+ \fatText
+ s^\markup {
+ \column <
+ "vaticana"
+ { " " \musicglyph #"accidentals-vaticana-1"
+ " " \musicglyph #"accidentals-vaticana0" }
+ >
+ \column <
+ "medicaea"
+ { " " \musicglyph #"accidentals-medicaea-1" }
+ >
+ \column <
+ "hufnagel"
+ { " " \musicglyph #"accidentals-hufnagel-1" }
+ >
+ \column <
+ "mensural"
+ { " " \musicglyph #"accidentals-mensural-1"
+ " " \musicglyph #"accidentals-mensural1" }
+ >
+ }
+}
+\layout {
+ interscoreline = 1
+ \context { \Score \remove "Bar_number_engraver" }
+ \context { \Staff
+ \remove "Clef_engraver"
+ \remove "Key_engraver"
+ \remove "Time_signature_engraver"
+ \remove "Staff_symbol_engraver"
+ minimumVerticalExtent = ##f
}
+ }
}
@end lilypond
The following example demonstrates the @code{neomensural} style
-@lilypond[quote,fragment,raggedright]
-\override Rest #'style = #'neomensural
-\set Score.skipBars = ##t
-r\longa r\breve r1 r2 r4 r8 r16
+@lilypond[quote,fragment,raggedright,verbatim]
+ \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
modern style mensural C clef @tab
@code{neomensural-c1}, @code{neomensural-c2},
@code{neomensural-c3}, @code{neomensural-c4} @tab
-@lilypond[fragment,quote,relative=1,notime]
-
-\clef "neomensural-c2" c
+@lilypond[fragment,raggedright,quote,relative=1,notime]
+ \clef "neomensural-c2" c
@end lilypond
@item
@tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-
-\clef "petrucci-c2" c
+ \clef "petrucci-c2" c
@end lilypond
@item
petrucci style mensural F clef @tab
@code{petrucci-f} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-
-\clef "petrucci-f" c
+ \clef "petrucci-f" c
@end lilypond
@item
petrucci style mensural G clef @tab
@code{petrucci-g} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-
-\clef "petrucci-g" c
+ \clef "petrucci-g" c
@end lilypond
@item
@code{mensural-c1}, @code{mensural-c2}, @code{mensural-c3},
@code{mensural-c4} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-
-\clef "mensural-c2" c
+ \clef "mensural-c2" c
@end lilypond
@item
historic style mensural F clef @tab
@code{mensural-f} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-
-\clef "mensural-f" c
+ \clef "mensural-f" c
@end lilypond
@item
historic style mensural G clef @tab
@code{mensural-g} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-
-\clef "mensural-g" c
+ \clef "mensural-g" c
@end lilypond
@item
Editio Vaticana style do clef @tab
@code{vaticana-do1}, @code{vaticana-do2}, @code{vaticana-do3} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
- \override Staff.StaffSymbol #'line-count = #4
-
-\clef "vaticana-do2" c
+ \override Staff.StaffSymbol #'line-count = #4
+ \clef "vaticana-do2" c
@end lilypond
@item
Editio Vaticana style fa clef @tab
@code{vaticana-fa1}, @code{vaticana-fa2} @tab
@lilypond[quote,relative=1,notime,indent=0.0\mm,fragment]
- \override Staff.StaffSymbol #'line-count = #4
-
-\clef "vaticana-fa2" c
+ \override Staff.StaffSymbol #'line-count = #4
+ \clef "vaticana-fa2" c
@end lilypond
@item
Editio Medicaea style do clef @tab
@code{medicaea-do1}, @code{medicaea-do2}, @code{medicaea-do3} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
- \override Staff.StaffSymbol #'line-count = #4
-
-\clef "medicaea-do2" c
+ \override Staff.StaffSymbol #'line-count = #4
+ \clef "medicaea-do2" c
@end lilypond
@item
Editio Medicaea style fa clef @tab
@code{medicaea-fa1}, @code{medicaea-fa2} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
- \override Staff.StaffSymbol #'line-count = #4
-
-\clef "medicaea-fa2" c
+ \override Staff.StaffSymbol #'line-count = #4
+ \clef "medicaea-fa2" c
@end lilypond
@item
historic style hufnagel do clef @tab
@code{hufnagel-do1}, @code{hufnagel-do2}, @code{hufnagel-do3} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
- \override Staff.StaffSymbol #'line-count = #4
-
-\clef "hufnagel-do2" c
+ \override Staff.StaffSymbol #'line-count = #4
+ \clef "hufnagel-do2" c
@end lilypond
@item
historic style hufnagel fa clef @tab
@code{hufnagel-fa1}, @code{hufnagel-fa2} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
- \override Staff.StaffSymbol #'line-count = #4
-
-\clef "hufnagel-fa2" c
+ \override Staff.StaffSymbol #'line-count = #4
+ \clef "hufnagel-fa2" c
@end lilypond
@item
historic style hufnagel combined do/fa clef @tab
@code{hufnagel-do-fa} @tab
@lilypond[fragment,quote,relative=1,notime,indent=0.0\mm]
-\clef "hufnagel-do-fa" c
+ \clef "hufnagel-do-fa" c
@end lilypond
@end multitable
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
command, @code{n} and @code{m} have to be chosen according to the
following table
-@lilypond[quote]
-\paper {
- indent = 0.0
- raggedright = ##t
- \context {
- \Staff
- \remove Staff_symbol_engraver
- \remove Clef_engraver
- \remove Time_signature_engraver
- }
+@lilypond[quote,raggedright]
+\layout {
+ indent = 0.0
+ \context { \Staff
+ \remove Staff_symbol_engraver
+ \remove Clef_engraver
+ \remove Time_signature_engraver
+ }
} {
- \set Score.timing = ##f
- \set Score.barAlways = ##t
- s_\markup { "$\\backslash$time 4/4" }
- ^\markup { " " \musicglyph #"timesig-neomensural4/4" }
- s
- s_\markup { "$\\backslash$time 2/2" }
- ^\markup { " " \musicglyph #"timesig-neomensural2/2" }
- s
- s_\markup { "$\\backslash$time 6/4" }
- ^\markup { " " \musicglyph #"timesig-neomensural6/4" }
- s
- s_\markup { "$\\backslash$time 6/8" }
- ^\markup { " " \musicglyph #"timesig-neomensural6/8" }
- \break
- s_\markup { "$\\backslash$time 3/2" }
- ^\markup { " " \musicglyph #"timesig-neomensural3/2" }
- s
- s_\markup { "$\\backslash$time 3/4" }
- ^\markup { " " \musicglyph #"timesig-neomensural3/4" }
- s
- s_\markup { "$\\backslash$time 9/4" }
- ^\markup { " " \musicglyph #"timesig-neomensural9/4" }
- s
- s_\markup { "$\\backslash$time 9/8" }
- ^\markup { " " \musicglyph #"timesig-neomensural9/8" }
- \break
- s_\markup { "$\\backslash$time 4/8" }
- ^\markup { " " \musicglyph #"timesig-neomensural4/8" }
- s
- s_\markup { "$\\backslash$time 2/4" }
- ^\markup { " " \musicglyph #"timesig-neomensural2/4" }
- \break
+ \set Score.timing = ##f
+ \set Score.barAlways = ##t
+ s_\markup { "$\\backslash$time 4/4" }
+ ^\markup { " " \musicglyph #"timesig-neomensural4/4" }
+ s
+ s_\markup { "$\\backslash$time 2/2" }
+ ^\markup { " " \musicglyph #"timesig-neomensural2/2" }
+ s
+ s_\markup { "$\\backslash$time 6/4" }
+ ^\markup { " " \musicglyph #"timesig-neomensural6/4" }
+ s
+ s_\markup { "$\\backslash$time 6/8" }
+ ^\markup { " " \musicglyph #"timesig-neomensural6/8" }
+ \break
+ s_\markup { "$\\backslash$time 3/2" }
+ ^\markup { " " \musicglyph #"timesig-neomensural3/2" }
+ s
+ s_\markup { "$\\backslash$time 3/4" }
+ ^\markup { " " \musicglyph #"timesig-neomensural3/4" }
+ s
+ s_\markup { "$\\backslash$time 9/4" }
+ ^\markup { " " \musicglyph #"timesig-neomensural9/4" }
+ s
+ s_\markup { "$\\backslash$time 9/8" }
+ ^\markup { " " \musicglyph #"timesig-neomensural9/8" }
+ \break
+ s_\markup { "$\\backslash$time 4/8" }
+ ^\markup { " " \musicglyph #"timesig-neomensural4/8" }
+ s
+ s_\markup { "$\\backslash$time 2/4" }
+ ^\markup { " " \musicglyph #"timesig-neomensural2/4" }
}
@end lilypond
The following examples shows the differences in style,
-@lilypond[raggedright]
-\relative c' {
+@lilypond[raggedright,fragment,relative=1,quote]
+{
+ \fatText
\time 2/2
c1^\markup { \hspace #-2.0 \typewriter default }
a4\accentus_"accentus" s1
\[ a4_"episem" \episemInitium \pes b \flexa a \episemFinis \]
}
- \paper {
- \context {
- \VaticanaVoice
- % Prepare TextSpanner for \episem{Initium|Finis} use.
- \override TextSpanner #'style = #'line
- \override TextSpanner #'edge-height = #'(0 . 0)
- \override TextSpanner #'padding = #0.5
- \override TextSpanner #'enclose-bounds = #1
- \override TextSpanner #'edge-text = #'("" . "")
- }
- }
}
@end lilypond
@refbugs
-The line @code{\override Script #'padding = #-0.1} is required to
-force the articulation signs being placed vertically tightly to the
+Some articulations are vertically placed too closely to the
correpsonding note heads.
-episem is currently broken due to a bug related with TextSpanner.
-
-
@node Custodes
@subsection Custodes
used in different flavors of notational style.
For typesetting custodes, just put a @internalsref{Custos_engraver} into the
-@internalsref{Staff} context when declaring the @code{\paper} block,
+@internalsref{Staff} context when declaring the @code{\layout} block,
as shown in the following example
@example
-\paper @{
+\layout @{
\context @{
- \Staff
- \consists Custos_engraver
- Custos \override #'style = #'mensural
+ \Staff
+ \consists Custos_engraver
+ Custos \override #'style = #'mensural
@}
@}
@end example
@lilypond[quote,raggedright]
\score {
- {
- a'1
- \override Staff.Custos #'style = #'mensural
- \break
- g'
- }
- \paper {
- \context {
- \Staff
- \consists Custos_engraver
- }
- }
+{
+ a'1
+ \override Staff.Custos #'style = #'mensural
+ \break
+ g'
+}
+\layout {
+ \context { \Staff \consists Custos_engraver }
+ }
}
@end lilypond
supported are @code{vaticana}, @code{medicaea}, @code{hufnagel} and
@code{mensural}. They are demonstrated in the following fragment
-@lilypond[quote]
-\score {
- \new Lyrics \lyricmode {
- \markup {
- \column <
- \typewriter "vaticana"
- { " " \musicglyph #"custodes-vaticana-u0" }
- > }
- \markup { \column <
- \typewriter "medicaea"
- { " " \musicglyph #"custodes-medicaea-u0" }
- >}
- \markup {
- \column <
- \typewriter "hufnagel"
- { " " \musicglyph #"custodes-hufnagel-u0" }
- >}
- \markup {
- \column <
- \typewriter "mensural"
- { " " \musicglyph #"custodes-mensural-u0" }
- >}
- }
-
- \paper {
- raggedright = ##t
- }
+@lilypond[quote,raggedright,fragment]
+\new Lyrics \lyricmode {
+ \markup { \column <
+ \typewriter "vaticana"
+ { " " \musicglyph #"custodes-vaticana-u0" }
+ > }
+ \markup { \column <
+ \typewriter "medicaea"
+ { " " \musicglyph #"custodes-medicaea-u0" }
+ >}
+ \markup { \column <
+ \typewriter "hufnagel"
+ { " " \musicglyph #"custodes-hufnagel-u0" }
+ >}
+ \markup { \column <
+ \typewriter "mensural"
+ { " " \musicglyph #"custodes-mensural-u0" }
+ >}
}
+
@end lilypond
@seealso
@lilypond[quote,raggedright,verbatim]
\transpose c c' {
- \[ g c a f d' \]
- a g f
- \[ e f a g \]
+ \[ g c a f d' \]
+ a g f
+ \[ e f a g \]
}
@end lilypond
There is limited support for white mensural ligatures.
-To engrave white mensural ligatures, in the paper block the
+To engrave white mensural ligatures, in the layout block the
@internalsref{Mensural_ligature_engraver} has to be put into the
@internalsref{Voice} context, and remove the
@internalsref{Ligature_bracket_engraver}
@example
- \paper @{
- \context @{
- \Voice
- \remove Ligature_bracket_engraver
- \consists Mensural_ligature_engraver
- @}
- @}
+\layout @{
+ \context @{
+ \Voice
+ \remove Ligature_bracket_engraver
+ \consists Mensural_ligature_engraver
+ @}
+@}
@end example
There is no additional input language to describe the shape of a
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 {
- \transpose c c' {
- \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 \]
- }
- \paper {
- \context {
- \Voice
- \remove Ligature_bracket_engraver
- \consists Mensural_ligature_engraver
- }
+ \transpose c c' {
+ \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 \]
+ }
+ \layout {
+ \context {
+ \Voice
+ \remove Ligature_bracket_engraver
+ \consists Mensural_ligature_engraver
}
+ }
}
@end lilypond
@lilypond[quote,raggedright]
\transpose c c' {
- \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 lilypond
@b{Figurae@*Liquescentes Auctae} @tab
@b{Figurae@*Liquescentes Deminutae}
-@c TODO: \paper block is identical in all of the below examples.
+@c TODO: \layout block is identical in all of the below examples.
@c Therefore, it should somehow be included rather than duplicated all
@c the time. --jr
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.5\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Punctum
- \[ b \]
- \noBreak s^\markup {"a"} \noBreak
-
- % Punctum Inclinatum
- \[ \inclinatum b \]
- \noBreak s^\markup {"b"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Punctum
+ \[ b \]
+ \noBreak s^\markup {"a"} \noBreak
+
+ % Punctum Inclinatum
+ \[ \inclinatum b \]
+ \noBreak s^\markup {"b"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=2.5\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Punctum Auctum Ascendens
- \[ \auctum \ascendens b \]
- \noBreak s^\markup {"c"} \noBreak
-
- % Punctum Auctum Descendens
- \[ \auctum \descendens b \]
- \noBreak s^\markup {"d"} \noBreak
-
- % Punctum Inclinatum Auctum
- \[ \inclinatum \auctum b \]
- \noBreak s^\markup {"e"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Punctum Auctum Ascendens
+ \[ \auctum \ascendens b \]
+ \noBreak s^\markup {"c"} \noBreak
+
+ % Punctum Auctum Descendens
+ \[ \auctum \descendens b \]
+ \noBreak s^\markup {"d"} \noBreak
+
+ % Punctum Inclinatum Auctum
+ \[ \inclinatum \auctum b \]
+ \noBreak s^\markup {"e"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Punctum Inclinatum Parvum
- \[ \inclinatum \deminutum b \]
- \noBreak s^\markup {"f"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Punctum Inclinatum Parvum
+ \[ \inclinatum \deminutum b \]
+ \noBreak s^\markup {"f"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Virga
- \[ \virga b \]
- \noBreak s^\markup {"g"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Virga
+ \[ \virga b \]
+ \noBreak s^\markup {"g"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Stropha
- \[ \stropha b \]
- \noBreak s^\markup {"h"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Stropha
+ \[ \stropha b \]
+ \noBreak s^\markup {"h"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Stropha Aucta
- \[ \stropha \auctum b \]
- \noBreak s^\markup {"i"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Stropha Aucta
+ \[ \stropha \auctum b \]
+ \noBreak s^\markup {"i"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Oriscus
- \[ \oriscus b \]
- \noBreak s^\markup {"j"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Oriscus
+ \[ \oriscus b \]
+ \noBreak s^\markup {"j"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Clivis vel Flexa
- \[ b \flexa g \]
- s^\markup {"k"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Clivis vel Flexa
+ \[ b \flexa g \]
+ s^\markup {"k"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=2.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Clivis Aucta Descendens
- \[ b \flexa \auctum \descendens g \]
- \noBreak s^\markup {"l"} \noBreak
-
- % Clivis Aucta Ascendens
- \[ b \flexa \auctum \ascendens g \]
- \noBreak s^\markup {"m"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Clivis Aucta Descendens
+ \[ b \flexa \auctum \descendens g \]
+ \noBreak s^\markup {"l"} \noBreak
+
+ % Clivis Aucta Ascendens
+ \[ b \flexa \auctum \ascendens g \]
+ \noBreak s^\markup {"m"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Cephalicus
- \[ b \flexa \deminutum g \]
- s^\markup {"n"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Cephalicus
+ \[ b \flexa \deminutum g \]
+ s^\markup {"n"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Podatus vel Pes
- \[ g \pes b \]
- s^\markup {"o"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Podatus vel Pes
+ \[ g \pes b \]
+ s^\markup {"o"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=2.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Pes Auctus Descendens
- \[ g \pes \auctum \descendens b \]
- \noBreak s^\markup {"p"} \noBreak
-
- % Pes Auctus Ascendens
- \[ g \pes \auctum \ascendens b \]
- \noBreak s^\markup {"q"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Pes Auctus Descendens
+ \[ g \pes \auctum \descendens b \]
+ \noBreak s^\markup {"p"} \noBreak
+
+ % Pes Auctus Ascendens
+ \[ g \pes \auctum \ascendens b \]
+ \noBreak s^\markup {"q"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Epiphonus
- \[ g \pes \deminutum b \]
- s^\markup {"r"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Epiphonus
+ \[ g \pes \deminutum b \]
+ s^\markup {"r"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Pes Quassus
- \[ \oriscus g \pes \virga b \]
- s^\markup {"s"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Pes Quassus
+ \[ \oriscus g \pes \virga b \]
+ s^\markup {"s"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Pes Quassus Auctus Descendens
- \[ \oriscus g \pes \auctum \descendens b \]
- s^\markup {"t"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Pes Quassus Auctus Descendens
+ \[ \oriscus g \pes \auctum \descendens b \]
+ s^\markup {"t"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Quilisma Pes
- \[ \quilisma g \pes b \]
- s^\markup {"u"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Quilisma Pes
+ \[ \quilisma g \pes b \]
+ s^\markup {"u"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Quilisma Pes Auctus Descendens
- \[ \quilisma g \pes \auctum \descendens b \]
- s^\markup {"v"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Quilisma Pes Auctus Descendens
+ \[ \quilisma g \pes \auctum \descendens b \]
+ s^\markup {"v"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Pes Initio Debilis
- \[ \deminutum g \pes b \]
- s^\markup {"w"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Pes Initio Debilis
+ \[ \deminutum g \pes b \]
+ s^\markup {"w"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Pes Auctus Descendens Initio Debilis
- \[ \deminutum g \pes \auctum \descendens b \]
- s^\markup {"x"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Pes Auctus Descendens Initio Debilis
+ \[ \deminutum g \pes \auctum \descendens b \]
+ s^\markup {"x"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Torculus
- \[ a \pes b \flexa g \]
- s^\markup {"y"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Torculus
+ \[ a \pes b \flexa g \]
+ s^\markup {"y"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Torculus Auctus Descendens
- \[ a \pes b \flexa \auctum \descendens g \]
- s^\markup {"z"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Torculus Auctus Descendens
+ \[ a \pes b \flexa \auctum \descendens g \]
+ s^\markup {"z"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Torculus Deminutus
- \[ a \pes b \flexa \deminutum g \]
- s^\markup {"A"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Torculus Deminutus
+ \[ a \pes b \flexa \deminutum g \]
+ s^\markup {"A"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Torculus Initio Debilis
- \[ \deminutum a \pes b \flexa g \]
- s^\markup {"B"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Torculus Initio Debilis
+ \[ \deminutum a \pes b \flexa g \]
+ s^\markup {"B"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Torculus Auctus Descendens Initio Debilis
- \[ \deminutum a \pes b \flexa \auctum \descendens g \]
- s^\markup {"C"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Torculus Auctus Descendens Initio Debilis
+ \[ \deminutum a \pes b \flexa \auctum \descendens g \]
+ s^\markup {"C"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Torculus Deminutus Initio Debilis
- \[ \deminutum a \pes b \flexa \deminutum g \]
- s^\markup {"D"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Torculus Deminutus Initio Debilis
+ \[ \deminutum a \pes b \flexa \deminutum g \]
+ s^\markup {"D"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Porrectus
- \[ a \flexa g \pes b \]
- s^\markup {"E"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Porrectus
+ \[ a \flexa g \pes b \]
+ s^\markup {"E"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Porrectus Auctus Descendens
- \[ a \flexa g \pes \auctum \descendens b \]
- s^\markup {"F"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Porrectus Auctus Descendens
+ \[ a \flexa g \pes \auctum \descendens b \]
+ s^\markup {"F"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Porrectus Deminutus
- \[ a \flexa g \pes \deminutum b \]
- s^\markup {"G"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Porrectus Deminutus
+ \[ a \flexa g \pes \deminutum b \]
+ s^\markup {"G"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Climacus
- \[ \virga b \inclinatum a \inclinatum g \]
- s^\markup {"H"}
- }
- \paper { \neumeDemoPaper }
+ \transpose c c' {
+ % Climacus
+ \[ \virga b \inclinatum a \inclinatum g \]
+ s^\markup {"H"}
+ }
+ \layout { \neumeDemoLayout }
}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Climacus Auctus
- \[ \virga b \inclinatum a \inclinatum \auctum g \]
- s^\markup {"I"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Climacus Auctus
+ \[ \virga b \inclinatum a \inclinatum \auctum g \]
+ s^\markup {"I"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Climacus Deminutus
- \[ \virga b \inclinatum a \inclinatum \deminutum g \]
- s^\markup {"J"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Climacus Deminutus
+ \[ \virga b \inclinatum a \inclinatum \deminutum g \]
+ s^\markup {"J"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Scandicus
- \[ g \pes a \virga b \]
- s^\markup {"K"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Scandicus
+ \[ g \pes a \virga b \]
+ s^\markup {"K"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Scandicus Auctus Descendens
- \[ g \pes a \pes \auctum \descendens b \]
- s^\markup {"L"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Scandicus Auctus Descendens
+ \[ g \pes a \pes \auctum \descendens b \]
+ s^\markup {"L"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Scandicus Deminutus
- \[ g \pes a \pes \deminutum b \]
- s^\markup {"M"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Scandicus Deminutus
+ \[ g \pes a \pes \deminutum b \]
+ s^\markup {"M"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@item
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Salicus
- \[ g \oriscus a \pes \virga b \]
- s^\markup {"N"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Salicus
+ \[ g \oriscus a \pes \virga b \]
+ s^\markup {"N"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
- % Salicus Auctus Descendens
- \[ g \oriscus a \pes \auctum \descendens b \]
- s^\markup {"O"}
- }
-\paper { \neumeDemoPaper }}
+ \transpose c c' {
+ % Salicus Auctus Descendens
+ \[ g \oriscus a \pes \auctum \descendens b \]
+ s^\markup {"O"}
+ }
+\layout { \neumeDemoLayout }}
@end lilypond
@tab
@lilypond[quote,noindent,staffsize=26,nofragment,linewidth=1.0\cm]
\include "gregorian-init.ly"
\score {
- \transpose c c' {
+ \transpose c c' {
% Trigonus
\[ \stropha b \stropha b \stropha a \]
s^\markup {"P"}
}
- \paper { \neumeDemoPaper }
+ \layout { \neumeDemoLayout }
}
@end lilypond
@tab
LilyPond has limited support for figured bass
-@lilypond[quote,verbatim,fragment]
+@lilypond[quote,raggedright,verbatim,fragment]
<<
\context Voice { \clef bass dis4 c d ais }
\context FiguredBass \figuremode {
@example
<4 6>
@end example
-@lilypond[quote,fragment]
+@lilypond[quote,raggedright,fragment]
\context FiguredBass
\figuremode { <4 6> }
@end lilypond
@example
<4- 6+ 7!>
@end example
-@lilypond[quote,fragment]
-\context FiguredBass
-\figuremode { <4- 6+ 7!> }
+@lilypond[quote,raggedright,fragment]
+ \context FiguredBass
+ \figuremode { <4- 6+ 7!> }
@end lilypond
Spaces or dashes may be inserted by using @code{_}. Brackets are
@example
< [4 6] 8 [_! 12]>
@end example
-@lilypond[quote,fragment]
-\context FiguredBass
-\figuremode { < [4 6] 8 [_! 12]> }
+@lilypond[quote,raggedright,fragment]
+ \context FiguredBass
+ \figuremode { < [4 6] 8 [_! 12]> }
@end lilypond
Although the support for figured bass may superficially resemble chord
% create 2/4 + 5/8
tsMarkup =\markup {
- \number {
- \column < "2" "4" >
- \musicglyph #"scripts-stopped"
- \bracket \column < "5" "8" >
- }
+ \number {
+ \column < "2" "4" >
+ \musicglyph #"scripts-stopped"
+ \bracket \column < "5" "8" >
+ }
}
{
- \override Staff.TimeSignature #'print-function = #Text_item::print
- \override Staff.TimeSignature #'text = #tsMarkup
+ \override Staff.TimeSignature #'print-function = #Text_interface::print
+ \override Staff.TimeSignature #'text = #tsMarkup
\time 3/2
- c'2 \bar ":" c'4 c'4.
+ c'2 \bar ":" c'4 c'4.
}
@end lilypond
context.
@verbatim
-\paper{
- \context{
- \Score
- \remove "Timing_engraver"
- }
- \context{
- \Staff
- \consists "Timing_engraver"
- }
+\layout{
+ \context{ \Score \remove "Timing_engraver" }
+ \context{ \Staff \consists "Timing_engraver" }
}
@end verbatim
Now, each staff has its own time signature.
@verbatim
<<
- \new Staff {
- \time 3/4
- c4 c c | c c c |
- }
-
- \new Staff {
- \time 2/4
- c4 c | c c | c c
- }
- \new Staff {
- \time 3/8
- c4. c8 c c c4. c8 c c
- }
+ \new Staff {
+ \time 3/4
+ c4 c c | c c c |
+ }
+ \new Staff {
+ \time 2/4
+ c4 c | c c | c c
+ }
+ \new Staff {
+ \time 3/8
+ c4. c8 c c c4. c8 c c
+ }
>>
@end verbatim
-@lilypond[raggedright]
-\paper{
- \context{
- \Score
- \remove "Timing_engraver"
- }
- \context{
- \Staff
- \consists "Timing_engraver"
- }
+@lilypond[quote,raggedright]
+\layout{
+ \context{ \Score \remove "Timing_engraver" }
+ \context{ \Staff \consists "Timing_engraver" }
}
\relative c' <<
- \new Staff {
- \time 3/4
- c4 c c | c c c |
- }
-
- \new Staff {
- \time 2/4
- c4 c | c c | c c
- }
- \new Staff {
- \time 3/8
- c4. c8 c c c4. c8 c c
- }
+ \new Staff {
+ \time 3/4
+ c4 c c | c c c |
+ }
+ \new Staff {
+ \time 2/4
+ c4 c | c c | c c
+ }
+ \new Staff {
+ \time 3/8
+ c4. c8 c c c4. c8 c c
+ }
>>
@end lilypond
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]
-\relative c' <<
- \new Staff {
- \time 3/4
- c4 c c | c c c |
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(9 . 8)
- \compressmusic #'(2 . 3)
- \repeat unfold 6 { c8[ c c] }
- }
- \new Staff {
- \time 3/4
- \set Staff.timeSignatureFraction = #'(10 . 8)
- \compressmusic #'(3 . 5)
- { \repeat unfold 2 { c8[ c c] }
- \repeat unfold 2 { c8[ c] }
- | c4. c4. \times 2/3 { c8 c c } c4 }
+@lilypond[raggedright,verbatim,fragment]
+\relative c' { <<
+ \new Staff {
+ \time 3/4
+ c4 c c | c c c |
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(9 . 8)
+ \compressmusic #'(2 . 3)
+ \repeat unfold 6 { c8[ c c] }
+ }
+ \new Staff {
+ \time 3/4
+ \set Staff.timeSignatureFraction = #'(10 . 8)
+ \compressmusic #'(3 . 5) {
+ \repeat unfold 2 { c8[ c c] }
+ \repeat unfold 2 { c8[ c] }
+ | c4. c4. \times 2/3 { c8 c c } c4
}
->>
+ }
+>> }
@end lilypond
applying the function @code{makeClusters} to a sequence of
chords, e.g.
@c
-@lilypond[quote,verbatim]
-\relative c''
+@lilypond[quote,raggedright,relative=2,fragment,verbatim]
\makeClusters { <c e > <b f'> }
@end lilypond
@inputfileref{input/regression,cluster.ly}) shows what the result
looks like
-@lilypondfile[quote]{cluster.ly}
+@lilypondfile[raggedright,quote]{cluster.ly}
Ordinary notes and clusters can be put together in the same staff,
even simultaneously. In such a case no attempt is made to
@lilypond[quote,raggedright]
<<
- \oldaddlyrics {
- b'
- ^\shortfermata
- _\shortfermata
- r
- b'
- ^\fermata
- _\fermata
-
- r
- b'
- ^\longfermata
- _\longfermata
-
- r
- b'
- ^\verylongfermata
- _\verylongfermata
+ \oldaddlyrics {
+ b'2
+ ^\shortfermata
+ _\shortfermata
r
- }
- \context Lyrics \lyricmode {
- \override LyricText #'font-family = #'typewriter
- "shortfermata" "fermata" "longfermata" "verylongfermata"
- }
+
+ b'
+ ^\fermata
+ _\fermata
+ r
+
+ b'
+ ^\longfermata
+ _\longfermata
+ r
+
+ b'
+ ^\verylongfermata
+ _\verylongfermata
+ r
+ }
+ \context Lyrics \lyricmode {
+ \override LyricText #'font-family = #'typewriter
+ "shortfermata" "fermata" "longfermata" "verylongfermata"
+ }
>>
@end lilypond
Feathered beams are not supported natively, but they can be faked by
forcing two beams to overlap. Here is an example,
-@lilypond[raggedright]
-\relative \new Staff <<
- \new Voice
- {
- \stemUp
- \once \override Voice.Beam #'positions = #'(0 . 0.5)
- c8[ c c c c ]
- }
- \new Voice {
- \stemUp
- \once \override Voice.Beam #'positions = #'(0 . -0.5)
- c[ c c c c]
- }
+@c don't change relative setting witout changing positions!
+@lilypond[raggedright,relative=1,fragment,verbatim]
+\new Staff <<
+ \new Voice
+ {
+ \stemUp
+ \once \override Voice.Beam #'positions = #'(0 . 0.5)
+ c8[ c c c c ]
+ }
+ \new Voice {
+ \stemUp
+ \once \override Voice.Beam #'positions = #'(0 . -0.5)
+ c[ c c c c]
+ }
>>
@end lilypond
@node Educational use
@section Educational use
+With the amount of control that LilyPond offers, one can make great
+teaching tools in addition to great musical scores.
+
@menu
* Balloon help::
-* Blank music paper::
-* Notation for excercises::
+* Blank music sheet::
+* Hidden notes::
* Easy Notation note heads::
@end menu
The following example demonstrates its use.
@lilypond[quote,verbatim,fragment,raggedright,relative=2]
-\context Voice
-\applyoutput
- #(add-balloon-text 'NoteHead "heads, or tails?"
+\context Voice {
+ \applyoutput
+ #(add-balloon-text 'NoteHead "heads, or tails?"
'(1 . -3))
-c8
+ c8
+}
@end lilypond
@noindent
-@node Blank music paper
-@subsection Blank music paper
+@node Blank music sheet
+@subsection Blank music sheet
-A blank music paper can be produced also by using invisible notes, and
+A blank music sheet can be produced also by using invisible notes, and
removing @code{Bar_number_engraver}.
-@lilypond
+@lilypond[]
emptymusic = {
\repeat unfold 2 % Change this for more lines.
{ s1\break }
\bar "|."
}
\new Score \with {
- \override TimeSignature #'transparent = ##t
- defaultBarType = #""
- \remove Bar_number_engraver
+ \override TimeSignature #'transparent = ##t
+ defaultBarType = #""
+ \remove Bar_number_engraver
} <<
- \context Staff \emptymusic
- \context TabStaff \emptymusic
+ \context Staff \emptymusic
+ \context TabStaff \emptymusic
>>
@end lilypond
-@node Notation for excercises
-@subsection Notation for excercises
-
-@cindex Blank Notes
+@node Hidden notes
+@subsection Hidden notes
-Invisible (or transparent) notes can be useful, when weird tricks are
-needed; especially, a slur cannot be attach to a rest or spacer rest.
+@cindex Hidden notes
+@cindex Invisible notes
+@cindex Transparent notes
+Hidden (or invisible or transparent) notes can be useful in preparing theory
+or composition exercises.
-@lilypond
-blanknotes = { \override NoteHead #'transparent = ##t
- \override Stem #'transparent = ##t }
-unblanknotes = { \revert NoteHead #'transparent
- \revert Stem #'transparent }
+@lilypond[quote,raggedright,verbatim,relative=2,fragment]
+ c4 d4
+ \hideNotes
+ e4 f4
+ \unHideNotes
+ g4 a
+@end lilypond
+Hidden notes are also great for performing weird tricks. For example,
+slurs cannot be attached to rests or spacer rests, but you may with
+to include that in your score -- string instruments use this notation
+when doing pizzicato to indicate that the note should ring for as long
+as possible.
-\relative c'' {
- c4 d4
- \blanknotes e4 f4 \unblanknotes
- g4 a
-}
+@lilypond[quote,raggedright,verbatim,relative=0,fragment]
+ \clef bass
+ << {
+ c4^"pizz"( \hideNotes c)
+ \unHideNotes c( \hideNotes c)
+ } {
+ s4 r s r
+ } >>
@end lilypond
used in music for beginners
@lilypond[quote,raggedright,verbatim,fragment,staffsize=26]
-\setEasyHeads
-c'2 e'4 f' | g'1
+ \setEasyHeads
+ c'2 e'4 f' | g'1
@end lilypond
The command @code{\setEasyHeads} overrides settings for the