* Page layout::
* Sound::
* Music entry::
-* Using LilyPond::
* Interpretation context::
* Syntactic details::
* Lexical details::
rests or bar lines, so if you want that, specify the begin and end point
manually using @code{[} and @code{]}:
-@quotation
@lilypond[fragment,relative,verbatim]
\context Staff {
r4 [r8 g'' a r8] r8 [g | a] r8
[f8 r16 \property Voice.stemLeftBeamCount = #1 f g a]
}
@end lilypond
-@end quotation
@cindex @code{stemRightBeamCount}
The beam symbol can be tweaked through @code{Voice.Beam}'s
Set @code{height} to zero, to get horizontal beams:
-@quotation
@lilypond[fragment,relative,verbatim]
\property Voice.Beam \set #'direction = #1
\property Voice.Beam \set #'height = #0
[a''8 e' d c]
@end lilypond
-@end quotation
Here's how you'd specify a weird looking beam that instead of being
horizontal, falls two staff spaces:
-@quotation
@lilypond[fragment,relative,verbatim]
\property Voice.Beam \set #'staff-position = #2
\property Voice.Beam \set #'height = #-2
[c'8 c]
@end lilypond
-@end quotation
@cindex @code{default-neutral-direction}
@node Expressive marks
Maybe reinclude other slur features and move back to tricks? Esp. the
second example, how to fix, can be very helpful.
-@quotation
@lilypond[fragment,relative,verbatim]
\property Voice.Slur \set #'direction = #1
\property Voice.Stem \set #'length = #5.5
\property Voice.Slur \set #'attachment = #'(stem . stem)
g8(g)g4
@end lilypond
-@end quotation
If a slur would strike through a stem or beam, the slur will be moved
away upward or downward. If this happens, attaching the slur to the
stems might look better:
-@quotation
@lilypond[fragment,relative,verbatim]
\property Voice.Stem \set #'direction = #1
\property Voice.Slur \set #'direction = #1
\property Voice.Slur \set #'attachment = #'(stem . stem)
d,32( d'4 )d8..
@end lilypond
-@end quotation
Similarly, the curvature of a slur is adjusted to stay clear of note
* Articulation::
* Text scripts::
* Grace notes::
+* Glissando ::
+* Dynamics::
@end menu
@c . {Articulation}
stem. This behavior can be controlled with the
@code{Stem}.@code{flag-style} property.
-@quotation
@lilypond[fragment,verbatim]
\relative c'' {
\grace c8 c4 \grace { [c16 c16] } c4
\grace { \property Grace.Stem \override #'flag-style = #'() c16 } c4
}
-
@end lilypond
-@end quotation
At present, nesting @code{\grace} notes is not supported. The following
@c . {Glissando}
@node Glissando
-@subsubsection Glissando
+@subsection Glissando
@cindex Glissando
@cindex @code{\glissando}
A glissando line can be requested by attaching a @code{\glissando} to a
note:
-@quotation
@lilypond[fragment,relative,verbatim]
c'' \glissando c'
@end lilypond
-@end quotation
@refbugs
@c . {Dynamics}
@node Dynamics
-@subsubsection Dynamics
+@subsection Dynamics
@cindex Dynamics
@code{\fff}, @code{\fff}, @code{\fp}, @code{\sf}, @code{\sff},
@code{\sp}, @code{\spp}, @code{\sfz}, and @code{\rfz}.
+@lilypond[verbatim,singleline,fragment,relative]
+ c''\ppp c\pp c \p c\mp c\mf c\f c\ff c\fff
+ c2\sf c\rfz
+@end lilypond
@cindex Crescendo and Decrescendo
@cindex crescendo
@lilypond[fragment,verbatim,center]
c'' \< \! c'' d'' \decr e'' \rced
- < f''1 { s4 \< \! s2 \> \! s4 } >
+ < f''1 { s4 s4 \< \! s4 \> \! s4 } >
@end lilypond
-[BUG in \> ! ]
-
You can also use a text saying @emph{cresc.} instead of hairpins. Here
is an example how to do it:
@end lilypond
+@refbugs
+When using spacer notes to subdivide note dynamics and @code{linewidth =
+-1}, starting a hairpin on the first spacer note (the one coinciding
+with the real note) exposes an embarassing bug.
@end lilypond
With alternative endings:
-@quotation
@lilypond[fragment,verbatim]
c'1
\repeat volta 2 {c'4 d' e' f'}
\alternative { {d'2 d'} {f' f} }
@end lilypond
-@end quotation
Folded repeats look like this:@footnote{Folded repeats offer little
more over simultaneous music. However, it is to be expected that
more functionality -- especially for the MIDI backend -- will be
implemented at some point in the future.}
-@quotation
@lilypond[fragment,verbatim]
c'1
\repeat fold 2 {c'4 d' e' f'}
\alternative { {d'2 d'} {f' f} }
@end lilypond
-@end quotation
-
If you don't give enough alternatives for all of the repeats, then
the first alternative is assumed to be repeated often enough to equal
the specified number of repeats.
-@quotation
@lilypond[fragment,verbatim]
\context Staff {
\relative c' {
}
}
@end lilypond
-@end quotation
@refbugs
printed once, and then the pattern is replaced with a special sign.
@lilypond[verbatim,singleline]
- \context Voice { \repeat "percent" 5 { c'1 } }
+ \context Voice { \repeat "percent" 4 { c'4 }
+ \repeat "percent" 2 { c'2 es'2 f'4 fis'4 g'4 c''4 }
+}
@end lilypond
-At present, only repeats of whole measures are supported.
+@refbugs
+
+You can not nest percent repeats, filling in the first measure with
+slashes, and repeating that measure with percents.
@node Rhythmic music
@section Rhythmic music
@code{\arpeggio} to a note of the chord.
-@quotation
@lilypond[fragment,relative,verbatim]
\context Voice <c'\arpeggio e g c>
@end lilypond
-@end quotation
When an arpeggio crosses staffs in piano music, you attach an arpeggio
to the chords in both staffs, and set
@code{PianoStaff.connectArpeggios}.
-@quotation
@lilypond[fragment,relative,verbatim]
\context PianoStaff <
\property PianoStaff.connectArpeggios = ##t
\context Voice = other { \clef bass; <c,,\arpeggio e g>}
>
@end lilypond
-@end quotation
This command creates @code{Arpeggio} grobs.
can be printed automatically. This is enabled if the property
@code{PianoStaff.followVoice} is set to true:
-@quotation
@lilypond[fragment,relative,verbatim]
\context PianoStaff <
\property PianoStaff.followVoice = ##t
\context Staff=two {\clef bass; \skip 1*2;}
>
@end lilypond
-@end quotation
@c . {Lyrics}
Throughout these examples, chords have been shifted around the staff
using @code{\transpose}.
-
-@quotation
-
@lilypond[fragment,verbatim]
\transpose c'' {
\chords {
c:9 c:9-.5+.7+ c:3-.5- c:4.6.8
}
}
-
@end lilypond
-@end quotation
@cindex @code{aug}
@cindex @code{dim}
`@code{maj}' which adds a raised 7th, and `@code{sus}'
which replaces the 5th with a 4th.
-@quotation
-
@lilypond[fragment,verbatim]
\transpose c'' {
\chords {
c1:m c:min7 c:maj c:aug c:dim c:sus
}
}
-
@end lilypond
-@end quotation
Chord subtractions are used to eliminate notes from a chord. The
The chords may be entered either using the notation described above, or
directly using simultaneous music.
-@quotation
@lilypond[verbatim,singleline]
scheme = \notes {
\chords {a1 b c} <d f g> <e g b>
>
}
@end lilypond
-@end quotation
You can make the chord changes stand out by setting property
@code{ChordNames.chordChanges} to true. This will only display chord
names when there's a change in the chords scheme and at the start of the
line.
-@quotation
@lilypond[verbatim]
scheme = \chords {
c1:m \break c:m c:m c:m d
\context Staff \transpose c'' \scheme
> }
@end lilypond
-@end quotation
LilyPond examines chords specified as lists of notes to determine a name
to give the chord. LilyPond will not try to identify chord inversions or
[base vs. bass ?]
-@quotation
@lilypond[verbatim,center,singleline]
scheme = \notes {
<c'1 e' g'>
\score {
<
- \context ChordNamesVoice \scheme
+ \context ChordNames \scheme
\context Staff \scheme
>
}
@end lilypond
-@end quotation
By default LilyPond uses chord name system proposed by Harald Banter
a tone. The first version will print sharps and the second version
will print flats.
-@quotation
@lilypond[fragment,verbatim]
\context Staff {
\clef "F";
\transpose des'' { \key e \major; c d e f }
\transpose cis'' { \key e \major; c d e f }
}
-
@end lilypond
-@end quotation
If you want to use both @code{\transpose} and @code{\relative}, then
you must use @code{\transpose} first. @code{\relative} will have no
thus helps the player or singer to manage line breaks during
performance, thus enhancing readability of a score.
-@quotation
@lilypond[verbatim]
\score {
\notes { c'1 d' e' d' \break c' d' e' d' }
}
}
@end lilypond
-@end quotation
Custodes were frequently used in music notation until the 16th century.
There were different appearences for different notation styles.
Here @var{symbol} is a Scheme expression of symbol type, @var{context}
and @var{grobname} are strings and @var{value} is a Scheme expression.
+If you want to be
+Correct nesting of @code{\override}, @code{\set}, @code{\revert} is as
+follows
+
+@example
+\override \set \set \set \set
+\revert
+@end example
+
+This is always correct, but if you know the default value, you can also use
+@example
+\set \set \set \set
+\set @var{to default value}
+@end example
+
+If there is no default (i.e. by default, the grob property is unset),
+then you can use
+@example
+\set \set \set \set \set
+\revert
+@end example
+
+
@refbugs
LilyPond will hang or crash if @var{value} contains cyclic references.
+The backend is not very strict in type-checking grob properties. If you
+@code{\revert} properties that are expected to be set by default,
+LilyPond may crash.
@cindex font magnification
@cindex @code{font-interface}
-@refbugs
-
@node Text markup
@subsection Text markup
harmless, and can be ignored.
-@c . {Using LilyPond}
-@node Using LilyPond
-@section Using LilyPond
-@cindex Using LilyPond
-@cindex Generating output
-
-@c slaat dit ergens op?
-
-@c direct postscript?
-
-@table @code
-@item plain lilypond
-@example
-lilypond foo.ly
-@end example
-For more information on how to use lilypond see
-@ifnottex
-@ref{Invoking LilyPond}.
-@end ifnottex
-@iftex
-the online manual.
-@end iftex
-
-@item ly2dvi
-Ly2dvi produces titling from @code{\header} fields.
-@example
-ly2dvi foo.ly
-@end example
-For more information on how to use ly2dvi see
-@ifnottex
-@ref{ly2dvi}.
-@end ifnottex
-@iftex
-the online manual.
-@end iftex
-
-@item lilypond-book
-Lilypond-book supports interleaving text and music.
-@example
-lilypond-book foo.doc
-@end example
-For more information on how to use lilypond-book see
-@ifnottex
-@ref{lilypond-book}.
-@end ifnottex
-@iftex
-the online manual.
-@end iftex
-@end table
-
-
-An emacs mode for LilyPond is included with the source archive as
-@file{lilypond-mode.el} and @file{lilypond-font-lock.el}. If you have
-an RPM, it is in @file{/usr/share/doc/lilypond-X/}. You have to install
-it yourself.
-
-Add this to your ~/.emacs or ~/.emacs.el:
-@example
- (load-library "lilypond-mode.el")
- (setq auto-mode-alist
- (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
- (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
-@end example
-
-If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
-is automatically loaded, so you need not modify your ~/.emacs file.
-
-@menu
-* Pre-cooked makefile::
-@end menu
-
-@node Pre-cooked makefile
-@subsection Pre-cooked makefile
-
-@c waar deze info? is uiteindelijk wel handig, schat ik.
-[TODO: cut blabla]
-If you have a big music project, or just a lot of LilyPond input files,
-all generated output from LilyPond, @TeX{} and metafont will clutter
-your working directory. LilyPond comes with a one-size-fits-all
-pre-cooked makefile that helps you manage producing ouptut. It will
-produce all output in @file{out}, generate and track dependencies.
-Also, it helps in preparing your submission to the @ref{Mutopia
-project}.
-
-@file{make/ly.make}
-@example
-mkdir my-project
-cd my-project
-cp /usr/share/lilypond/make/ly.make GNUmakefile
-cp /usr/share/doc/lilypond/examples/input/tutorial/menuet.ly .
-make menuet
-[..]
-Generated out/menuet.ps for target menuet.
-@end example
-
-Type @samp{make help} to see possible targets.
-
-[TODO]
-@file{/usr/share/lilypond/doc/lilypond/examples/input/mutopia-header.ly}
-
-
@node Interpretation context
@section Interpretation context
of type @var{contexttype} and with name @var{contextname}. If this
context does not exist, it will be created.
-@quotation
-
@lilypond[verbatim,singleline]
\score {
\notes \relative c'' {
}
@end lilypond
-@end quotation
In this example, the @code{c} and @code{d} are printed on the
default staff. For the @code{e}, a context Staff called
such an identifier outside of @code{\score}, you must do
@quotation
-
@example
\paper @{
foo = \translator @{ @dots{} @}