]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/changes.tely
baadc90f4edfd565942b002cea173977e4b9131b
[lilypond.git] / Documentation / changes.tely
1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
2 @setfilename lilypond-changes.info
3 @settitle LilyPond Changes
4
5 @include macros.itexi
6
7 @ifhtml
8 @macro inputfileref{DIR,NAME}
9 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
10 @end macro
11 @macro usermanref{NAME}
12 @inforef{\NAME\,,../user/lilypond/lilypond}@c
13 @end macro
14 @end ifhtml
15
16 @ifnothtml
17 @macro inputfileref{DIR,NAME}
18 @file{\DIR\/\NAME\}@c
19 @end macro
20 @macro usermanref{NAME}
21 See user manual, \NAME\
22 @end macro
23 @end ifnothtml
24
25 @macro textanchor{NAME}
26 @html
27 <a name="\NAME\"></a>
28 @end html
29 @end macro
30
31
32 @documentencoding utf-8
33 @documentlanguage en
34 @afourpaper
35
36 @finalout
37
38 @node Top
39 @top New features in 2.18 since 2.16
40
41 @allowcodebreaks false
42
43 @itemize
44
45 @ignore
46
47 HINTS
48
49 * add new items at the top
50
51 * only show verbatim input for syntax/input changes
52
53 * try to be as brief possible in those cases
54
55 * don't try to provide real-world examples, they often get too big,
56 which scares away people.
57
58 * Write complete sentences.
59
60 * only show user-visible changes.
61
62 @end ignore
63
64 @item
65 Horizontal space is allowed for tempo and rehearsal marks,
66 so that these marks do not overlap each other.
67 A new command @code{\markLengthOff} turns this feature off.
68 @lilypond[quote,relative=0]
69 \compressFullBarRests
70 \tempo "Molto vivace" c''2 c'
71 \mark\default
72 \tempo "Meno mosso" R1*16
73 @end lilypond
74
75 @item
76 There is a new @code{\absolute} command explicitly marking music
77 as being entered in absolute pitch.  While this has been the
78 default previously, an explicit @code{\absolute} also prevents
79 reinterpretation when the passage is placed inside of
80 @code{\relative}:
81 @lilypond[verbatim,quote]
82 \relative c { c'4 \absolute { f'' g'' } c }
83 @end lilypond
84
85 @item
86 When @code{\relative} is used without an explicit reference pitch,
87 the reference pitch now is the middle of the first octave, making
88 the first entered pitch indistinguishable from absolute pitch.
89 Previously, omitting the reference pitch would have lead to a
90 default of @code{c'}.  Since that choice was somewhat arbitrary,
91 recommended usage was to always specify the reference pitch.
92
93 @item
94 A new command @code{\single} can be used for converting a property
95 override into a tweak to be applied on a single music expression:
96
97 @lilypond[quote,verbatim,relative=2]
98 <a \single\voiceTwoStyle e' a>1
99 @end lilypond
100
101 @item
102 Two ways of letting graphical objects not appear in the output are
103 overriding its @code{transparent} property with @code{#t}
104 (retaining the original spacing) or overriding its @code{stencil}
105 property with @code{#f} (not using any space at all).  Those two
106 operations now have the shorthands @code{\hide} and @code{\omit},
107 respectively.  They can either be given a music expression to
108 tweak, or the name of a graphical object for which an override
109 should be created (for specifying both, use @code{\single} on the
110 override form):
111
112 @lilypond[quote,verbatim]
113 \new Staff \with { \omit Clef }
114 \relative c'' <a e' \hide a>1
115 @end lilypond
116
117 @item
118 A new command @code{\temporary} can be applied to overrides in
119 order to not have them replace previous property settings.  If a
120 @code{\revert} is applied to the same property subsequently, the
121 previous setting reappears:
122
123 @lilypond[quote,verbatim,relative=2]
124 \override NoteHead.color = #red c4
125 \override NoteHead.color = #green d
126 \revert NoteHead.color e2
127 \override NoteHead.color = #red c4
128 \temporary\override NoteHead.color = #green d
129 \revert NoteHead.color e
130 \revert NoteHead.color c
131 @end lilypond
132
133 This is mainly useful for writing music functions that need to
134 have some property changed just for the duration of the function.
135
136 @item
137 @code{\tag}, @code{\removeWithTag}, and @code{\keepWithTag} can
138 now accept a list of symbols rather than just a single symbol for
139 marking, removing, and keeping music with any of multiple tags.
140 This is particularly important for @code{\keepWithTag} since one
141 cannot achieve the same effect by using multiple consecutive
142 @code{\keepWithTag} commands.
143
144 @item
145 The @samp{-d old-relative} option has been removed.  Not actually
146 accessible from the command line any more, its remaining use was
147 for interpretating @code{\relative} in LilyPond files converted
148 automatically from version@tie{}1.8 or older.  It is unclear how
149 much of this was actually still operative.
150
151 @item
152 The meaning of @code{instrumentTransposition} has been reversed.
153 After
154 @example
155 \set instrumentTransposition = #@{ b #@}
156 @end example
157 a written @code{c'} now sounds like @code{b}.  Previously, this
158 would have been the other way round.  This and the following change
159 should make dealing with transposing instruments more
160 straightforward.
161
162 @item
163 The music generated by @code{\set} and @code{\override} commands
164 is no longer affected by @code{\transpose}.  The main consequence
165 is that @code{\transpose} will transpose audible/@/concert pitch and
166 printed pitch by the same amount even when the transposed music
167 contains @code{\transposition}.  Previously,
168 @example
169 \transpose c' f' \transposition bes'
170 @end example
171 was equivalent to @code{\transposition f'}.  Now it stays
172 equivalent to @code{\transposition bes'}.
173
174 @item
175 Tuplets are now created with the @code{\tuplet} command, which
176 takes a fraction @code{@var{t}/@var{n}} to specify that @var{t}
177 notes are played in the time usually allowed for @var{n}. One
178 @code{\tuplet} command can create several tuplet groups if their
179 duration is typed after the fraction.
180 @lilypond[quote,verbatim,relative=2]
181 \tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2
182 \tuplet 3/2 4 { c8 d e f e d } c2
183 @end lilypond
184 The @code{\times} command with its inverted fraction order
185 @code{@var{n}/@var{t}} is still available.
186
187 @item
188 Introducing two new markup-commands; @code{\draw-dashed-line} and
189 @code{\draw-dotted-line}.
190
191 @noindent
192 The dashed-line extends to the whole length given by @var{dest}, if
193 @code{full-length} is set to @code{#t} (this is the default) without any
194 space at the beginning or end.  @code{off} will then be altered to fit.
195 To insist on the given (or default) values of @code{on}, @code{off} use
196 @code{\override #'(full-length . #f)}.  Manual settings for @code{on},
197 @code{off} and @code{phase} are possible.
198
199 @noindent
200 The dotted-line always extends to the whole length given by @var{dest},
201 without any space at the beginning or end.  Manual settings for
202 @code{off} are possible to get larger or smaller space between the dots.
203 The given (or default) value of @code{off} will be altered to fit the
204 line-length.
205
206 @lilypond[verbatim,quote]
207 \markup {
208   \draw-dashed-line #'(5.1 . 2.3)
209   \override #'(on . 0.3)
210   \override #'(off . 0.5)
211   \draw-dashed-line #'(5.1 . 2.3)
212   \draw-dotted-line #'(5.1 . 2.3)
213   \override #'(thickness . 2)
214   \override #'(off . 0.2)
215   \draw-dotted-line #'(5.1 . 2.3)
216 }
217 @end lilypond
218
219 @item
220 Starting with version@tie{}2.17.10, error messages or the
221 @code{textedit} @acronym{URI} used for point-and-click
222 functionality specify column numbers starting with@tie{}1 rather
223 than@tie{}0.  The byte offset (also part of @code{textedit}
224 @acronym{URI}s) still starts at@tie{}0.
225
226 @item
227 The @code{\clef} command supports optional octavation:
228 @lilypond[verbatim,quote,relative=1]
229 \clef "treble_(8)"
230 c2 c
231 \clef "bass^[15]"
232 c2 c
233 @end lilypond
234
235 @item
236 The LilyPond syntax of dot-separated words @code{Voice.Accidental}
237 has been made interchangeable with @code{#'(Voice Accidental)}, a
238 Scheme list of symbols.  As one result, code like
239 @example
240 \override Voice.TextSpanner #'(bound-details left text) = "rit."
241 @end example
242 is now equivalent to
243 @example
244 \override Voice.TextSpanner bound-details.left.text = "rit."
245 @end example
246 or even
247 @example
248 \override #'(Voice TextSpanner) bound-details.left.text = "rit."
249 @end example
250
251 @item
252 Grob and grob property path no longer need to be specified as two
253 separate arguments to commands like @samp{\override} and
254 @code{\revert}, allowing for the syntax
255 @example
256 \override Voice.TextSpanner.bound-details.left.text = "rit."
257 @end example
258 Since complementary music functions like @samp{\overrideProperty}
259 cannot support forms with and without separating space at the same
260 time, using a single dotted path is now the preferred form.
261 Specifying grob path and grob property path separately, currently
262 still supported with @samp{\override} and @samp{\revert} for
263 compatibility reasons, is deprecated.
264
265 @item
266 Due to words now being accepted as symbol function arguments, the
267 interfaces of @samp{\accidentalStyle}, @samp{\alterBroken},
268 @samp{\footnote} and @samp{\tweak} had to be redesigned where
269 optional symbol arguments were involved.  Please check the
270 respective music function documentation for details.
271
272 @item
273 Several commands now accept symbol lists (conveniently entered as
274 dot-separated words) for various kinds of arguments.  These
275 include @samp{\accidentalStyle}, @samp{\alterBroken},
276 @samp{\footnote}, @samp{\hide}, @samp{\omit},
277 @samp{\overrideProperty}, @samp{\shape}, and @samp{\tweak}.
278
279 @item
280 The bar line user interface has changed. Bar glyphs now resemble the
281 appearance of the bar line, so a left repeat sign has to be coded
282 as @code{.|:}. The command @code{\defineBarLine} provides an easy way
283 to define additional bar line styles.
284
285 @item
286 Accidentals in the key signature may be printed in octaves other
287 than their traditional positions, or in multiple octaves.
288 @lilypond[quote,relative=0]
289 \override Staff.KeySignature #'flat-positions = #'((-5 . 5))
290 \override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
291 \clef bass \key es\major es g bes d
292 \clef treble \bar "||" \key es\major es g bes d
293 \override Staff.KeySignature #'sharp-positions = #'(2)
294 \bar "||" \key d\major b fis b2
295 @end lilypond
296
297 @end itemize
298
299 @ifhtml
300 For older news, go to
301 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
302 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
303 or @uref{../,go back} to the Documentation index.
304
305
306 @end ifhtml
307
308 @bye