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 \relative c'' \new StaffGroup <<
56 #"Score.NonMusicalPaperColumn"
57 #'line-break-system-details
58 #'((alignment-offsets . (0 -5 -20)))
61 #"Score.NonMusicalPaperColumn"
62 #'line-break-system-details
63 #'((alignment-offsets . (0 -15 -20)))
69 This feature was sponsored by Trevor Bača.
71 @item Individual systems may be positioned manually,
75 tagline = "lily was here"
78 #(set-default-paper-size "a7" 'landscape)
88 #"Score.NonMusicalPaperColumn"
89 #'line-break-system-details
102 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
104 @item A linebreaking configuration can now be saved as a @file{.ly}
105 file automatically. This allows vertical alignments to be stretched to
106 fit pages in a second formatting run. See
107 @inputfileref{input/regression/,page-layout-twopass.ly} for an
110 This feature was sponsored by Trevor Bača and Nicolas Sceaux.
112 @item The tie formatting for chords has been further polished. More
113 cases are handled gracefully, and all scoring parameters may now be
114 changed through the @code{details} property of the @code{Tie} grob.
116 This refinement was sponsored by Steve Doonan.
118 @item Positions of staff lines may now be set individually, for
121 @lilypond[raggedright]
122 \new Staff \relative c' {
123 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
128 This feature was sponsored by Andrea Valle.
131 @item A MusicXML importer is included now.
133 It was sponsored by among others, Mark van den Borre,
134 and Muziekacademie Lede.
137 Stem direction on the center staff line are now interpolated between
138 neighbors. This results in less stem direction changes, leading to a
139 more even appearance. For example,
141 @lilypond[raggedright]
149 This feature was sponsored by Mike Rolish and Basil Crow.
152 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
155 @lilypond[raggedright]
158 \override TupletBracket #'bracket-visibility = ##f
159 \override TupletBracket #'staff-padding = ##f
160 \override Slur #'details #'region-size = #6
164 c( \stemDown g' \stemNeutral c,)
169 This feature was sponsored by Trent Johnston.
172 @item Tuplet brackets and numbers are implemented as separate grobs,
173 @code{TupletBracket} and @code{TupletNumber}.
175 This rewrite was sponsored by Trent Johnston.
177 @item String arguments for music functions may be specified without
178 @code{#} marks. This allows syntactical constructs (like \clef and
179 \bar) to be expressed in generic music functions.
181 @item Ties in chords are also formatted using a scoring based
182 formatting. This reduces the number of collisions for ties in chords,
184 @lilypond[raggedright,fragment,relative=2]
185 <b d f g> ~ <b d f g>
188 Here, the tie for the D is flipped, in spite the default rule for
191 This rewrite was sponsored by Steve Doonan.
193 @item With the @code{\tweak} music function, layout objects that are directly
194 connected to input may be tuned easily,
196 @lilypond[relative=2,fragment,verbatim,raggedright]
198 \tweak #'font-size #3 c
199 \tweak #'color #red d
200 \tweak #'style #'cross g
201 \tweak #'duration-log #1 a
205 This feature was sponsored by Sean Reed and Bertalan Fodor.
207 @item Generic music functions may now also be used on articulations
208 and chord elements, eg.
212 e-\keepWithTag #'bla -\tag #'bla ^2 >
215 This feature was sponsored by Sean Reed and Bertalan Fodor.
218 @item Spaces between lyrics and distance between syllables with
219 hyphens may now be separately tuned through the
220 @code{LyricSpace} grob.
222 This feature has been sponsored by Bertalan Fodor.
224 @item Texts set in a TrueType font are now kerned. This requires CVS
227 @lilypond[relative=2,fragment,raggedright]
232 @item Using the @TeX{} no longer requires linking or dynamically
233 opening the kpathsea library, making the backend more easily usable on
236 This fix was sponsored by Black Trash Productions.
238 @item The horizontal location of rehearsal marks can be adjusted by
239 setting the @code{rehearsalMarkAlignSymbol} property,
241 @lilypond[raggedright]
246 \set Score.rehearsalMarkAlignSymbol = #'key-signature
250 \set Score.rehearsalMarkAlignSymbol = #'clef
258 This feature was sponsored by Trevor Bača.
262 It's now possible to easily create deeply nested system start
265 @lilypond[raggedright]
268 \set StaffGroup.systemStartDelimiterHierarchy
269 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
279 In addition, there is now also support for ``square'' system start
282 This feature was sponsored by Trevor Bača.
285 Tie formatting now uses scoring. This opens the road to formatting
286 which handles complex situations require tradeoffs between different
289 This refactoring has been sponsored by Steve Doonan.
292 Each grob property may also be a ``grob closure.'' This means that it
293 is possible to combine functions. For example, the @code{Y-offset} of
294 a @code{InstrumentName} grob is defined to be
297 ,(ly:make-simple-closure
299 ,(ly:make-simple-closure
300 (,Self_alignment_interface::y_aligned_on_self))
301 ,(ly:make-simple-closure
302 (,Side_position_interface::y_aligned_on_support_refpoints)))
306 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
310 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
311 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
316 Calculation of extent and offset of grob is now controlled via the
317 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
318 properties, for example
321 \override TextScript #'Y-offset = #-6
325 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
329 Each grob property can be a procedure. If this is the case, it is
330 assumed to be a routine that calculates said property. This is a
331 major internal cleanup, which also provides advanced tweakability for
332 power users. For example,
335 \override Beam #'direction
337 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
343 With this code fragment, the direction of a beam is decided to be up
344 or down, depending on the number of stems in the beam.
348 Support for figured bass has been rewritten. Now it supports
349 continuation lines, slashed figures, and its figures, brackets, and alignments may
352 @lilypond[raggedright,fragment]
354 \relative { c4 c c c }
356 \set useBassFigureExtenders = ##t
357 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
361 This rewrite was sponsored by Trent Johnston and John Mandereau.
364 Subproperties, like the @code{details} field of @code{Slur} and
365 @code{Tie} may now be tuned with @code{\override}. For example,
368 \override Stem #'details #'beamed-lengths = #'(4 4 3)
372 shortens the stems in beams.
375 The default paper size may now be set from the command line using
379 Beamlets may stick out of the side of beams.
382 @lilypond[fragment,raggedright,relative=2]
384 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
385 \set stemLeftBeamCount = #2
388 \set stemRightBeamCount = #3
393 This feature was sponsored by Trevor Bača.
398 Vertical alignments of staves can now be tuned easily for individual
401 @lilypond[raggedright]
402 #(set-global-staff-size 13)
409 #"Score.NonMusicalPaperColumn"
410 #'line-break-system-details
411 #'((fixed-alignment-extra-space . 15))
423 This feature was sponsored by Nicolas Sceaux.
426 Vertical spacing for page layout can now be tuned for each system
427 individually. The dimensions that can be tuned can be visualized.
430 #(set-default-paper-size "a7" 'landscape)
433 \paper { annotatespacing = ##t }
437 These features were sponsored by Trevor Bača and Nicolas Sceaux.
440 The slope of a stem-tremolo may be set manually
442 @lilypond[fragment,relative=1,raggedright]
444 \once \override StemTremolo #'slope = #0.45
448 This feature was sponsored by Sven Axelsson.
451 Laissez vibrer ties can be created with @code{\laissezVibrer},
453 @lilypond[fragment,raggedright,relative=1]
454 <c e g>\laissezVibrer r <d f>\laissezVibrer
457 This feature was sponsored by Henrik Frisk.
460 The order of words in @code{\markup} commands may now be reversed by
461 setting the @code{text-direction} property. This is useful for
462 Right-to-Left languages like Hebrew.
464 This feature was sponsored by Aaron Mehl.
467 Texts over multi measure rests can stretch the corresponding measure,
468 if the appropriate @code{spring-and-rods} callback is set.
470 @lilypond[relative=2,fragment,raggedright]
471 \override MultiMeasureRestText #'springs-and-rods
472 = #Multi_measure_rest::set_text_rods
473 c1 R1 R1^"Very long long long text"
476 This feature was sponsored by Kris Shaffer.
479 @item @textanchor{tie-chords}
480 Formatting of ties in chords has been improved. Ties no longer collide
481 with note heads and stems. In addition, it is possible to manually
482 specify tie formatting
484 @lilypond[relative=2, fragment,raggedright]
485 <a c d f> ~ <a c d f>
487 \override TieColumn #'tie-configuration =
488 #'((0 . -1) '() (5.5 . 1) (7 . 1))
489 <b d f g> ~ <b d f g>
492 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
493 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
497 Formatting of isolated, single ties has been improved. Now, ties avoid
498 staff lines, flags and dots, without compromising their shape.
500 @lilypond[fragment,raggedright]
503 c16 c2...~ c16 ~ c2... |
504 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
508 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
509 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
513 @item @textanchor{repeat-counter}
514 With the @code{countPercentRepeats} property,
515 percent repeats get incremental numbers to indicate the accumulated repeat count.
517 @lilypond[relative=2,fragment,raggedright]
518 \set countPercentRepeats = ##t
519 \repeat percent 4 { c1 }
521 \repeat percent 4 { c2 c2 }
524 This feature was sponsored by Yoshinobu Ishizaki
527 Text scripts such as fingering instructions and dynamics avoid
528 collisions with slurs
530 @lilypond[fragment,relative=1]
532 b_1( f'_1_2_3 c_3_4_5 a)
534 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
539 Tuplets can be made to reach the next non-tuplet note by setting the
540 @code{tupletFullLength} property,
542 @lilypond[fragment,relative=2]
544 \remove Forbid_line_break_engraver
548 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
549 \set tupletFullLength = ##t
550 \times 2/3 { c8[ c c] }
555 This feature was sponsored by Trevor Bača.
558 When @code{strict-note-spacing} is set, notes are spaced without regard
559 for clefs, bar lines, and grace notes. For example,
561 @lilypond[fragment,relative=2]
562 \override Score.SpacingSpanner #'strict-note-spacing = ##t
563 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
566 This feature was sponsored by Trevor Bača.
569 Beams support the @code{break-overshoot} property, for example
571 @lilypond[relative=2,fragment]
572 \set allowBeamBreak = ##t
573 \override Beam #'break-overshoot = #'(1.0 . 2.0)
577 This feature was sponsored by Trevor Bača.
580 Proportional notation is supported. Notes can be spaced proportional
581 to their time-difference by assigning a duration to
582 @code{proportionalNotationDuration}. For example,
584 @lilypond[relative=2,fragment,raggedright]
586 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
587 \new Staff { c8[ c c c c c] c4 c2 r2 }
588 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
592 This feature was sponsored by Trevor Bača.
595 Symbol sizes (e.g. accidentals) are disregarded for spacing if
596 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
599 @lilypond[relative=2,fragment]
601 \override Score.SpacingSpanner #'uniform-stretching = ##t
602 \new Staff { c16[ c c c c c c c c c16] }
604 \times 6/7 { c16 c c cis c c c }
610 This feature was sponsored by Trevor Bača.
613 Endings of broken tuplet brackets can be tuned. For example, you can
614 add arrows to the brackets,
616 @lilypond[fragment,raggedright,relative=2]
617 \override TupletBracket
619 (markup #:arrow-head X LEFT #f)
620 (markup #:arrow-head X RIGHT #f))
622 c c c \bar "empty" \break c c
626 This feature was sponsored by Trevor Bača.
629 @item @textanchor{arrow-glyph}
630 Arrow heads were added to the Feta font.
635 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
636 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
641 These glyphs have been sponsored by Trevor Bača.
645 Nested tuplets are automatically positioned,
647 @lilypond[fragment,raggedright,relative=2]
648 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
651 \times 3/5 { a a a a a }
655 This feature was sponsored by Trevor Bača.
658 Music expressions can be displayed, in LilyPond notation, using the
659 new @code{\displayLilyMusic} function. For instance:
661 \displayLilyMusic \transpose c a, { c d e f }
668 This feature was contributed by Nicolas Sceaux.
671 The current bar number may be checked with @code{\barNumberCheck}, eg.
678 will print a warning if it doesn't happen in measure 22.
681 If @code{showLastLength} is set, only the last few measures of a piece
682 are rendered, which speeds up correcting scores. For example, setting
685 showLastLength = R1*5
690 will render only the last five measures (assuming 4/4 time signature)
693 @item @textanchor{simple-melismata}
694 Melismata can be specified simply in the lyrics now, eg.
696 @lilypond[relative=1,verbatim,fragment]
704 This feature was sponsored by Nancho Alvarez
707 Suggested accidentals (for notating musica ficta) may be switched on
708 with @code{suggestAccidentals}
710 @lilypond[verbatim,fragment,relative=2]
711 \set suggestAccidentals = ##t
715 This feature was sponsored by Nancho Alvarez.
718 The setting @code{whichBar} and time-bookkeeping is now split into a
719 @code{Default_bar_line_engraver} and @code{Timing_translator}
722 @item @textanchor{pitched-trill}
723 Explicit pitches may be added to trills,
725 @lilypond[relative,verbatim,fragment]
726 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
729 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
732 Markup now supports formatting of text paragraphs, using
733 @code{\wordwrap} and @code{\justify}.
735 This feature was sponsored by Sven Axelsson.
739 For older news, go to
740 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
741 or @uref{../,go back} to the Documentation index.