]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/changes.tely
Issue 3282: Add Changes entries for \temporary, \omit, \hide, \single, multiple tags
[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 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:
67
68 @lilypond[quote,verbatim,relative=2]
69 <a \single\voiceTwoStyle e' a>1
70 @end lilypond
71
72 @item
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
81 override form):
82
83 @lilypond[quote,verbatim]
84 \new Staff \with { \omit Clef }
85 \relative c'' <a e' \hide a>1
86 @end lilypond
87
88 @item
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:
93
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
102 @end lilypond
103
104 This is mainly useful for writing music functions that need to
105 have some property changed just for the duration of the function.
106
107 @item
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.
114
115 @item
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.
121
122 @item
123 The meaning of @code{instrumentTransposition} has been reversed.
124 After
125 @example
126 \set instrumentTransposition = #@{ b #@}
127 @end example
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
131 straightforward.
132
133 @item
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,
139 @example
140 \transpose c' f' \transposition bes'
141 @end example
142 was equivalent to @code{\transposition f'}.  Now it stays
143 equivalent to @code{\transposition bes'}.
144
145 @item
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
154 @end lilypond
155 The @code{\times} command with its inverted fraction order
156 @code{@var{n}/@var{t}} is still available.
157
158 @item
159 Introducing two new markup-commands; @code{\draw-dashed-line} and
160 @code{\draw-dotted-line}.
161
162 @noindent
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.
169
170 @noindent
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
175 line-length.
176
177 @lilypond[verbatim,quote]
178 \markup {
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)
187 }
188 @end lilypond
189
190 @item
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.
196
197 @item
198 The @code{\clef} command supports optional octavation:
199 @lilypond[verbatim,quote,relative=1]
200 \clef "treble_(8)"
201 c2 c
202 \clef "bass^[15]"
203 c2 c
204 @end lilypond
205
206 @item
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
210 @example
211 \override Voice.TextSpanner #'(bound-details left text) = "rit."
212 @end example
213 is now equivalent to
214 @example
215 \override Voice.TextSpanner bound-details.left.text = "rit."
216 @end example
217 or even
218 @example
219 \override #'(Voice TextSpanner) bound-details.left.text = "rit."
220 @end example
221
222 @item
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
226 @example
227 \override Voice.TextSpanner.bound-details.left.text = "rit."
228 @end example
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.
235
236 @item
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.
242
243 @item
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}.
249
250 @item
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.
255
256 @item
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
266 @end lilypond
267
268 @end itemize
269
270 @ifhtml
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.
275
276
277 @end ifhtml
278
279 @bye