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 @item Using the @TeX{} no longer requires linking or dynamically
166 opening the kpathsea library, making the backend more easily usable on
169 This fix was sponsored by Black Trash Productions.
171 @item The horizontal location of rehearsal marks can be adjusted by
172 setting the @code{rehearsalMarkAlignSymbol} property,
174 @lilypond[raggedright]
179 \set Score.rehearsalMarkAlignSymbol = #'key-signature
183 \set Score.rehearsalMarkAlignSymbol = #'clef
191 This feature was sponsored by Trevor Bača.
195 It's now possible to easily create deeply nested system start
198 @lilypond[raggedright]
201 \set StaffGroup.systemStartDelimiterHierarchy
202 = #'(SystemStartSquare (SystemStartBracket a (SystemStartSquare b)) d)
212 In addition, there is now also support for ``square'' system start
215 This feature was sponsored by Trevor Bača.
218 Tie formatting now uses scoring. This opens the road to formatting
219 which handles complex situations require tradeoffs between different
222 This refactoring has been sponsored by Steve Doonan.
225 Each grob property may also be a ``grob closure.'' This means that it
226 is possible to combine functions. For example, the @code{Y-offset} of
227 a @code{InstrumentName} grob is defined to be
230 ,(ly:make-simple-closure
232 ,(ly:make-simple-closure
233 (,Self_alignment_interface::y_aligned_on_self))
234 ,(ly:make-simple-closure
235 (,Side_position_interface::y_aligned_on_support_refpoints)))
239 During execution, the @code{Y-offset} of an @code{InstrumentName} is computed
243 (+ (Self_alignment_interface::y_aligned_on_self @var{grob})
244 (Self_alignment_interface::y_aligned_on_support_refpoints @var{grob}))
249 Calculation of extent and offset of grob is now controlled via the
250 @code{X-extent}, @code{Y-extent}, @code{X-offset} and @code{Y-offset}
251 properties, for example
254 \override TextScript #'Y-offset = #-6
258 hard codes @code{TextScript} grobs to be 6 spaces below their Y-parent
262 Each grob property can be a procedure. If this is the case, it is
263 assumed to be a routine that calculates said property. This is a
264 major internal cleanup, which also provides advanced tweakability for
265 power users. For example,
268 \override Beam #'direction
270 (if (> 4 (ly:grob-array-length (ly:grob-object grob 'stems)))
276 With this code fragment, the direction of a beam is decided to be up
277 or down, depending on the number of stems in the beam.
281 Support for figured bass has been rewritten. Now it supports
282 continuation lines, slashed figures, and its figures, brackets, and alignments may
285 @lilypond[raggedright,fragment]
287 \relative { c4 c c c }
289 \set useBassFigureExtenders = ##t
290 <6+ 4 3> <6 4 3> <4 3+> <5/ 7/\+>
294 This rewrite was sponsored by Trent Johnston and John Mandereau.
297 Subproperties, like the @code{details} field of @code{Slur} and
298 @code{Tie} may now be tuned with @code{\override}. For example,
301 \override Stem #'details #'beamed-lengths = #'(4 4 3)
305 shortens the stems in beams.
308 The default paper size may now be set from the command line using
312 Beamlets may stick out of the side of beams.
315 @lilypond[fragment,raggedright,relative=2]
317 \override Beam #'break-overshoot = #'(-0.5 . 0.5)
318 \set stemLeftBeamCount = #2
321 \set stemRightBeamCount = #3
326 This feature was sponsored by Trevor Bača.
331 Vertical alignments of staves can now be tuned easily for individual
334 @lilypond[raggedright]
335 #(set-global-staff-size 13)
342 #"Score.NonMusicalPaperColumn"
343 #'line-break-system-details
344 #'((fixed-alignment-extra-space . 15))
356 This feature was sponsored by Nicolas Sceaux.
359 Vertical spacing for page layout can now be tuned for each system
360 individually. The dimensions that can be tuned can be visualized.
363 #(set-default-paper-size "a7" 'landscape)
366 \paper { annotatespacing = ##t }
370 These features were sponsored by Trevor Bača and Nicolas Sceaux.
373 The slope of a stem-tremolo may be set manually
375 @lilypond[fragment,relative=1,raggedright]
377 \once \override StemTremolo #'slope = #0.45
381 This feature was sponsored by Sven Axelsson.
384 Laissez vibrer ties can be created with @code{\laissezVibrer},
386 @lilypond[fragment,raggedright,relative=1]
387 <c e g>\laissezVibrer r <d f>\laissezVibrer
390 This feature was sponsored by Henrik Frisk.
393 The order of words in @code{\markup} commands may now be reversed by
394 setting the @code{text-direction} property. This is useful for
395 Right-to-Left languages like Hebrew.
397 This feature was sponsored by Aaron Mehl.
400 Texts over multi measure rests can stretch the corresponding measure,
401 if the appropriate @code{spring-and-rods} callback is set.
403 @lilypond[relative=2,fragment,raggedright]
404 \override MultiMeasureRestText #'springs-and-rods
405 = #Multi_measure_rest::set_text_rods
406 c1 R1 R1^"Very long long long text"
409 This feature was sponsored by Kris Shaffer.
412 @item @textanchor{tie-chords}
413 Formatting of ties in chords has been improved. Ties no longer collide
414 with note heads and stems. In addition, it is possible to manually
415 specify tie formatting
417 @lilypond[relative=2, fragment,raggedright]
418 <a c d f> ~ <a c d f>
420 \override TieColumn #'tie-configuration =
421 #'((0 . -1) '() (5.5 . 1) (7 . 1))
422 <b d f g> ~ <b d f g>
425 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
426 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
430 Formatting of isolated, single ties has been improved. Now, ties avoid
431 staff lines, flags and dots, without compromising their shape.
433 @lilypond[fragment,raggedright]
436 c16 c2...~ c16 ~ c2... |
437 c4~c8 c8~c16 c16~c32 c16.~[ c64]~ c64[ c8..] |
441 This improvement has been sponsored by Bertalan Fodor, Jay Hamilton,
442 Kieren MacMillan, Steve Doonan, Trevor Bača, and Vicente Solsona
446 @item @textanchor{repeat-counter}
447 With the @code{countPercentRepeats} property,
448 percent repeats get incremental numbers to indicate the accumulated repeat count.
450 @lilypond[relative=2,fragment,raggedright]
451 \set countPercentRepeats = ##t
452 \repeat percent 4 { c1 }
454 \repeat percent 4 { c2 c2 }
457 This feature was sponsored by Yoshinobu Ishizaki
460 Text scripts such as fingering instructions and dynamics avoid
461 collisions with slurs
463 @lilypond[fragment,relative=1]
465 b_1( f'_1_2_3 c_3_4_5 a)
467 c-2_\markup { \italic {"cresc."}} ( f_\markup {x} c)
472 Tuplets can be made to reach the next non-tuplet note by setting the
473 @code{tupletFullLength} property,
475 @lilypond[fragment,relative=2]
477 \remove Forbid_line_break_engraver
481 \set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
482 \set tupletFullLength = ##t
483 \times 2/3 { c8[ c c] }
488 This feature was sponsored by Trevor Bača.
491 When @code{strict-note-spacing} is set, notes are spaced without regard
492 for clefs, bar lines, and grace notes. For example,
494 @lilypond[fragment,relative=2]
495 \override Score.SpacingSpanner #'strict-note-spacing = ##t
496 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
499 This feature was sponsored by Trevor Bača.
502 Beams support the @code{break-overshoot} property, for example
504 @lilypond[relative=2,fragment]
505 \set allowBeamBreak = ##t
506 \override Beam #'break-overshoot = #'(1.0 . 2.0)
510 This feature was sponsored by Trevor Bača.
513 Proportional notation is supported. Notes can be spaced proportional
514 to their time-difference by assigning a duration to
515 @code{proportionalNotationDuration}. For example,
517 @lilypond[relative=2,fragment,raggedright]
519 \set Score.proportionalNotationDuration = #(ly:make-moment 1 16)
520 \new Staff { c8[ c c c c c] c4 c2 r2 }
521 \new Staff { c2 \times 2/3 { c8 c c } c4 c1 }
525 This feature was sponsored by Trevor Bača.
528 Symbol sizes (e.g. accidentals) are disregarded for spacing if
529 @code{uniform-stretching} of the @code{SpacingSpanner} grob is set,
532 @lilypond[relative=2,fragment]
534 \override Score.SpacingSpanner #'uniform-stretching = ##t
535 \new Staff { c16[ c c c c c c c c c16] }
537 \times 6/7 { c16 c c cis c c c }
543 This feature was sponsored by Trevor Bača.
546 Endings of broken tuplet brackets can be tuned. For example, you can
547 add arrows to the brackets,
549 @lilypond[fragment,raggedright,relative=2]
550 \override TupletBracket
552 (markup #:arrow-head X LEFT #f)
553 (markup #:arrow-head X RIGHT #f))
555 c c c \bar "empty" \break c c
559 This feature was sponsored by Trevor Bača.
562 @item @textanchor{arrow-glyph}
563 Arrow heads were added to the Feta font.
568 filled, to the right: \hspace #2.0 \fontsize #6 \arrow-head #0 #1 ##t
569 open, down: \hspace #2.0 \fontsize #6 \arrow-head #1 #-1 ##f
574 These glyphs have been sponsored by Trevor Bača.
578 Nested tuplets are automatically positioned,
580 @lilypond[fragment,raggedright,relative=2]
581 \set tupletNumberFormatFunction = #fraction-tuplet-formatter
584 \times 3/5 { a a a a a }
588 This feature was sponsored by Trevor Bača.
591 Music expressions can be displayed, in LilyPond notation, using the
592 new @code{\displayLilyMusic} function. For instance:
594 \displayLilyMusic \transpose c a, { c d e f }
601 This feature was contributed by Nicolas Sceaux.
604 The current bar number may be checked with @code{\barNumberCheck}, eg.
611 will print a warning if it doesn't happen in measure 22.
614 If @code{showLastLength} is set, only the last few measures of a piece
615 are rendered, which speeds up correcting scores. For example, setting
618 showLastLength = R1*5
623 will render only the last five measures (assuming 4/4 time signature)
626 @item @textanchor{simple-melismata}
627 Melismata can be specified simply in the lyrics now, eg.
629 @lilypond[relative=1,verbatim,fragment]
637 This feature was sponsored by Nancho Alvarez
640 Suggested accidentals (for notating musica ficta) may be switched on
641 with @code{suggestAccidentals}
643 @lilypond[verbatim,fragment,relative=2]
644 \set suggestAccidentals = ##t
648 This feature was sponsored by Nancho Alvarez.
651 The setting @code{whichBar} and time-bookkeeping is now split into a
652 @code{Default_bar_line_engraver} and @code{Timing_translator}
655 @item @textanchor{pitched-trill}
656 Explicit pitches may be added to trills,
658 @lilypond[relative,verbatim,fragment]
659 \pitchedTrill c4\startTrillSpan fis f\stopTrillSpan
662 This feature was sponsored by D. Josiah Boothby and Jamie Bullock
665 Markup now supports formatting of text paragraphs, using
666 @code{\wordwrap} and @code{\justify}.
668 This feature was sponsored by Sven Axelsson.
672 For older news, go to
673 @uref{http://lilypond.org/doc/v2.6/Documentation/topdocs/NEWS.html},
674 or @uref{../,go back} to the Documentation index.