[ << New for specialist notation ] | [Top][Contents] | [ >> ] |
[ < New for specialist notation ] | [ Up : Top ] | [ > ] |
Miscellaneous improvements
- The Scheme functions
duration-length
andly:duration-length
are renamed toly:duration->number
andly:duration->moment
, respectively. - The new Scheme function
ly:parser-append-to-include-path
appends its argument to the current parser’s include path. - The
baseMoment
context property is deprecated in favor ofbeatBase
. UsingbaseMoment
transparently accessesbeatBase
and triggers a warning. - The value of the
timeSignatureSettings
context property uses the symbolbeatBase
where it formerly usedbaseMoment
.convert-ly
does not address this change. - Embedding PNG images is now supported using the new
\image
markup command. This supplements the existing\epsfile
command for EPS images.\image
works for both PNG and EPS images. For EPS images, the difference between using\image
and\epsfile
is that\image
adds a white background by default, while\epsfile
does not. - The new
\qr-code
markup command inserts a QR code of the specified size for the specified URL. This can be used to link to, e.g., the website of a composer or publisher, the LilyPond source files for the score, recordings, etc.\markup \qr-code #10 "https://lilypond.org"
- Parentheses for text markup have been added to the Emmentaler fonts, which harmonize with digits (in contrast to the already available parentheses for accidentals).
- A figure-dash glyph (U+2012) and an en-dash glyph (U+2013) have been added to the Emmentaler fonts.
- A figure space (U+2007), a thin space (U+2009), and a hair space (U+200A) have been added to the Emmentaler fonts.
- The
-dinclude-settings
option can now be given multiple times to include several stylesheets. - In the LaTeX backend of
lilypond-book
, all inline images are now vertically shifted. The amount can be controlled globally with command-line option --inline-vshift and locally with an argument to the snippet optioninline
. - Two new command-line options -dfirst and -dlast
have been introduced; they are equivalent to setting
showFirstLength
andshowLastLength
, respectively, in a LilyPond input file. For example, sayinglilypond -dlast=R1*5 ...
makes LilyPond render only the last five measures (assuming a 4/4 time signature).
- A visual index of all LilyPond graphical objects (grobs) is now available as a manual. This is based on Joram Berger’s work for LilyPond 2.19.
- The printing of arpeggios has been improved, using new, different
default values for the
Arpeggio.positions
property. Adjustments of this property must probably be updated. - LilyPond provides support for in-notes, i.e., footnote-like annotations between music systems. This isn’t new (it was actually available since version 2.15.17, published in 2011) but it had some flaws and wasn’t documented until now.
- The
lilysong
script has been removed. Besides lacking any documentation, it hasn’t been maintained for a long time. Additionally, it has been using an external speech synthesis program calledfestival
, which is no longer maintained either. - Two new spacing styles are available for the
space-alist
grob property:shrink-space
andsemi-shrink-space
; these spaces only shrink and don’t stretch. They are also used directly in LilyPond, improving the formatting of tightly spaced staves. - The
lilypond
binary has a new command-line option -dstaff-size to set the global staff size, equivalent to settingset-global-staff-size
in a LilyPond input file. - Instead of the functions
\bookOutputName
and\bookOutputSuffix
we now recommend to use the paper variablesoutput-filename
andoutput-suffix
(which are not new but stayed undocumented until now). While the former will work unchanged, the latter is more coherent and easier to understand, especially if combined with predefined paper variables. - The
Stem.details.lengths
property now also accepts pairs as list elements, allowing to set the length for up and down stems separately. - The
ly:self-alignment-interface::aligned-on-x-parent
function (used by many grobs to compute the x-offset) now listens to a newPaperColumn
property calledX-alignment-extent
. Set by default, it provides a fallback width for thePaperColumn
grob in case it doesn’t contain note heads. This helps align dynamic scripts that are attached to spacer rests, for example.music = \new Staff << { f'2 g'2 } { s4\f s\f s\f s\f } >> \score { \music } \score { \music \layout { \context { \Score \override PaperColumn.X-alignment-extent = ##f } } }
-
BassFigureContinuation
grobs now supporthorizontal-line-spanner-interface
; thepadding
property has been replaced with the corresponding sub-properties inbound-details
. - The
\align-on-other
markup command now accepts#f
as a value for the alignment, indicating a markup’s reference point. - A new function
\withRelativeDir
is now available for markup commands that include files, and where such files should be found relative to the input file. Example:\markup { \image #X #3 \withRelativeDir "test.png" }
- The positioning of horizontal (analysis) brackets has been
improved; in particular, the
HorizontalBracket
grob now has anoutside-staff-priority
value of 800. As a consequence, however, nested horizontal brackets might be positioned differently than before. You can fix this by adjustingoutside-staff-priority
values with\tweak
(where the outermost bracket should get the highest priority value). - A new Scheme function
to-staff-space
is provided to convert absolute dimensions (in various units) to staff-space units. Examples:top-markup-spacing.basic-distance = #(to-staff-space 2 'cm) % default unit is pt \markup \override #`(baseline-skip . ,(to-staff-space 20)) \column { foo bar }
- Two new markup functions
\abs-hspace
and\abs-vspace
are available to provide absolute dimensions that stay the same regardless of the current staff size. - The data emitted by the command-line option -dshow-available-fonts is now sent to standard output.
- Function
ly:font-config-display-fonts
got an optional argument to select the output port. - The Scheme command-line option handling is now more robust. In
course of the new implementation, some minor changes were
necessary.
- On the command line, the argument for the -dpaper-size
option no longer needs to be extra-quoted, i.e., a call like
-dpaper-size=a3
works just fine. - The pixmap-format option now expects a string as a value,
not a symbol. No change on the command line, but a call like
#(ly:set-option 'pixmap-format 'pngalpha)
must be changed to
#(ly:set-option 'pixmap-format "pngalpha")
The same holds for options separate-page-formats and tall-page-formats. Note that
convert-ly
can handle this automatically.
- On the command line, the argument for the -dpaper-size
option no longer needs to be extra-quoted, i.e., a call like
- The
side-position-interface
got two new properties,X-padding
andminimum-X-space
, to control the horizontal padding and minimum distance to a grob’s parent object, independently of the vertical padding and minimum distance. This is useful for grobs likeFingering
that can be attached either horizontally or vertically to note heads, and which need different padding values for the X- and Y-axis, respectively. -
\pushContextProperty
and\popContextProperty
are two new commands for manipulating context properties. The first one pushes the current value to a stack and sets a new value, while the second one pops off the value from the stack and uses it to restore the previous value.{ c' \pushContextProperty Staff.fontSize 3 c' \pushContextProperty Staff.fontSize 6 c' \popContextProperty Staff.fontSize c' \popContextProperty Staff.fontSize c' }
- A new grob property
whiteout-color
is available to set the color used for white-out operations. Similarly, the\whiteout
markup command now listens to acolor
property to do the same.
For older news, go to https://lilypond.org/doc/v2.22/Documentation/changes/, or go back to the Documentation index.
[ << New for specialist notation ] | [Top][Contents] | [ >> ] |
[ < New for specialist notation ] | [ Up : Top ] | [ > ] |