1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
2 @setfilename lilypond-changes.info
3 @settitle LilyPond Changes
8 @macro inputfileref{DIR,NAME}
9 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
11 @macro usermanref{NAME}
12 @inforef{\NAME\,,../user/lilypond/lilypond}@c
17 @macro inputfileref{DIR,NAME}
20 @macro usermanref{NAME}
21 See user manual, \NAME\
25 @macro textanchor{NAME}
32 @documentencoding utf-8
39 @top New features in 2.16 since 2.14
41 @allowcodebreaks false
49 * add new items at the top
51 * only show verbatim input for syntax/input changes
53 * try to be as brief possible in those cases
55 * don't try to provide real-world examples, they often get too big,
56 which scares away people.
58 * Write complete sentences.
60 * only show user-visible changes.
64 Music, event, and scheme functions can now be defined with optional
65 arguments before mandatory arguments.
68 There is a new @code{define-event-function} command in analogy to
69 @code{define-music-function} that can be used for defining music
70 functions acting as events without requiring a direction specifier
71 (@code{-}, @code{^}, or @code{_}) placed before them.
72 @lilypond[quote,verbatim,raggedright]
73 dyn=#(define-event-function (parser location arg) (markup?)
74 (make-dynamic-script arg))
75 \relative c' { c\dyn pfsss }
79 A list of ASCII aliases for special characters can be included.
80 @lilypond[quote,verbatim]
82 #(include-special-characters)
84 \markup "• † ©right; &OE; &ss; ¶"
88 There is a new @code{define-scheme-function} command in analogy to
89 @code{define-music-function} that can be used to define functions
90 evaluating to Scheme expressions while accepting arguments in Lilypond
94 The construct @code{#@{ @dots{} #@}} can now be used not just for
95 constructing sequential music lists, but also for single music events,
96 void music expressions, post events, markups (mostly freeing users from
97 having to use the @code{markup} macro), markup lists, number
98 expressions, context definitions and modifications, and a few other
99 things. If it encloses nothing or only a single music event, it no
100 longer returns a sequential music list but rather a void music
101 expression or just the music event itself, respectively.
104 New command-line option @option{--loglevel=@var{level}} to control how much output
105 LilyPond creates. Possible values are ERROR, WARN, BASIC_PROGRESS, PROGRESS, DEBUG.
108 @code{\set \once} now correctly resets the property value to the previous value.
109 @lilypond[fragment,quote,relative=2]
110 \set fingeringOrientations = #'(left)
112 \once \set fingeringOrientations = #'(right)
119 The alignment of dynamic spanners (hairpins, text crescendo, etc.) is now
120 automatically broken if a different direction is explicitly given.
121 @lilypond[fragment,quote,relative=2]
127 Appoggiaturas and acciaccaturas now also work inside a slur, not only inside
128 a phrasing slur. Also, a function @code{\slashedGrace} was added that does
129 does not use a slur from the acciaccatura note.
130 @lilypond[fragment,quote,relative=2]
131 c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
136 To suppress the line on a crescendo text spanner (and other similar spanners),
137 LilyPond now fully supports the @code{#'style = #'none} property.
138 @lilypond[fragment,quote,relative=2]
139 \override DynamicTextSpanner #'style = #'none
144 LilyPond.app now supports MacOS X 10.7, thanks Christian Hitz!
147 Glissandi can now span multiple lines.
152 For older news, go to
153 @uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
154 @uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
155 or @uref{../,go back} to the Documentation index.