\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.18 since 2.16 @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 The meaning of @code{instrumentTransposition} has been reversed. After @example \set instrumentTransposition = #@{ b #@} @end example a written @code{c'} now sounds like @code{b}. Previously, this would have been the other way round. This and the following change should make dealing with transposing instruments more straightforward. @item The music generated by @code{\set} and @code{\override} commands is no longer affected by @code{\transpose}. The main consequence is that @code{\transpose} will transpose audible/@/concert pitch and printed pitch by the same amount even when the transposed music contains @code{\transposition}. Previously, @example \transpose c' f' \transposition bes' @end example was equivalent to @code{\transposition f'}. Now it stays equivalent to @code{\transposition bes'}. @item Tuplets are now created with the @code{\tuplet} command, which takes a fraction @code{@var{t}/@var{n}} to specify that @var{t} notes are played in the time usually allowed for @var{n}. One @code{\tuplet} command can create several tuplet groups if their duration is typed after the fraction. @lilypond[quote,verbatim,relative=2] \tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2 \tuplet 3/2 4 { c8 d e f e d } c2 @end lilypond The @code{\times} command with its inverted fraction order @code{@var{n}/@var{t}} is still available. @item Introducing two new markup-commands; @code{\draw-dashed-line} and @code{\draw-dotted-line}. @noindent The dashed-line extends to the whole length given by @var{dest}, if @code{full-length} is set to @code{#t} (this is the default) without any space at the beginning or end. @code{off} will then be altered to fit. To insist on the given (or default) values of @code{on}, @code{off} use @code{\override #'(full-length . #f)}. Manual settings for @code{on}, @code{off} and @code{phase} are possible. @noindent The dotted-line always extends to the whole length given by @var{dest}, without any space at the beginning or end. Manual settings for @code{off} are possible to get larger or smaller space between the dots. The given (or default) value of @code{off} will be altered to fit the line-length. @lilypond[verbatim,quote] \markup { \draw-dashed-line #'(5.1 . 2.3) \override #'(on . 0.3) \override #'(off . 0.5) \draw-dashed-line #'(5.1 . 2.3) \draw-dotted-line #'(5.1 . 2.3) \override #'(thickness . 2) \override #'(off . 0.2) \draw-dotted-line #'(5.1 . 2.3) } @end lilypond @item Starting with version@tie{}2.17.10, error messages or the @code{textedit} @acronym{URI} used for point-and-click functionality specify column numbers starting with@tie{}1 rather than@tie{}0. The byte offset (also part of @code{textedit} @acronym{URI}s) still starts at@tie{}0. @item The @code{\clef} command supports optional octavation: @lilypond[verbatim,quote,relative=1] \clef "treble_(8)" c2 c \clef "bass^[15]" c2 c @end lilypond @item The LilyPond syntax of dot-separated words @code{Voice.Accidental} has been made interchangeable with @code{#'(Voice Accidental)}, a Scheme list of symbols. As one result, code like @example \override Voice.TextSpanner #'(bound-details left text) = "rit." @end example is now equivalent to @example \override Voice.TextSpanner bound-details.left.text = "rit." @end example or even @example \override #'(Voice TextSpanner) bound-details.left.text = "rit." @end example @item Grob and grob property path no longer need to be specified as two separate arguments to commands like @samp{\override} and @code{\revert}, allowing for the syntax @example \override Voice.TextSpanner.bound-details.left.text = "rit." @end example Since complementary music functions like @samp{\overrideProperty} cannot support forms with and without separating space at the same time, using a single dotted path is now the preferred form. Specifying grob path and grob property path separately, currently still supported with @samp{\override} and @samp{\revert} for compatibility reasons, is deprecated. @item Due to words now being accepted as symbol function arguments, the interfaces of @samp{\accidentalStyle}, @samp{\alterBroken}, @samp{\footnote} and @samp{\tweak} had to be redesigned where optional symbol arguments were involved. Please check the respective music function documentation for details. @item Several commands now accept symbol lists (conveniently entered as dot-separated words) for various kinds of arguments. These include @samp{\accidentalStyle}, @samp{\alterBroken}, @samp{\footnote}, @samp{\hide}, @samp{\omit}, @samp{\overrideProperty}, @samp{\shape}, and @samp{\tweak}. @item The bar line user interface has changed. Bar glyphs now resemble the appearance of the bar line, so a left repeat sign has to be coded as @code{.|:}. The command @code{\defineBarLine} provides an easy way to define additional bar line styles. @item Accidentals in the key signature may be printed in octaves other than their traditional positions, or in multiple octaves. @lilypond[quote,relative=0] \override Staff.KeySignature #'flat-positions = #'((-5 . 5)) \override Staff.KeyCancellation #'flat-positions = #'((-5 . 5)) \clef bass \key es\major es g bes d \clef treble \bar "||" \key es\major es g bes d \override Staff.KeySignature #'sharp-positions = #'(2) \bar "||" \key d\major b fis b2 @end lilypond @end itemize @ifhtml For older news, go to @uref{http://lilypond.org/doc/v2.16/Documentation/changes/}, @uref{http://lilypond.org/doc/v2.14/Documentation/changes/}, or @uref{../,go back} to the Documentation index. @end ifhtml @bye