\input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
@setfilename lilypond-changes.info
@settitle LilyPond Changes
@include macros.itexi
@ifhtml
@macro inputfileref{DIR,NAME}
@uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
@end macro
@macro usermanref{NAME}
@inforef{\NAME\,,../user/lilypond/lilypond}@c
@end macro
@end ifhtml
@ifnothtml
@macro inputfileref{DIR,NAME}
@file{\DIR\/\NAME\}@c
@end macro
@macro usermanref{NAME}
See user manual, \NAME\
@end macro
@end ifnothtml
@macro textanchor{NAME}
@html
@end html
@end macro
@documentencoding utf-8
@documentlanguage en
@afourpaper
@finalout
@node Top
@top New features in 2.16 since 2.14
@allowcodebreaks false
@itemize
@ignore
HINTS
* add new items at the top
* only show verbatim input for syntax/input changes
* try to be as brief possible in those cases
* don't try to provide real-world examples, they often get too big,
which scares away people.
* Write complete sentences.
* only show user-visible changes.
@end ignore
@item
Music, event, and scheme functions can now be defined with optional
arguments before mandatory arguments.
@item
There is a new @code{define-event-function} command in analogy to
@code{define-music-function} that can be used for defining music
functions acting as events without requiring a direction specifier
(@code{-}, @code{^}, or @code{_}) placed before them.
@lilypond[quote,verbatim,raggedright]
dyn=#(define-event-function (parser location arg) (markup?)
(make-dynamic-script arg))
\relative c' { c\dyn pfsss }
@end lilypond
@item
A list of ASCII aliases for special characters can be included.
@lilypond[quote,verbatim]
\paper {
#(include-special-characters)
}
\markup "• † ©right; &OE; &ss; ¶"
@end lilypond
@item
There is a new @code{define-scheme-function} command in analogy to
@code{define-music-function} that can be used to define functions
evaluating to Scheme expressions while accepting arguments in Lilypond
syntax.
@item
The construct @code{#@{ @dots{} #@}} can now be used not just for
constructing sequential music lists, but also for single music events,
void music expressions, post events, markups (mostly freeing users from
having to use the @code{markup} macro), markup lists, number
expressions, context definitions and modifications, and a few other
things. If it encloses nothing or only a single music event, it no
longer returns a sequential music list but rather a void music
expression or just the music event itself, respectively.
@item
New command-line option @option{--loglevel=@var{level}} to control how much output
LilyPond creates. Possible values are ERROR, WARN, BASIC_PROGRESS, PROGRESS, DEBUG.
@item
@code{\set \once} now correctly resets the property value to the previous value.
@lilypond[fragment,quote,relative=2]
\set fingeringOrientations = #'(left)
4
\once \set fingeringOrientations = #'(right)
-"left"
@end lilypond
@item
The alignment of dynamic spanners (hairpins, text crescendo, etc.) is now
automatically broken if a different direction is explicitly given.
@lilypond[fragment,quote,relative=2]
c4_\< c c^\> c c1_\p
@end lilypond
@item
Appoggiaturas and acciaccaturas now also work inside a slur, not only inside
a phrasing slur. Also, a function @code{\slashedGrace} was added that does
does not use a slur from the acciaccatura note.
@lilypond[fragment,quote,relative=2]
c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
@end lilypond
@item
To suppress the line on a crescendo text spanner (and other similar spanners),
LilyPond now fully supports the @code{#'style = #'none} property.
@lilypond[fragment,quote,relative=2]
\override DynamicTextSpanner #'style = #'none
c4\cresc c c g, c'\p
@end lilypond
@item
LilyPond.app now supports MacOS X 10.7, thanks Christian Hitz!
@item
Glissandi can now span multiple lines.
@end itemize
@ifhtml
For older news, go to
@uref{http://lilypond.org/doc/v2.14/Documentation/changes/},
@uref{http://lilypond.org/doc/v2.12/Documentation/topdocs/NEWS.html},
or @uref{../,go back} to the Documentation index.
@end ifhtml
@bye