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}
50 @item The tie formatting for chords has been further polished. More
51 cases are handled gracefully, and all scoring parameters may now be
52 changed through the @code{details} property of the @code{Tie} grob.
54 This refinement was sponsored by Steve Doonan.
56 @item Positions of staff lines may now be set individually, for
59 @lilypond[raggedright]
60 \new Staff \relative c' {
61 \override Staff.StaffSymbol #'line-positions = #'(-7 -2 0 7)
66 This feature was sponsored by Andrea Valle.
69 @item A MusicXML importer is included now.
71 It was sponsored by among others, Mark van den Borre,
72 and Muziekacademie Lede.
75 Stem direction on the center staff line are now interpolated between
76 neighbors. This results in less stem direction changes, leading to a
77 more even appearance. For example,
79 @lilypond[raggedright]
87 This feature was sponsored by Mike Rolish and Basil Crow.
90 Slurs now avoid @code{TupletNumber}s, and tuplet numbers may enter the
93 @lilypond[raggedright]
96 \override TupletBracket #'bracket-visibility = ##f
97 \override TupletBracket #'staff-padding = ##f
98 \override Slur #'details #'region-size = #6
102 c( \stemDown g' \stemNeutral c,)
107 This feature was sponsored by Trent Johnston.
110 @item Tuplet brackets and numbers are implemented as separate grobs,
111 @code{TupletBracket} and @code{TupletNumber}.
113 This rewrite was sponsored by Trent Johnston.
115 @item String arguments for music functions may be specified without
116 @code{#} marks. This allows syntactical constructs (like \clef and
117 \bar) to be expressed in generic music functions.
119 @item Ties in chords are also formatted using a scoring based
120 formatting. This reduces the number of collisions for ties in chords,
122 @lilypond[raggedright,fragment,relative=2]
123 <b d f g> ~ <b d f g>
126 Here, the tie for the D is flipped, in spite the default rule for
129 This rewrite was sponsored by Steve Doonan.
131 @item With the @code{\tweak} music function, layout objects that are directly
132 connected to input may be tuned easily,
134 @lilypond[relative=2,fragment,verbatim,raggedright]
136 \tweak #'font-size #3 c
137 \tweak #'color #red d
138 \tweak #'style #'cross g
139 \tweak #'duration-log #1 a
143 This feature was sponsored by Sean Reed and Bertalan Fodor.
145 @item Generic music functions may now also be used on articulations
146 and chord elements, eg.
150 e-\keepWithTag #'bla -\tag #'bla ^2 >
153 This feature was sponsored by Sean Reed and Bertalan Fodor.
156 @item Spaces between lyrics and distance between syllables with
157 hyphens may now be separately tuned through the
158 @code{LyricSpace} grob.
160 This feature has been sponsored by Bertalan Fodor.
162 @item Texts set in a TrueType font are now kerned. This requires CVS
165 @lilypond[relative=2,fragment,raggedright]
170 @item Using the @TeX{} no longer requires linking or dynamically
171 opening the kpathsea library, making the backend more easily usable on
174 This fix was sponsored by Black Trash Productions.
176 @item The horizontal location of rehearsal marks can be adjusted by
177 setting the @code{rehearsalMarkAlignSymbol} property,
179 @lilypond[raggedright]
184 \set Score.rehearsalMarkAlignSymbol = #'key-signature
188 \set Score.rehearsalMarkAlignSymbol = #'clef
196 This feature was sponsored by Trevor Bača.
200 It's now possible to easily create deeply nested system start
203 @lilypond[raggedright]
206 \set StaffGroup.systemStartDelimiterHierarchy
207 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
217 In addition, there is now also support for ``square'' system start
220 This feature was sponsored by Trevor Bača.
223 Tie formatting now uses scoring. This opens the road to formatting
224 which handles complex situations require tradeoffs between different
227 This refactoring has been sponsored by Steve Doonan.
230 Each grob property may also be a ``grob closure.'' This means that it
231 is possible to combine functions. For example, the @code{Y-offset} of
232 a @code{InstrumentName} grob is defined to be
235 ,(ly:make-simple-closure
237 ,(ly:make-simple-closure
238 (,Self_alignment_interface::y_aligned_on_self))
239 ,(ly:make-simple-closure
240 (,Side_position_interface::y_aligned_on_support_refpoints)))
244 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
248 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
249 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
254 Calculation of extent and offset of grob is now controlled via the
255 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
256 properties, for example
259 \override TextScript #'Y-offset = #-6
263 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
267 Each grob property can be a procedure. If this is the case, it is
268 assumed to be a routine that calculates said property. This is a
269 major internal cleanup, which also provides advanced tweakability for
270 power users. For example,
273 \override Beam #'direction
275 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
281 With this code fragment, the direction of a beam is decided to be up
282 or down, depending on the number of stems in the beam.
286 Support for figured bass has been rewritten. Now it supports
287 continuation lines, slashed figures, and its figures, brackets, and alignments may
290 @lilypond[raggedright,fragment]
292 \relative { c4 c c c }
294 \set useBassFigureExtenders = ##t
295 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
299 This rewrite was sponsored by Trent Johnston and John Mandereau.
302 Subproperties, like the @code{details} field of @code{Slur} and
303 @code{Tie} may now be tuned with @code{\override}. For example,
306 \override Stem #'details #'beamed-lengths = #'(4 4 3)
310 shortens the stems in beams.
313 The default paper size may now be set from the command line using
317 Beamlets may stick out of the side of beams.
320 @lilypond[fragment,raggedright,relative=2]
322 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
323 \set stemLeftBeamCount = #2
326 \set stemRightBeamCount = #3
331 This feature was sponsored by Trevor Bača.
336 Vertical alignments of staves can now be tuned easily for individual
339 @lilypond[raggedright]
340 #(set-global-staff-size 13)
347 #"Score.NonMusicalPaperColumn"
348 #'line-break-system-details
349 #'((fixed-alignment-extra-space . 15))
361 This feature was sponsored by Nicolas Sceaux.
364 Vertical spacing for page layout can now be tuned for each system
365 individually. The dimensions that can be tuned can be visualized.
368 #(set-default-paper-size "a7" 'landscape)
371 \paper { annotatespacing = ##t }
375 These features were sponsored by Trevor Bača and Nicolas Sceaux.
378 The slope of a stem-tremolo may be set manually
380 @lilypond[fragment,relative=1,raggedright]
382 \once \override StemTremolo #'slope = #0.45
386 This feature was sponsored by Sven Axelsson.
389 Laissez vibrer ties can be created with @code{\laissezVibrer},
391 @lilypond[fragment,raggedright,relative=1]
392 <c e g>\laissezVibrer r <d f>\laissezVibrer
395 This feature was sponsored by Henrik Frisk.
398 The order of words in @code{\markup} commands may now be reversed by
399 setting the @code{text-direction} property. This is useful for
400 Right-to-Left languages like Hebrew.
402 This feature was sponsored by Aaron Mehl.
405 Texts over multi measure rests can stretch the corresponding measure,
406 if the appropriate @code{spring-and-rods} callback is set.
408 @lilypond[relative=2,fragment,raggedright]
409 \override MultiMeasureRestText #'springs-and-rods
410 = #Multi_measure_rest::set_text_rods
411 c1 R1 R1^"Very long long long text"
414 This feature was sponsored by Kris Shaffer.
417 @item @textanchor{tie-chords}
418 Formatting of ties in chords has been improved. Ties no longer collide
419 with note heads and stems. In addition, it is possible to manually
420 specify tie formatting
422 @lilypond[relative=2, fragment,raggedright]
423 <a c d f> ~ <a c d f>
425 \override TieColumn #'tie-configuration =
426 #'((0 . -1) '() (5.5 . 1) (7 . 1))
427 <b d f g> ~ <b d f g>
430 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
431 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
435 Formatting of isolated, single ties has been improved. Now, ties avoid
436 staff lines, flags and dots, without compromising their shape.
438 @lilypond[fragment,raggedright]
441 c16 c2...~ c16 ~ c2... |
442 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
446 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
447 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
451 @item @textanchor{repeat-counter}
452 With the @code{countPercentRepeats} property,
453 percent repeats get incremental numbers to indicate the accumulated repeat count.
455 @lilypond[relative=2,fragment,raggedright]
456 \set countPercentRepeats = ##t
457 \repeat percent 4 { c1 }
459 \repeat percent 4 { c2 c2 }
462 This feature was sponsored by Yoshinobu Ishizaki
465 Text scripts such as fingering instructions and dynamics avoid
466 collisions with slurs
468 @lilypond[fragment,relative=1]
470 b_1( f'_1_2_3 c_3_4_5 a)
472 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
477 Tuplets can be made to reach the next non-tuplet note by setting the
478 @code{tupletFullLength} property,
480 @lilypond[fragment,relative=2]
482 \remove Forbid_line_break_engraver
486 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
487 \set tupletFullLength = ##t
488 \times 2/3 { c8[ c c] }
493 This feature was sponsored by Trevor Bača.
496 When @code{strict-note-spacing} is set, notes are spaced without regard
497 for clefs, bar lines, and grace notes. For example,
499 @lilypond[fragment,relative=2]
500 \override Score.SpacingSpanner #'strict-note-spacing = ##t
501 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
504 This feature was sponsored by Trevor Bača.
507 Beams support the @code{break-overshoot} property, for example
509 @lilypond[relative=2,fragment]
510 \set allowBeamBreak = ##t
511 \override Beam #'break-overshoot = #'(1.0 . 2.0)
515 This feature was sponsored by Trevor Bača.
518 Proportional notation is supported. Notes can be spaced proportional
519 to their time-difference by assigning a duration to
520 @code{proportionalNotationDuration}. For example,
522 @lilypond[relative=2,fragment,raggedright]
524 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
525 \new Staff { c8[ c c c c c] c4 c2 r2 }
526 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
530 This feature was sponsored by Trevor Bača.
533 Symbol sizes (e.g. accidentals) are disregarded for spacing if
534 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
537 @lilypond[relative=2,fragment]
539 \override Score.SpacingSpanner #'uniform-stretching = ##t
540 \new Staff { c16[ c c c c c c c c c16] }
542 \times 6/7 { c16 c c cis c c c }
548 This feature was sponsored by Trevor Bača.
551 Endings of broken tuplet brackets can be tuned. For example, you can
552 add arrows to the brackets,
554 @lilypond[fragment,raggedright,relative=2]
555 \override TupletBracket
557 (markup #:arrow-head X LEFT #f)
558 (markup #:arrow-head X RIGHT #f))
560 c c c \bar "empty" \break c c
564 This feature was sponsored by Trevor Bača.
567 @item @textanchor{arrow-glyph}
568 Arrow heads were added to the Feta font.
573 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
574 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
579 These glyphs have been sponsored by Trevor Bača.
583 Nested tuplets are automatically positioned,
585 @lilypond[fragment,raggedright,relative=2]
586 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
589 \times 3/5 { a a a a a }
593 This feature was sponsored by Trevor Bača.
596 Music expressions can be displayed, in LilyPond notation, using the
597 new @code{\displayLilyMusic} function. For instance:
599 \displayLilyMusic \transpose c a, { c d e f }
606 This feature was contributed by Nicolas Sceaux.
609 The current bar number may be checked with @code{\barNumberCheck}, eg.
616 will print a warning if it doesn't happen in measure 22.
619 If @code{showLastLength} is set, only the last few measures of a piece
620 are rendered, which speeds up correcting scores. For example, setting
623 showLastLength = R1*5
628 will render only the last five measures (assuming 4/4 time signature)
631 @item @textanchor{simple-melismata}
632 Melismata can be specified simply in the lyrics now, eg.
634 @lilypond[relative=1,verbatim,fragment]
642 This feature was sponsored by Nancho Alvarez
645 Suggested accidentals (for notating musica ficta) may be switched on
646 with @code{suggestAccidentals}
648 @lilypond[verbatim,fragment,relative=2]
649 \set suggestAccidentals = ##t
653 This feature was sponsored by Nancho Alvarez.
656 The setting @code{whichBar} and time-bookkeeping is now split into a
657 @code{Default_bar_line_engraver} and @code{Timing_translator}
660 @item @textanchor{pitched-trill}
661 Explicit pitches may be added to trills,
663 @lilypond[relative,verbatim,fragment]
664 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
667 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
670 Markup now supports formatting of text paragraphs, using
671 @code{\wordwrap} and @code{\justify}.
673 This feature was sponsored by Sven Axelsson.
677 For older news, go to
678 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
679 or @uref{../,go back} to the Documentation index.