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