1 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
6 @macro inputfileref{DIR,NAME}
7 @uref{../../\DIR\/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
9 @macro usermanref{NAME}
10 @inforef{\NAME\,,../user/lilypond/lilypond}@c
15 @macro inputfileref{DIR,NAME}
18 @macro usermanref{NAME}
19 See user manual, \NAME\
24 @macro textanchor{NAME}
31 @documentencoding utf-8
38 @unnumbered New features in 2.7 since 2.6
41 This document is also available in @uref{NEWS.pdf,PDF}. It's part of
42 the @uref{../,LilyPond Documentation}
49 @item Alignments of staves may be tuned per system.
51 #(set-global-staff-size 13)
53 \relative c'' \new StaffGroup <<
58 #"Score.NonMusicalPaperColumn"
59 #'line-break-system-details
60 #'((alignment-offsets . (0 -5 -20)))
63 #"Score.NonMusicalPaperColumn"
64 #'line-break-system-details
65 #'((alignment-offsets . (0 -15 -20)))
71 This feature was sponsored by Trevor Bača.
73 @item Individual systems may be positioned manually,
77 tagline = "lily was here"
80 #(set-default-paper-size "a7" 'landscape)
90 #"Score.NonMusicalPaperColumn"
91 #'line-break-system-details
104 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
106 @item A linebreaking configuration can now be saved as a @file{.ly}
107 file automatically. This allows vertical alignments to be stretched to
108 fit pages in a second formatting run. See
109 @inputfileref{input/regression,page-layout-twopass.ly} for an
112 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
114 @item The tie formatting for chords has been further polished. More
115 cases are handled gracefully, and all scoring parameters may now be
116 changed through the @code{details} property of the @code{Tie} grob.
118 This refinement was sponsored by Steve Doonan.
120 @item Positions of staff lines may now be set individually, for
123 @lilypond[raggedright]
124 \new Staff \relative c' {
125 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
130 This feature was sponsored by Andrea Valle.
133 @item A MusicXML importer is included now.
135 It was sponsored by among others, Mark van den Borre,
136 and Muziekacademie Lede.
139 Stem direction on the center staff line are now interpolated between
140 neighbors. This results in less stem direction changes, leading to a
141 more even appearance. For example,
143 @lilypond[raggedright]
151 This feature was sponsored by Mike Rolish and Basil Crow.
154 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
157 @lilypond[raggedright]
160 \override TupletBracket #'bracket-visibility = ##f
161 \override TupletBracket #'staff-padding = ##f
162 \override Slur #'details #'region-size = #6
166 c( \stemDown g' \stemNeutral c,)
171 This feature was sponsored by Trent Johnston.
174 @item Tuplet brackets and numbers are implemented as separate grobs,
175 @code{TupletBracket} and @code{TupletNumber}.
177 This rewrite was sponsored by Trent Johnston.
179 @item String arguments for music functions may be specified without
180 @code{#} marks. This allows syntactical constructs (like \clef and
181 \bar) to be expressed in generic music functions.
183 @item Ties in chords are also formatted using a scoring based
184 formatting. This reduces the number of collisions for ties in chords,
186 @lilypond[raggedright,fragment,relative=2]
187 <b d f g> ~ <b d f g>
190 Here, the tie for the D is flipped, in spite the default rule for
193 This rewrite was sponsored by Steve Doonan.
195 @item With the @code{\tweak} music function, layout objects that are directly
196 connected to input may be tuned easily,
198 @lilypond[relative=2,fragment,verbatim,raggedright]
200 \tweak #'font-size #3 c
201 \tweak #'color #red d
202 \tweak #'style #'cross g
203 \tweak #'duration-log #1 a
207 This feature was sponsored by Sean Reed and Bertalan Fodor.
209 @item Generic music functions may now also be used on articulations
210 and chord elements, eg.
214 e-\keepWithTag #'bla -\tag #'bla ^2 >
217 This feature was sponsored by Sean Reed and Bertalan Fodor.
220 @item Spaces between lyrics and distance between syllables with
221 hyphens may now be separately tuned through the
222 @code{LyricSpace} grob.
224 This feature has been sponsored by Bertalan Fodor.
226 @item Texts set in a TrueType font are now kerned. This requires CVS
229 @lilypond[relative=2,fragment,raggedright]
234 @item Using the @TeX{} no longer requires linking or dynamically
235 opening the kpathsea library, making the backend more easily usable on
238 This fix was sponsored by Black Trash Productions.
240 @item The horizontal location of rehearsal marks can be adjusted by
241 setting the @code{rehearsalMarkAlignSymbol} property,
243 @lilypond[raggedright]
248 \set Score.rehearsalMarkAlignSymbol = #'key-signature
252 \set Score.rehearsalMarkAlignSymbol = #'clef
260 This feature was sponsored by Trevor Bača.
264 It's now possible to easily create deeply nested system start
267 @lilypond[raggedright]
270 \set StaffGroup.systemStartDelimiterHierarchy
271 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
281 In addition, there is now also support for ``square'' system start
284 This feature was sponsored by Trevor Bača.
287 Tie formatting now uses scoring. This opens the road to formatting
288 which handles complex situations require tradeoffs between different
291 This refactoring has been sponsored by Steve Doonan.
294 Each grob property may also be a ``grob closure.'' This means that it
295 is possible to combine functions. For example, the @code{Y-offset} of
296 a @code{InstrumentName} grob is defined to be
299 ,(ly:make-simple-closure
301 ,(ly:make-simple-closure
302 (,Self_alignment_interface::y_aligned_on_self))
303 ,(ly:make-simple-closure
304 (,Side_position_interface::y_aligned_on_support_refpoints)))
308 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
312 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
313 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
318 Calculation of extent and offset of grob is now controlled via the
319 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
320 properties, for example
323 \override TextScript #'Y-offset = #-6
327 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
331 Each grob property can be a procedure. If this is the case, it is
332 assumed to be a routine that calculates said property. This is a
333 major internal cleanup, which also provides advanced tweakability for
334 power users. For example,
337 \override Beam #'direction
339 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
345 With this code fragment, the direction of a beam is decided to be up
346 or down, depending on the number of stems in the beam.
350 Support for figured bass has been rewritten. Now it supports
351 continuation lines, slashed figures, and its figures, brackets, and
352 alignments may tuned separately.
354 @lilypond[raggedright,fragment]
356 \relative { c4 c c c }
358 \set useBassFigureExtenders = ##t
359 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
363 This rewrite was sponsored by Trent Johnston and John Mandereau.
366 Subproperties, like the @code{details} field of @code{Slur} and
367 @code{Tie} may now be tuned with @code{\override}. For example,
370 \override Stem #'details #'beamed-lengths = #'(4 4 3)
374 shortens the stems in beams.
377 The default paper size may now be set from the command line using
381 Beamlets may stick out of the side of beams.
384 @lilypond[fragment,raggedright,relative=2]
386 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
387 \set stemLeftBeamCount = #2
390 \set stemRightBeamCount = #3
395 This feature was sponsored by Trevor Bača.
400 Vertical alignments of staves can now be tuned easily for individual
403 @lilypond[raggedright]
404 #(set-global-staff-size 13)
411 #"Score.NonMusicalPaperColumn"
412 #'line-break-system-details
413 #'((fixed-alignment-extra-space . 15))
425 This feature was sponsored by Nicolas Sceaux.
428 Vertical spacing for page layout can now be tuned for each system
429 individually. The dimensions that can be tuned can be visualized.
432 #(set-default-paper-size "a7" 'landscape)
435 \paper { annotatespacing = ##t }
439 These features were sponsored by Trevor Bača and Nicolas Sceaux.
442 The slope of a stem-tremolo may be set manually
444 @lilypond[fragment,relative=1,raggedright]
446 \once \override StemTremolo #'slope = #0.45
450 This feature was sponsored by Sven Axelsson.
453 Laissez vibrer ties can be created with @code{\laissezVibrer},
455 @lilypond[fragment,raggedright,relative=1]
456 <c e g>\laissezVibrer r <d f>\laissezVibrer
459 This feature was sponsored by Henrik Frisk.
462 The order of words in @code{\markup} commands may now be reversed by
463 setting the @code{text-direction} property. This is useful for
464 Right-to-Left languages like Hebrew.
466 This feature was sponsored by Aaron Mehl.
469 Texts over multi measure rests can stretch the corresponding measure,
470 if the appropriate @code{spring-and-rods} callback is set.
472 @lilypond[relative=2,fragment,raggedright]
473 \override MultiMeasureRestText #'springs-and-rods
474 = #Multi_measure_rest::set_text_rods
475 c1 R1 R1^"Very long long long text"
478 This feature was sponsored by Kris Shaffer.
481 @item @textanchor{tie-chords}
482 Formatting of ties in chords has been improved. Ties no longer collide
483 with note heads and stems. In addition, it is possible to manually
484 specify tie formatting
486 @lilypond[relative=2, fragment,raggedright]
487 <a c d f> ~ <a c d f>
489 \override TieColumn #'tie-configuration =
490 #'((0 . -1) '() (5.5 . 1) (7 . 1))
491 <b d f g> ~ <b d f g>
494 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
495 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
499 Formatting of isolated, single ties has been improved. Now, ties avoid
500 staff lines, flags and dots, without compromising their shape.
502 @lilypond[fragment,raggedright]
505 c16 c2...~ c16 ~ c2... |
506 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
510 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
511 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
515 @item @textanchor{repeat-counter}
516 With the @code{countPercentRepeats} property,
517 percent repeats get incremental numbers to indicate the accumulated repeat count.
519 @lilypond[relative=2,fragment,raggedright]
520 \set countPercentRepeats = ##t
521 \repeat percent 4 { c1 }
523 \repeat percent 4 { c2 c2 }
526 This feature was sponsored by Yoshinobu Ishizaki
529 Text scripts such as fingering instructions and dynamics avoid
530 collisions with slurs
532 @lilypond[fragment,relative=1]
534 b_1( f'_1_2_3 c_3_4_5 a)
536 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
541 Tuplets can be made to reach the next non-tuplet note by setting the
542 @code{tupletFullLength} property,
544 @lilypond[fragment,relative=2]
546 \remove Forbid_line_break_engraver
550 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
551 \set tupletFullLength = ##t
552 \times 2/3 { c8[ c c] }
557 This feature was sponsored by Trevor Bača.
560 When @code{strict-note-spacing} is set, notes are spaced without regard
561 for clefs, bar lines, and grace notes. For example,
563 @lilypond[fragment,relative=2]
564 \override Score.SpacingSpanner #'strict-note-spacing = ##t
565 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
568 This feature was sponsored by Trevor Bača.
571 Beams support the @code{break-overshoot} property, for example
573 @lilypond[relative=2,fragment]
574 \set allowBeamBreak = ##t
575 \override Beam #'break-overshoot = #'(1.0 . 2.0)
579 This feature was sponsored by Trevor Bača.
582 Proportional notation is supported. Notes can be spaced proportional
583 to their time-difference by assigning a duration to
584 @code{proportionalNotationDuration}. For example,
586 @lilypond[relative=2,fragment,raggedright]
588 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
589 \new Staff { c8[ c c c c c] c4 c2 r2 }
590 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
594 This feature was sponsored by Trevor Bača.
597 Symbol sizes (e.g. accidentals) are disregarded for spacing if
598 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
601 @lilypond[relative=2,fragment]
603 \override Score.SpacingSpanner #'uniform-stretching = ##t
604 \new Staff { c16[ c c c c c c c c c16] }
606 \times 6/7 { c16 c c cis c c c }
612 This feature was sponsored by Trevor Bača.
615 Endings of broken tuplet brackets can be tuned. For example, you can
616 add arrows to the brackets,
618 @lilypond[fragment,raggedright,relative=2]
619 \override TupletBracket
621 (markup #:arrow-head X LEFT #f)
622 (markup #:arrow-head X RIGHT #f))
624 c c c \bar "empty" \break c c
628 This feature was sponsored by Trevor Bača.
631 @item @textanchor{arrow-glyph}
632 Arrow heads were added to the Feta font.
637 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
638 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
643 These glyphs have been sponsored by Trevor Bača.
647 Nested tuplets are automatically positioned,
649 @lilypond[fragment,raggedright,relative=2]
650 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
653 \times 3/5 { a a a a a }
657 This feature was sponsored by Trevor Bača.
660 Music expressions can be displayed, in LilyPond notation, using the
661 new @code{\displayLilyMusic} function. For instance:
663 \displayLilyMusic \transpose c a, { c d e f }
670 This feature was contributed by Nicolas Sceaux.
673 The current bar number may be checked with @code{\barNumberCheck}, eg.
680 will print a warning if it doesn't happen in measure 22.
683 If @code{showLastLength} is set, only the last few measures of a piece
684 are rendered, which speeds up correcting scores. For example, setting
687 showLastLength = R1*5
692 will render only the last five measures (assuming 4/4 time signature)
695 @item @textanchor{simple-melismata}
696 Melismata can be specified simply in the lyrics now, eg.
698 @lilypond[relative=1,verbatim,fragment]
706 This feature was sponsored by Nancho Alvarez
709 Suggested accidentals (for notating musica ficta) may be switched on
710 with @code{suggestAccidentals}
712 @lilypond[verbatim,fragment,relative=2]
713 \set suggestAccidentals = ##t
717 This feature was sponsored by Nancho Alvarez.
720 The setting @code{whichBar} and time-bookkeeping is now split into a
721 @code{Default_bar_line_engraver} and @code{Timing_translator}
724 @item @textanchor{pitched-trill}
725 Explicit pitches may be added to trills,
727 @lilypond[relative,verbatim,fragment]
728 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
731 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
734 Markup now supports formatting of text paragraphs, using
735 @code{\wordwrap} and @code{\justify}.
737 This feature was sponsored by Sven Axelsson.
741 For older news, go to
742 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
743 or @uref{../,go back} to the Documentation index.