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