]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/changes.tely
programming-interface.itely: Explain new optional argument semantics and \default
[lilypond.git] / Documentation / changes.tely
index f5e4f151d20f1aa5ac265c57e2ae204137f15365..475f6c0902e35a4adc913827a9a3c78666bb5be0 100644 (file)
@@ -60,6 +60,81 @@ which scares away people.
 * only show user-visible changes.
 
 @end ignore
+@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
+\override Beam #'consistent-broken-slope = ##t
+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
+All of these functions are now automatically called via @code{ly:beam::quanting}.
+Furthermore, @code{ly:beam::quanting} now only takes one argument -
+the beam grob.
+
+@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,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 "• † &copyright; &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
@@ -88,7 +163,7 @@ c4_\< c c^\> c c1_\p
 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,relative=2]
+@lilypond[fragment,quote,relative=2]
 c4( \appoggiatura e8 d4 \acciaccatura e8 d4 \slashedGrace e8 c4)
 @end lilypond