]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/changes.tely
Merge branch 'master' into translation
[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 When @code{\relative} is used without an explicit reference pitch,
77 the reference pitch now is the middle of the first octave, making
78 the first entered pitch indistinguishable from absolute pitch.
79 Previously, omitting the reference pitch would have lead to a
80 default of @code{c'}.  Since that choice was somewhat arbitrary,
81 recommended usage was to always specify the reference pitch.
82
83 @item
84 A new command @code{\single} can be used for converting a property
85 override into a tweak to be applied on a single music expression:
86
87 @lilypond[quote,verbatim,relative=2]
88 <a \single\voiceTwoStyle e' a>1
89 @end lilypond
90
91 @item
92 Two ways of letting graphical objects not appear in the output are
93 overriding its @code{transparent} property with @code{#t}
94 (retaining the original spacing) or overriding its @code{stencil}
95 property with @code{#f} (not using any space at all).  Those two
96 operations now have the shorthands @code{\hide} and @code{\omit},
97 respectively.  They can either be given a music expression to
98 tweak, or the name of a graphical object for which an override
99 should be created (for specifying both, use @code{\single} on the
100 override form):
101
102 @lilypond[quote,verbatim]
103 \new Staff \with { \omit Clef }
104 \relative c'' <a e' \hide a>1
105 @end lilypond
106
107 @item
108 A new command @code{\temporary} can be applied to overrides in
109 order to not have them replace previous property settings.  If a
110 @code{\revert} is applied to the same property subsequently, the
111 previous setting reappears:
112
113 @lilypond[quote,verbatim,relative=2]
114 \override NoteHead.color = #red c4
115 \override NoteHead.color = #green d
116 \revert NoteHead.color e2
117 \override NoteHead.color = #red c4
118 \temporary\override NoteHead.color = #green d
119 \revert NoteHead.color e
120 \revert NoteHead.color c
121 @end lilypond
122
123 This is mainly useful for writing music functions that need to
124 have some property changed just for the duration of the function.
125
126 @item
127 @code{\tag}, @code{\removeWithTag}, and @code{\keepWithTag} can
128 now accept a list of symbols rather than just a single symbol for
129 marking, removing, and keeping music with any of multiple tags.
130 This is particularly important for @code{\keepWithTag} since one
131 cannot achieve the same effect by using multiple consecutive
132 @code{\keepWithTag} commands.
133
134 @item
135 The @samp{-d old-relative} option has been removed.  Not actually
136 accessible from the command line any more, its remaining use was
137 for interpretating @code{\relative} in LilyPond files converted
138 automatically from version@tie{}1.8 or older.  It is unclear how
139 much of this was actually still operative.
140
141 @item
142 The meaning of @code{instrumentTransposition} has been reversed.
143 After
144 @example
145 \set instrumentTransposition = #@{ b #@}
146 @end example
147 a written @code{c'} now sounds like @code{b}.  Previously, this
148 would have been the other way round.  This and the following change
149 should make dealing with transposing instruments more
150 straightforward.
151
152 @item
153 The music generated by @code{\set} and @code{\override} commands
154 is no longer affected by @code{\transpose}.  The main consequence
155 is that @code{\transpose} will transpose audible/@/concert pitch and
156 printed pitch by the same amount even when the transposed music
157 contains @code{\transposition}.  Previously,
158 @example
159 \transpose c' f' \transposition bes'
160 @end example
161 was equivalent to @code{\transposition f'}.  Now it stays
162 equivalent to @code{\transposition bes'}.
163
164 @item
165 Tuplets are now created with the @code{\tuplet} command, which
166 takes a fraction @code{@var{t}/@var{n}} to specify that @var{t}
167 notes are played in the time usually allowed for @var{n}. One
168 @code{\tuplet} command can create several tuplet groups if their
169 duration is typed after the fraction.
170 @lilypond[quote,verbatim,relative=2]
171 \tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2
172 \tuplet 3/2 4 { c8 d e f e d } c2
173 @end lilypond
174 The @code{\times} command with its inverted fraction order
175 @code{@var{n}/@var{t}} is still available.
176
177 @item
178 Introducing two new markup-commands; @code{\draw-dashed-line} and
179 @code{\draw-dotted-line}.
180
181 @noindent
182 The dashed-line extends to the whole length given by @var{dest}, if
183 @code{full-length} is set to @code{#t} (this is the default) without any
184 space at the beginning or end.  @code{off} will then be altered to fit.
185 To insist on the given (or default) values of @code{on}, @code{off} use
186 @code{\override #'(full-length . #f)}.  Manual settings for @code{on},
187 @code{off} and @code{phase} are possible.
188
189 @noindent
190 The dotted-line always extends to the whole length given by @var{dest},
191 without any space at the beginning or end.  Manual settings for
192 @code{off} are possible to get larger or smaller space between the dots.
193 The given (or default) value of @code{off} will be altered to fit the
194 line-length.
195
196 @lilypond[verbatim,quote]
197 \markup {
198   \draw-dashed-line #'(5.1 . 2.3)
199   \override #'(on . 0.3)
200   \override #'(off . 0.5)
201   \draw-dashed-line #'(5.1 . 2.3)
202   \draw-dotted-line #'(5.1 . 2.3)
203   \override #'(thickness . 2)
204   \override #'(off . 0.2)
205   \draw-dotted-line #'(5.1 . 2.3)
206 }
207 @end lilypond
208
209 @item
210 Starting with version@tie{}2.17.10, error messages or the
211 @code{textedit} @acronym{URI} used for point-and-click
212 functionality specify column numbers starting with@tie{}1 rather
213 than@tie{}0.  The byte offset (also part of @code{textedit}
214 @acronym{URI}s) still starts at@tie{}0.
215
216 @item
217 The @code{\clef} command supports optional octavation:
218 @lilypond[verbatim,quote,relative=1]
219 \clef "treble_(8)"
220 c2 c
221 \clef "bass^[15]"
222 c2 c
223 @end lilypond
224
225 @item
226 The LilyPond syntax of dot-separated words @code{Voice.Accidental}
227 has been made interchangeable with @code{#'(Voice Accidental)}, a
228 Scheme list of symbols.  As one result, code like
229 @example
230 \override Voice.TextSpanner #'(bound-details left text) = "rit."
231 @end example
232 is now equivalent to
233 @example
234 \override Voice.TextSpanner bound-details.left.text = "rit."
235 @end example
236 or even
237 @example
238 \override #'(Voice TextSpanner) bound-details.left.text = "rit."
239 @end example
240
241 @item
242 Grob and grob property path no longer need to be specified as two
243 separate arguments to commands like @samp{\override} and
244 @code{\revert}, allowing for the syntax
245 @example
246 \override Voice.TextSpanner.bound-details.left.text = "rit."
247 @end example
248 Since complementary music functions like @samp{\overrideProperty}
249 cannot support forms with and without separating space at the same
250 time, using a single dotted path is now the preferred form.
251 Specifying grob path and grob property path separately, currently
252 still supported with @samp{\override} and @samp{\revert} for
253 compatibility reasons, is deprecated.
254
255 @item
256 Due to words now being accepted as symbol function arguments, the
257 interfaces of @samp{\accidentalStyle}, @samp{\alterBroken},
258 @samp{\footnote} and @samp{\tweak} had to be redesigned where
259 optional symbol arguments were involved.  Please check the
260 respective music function documentation for details.
261
262 @item
263 Several commands now accept symbol lists (conveniently entered as
264 dot-separated words) for various kinds of arguments.  These
265 include @samp{\accidentalStyle}, @samp{\alterBroken},
266 @samp{\footnote}, @samp{\hide}, @samp{\omit},
267 @samp{\overrideProperty}, @samp{\shape}, and @samp{\tweak}.
268
269 @item
270 The bar line user interface has changed. Bar glyphs now resemble the
271 appearance of the bar line, so a left repeat sign has to be coded
272 as @code{.|:}. The command @code{\defineBarLine} provides an easy way
273 to define additional bar line styles.
274
275 @item
276 Accidentals in the key signature may be printed in octaves other
277 than their traditional positions, or in multiple octaves.
278 @lilypond[quote,relative=0]
279 \override Staff.KeySignature #'flat-positions = #'((-5 . 5))
280 \override Staff.KeyCancellation #'flat-positions = #'((-5 . 5))
281 \clef bass \key es\major es g bes d
282 \clef treble \bar "||" \key es\major es g bes d
283 \override Staff.KeySignature #'sharp-positions = #'(2)
284 \bar "||" \key d\major b fis b2
285 @end lilypond
286
287 @end itemize
288
289 @ifhtml
290 For older news, go to
291 @uref{http://lilypond.org/doc/v2.16/Documentation/changes/},
292 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
293 or @uref{../,go back} to the Documentation index.
294
295
296 @end ifhtml
297
298 @bye