This document shows all kinds of tips and tricks, from simple to
advanced. You may also find dirty tricks, or the very very
latest features that have not been documented or fully implemented
yet.
This document is for LilyPond version
2.4.5.
Using
You can add various stuff to notes using In general, first do a
Ambits can be added per voice. In that case, the
ambitus must be moved manually to prevent collisions.
Accidentals are available in different ancient styles, which all
are collected here.
Here are shown many (all?) of the symbols that are
included in LilyPond's support of ancient notation.
Time signatures may also be engraved in an old style.
By setting
You can move
There a many types of bar lines available.
bar-number-every-five-reset.ly If you would like the bar numbers to appear at regular intervals, but
not starting from measure zero, you can use a context function,
bar-number-regular-interval.ly Bar numbers can also be printed inside boxes.
By default, bar numbers are printed only in the first measure. This
setting can be overridden, so that bar numbers on start of every measure.
The eighth notes may be seemingly attached to different
beams, and the corresponding notes connected by ties (see also
tie-cross-voice.ly).
Such a situation may occur, for example, in the cello suites.
You can override the automatic beaming settings.
The auto-beamer, which can be overridden, will only engrave beams
that end before encountering of
The
Beam positions may be controlled manually, by overriding the
You can alter the number of stems in a beam. In this example,
two sets of four 32nds are joined, as if they were 8th notes.
The
The font can be changed to small caps.
The english naming of chords (default) can be changed to german
(
Chord names are generated from a list pitches. The
functions which construct these names can be customised. Here are shown
Jazz chords, following Ignatzek (pp. 17-18, 1995) and
an alternative Jazz chord notation.
Chords following Banter (1987) can also be printed from this file, but
are turned off for brevity.
Divisiones are gregorian variants of breathing signs.
Choices are
Pił forte dynamics is produced using
By inserting the TeX command \embeddedps, you can
insert postscript directly into the output.
You can embed Tex commands in your score.
In polyphonic notation, many voices can share a staff: In
this situation, the accidentals and staff are shared, but the stems,
slurs, beams, etc. are private to each voice. Hence, engravers should
be grouped. The engravers for note head, stems, slurs, etc. go into a
group called “Voice context”, while the engravers for key,
accidental, bar, etc. go into a group called “Staff context”. In the
case of polyphony, a single Staff context contains more than one Voice
context. Similarly, more Staff contexts can be put into a single Score
context.
The notation problem, creating a certain symbol,
is handled by plugins. Each plugin is called Engraver. In this example,
engravers are switched on one by one, in the following order:
Engravers are grouped. For example, note heads, slurs, beams etc. form
a Voice context. Engravers for key, accidental, bar, etc. form a
Staff context.
You can add (possibly temporarily) an extra staff after the beginning of
a piece.
Here is demonstrated a preliminary support of Gregorian Scripts:
ictus, circulus, semicirculus, accentus, episem.
High level functionality (eg. conditional defines), can be
accomplished with GUILE.
This example puts the current version in the title via Scheme.
You can combine two parts on the same staff using the part
combiner. For vocal scores (hymns), there is no need to add solo/a2
texts, so they should be switched off.
You can have a name for the whole
Vaticana ligature uses four staff lines, special clef, and
calligraphic notes.
All header fields with special meanings.
In mensural ligatures, notes with ancient durations are printed
in a tight manner.
Mensural notes may also have note heads.
Objects, like text, can be moved around by using some Scheme code.
This example shows prelude in C major of WTK1, but coded
using Scheme functions to avoid typing work.
You can engrave music using just Scheme expressions. Although those
expressions reflect the inner mechanism of LilyPond, they are rather
clumsy to use, so avoid them, if possible.
Engravers can be removed one by one. Here, the time signature and bar lines
have been removed.
According to normal typesetting conventions, LilyPond typesets key
changes at the end of the line, when the change appears at a line break.
This example shows how to change this default to only print the
new key signature at the beginning of the next line.
A temporary ossia in an instrumental part may
be printed using a separate, short staff. A simpler solution is
also given: instantiate a full staff, and let
When entering partially typeset music (i.e. for students to be
completed by hand), you may need the spacing that correspond to the
timing of notes: all measures have same length, etc. It can be
implemented by adding an invisible staff with a lot of fast notes.
It is possible to have different staff distances between
the staffs of a piano system, but it requires some advanced Scheme code.
Currently, this is for testing purposes.
The object may be extended to larger sized by overriding their properties.
The lyrics in this example have an extent of
Rests may be used in various styles.
Symmetric, or palindromical music can be produced, first, by printing
some music, and second, by printing the same music applying a Scheme
function to reverse the syntax.
Some articulations may be entered using an abbreviation.
This chart shows all articulations, or scripts, that feta font contains.
The appearance of slurs may be changed from solid to dotted or dashed.
In extreme cases, you can resort to setting the
By setting the minimum length of a slur, notes are more separated.
There is a way to enforce enharmonic modifications for notes in order
to have the minimum number of accidentals. In that case, “Double
accidentals should be removed, as well as E-sharp (-> F), bC (-> B),
bF (-> E), B-sharp (-> C).”, as proposed by a request for a new feature.
In this manner, the most natural enharmonic notes are chosen in this example.
Staffs can be nested in various combinations. Here,
In this preliminary test of a modern score, the staff lines are washed
out temporarily. This is done by making a tuned
The number of lines in a staff may changed by overriding
In order to change staff sizes, both
Extending stems to the center line may be prevented using
A hammer in tablature can be faked with slurs.
An additional stave can be typeset in the middle of a score line.
A new context type is created for the temporary staff to avoid printing
time and key signatures and clef at the beginning of the extra stave.
Inline TeX (or PostScript) may be used, for example, to rotate text.
To see the result, use the
Text spanners can be used in the similar manner than markings for pedals
or octavation.
By putting the output of
0.1 Introduction
make-music, you can add various stuff to notes. In this
example staccato dots are added to the notes. For this simple case,
it is not necessary to use scm constructs (see separate-staccato.ly).
make-music.
In this example, an extra fingering is attached to a note.
display of the music you want to
create, then write a function that will structure the music for you.
barAlways and defaultBarType, barlines may be inserted automatically everywhere.
Bar_engraver and Span_bar_engraver to
a different engraving context, if you want, for example, bar lines
on lyrics.
set-bar-number-visibility, to set automatically
barNumberVisibility, so that the bar numbers appear at regular
intervals, starting from the measure in which
set-bar-number-visibility is set using \applycontext.
autoBeaming can also be turned off.
positions setting of the Beam grob.
print-function can be overridden to draw a box around an arbitrary
grob.
\germanChords replaces B and Bes to H and B) or semi-german
(\semiGermanChords replaces B and Bes to H and Bb).
divisioMinima, divisioMaior,
divisioMaxima and finalis, virgula and
caesura.
\markup.
GrandStaff in addition to
individual Staffs.
RemoveEmptyStaffContext take out the unused parts.
(-10,10), which is why
they are spaced so widely.
control-points of a slur manually, althout it involves
a lot of trial and error. Be sure to force line breaks at both sides, since
different horizontal spacing will require rearrangement of the
slur.
StaffGroup
and ChoirStaff produce similar straight brackets, whereas
GrandStaff produces curly brackets. In InnerStaffGroup
and InnerChoirStaff, the brackets are shifted leftwards.
StaffContainer,
which \skips some notes without printing lines either and
creates a \new Staff then in order to create the lines again.
(Be careful if you use this; it has been done by splitting the
grouping Axis_group_engraver and creating functionality into
separate contexts, but the clefs and time signatures may not do
what you would expect.)
line-count
in the properties of StaffSymbol.
staff-space and fontSize
must be scaled.
no-stem-extend.
lilypond.py script to generate the
output for printing of the source of this example (commenting one line).
lilypond-version into a lyric, it is possible to print the
version number of LilyPond in a score, or in a document generated
with lilypond-book. Another possibility is to append the
version number to the doc-string, in this manner: 2.4.5