1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
2 @setfilename lilypond-changes.info
3 @settitle LilyPond Changes
8 @macro inputfileref{DIR,NAME}
9 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
11 @macro usermanref{NAME}
12 @inforef{\NAME\,,../user/lilypond/lilypond}@c
17 @macro inputfileref{DIR,NAME}
20 @macro usermanref{NAME}
21 See user manual, \NAME\
25 @macro textanchor{NAME}
32 @documentencoding utf-8
39 @top New features in 2.18 since 2.16
41 @allowcodebreaks false
49 * add new items at the top
51 * only show verbatim input for syntax/input changes
53 * try to be as brief possible in those cases
55 * don't try to provide real-world examples, they often get too big,
56 which scares away people.
58 * Write complete sentences.
60 * only show user-visible changes.
65 A new command @code{\single} can be used for converting a property
66 override into a tweak to be applied on a single music expression:
68 @lilypond[quote,verbatim,relative=2]
69 <a \single\voiceTwoStyle e' a>1
73 Two ways of letting graphical objects not appear in the output are
74 overriding its @code{transparent} property with @code{#t}
75 (retaining the original spacing) or overriding its @code{stencil}
76 property with @code{#f} (not using any space at all). Those two
77 operations now have the shorthands @code{\hide} and @code{\omit},
78 respectively. They can either be given a music expression to
79 tweak, or the name of a graphical object for which an override
80 should be created (for specifying both, use @code{\single} on the
83 @lilypond[quote,verbatim]
84 \new Staff \with { \omit Clef }
85 \relative c'' <a e' \hide a>1
89 A new command @code{\temporary} can be applied to overrides in
90 order to not have them replace previous property settings. If a
91 @code{\revert} is applied to the same property subsequently, the
92 previous setting reappears:
94 @lilypond[quote,verbatim,relative=2]
95 \override NoteHead.color = #red c4
96 \override NoteHead.color = #green d
97 \revert NoteHead.color e2
98 \override NoteHead.color = #red c4
99 \temporary\override NoteHead.color = #green d
100 \revert NoteHead.color e
101 \revert NoteHead.color c
104 This is mainly useful for writing music functions that need to
105 have some property changed just for the duration of the function.
108 @code{\tag}, @code{\removeWithTag}, and @code{\keepWithTag} can
109 now accept a list of symbols rather than just a single symbol for
110 marking, removing, and keeping music with any of multiple tags.
111 This is particularly important for @code{\keepWithTag} since one
112 cannot achieve the same effect by using multiple consecutive
113 @code{\keepWithTag} commands.
116 The @samp{-d old-relative} option has been removed. Not actually
117 accessible from the command line any more, its remaining use was
118 for interpretating @code{\relative} in LilyPond files converted
119 automatically from version@tie{}1.8 or older. It is unclear how
120 much of this was actually still operative.
123 The meaning of @code{instrumentTransposition} has been reversed.
126 \set instrumentTransposition = #@{ b #@}
128 a written @code{c'} now sounds like @code{b}. Previously, this
129 would have been the other way round. This and the following change
130 should make dealing with transposing instruments more
134 The music generated by @code{\set} and @code{\override} commands
135 is no longer affected by @code{\transpose}. The main consequence
136 is that @code{\transpose} will transpose audible/@/concert pitch and
137 printed pitch by the same amount even when the transposed music
138 contains @code{\transposition}. Previously,
140 \transpose c' f' \transposition bes'
142 was equivalent to @code{\transposition f'}. Now it stays
143 equivalent to @code{\transposition bes'}.
146 Tuplets are now created with the @code{\tuplet} command, which
147 takes a fraction @code{@var{t}/@var{n}} to specify that @var{t}
148 notes are played in the time usually allowed for @var{n}. One
149 @code{\tuplet} command can create several tuplet groups if their
150 duration is typed after the fraction.
151 @lilypond[quote,verbatim,relative=2]
152 \tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2
153 \tuplet 3/2 4 { c8 d e f e d } c2
155 The @code{\times} command with its inverted fraction order
156 @code{@var{n}/@var{t}} is still available.
159 Introducing two new markup-commands; @code{\draw-dashed-line} and
160 @code{\draw-dotted-line}.
163 The dashed-line extends to the whole length given by @var{dest}, if
164 @code{full-length} is set to @code{#t} (this is the default) without any
165 space at the beginning or end. @code{off} will then be altered to fit.
166 To insist on the given (or default) values of @code{on}, @code{off} use
167 @code{\override #'(full-length . #f)}. Manual settings for @code{on},
168 @code{off} and @code{phase} are possible.
171 The dotted-line always extends to the whole length given by @var{dest},
172 without any space at the beginning or end. Manual settings for
173 @code{off} are possible to get larger or smaller space between the dots.
174 The given (or default) value of @code{off} will be altered to fit the
177 @lilypond[verbatim,quote]
179 \draw-dashed-line #'(5.1 . 2.3)
180 \override #'(on . 0.3)
181 \override #'(off . 0.5)
182 \draw-dashed-line #'(5.1 . 2.3)
183 \draw-dotted-line #'(5.1 . 2.3)
184 \override #'(thickness . 2)
185 \override #'(off . 0.2)
186 \draw-dotted-line #'(5.1 . 2.3)
191 Starting with version@tie{}2.17.10, error messages or the
192 @code{textedit} @acronym{URI} used for point-and-click
193 functionality specify column numbers starting with@tie{}1 rather
194 than@tie{}0. The byte offset (also part of @code{textedit}
195 @acronym{URI}s) still starts at@tie{}0.
198 The @code{\clef} command supports optional octavation:
199 @lilypond[verbatim,quote,relative=1]
207 The LilyPond syntax of dot-separated words @code{Voice.Accidental}
208 has been made interchangeable with @code{#'(Voice Accidental)}, a
209 Scheme list of symbols. As one result, code like
211 \override Voice.TextSpanner #'(bound-details left text) = "rit."
215 \override Voice.TextSpanner bound-details.left.text = "rit."
219 \override #'(Voice TextSpanner) bound-details.left.text = "rit."
223 Grob and grob property path no longer need to be specified as two
224 separate arguments to commands like @samp{\override} and
225 @code{\revert}, allowing for the syntax
227 \override Voice.TextSpanner.bound-details.left.text = "rit."
229 Since complementary music functions like @samp{\overrideProperty}
230 cannot support forms with and without separating space at the same
231 time, using a single dotted path is now the preferred form.
232 Specifying grob path and grob property path separately, currently
233 still supported with @samp{\override} and @samp{\revert} for
234 compatibility reasons, is deprecated.
237 Due to words now being accepted as symbol function arguments, the
238 interfaces of @samp{\accidentalStyle}, @samp{\alterBroken},
239 @samp{\footnote} and @samp{\tweak} had to be redesigned where
240 optional symbol arguments were involved. Please check the
241 respective music function documentation for details.
244 Several commands now accept symbol lists (conveniently entered as
245 dot-separated words) for various kinds of arguments. These
246 include @samp{\accidentalStyle}, @samp{\alterBroken},
247 @samp{\footnote}, @samp{\hide}, @samp{\omit},
248 @samp{\overrideProperty}, @samp{\shape}, and @samp{\tweak}.
251 The bar line user interface has changed. Bar glyphs now resemble the
252 appearance of the bar line, so a left repeat sign has to be coded
253 as @code{.|:}. The command @code{\defineBarLine} provides an easy way
254 to define additional bar line styles.
257 Accidentals in the key signature may be printed in octaves other
258 than their traditional positions, or in multiple octaves.
259 @lilypond[quote,relative=0]
260 \override Staff.KeySignature #'flat-positions = #'((-5 . 5))
261 \override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
262 \clef bass \key es\major es g bes d
263 \clef treble \bar "||" \key es\major es g bes d
264 \override Staff.KeySignature #'sharp-positions = #'(2)
265 \bar "||" \key d\major b fis b2
271 For older news, go to
272 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
273 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
274 or @uref{../,go back} to the Documentation index.