X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fchanges.tely;h=0c957561725956cf5fb5a783a487a6019d628f2d;hb=e8a9ef10aa3bfc2db7689aa58631aabb4095cd16;hp=c0d475a6b02fa21c1b698304b53e5cdb07e4fb5e;hpb=34fc5bf1293e0bbdea8519118112b50dd1256ac7;p=lilypond.git diff --git a/Documentation/changes.tely b/Documentation/changes.tely index c0d475a6b0..0c95756172 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -36,7 +36,7 @@ See user manual, \NAME\ @finalout @node Top -@top New features in 2.16 since 2.14 +@top New features in 2.20 since 2.18 @allowcodebreaks false @@ -61,206 +61,13 @@ which scares away people. @end ignore -@item -Two alternative methods for bar numbering can be set, especially for -when using repeated music; - -@lilypond[fragment,quote,relative=1,noragged-right] -\relative c'{ - \set Score.alternativeNumberingStyle = #'numbers - \repeat volta 3 { c4 d e f | } - \alternative { - { c4 d e f | c2 d \break } - { f4 g a b | f4 g a b | f2 a | \break } - { c4 d e f | c2 d } - } - c1 \break - \set Score.alternativeNumberingStyle = #'numbers-with-letters - \repeat volta 3 { c,4 d e f | } - \alternative { - { c4 d e f | c2 d \break } - { f4 g a b | f4 g a b | f2 a | \break } - { c4 d e f | c2 d } - } - c1 -} -@end lilypond - -@item -The following is a fundamental change in LilyPond's music -representation: Rhythmic events like @code{LyricEvent} and -@code{NoteEvent} are no longer wrapped in @code{EventChord} unless they -have been actually entered as part of a chord in the input. If you -manipulate music expressions in Scheme, the new behavior may require -changes in your code. The advantages of making input and music match -more closely are numerous: music functions previously worked differently -when used inside or outside of chords. Now they are the same, including -all the possibilities of argument parsing. You can now use music -variables inside of chords: a construct like -@lilypond[quote,ragged-right] -tonic=fis' -{ <\tonic \transpose c g \tonic> } -@end lilypond -@noindent -would have been unthinkable previously. You can use -@code{#@{@dots{}#@}} for constructing chord constituents. Music -functions inside of chords are no longer specially treated and thus -accept the same arguments as outside of chords. @code{\tweak} now works -on single notes without needing to wrap them in a chord. String number -indications like @code{\1} can be used on single notes. If you need to -suppress them in some context, override their @code{stencil} with -@code{##f}. - -@item -Scheme expressions inside of embedded Lilypond (@code{#@{@dots{}#@}}) -are now executed in lexical closure of the surrounding Scheme code. -@code{$} is no longer special in embedded Lilypond. It can be used -unconditionally in Lilypond code for immediate evaluation, similar to -how @code{ly:export} could previously be used. @code{ly:export} has -been removed. As a consequence, @code{#} is now free to delay -evaluation of its argument until the parser actually reduces the -containing expression, greatly reducing the potential for premature -evaluation. - -@item -Support for jazz-like chords has been improved: Lydian and altered -chords are recognised; separators between chord modifiers are now -treated independently of separators between ``slash'' chords and their -bass notes (and by default, slashes are now only used for the latter -type of separator); additional pitches are no longer prefixed with -``add'' by default; and the ``m'' in minor chords can be customized. -@ruser{Customizing chord names} for more information. - -@item -The @code{\markuplines} command has been renamed to @code{\markuplist} -for a better match with its semantics and general Lilypond -nomenclature. - -@item -The interface for specifying string tunings in tablature has been -simplified considerably. - -@item -Beams can now have their slopes preserved over line breaks. -@lilypond[fragment,quote,relative=2] -\override Beam #'breakable = ##t -a8[ b c d e f g \bar "" \break f e d c b a] -\once \override Beam #'positions = #beam::align-with-broken-parts -a8[ b c d e f g \bar "" \break f e d c b a] -\once \override Beam #'positions = #beam::slope-like-broken-parts -a8[ b c d e f g \bar "" \break f e d c b a] -@end lilypond -To do this, several callback functions are now deprecated. -@itemize -@item @code{ly:beam::calc-least-squares-positions} -@item @code{ly:beam::slope-damping} -@item @code{ly:beam::shift-region-to-valid} -@end itemize -Furthermore, @code{ly:beam::quanting} now takes an additional argument -to help calculations over line breaks. All of these functions are now -automatically called when setting the @code{positions} parameter. - -@item -In function arguments music, markups and Scheme expressions (as well -as several other syntactic entities) have become mostly -interchangeable and are told apart only by evaluating the respective -predicate. - -@item -Music functions (and their close relatives) can now be defined with -optional arguments. - -@item -For defining commands executed only for their side-effects, -@code{define-void-function} is now available. - -@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,ragged-right] -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}, +@uref{http://lilypond.org/doc/v2.18/Documentation/changes/}, +@uref{http://lilypond.org/doc/v2.16/Documentation/changes/}, or @uref{../,go back} to the Documentation index.