+ * A new command `\single' can be used for converting a property
+ override into a tweak to be applied on a single music expression:
+
+ <a \single\voiceTwoStyle e' a>1
+ [image of music]
+
+
+ * Two ways of letting graphical objects not appear in the output are
+ overriding its `transparent' property with `#t' (retaining the
+ original spacing) or overriding its `stencil' property with `#f'
+ (not using any space at all). Those two operations now have the
+ shorthands `\hide' and `\omit', respectively. They can either be
+ given a music expression to tweak, or the name of a graphical
+ object for which an override should be created (for specifying
+ both, use `\single' on the override form):
+
+ \new Staff \with { \omit Clef }
+ \relative c'' <a e' \hide a>1
+ [image of music]
+
+
+ * A new command `\temporary' can be applied to overrides in order to
+ not have them replace previous property settings. If a `\revert'
+ is applied to the same property subsequently, the previous setting
+ reappears:
+
+ \override NoteHead.color = #red c4
+ \override NoteHead.color = #green d
+ \revert NoteHead.color e2
+ \override NoteHead.color = #red c4
+ \temporary\override NoteHead.color = #green d
+ \revert NoteHead.color e
+ \revert NoteHead.color c
+ [image of music]
+
+
+ This is mainly useful for writing music functions that need to
+ have some property changed just for the duration of the function.
+
+ * `\tag', `\removeWithTag', and `\keepWithTag' can now accept a list
+ of symbols rather than just a single symbol for marking, removing,
+ and keeping music with any of multiple tags. This is particularly
+ important for `\keepWithTag' since one cannot achieve the same
+ effect by using multiple consecutive `\keepWithTag' commands.
+
+ * The `-d old-relative' option has been removed. Not actually
+ accessible from the command line any more, its remaining use was
+ for interpretating `\relative' in LilyPond files converted
+ automatically from version 1.8 or older. It is unclear how much
+ of this was actually still operative.
+
+ * The meaning of `instrumentTransposition' has been reversed. After
+ \set instrumentTransposition = #{ b #}
+ a written `c'' now sounds like `b'. Previously, this would have
+ been the other way round. This and the following change should
+ make dealing with transposing instruments more straightforward.
+
+ * The music generated by `\set' and `\override' commands is no
+ longer affected by `\transpose'. The main consequence is that
+ `\transpose' will transpose audible/concert pitch and printed
+ pitch by the same amount even when the transposed music contains
+ `\transposition'. Previously,
+ \transpose c' f' \transposition bes'
+ was equivalent to `\transposition f''. Now it stays equivalent to
+ `\transposition bes''.
+
+ * When checking for collisions, LilyPond no longer treats objects as
+ rectangles. Instead, the actual shape of objects is approximated
+ using an integral-like approach. This generally results in more
+ even and snug positioning of objects and systems:
+
+ [image of music]
+
+ Previously, the above snippet looked like this:
+
+ [image of music]
+
+ Affected objects include `Accidentals', `Beams', `Clefs',
+ `Dynamics', `FiguredBass', `Flags', `Glissandos', `Lyrics',
+ `MetronomeMarks', `OttavaBrackets', `Pedals', `RehearsalMarks',
+ `Rests', `Scripts', `TextScripts', `Ties', `Tuplets' and
+ `VoltaBrackets'.
+
+ * Tuplets are now created with the `\tuplet' command, which takes a
+ fraction `T/N' to specify that T notes are played in the time
+ usually allowed for N. One `\tuplet' command can create several
+ tuplet groups if their duration is typed after the fraction.
+
+ \tuplet 3/2 { c8 d e } \tuplet 3/2 { f e d } c2
+ \tuplet 3/2 4 { c8 d e f e d } c2
+ [image of music]
+
+
+ The `\times' command with its inverted fraction order `N/T' is
+ still available.
+
+ * Introducing two new markup-commands; `\draw-dashed-line' and
+ `\draw-dotted-line'.
+
+ The dashed-line extends to the whole length given by DEST, if
+ `full-length' is set to `#t' (this is the default) without any
+ space at the beginning or end. `off' will then be altered to fit.
+ To insist on the given (or default) values of `on', `off' use
+ `\override #'(full-length . #f)'. Manual settings for `on', `off'
+ and `phase' are possible.
+
+ The dotted-line always extends to the whole length given by DEST,
+ without any space at the beginning or end. Manual settings for
+ `off' are possible to get larger or smaller space between the dots.
+ The given (or default) value of `off' will be altered to fit the
+ line-length.
+
+ \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)
+ }
+ [image of music]
+
+
+ * Starting with version 2.17.10, error messages or the `textedit'
+ URI used for point-and-click functionality specify column numbers
+ starting with 1 rather than 0. The byte offset (also part of
+ `textedit' URIs) still starts at 0.
+
+ * The `\clef' command supports optional transposition:
+
+ \clef "treble_(8)"
+ c2 c
+ \clef "bass^[15]"
+ c2 c
+ [image of music]
+
+
+ * The LilyPond syntax of dot-separated words `Voice.Accidental' has
+ been made interchangeable with `#'(Voice Accidental)', a Scheme
+ list of symbols. As one result, code like
+ \override Voice.TextSpanner #'(bound-details left text) = "rit."
+ is now equivalent to
+ \override Voice.TextSpanner bound-details.left.text = "rit."
+ or even
+ \override #'(Voice TextSpanner) bound-details.left.text = "rit."
+
+ * Grob and grob property path no longer need to be specified as two
+ separate arguments to commands like `\override' and `\revert',
+ allowing for the syntax
+ \override Voice.TextSpanner.bound-details.left.text = "rit."
+ Since complementary music functions like `\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 `\override' and `\revert' for compatibility
+ reasons, is deprecated.
+
+ * Due to words now being accepted as symbol function arguments, the
+ interfaces of `\accidentalStyle', `\alterBroken', `\footnote' and
+ `\tweak' had to be redesigned where optional symbol arguments were
+ involved. Please check the respective music function
+ documentation for details.
+
+ * Several commands now accept symbol lists (conveniently entered as
+ dot-separated words) for various kinds of arguments. These
+ include `\accidentalStyle', `\alterBroken', `\footnote', `\hide',
+ `\omit', `\overrideProperty', `\shape', and `\tweak'.
+
+ * 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 `.|:'. The command `\defineBarLine' provides an easy way
+ to define additional bar line styles.
+
+ * Accidentals in the key signature may be printed in octaves other
+ than their traditional positions, or in multiple octaves.