]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/changes.tely
Merge branch 'lilypond/translation' into staging
[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.16 since 2.14
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 @item
64 Scheme expressions inside of embedded Lilypond (@code{#@{@dots{}#@}})
65 are now executed in lexical closure of the surrounding Scheme code.
66 @code{$} is no longer special in embedded Lilypond.  It can be used
67 unconditionally in Lilypond code for immediate evaluation, similar to
68 how @code{ly:export} could previously be used.  @code{ly:export} has
69 been removed.  As a consequence, @code{#} is now free to delay
70 evaluation of its argument until the parser actually reduces the
71 containing expression, greatly reducing the potential for premature
72 evaluation.
73
74 @item
75 Support for jazz-like chords has been improved: Lydian and altered
76 chords are recognised; separators between chord modifiers are now
77 treated independently of separators between ``slash'' chords and their
78 bass notes (and by default, slashes are now only used for the latter
79 type of separator); additional pitches are no longer prefixed with
80 ``add'' by default; and the ``m'' in minor chords can be customized.
81 @ruser{Customizing chord names} for more information.
82
83 @item
84 The @code{\markuplines} command has been renamed to @code{\markuplist}
85 for a better match with its semantics and general Lilypond
86 nomenclature.
87
88 @item
89 The interface for specifying string tunings in tablature has been
90 simplified considerably.
91
92 @item
93 Beams can now have their slopes preserved over line breaks.
94 @lilypond[fragment,quote,relative=2]
95 \override Beam #'breakable = ##t
96 a8[ b c d e f g \bar "" \break f e d c b a]
97 \once \override Beam #'positions = #beam::align-with-broken-parts
98 a8[ b c d e f g \bar "" \break f e d c b a]
99 \once \override Beam #'positions = #beam::slope-like-broken-parts
100 a8[ b c d e f g \bar "" \break f e d c b a]
101 @end lilypond
102 To do this, several callback functions are now deprecated.
103 @itemize
104 @item @code{ly:beam::calc-least-squares-positions}
105 @item @code{ly:beam::slope-damping}
106 @item @code{ly:beam::shift-region-to-valid}
107 @end itemize
108 Furthermore, @code{ly:beam::quanting} now takes an additional argument
109 to help calculations over line breaks.  All of these functions are now
110 automatically called when setting the @code{positions} parameter.
111
112 @item
113 In function arguments music, markups and Scheme expressions (as well
114 as several other syntactic entities) have become mostly
115 interchangeable and are told apart only by evaluating the respective
116 predicate.
117
118 @item
119 Music functions (and their close relatives) can now be defined with
120 optional arguments.
121
122 @item
123 For defining commands executed only for their side-effects,
124 @code{define-void-function} is now available.
125
126 @item
127 There is a new @code{define-event-function} command in analogy to
128 @code{define-music-function} that can be used for defining music
129 functions acting as events without requiring a direction specifier
130 (@code{-}, @code{^}, or @code{_}) placed before them.
131 @lilypond[quote,verbatim,ragged-right]
132 dyn=#(define-event-function (parser location arg) (markup?)
133          (make-dynamic-script arg))
134 \relative c' { c\dyn pfsss }
135 @end lilypond
136
137 @item
138 A list of ASCII aliases for special characters can be included.
139 @lilypond[quote,verbatim]
140 \paper {
141   #(include-special-characters)
142 }
143 \markup "&bull; &dagger; &copyright; &OE; &ss; &para;"
144 @end lilypond
145
146 @item
147 There is a new @code{define-scheme-function} command in analogy to
148 @code{define-music-function} that can be used to define functions
149 evaluating to Scheme expressions while accepting arguments in Lilypond
150 syntax.
151
152 @item
153 The construct @code{#@{ @dots{} #@}} can now be used not just for
154 constructing sequential music lists, but also for single music events,
155 void music expressions, post events, markups (mostly freeing users from
156 having to use the @code{markup} macro), markup lists, number
157 expressions, context definitions and modifications, and a few other
158 things.  If it encloses nothing or only a single music event, it no
159 longer returns a sequential music list but rather a void music
160 expression or just the music event itself, respectively.
161
162 @item
163 New command-line option @option{--loglevel=@var{level}} to control how much output
164 LilyPond creates. Possible values are ERROR, WARN, BASIC_PROGRESS, PROGRESS, DEBUG.
165
166 @item
167 @code{\set \once} now correctly resets the property value to the previous value.
168 @lilypond[fragment,quote,relative=2]
169   \set fingeringOrientations = #'(left)
170   <e-1>4
171   \once \set fingeringOrientations = #'(right)
172   <e-1>
173   <e-1>-"left"
174 @end lilypond
175
176
177 @item
178 The alignment of dynamic spanners (hairpins, text crescendo, etc.) is now
179 automatically broken if a different direction is explicitly given.
180 @lilypond[fragment,quote,relative=2]
181 c4_\< c c^\> c c1_\p
182 @end lilypond
183
184
185 @item
186 Appoggiaturas and acciaccaturas now also work inside a slur, not only inside
187 a phrasing slur. Also, a function @code{\slashedGrace} was added that does
188 does not use a slur from the acciaccatura note.
189 @lilypond[fragment,quote,relative=2]
190 c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
191 @end lilypond
192
193
194 @item
195 To suppress the line on a crescendo text spanner (and other similar spanners),
196 LilyPond now fully supports the @code{#'style = #'none} property.
197 @lilypond[fragment,quote,relative=2]
198 \override DynamicTextSpanner #'style = #'none
199 c4\cresc c c g, c'\p
200 @end lilypond
201
202 @item
203 LilyPond.app now supports MacOS X 10.7, thanks Christian Hitz!
204
205 @item
206 Glissandi can now span multiple lines.
207
208 @end itemize
209
210 @ifhtml
211 For older news, go to
212 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
213 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
214 or @uref{../,go back} to the Documentation index.
215
216
217 @end ifhtml
218
219 @bye