Log message:
Update to 2.18.0, in preparation for the print/lilypond update.
New features in 2.18 since 2.16
*******************************
* There is now a new context type called `NullVoice' which, while not
appearing in the printed output, can be used to align lyrics.
This can be particularly convenient when used in parallel with a
`\partcombine' construct.
* Several articulations can be put into a single variable or
returned from an event function.
* The baseline of score markups is now taken from the reference
point (usually the middle of the staff) of the first bottom system
rather than the top of the bounding rectangle.
* LilyPond no longer automatically infers a `\defaultchild' context
in a context definition with `\accepts' clauses. Any context
definition without an explicit or inherited `\defaultchild'
definition counts as a `Bottom' context and will be eligible for
rhythmic events and overrides without causing the implicit
creation of other contexts. Be sure to specify a `\defaultchild'
for non-`Bottom' contexts when defining them from scratch.
* There is now extensive support for both discant and bass accordion
register symbols in the `scm accreg' module.
* New commands `markLengthOn' and `markLengthOff' control the
allowance of horizontal space for tempo and rehearsal marks.
* Rehearsal marks at the beginning of a line are now placed to the
right of the clef and key signature by default. As in previous
versions, the `break-alignable-interface' controls the behavior.
* Decimal numbers can now be written directly in music, without a
hash sign. Together with the previous change in the way object
properties are specified, the code to change the length of stems
has changed from this:
\override Stem #'length = #5.6
e' f' g' a'
to this:
\override Stem.length = 5.6
e' f' g' a'
One has to write a digit on both sides of the dot - values like
`4.' or `-.3' are not allowed.
Decimal fractions are also not accepted in `\chordmode'.
* A number of shorthands like `(', `)', `|', `[', `]', `~', `\(',
`\)' and others can now freely be redefined like normal commands.
* The articulation shorthand for `\staccatissimo' has been renamed
from `-|' to `-!'.
* Tempo change ranges are now written as `\tempo 4 = 60 - 68' rather
than `\tempo 4 = 60 ~ 68'.
* Grob `OctavateEight' was renamed to `ClefModifier'. Related
context properties were renamed from `xxxOctavationyyy' to
`xxxTranspositionyyy'.
* There is a new `\absolute' command explicitly marking music as
being entered in absolute pitch. While this has been the default
previously, an explicit `\absolute' also prevents reinterpretation
when the passage is placed inside of `\relative'.
* When `\relative' is used without an explicit reference pitch, the
reference pitch now is the middle of the first octave, making the
first entered pitch indistinguishable from absolute pitch.
Previously, omitting the reference pitch would have lead to a
default of `c''. Since that choice was somewhat arbitrary,
recommended usage was to always specify the reference pitch.
* A new command `\single' can be used for converting a property
override into a tweak to be applied on a single music expression.
* 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.
* 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.
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.
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.
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.
* 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.
* The LilyPond syntax of dot-separated words `Voice.Accidental' has
been made interchangeable with `#'(Voice Accidental)', a Scheme
list of symbols.
* 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.
|